Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • xserver xserver
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 922
    • Issues 922
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 119
    • Merge requests 119
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • xorgxorg
  • xserverxserver
  • Merge requests
  • !744

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

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Povilas Kanapickas requested to merge p12tic/xserver:use-universal-planes into master Sep 03, 2021
  • Overview 4
  • Commits 1
  • Pipelines 1
  • Changes 3

!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 Sep 03, 2021 by Povilas Kanapickas
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: use-universal-planes