Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • mesa mesa
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,069
    • Issues 3,069
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1,004
    • Merge requests 1,004
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.

  • MesaMesa
  • mesamesa
  • Merge requests
  • !6426

tegra: Support framebuffer modifier unaware applications

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Thierry Reding requested to merge tagr/mesa:detile into main Aug 21, 2020
  • Overview 4
  • Commits 1
  • Pipelines 2
  • Changes 3

Applications that are not aware of framebuffer modifiers cannot be expected to deal with buffers that are not pitch-linear. Make sure that these applications work correctly by allocating a separate, pitch-linear copy of the framebuffer to which we can do de-tiling blits on ->flush_resource() to meet the applications assumptions.

Note that this only works if the applications end up properly synchronizing their render jobs via eglSwapBuffers() (or something equivalent that ends up calling ->flush_resource() on the scanout buffer. Unfortunately this doesn't work with X because by default X will render to a front-buffer and never ends up flushing any of the underlying resources.

Ironically, X works fine if we don't enforce a de-tiling blit, but only by accident. The reason is that even when X doesn't allocate a GBM buffer object using framebuffer modifiers, it will query the framebuffer modifier of that buffer and pass the modifier to the DRM_IOCTL_MODE_ADDFB2 IOCTL, which will result in the right KMS framebuffer setup on Tegra.

Signed-off-by: Thierry Reding treding@nvidia.com

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: detile