BROADCOM V3D SCHEDULING(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– Broadcom V3D scheduling πŸ’–

Okay bestie, this one's from the Kernel API Manual, and it's literally all about how Broadcom V3D scheduling does its thing. ✨

So the shared DRM GPU scheduler is the main character here β€” it's what coordinates submitting jobs to the hardware. Every DRM fd (which is, roughly speaking, one client process) gets its own scheduler entity, and that entity processes jobs in order. The GPU scheduler schedules the clients using a FIFO scheduling algorithm. Periodt. πŸ’…

Now, for simplicity β€” and to keep latency low for interactive jobs when bulk background jobs are queued up β€” we submit a new job to the HW only when it has completed the last one, instead of filling up the CT[01]Q FIFOs with jobs. Same energy for dependencies: we use drm_sched_job_add_dependency to manage the dependency between bin and render, instead of having the clients submit jobs using the HW's semaphores to interlock between them. No cap. 🫢


πŸ‘€ SEE ALSO πŸ‘€

  • Kernel file ./drivers/gpu/drm/v3d/v3d_sched.c

Like, that's the whole vibe. πŸ’œ This cutie is Broadcom V3D scheduling(9), coming from the source/version at ./drivers/gpu/drm/v3d, dated October 2026. Byeee! πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from