radeon_ib_schedule(9)
π radeon_ib_schedule(9) π
okay bestie, welcome to the Kernel API Manual β this one's all about yeeting an IB onto the ring, and honestly it's giving main-character energy. let's get into it π«Ά
β¨ NAME β¨
radeon_ib_schedule β schedule an IB (Indirect Buffer) on the ring. periodt. π
π SYNOPSIS π
int radeon_ib_schedule (struct radeon_device *rdev , struct radeon_ib
*ib , struct radeon_ib *const_ib , bool hdp_flush );
π ARGUMENTS π
rdevβ aradeon_devicepointer, aka the whole vibe of the device you're working with π₯οΈibβ the IB object to schedule, the actual star of the show βconst_ibβ the Const IB to schedule β SI only bestie, don't forget πhdp_flushβ whether or not to perform an HDP cache flush β a simple lil yes/no vibe check π
π¦ DESCRIPTION π¦
So what does this actually do? It schedules an IB on the associated ring β and yes, that's all asics, no cap. It returns 0 on success and an error on failure. iconic behavior honestly. β¨
Now here's where it gets spicy π₯ β on SI, there are two parallel engines fed from the primary ring:
- the CE (Constant Engine) π
- and the DE (Drawing Engine) π¨
Since resource descriptors have moved to memory, the CE lets you prime the caches while the DE is updating register state β so that the resource descriptors will already be in cache when the draw is processed. the way that works is genuinely so smart, iykyk π§ π
To accomplish this, the userspace driver submits two IBs β one for the CE and one for the DE. If there is a CE IB (called a CONST_IB), it will be put on the ring prior to the DE IB. and prior to SI? there was just a DE IB. simpler times fr fr π°οΈ
πΈ SEE ALSO πΈ
- Kernel file
./drivers/gpu/drm/radeon/radeon_ib.c radeon_ib_get(9)radeon_ib_free(9)radeon_ib_pool_init(9)radeon_ib_pool_fini(9)radeon_ib_ring_tests(9)
and that's the whole page bestie π this lil masterpiece comes from ./drivers/gpu/drm/radeon, dated October 2026, and it's literally called radeon_ib_schedule(9) β slay, go schedule some IBs responsibly πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms