Skip to content

dmabuf passthrough

Matthias Clasen requested to merge dmabuf-passthrough into main

Still to do:

  • add subsurface stacking api
  • make attaching regular textures to subsurfaces work
  • test subsurface api without passthrough
  • trigger a parent surface commit if a subsurface is attached or restacked - no need, the renderer takes care of it
  • Add a version of diff that compares subsurface nodes as equal if the have the same subsurface and same size and just update subsurfaces if that comes up empty
  • make renderer reorder subsurfaces
  • trigger a full redraw if subsurfaces appear/disappear - the diffing code should handle it
  • make tests with multiple GtkVideos (overlapping/nonoverlapping) - if we make the logo opaque, fishbowl covers this
  • Add a 'subsurface mode' to the node diff code
  • figure out if we want to keep the shm wl_buffer code or make it a debug-only feature
  • figure out how to properly wait for the create roundtrip
  • test and fix this on a hi-dpi system, and with fractional scales
  • debugging support
    • [ ] add 'disable dmabuf' and 'disable passthrough' options in the inspector - we don't expose other behavior flags
    • add subsurface information to the inspector ?
  • if the last subsurface does not have any drawing on top, raise it above the main surface in the end, so mutter can use it for scanout without second thoughts
  • check for clips and don't do passthrough if the node isn't fully contained (should take care of rounded corners)
  • [ ] make gtkgstmediastream negotiate and return dmabufs - deferred
  • [ ] handle wayland priorities and tranches when sorting dmabuf formats - deferred
  • [ ] add per-surface dmabuf format information - deferred
  • [ ] figure out what to do about buffer pools - deferred

This implements #6132 (closed)

Edited by Matthias Clasen

Merge request reports