Skip to content

[RFC] modesetting: Support universal planes to retrieve plane modifier info

Povilas Kanapickas requested to merge p12tic/xserver:use-universal-planes into master

!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() and drmmode_create_lease(). The former sets up drmmode_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.

Edited by Povilas Kanapickas

Merge request reports