Hi, > So perhaps this becomes: > > struct vfio_device_gfx_plane_info { > __u64 start; > __u64 drm_format_mod; > __u32 drm_format; > __u32 width; > __u32 height; > __u32 stride; > __u32 size; > __u32 x_pos; > __u32 y_pos; > }; Looks good. > struct vfio_device_query_gfx_plane { > __u32 argsz; > __u32 flags; > #define VFIO_GFX_PLANE_FLAGS_REGION_ID (1 << 0) > #define VFIO_GFX_PLANE_FLAGS_PLANE_ID (1 << 1) > struct vfio_device_gfx_plane_info plane_info; > __u32 id; > }; Hmm, plane isn't really an ID, it is a type, with type being either DRM_PLANE_TYPE_PRIMARY or DRM_PLANE_TYPE_CURSOR, so I don't think the flage above make sense. What are the nvidia plane for cursor support btw? > The flag defines the data in the id field as either referring to a > region (perhaps there could be multiple regions with only one active) Well, we have a "start" field in vfio_device_gfx_plane_info (maybe we should rename that to "offset"), which can be used to place multiple planes into a single, fixed region. Also I think it would be useful to have some way to figure the device capabilities as the userspace workflow will look quite different for the two cases. cheers, Gerd _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx