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.