[RFC] modesetting: Support universal planes to retrieve plane modifier info
!738 (merged) disabled modifier support to fix broken pageflipping due to our code not being able to acquire modifier+format combinations that support pageflipping. This MR explores another potential avenue of fixing the issue by enabling universal plane support and acquiring the modifiers of the primary planes using existing code.
The impact of this change would be the following:
-
on the kernel side: we get all planes when calling the DRM_IOCTL_MODE_GETPLANERESOURCES ioctl and we can also submit planes through the DRM_IOCTL_MODE_CREATE_LEASE ioctl
-
on X server side the only places that call into that are
drmmode_crtc_create_planes()
anddrmmode_create_lease()
. The former sets updrmmode_crtc->props_plane
,drmmode_crtc->plane_id
,drmmode_crtc->num_formats
and ``drmmode_crtc->formats. The latter uses the previously populated
plane_id` to set up a lease request to the kernel.
I have verified that drmmode_crtc->formats is being populated in populate_format_modifiers()
. I have not verified that drmmode_create_lease()
works, but it uses exactly the same path as under atomic modeset.