Draft: KMS: Unify buffer management for all plane types

Daniel van Vugt requested to merge vanvugt/mutter:native-buffer-refs into main

References to MetaDrmBuffer are now held closer to where the object is actually used. MetaKmsPlaneAssignment holds a reference to each buffer that is going to be assigned. After it has been posted each MetaKmsCrtc holds the buffer references for the DRM FBs it is about to scan out as well as those still scanning out from previous frames. Buffers get released on the first scanout that is after they have stopped being used.

This will simplify future work in:

  • Overlay planes
  • Triple buffering
  • Multi-cursor support
  • Cloning to multiple monitors (CRTCs) without rendering multiple times

Requires: !2087 (merged)

Edited by Daniel van Vugt

Merge request reports