On 17.12.2014 08:05, Rob Clark wrote: > The atomic modeset ioctl can be used to push any number of new values > for object properties. The driver can then check the full device > configuration as single unit, and try to apply the changes atomically. > > The ioctl simply takes a list of object IDs and property IDs and their > values. [...] > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h > index 86574b0..3459778 100644 > --- a/include/uapi/drm/drm_mode.h > +++ b/include/uapi/drm/drm_mode.h > @@ -519,4 +519,25 @@ struct drm_mode_destroy_dumb { > uint32_t handle; > }; > > +/* page-flip flags are valid, plus: */ > +#define DRM_MODE_ATOMIC_TEST_ONLY 0x0100 > +#define DRM_MODE_ATOMIC_NONBLOCK 0x0200 > + > +#define DRM_MODE_ATOMIC_FLAGS (\ > + DRM_MODE_PAGE_FLIP_EVENT |\ > + DRM_MODE_PAGE_FLIP_ASYNC |\ > + DRM_MODE_ATOMIC_TEST_ONLY |\ > + DRM_MODE_ATOMIC_NONBLOCK) > + > +struct drm_mode_atomic { > + __u32 flags; > + __u32 count_objs; > + __u64 objs_ptr; > + __u64 count_props_ptr; > + __u64 props_ptr; > + __u64 prop_values_ptr; > + __u64 blob_values_ptr; /* remove? */ > + __u64 user_data; > +}; > + > #endif > The new ioctl(s) should take an explicit parameter specifying when the changes should take effect. And since variable refresh rate displays are becoming mainstream, that parameter should probably be a timestamp rather than a frame counter. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel