[PATCH 13/13] RFC: drm: Atomic modeset ioctl
Michel Dänzer
michel at daenzer.net
Tue Dec 16 18:48:51 PST 2014
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
More information about the dri-devel
mailing list