Deep technical dive into building GPU-accelerated multi-desktop virtualization on Apple Silicon. Covers the full stack from virtio-gpu driver through QEMU to Metal, focusing on deadlock bugs that emerge when scaling from 1-2 to 4+ concurrent desktops. Key issues include global renderer_blocked semaphore causing cross-scanout
Table of contents
OverviewWhy This MattersThe StackLayer 1: The Virtio Control QueueLayer 2: QEMU’s Command Processing PipelineLayer 3: Fences and the Poll TimerLayer 4: virglrenderer and VenusLayer 5: DRM LeasesLayer 6: Frame Export and Video StreamingWhy Scaling MattersSummary of FixesThe Debugging MethodSort: