Demystifying Graphics and Media Work Synchronisation
summary
Explains how current Linux graphics relies on DRM and Mesa and that buffer sharing via dma-buf and completion via dma-fence fd already work in production but are not allocators and force kernel stalls for implicit sync; shows that newer kernel-level primitives like timeline semaphores add integer-valued semaphores and permit weight-before-signal which can leave fences unsignaled and break prior guarantees; describes a hybrid approach being prototyped and an implemented compositor pattern (adaptive compositor gating in Mutter/GNOME) that reduces 16 ms frame jitter by checking fence retirement just before display deadlines.
AI-written summary · about
chapters (34)
- 0:00Introduction
- 0:27Outline
- 1:07DM
- 1:57Device Specific Operations
- 4:43Memory Allocation
- 5:55Command Submission
- 7:02Access
- 7:29User Space
- 8:37Implicit synchronization
- 12:59Bo Buff Limitations
- 13:33Bo Buff Universal Exchange
- 14:05Sync Operations
- 14:48Portable Cross Device
- 15:42Kernel
- 17:16DNA Reservation
- 18:52Why
- 19:39Timeline
- 21:58Sync Objects
- 23:30Weight Before Signal
- 25:36Memory Management
- 30:29Games
- 31:00GPU and Compute
- 32:22All the answers
- 34:45Performance penalty
- 35:38Design outline
- 36:04Display
- 36:50Timing
- 38:59VBlank
- 39:14Latency
- 40:00Debug
- 40:55Latency Reduction
- 41:11Adaptive Synchronisation
- 43:50Graphics Difficulty
- 44:05Uncanny Valley
related talks
41mWalking Through the Linux-Based Graphics Stack
44mGraphics: A Frame's Journey
39mNavigating the Linux Graphics Stack
32mThe Modern Linux Graphics Stack on Embedded Systems
20mLinux Graphics 101
35mEverything Great about Upstream Graphics
37mRunning Android on the Mainline Graphics Stack
40mDemystifying the Embedded Linux Graphics Stack: An Easy Introduction for Beginners
