Many of us really want (and need) a way to set the whole display configuration atomically, as well as test a global config. In talking with Rob and Alex here at ELC a bit, I think this may be enough: diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h index 2a2acda..2864b02 100644 --- a/include/drm/drm_mode.h +++ b/include/drm/drm_mode.h @@ -157,6 +157,26 @@ struct drm_mode_get_plane_res { __u32 count_planes; }; +#define DRM_SET_CONFIG_TEST (1<<0) /* don't change the config, just test it for validity */ + +struct drm_mode_set_config { + __u64 crtcs; + __u64 crtc_fbs; + __u64 crtc_xpos; /* array of x coords for crtcs */ + __u64 crtc_ypos; /* array of y coords for crtcs */ + __u32 count_crtcs; + + __u64 plane_sets; /* array of set_plane structs */ + + __u32 count_planes; + + __u64 connectors; + __u64 connector_modes; + __u32 count_connectors; + + __u32 flags; +}; + #define DRM_MODE_ENCODER_NONE 0 #define DRM_MODE_ENCODER_DAC 1 #define DRM_MODE_ENCODER_TMDS 2 This allows you to bind a bunch of fbs to crtcs with independent positions, as well as set a bunch of planes to specific fbs and layouts. Finally, it lets you change the connector config at the same time, with a flag to simply test a config instead of actually setting it. Any comments? Do we also need to set gamma or other properties as part of this? What about cursors? Thanks, Jesse _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel