Lauri Peltonen - DRM: Explicit synchronization

Fences are used for synchronizing hardware engine access to buffers. There are two quite different ways how fences can be managed:

  • Implicit synchronization
    • Fences are attached to buffers
    • Kernel manages fences automatically based on buffer read/write access
    • Currently used by DRM (dma-buf fences)
  • Explicit synchronization
    • Fences are passed around independently
    • Kernel takes and emits fences to/from user space when submitting work
    • Currently used on Android (sync fence fd's)

I will present some advantages of the explicit sync model, along with some ideas how it could be supported by DRM drivers in a way that is fully compatible with the current implicit sync model.

Slides Video