STRUCT DRM_V3D_INDIRECT_CSD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct drm_v3d_indirect_csd(9) 🌸

okay so you're in the Kernel API Manual bestie, and we're talking about struct drm_v3d_indirect_csd πŸ’… let me tell you everything 🫢


✨ NAME ✨

struct drm_v3d_indirect_csd β€” the ioctl extension that lets the CPU job create an indirect CSD πŸŽ€ no cap, that's the whole vibe

πŸ¦‹ SYNOPSIS πŸ¦‹

struct drm_v3d_indirect_csd {
    struct drm_v3d_extension base;
    struct drm_v3d_submit_csd submit;
    __u32 indirect;
    __u32 offset;
    __u32 wg_size;
    __u32 wg_uniform_offsets[3];
};

look at her πŸ₯Ή six members, all lined up, all iconic πŸ‘‘

πŸ’œ Members πŸ’œ

so the source has the heading right here and then genuinely nothing under it β€” no per-member commentary, no little blurbs, nothing 😭 so the struct up in SYNOPSIS is the entire serve, and honestly? we respect it. the fields speak for themselves fr fr ✨

πŸ‘‘ Description πŸ‘‘

okay so here's the tea β˜• when an extension with the id DRM_V3D_EXT_ID_CPU_INDIRECT_CSD gets defined, it points at this extension to set up an indirect CSD submission πŸ”₯ that's the whole job.

what it does is create a CPU job that's linked to a CSD job 🧚 the two are besties, they're linked, that's the arrangement.

then the CPU job does the patient thing: it waits for the indirect CSD dependencies ⏳ and once those dependencies are signaled, it goes ahead and updates the CSD job config β€” and only after that does it allow the CSD job to execute 🌈 so like: wait β†’ deps signal β†’ update config β†’ then execution. in that order. periodt πŸ’…

πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./include/uapi/drm/v3d_drm.h πŸ“
  • struct drm_v3d_multi_sync(9)
  • struct drm_v3d_submit_cl(9)
  • struct drm_v3d_wait_bo(9)
  • struct drm_v3d_create_bo(9)
  • struct drm_v3d_mmap_bo(9)
  • struct drm_v3d_timestamp_query(9)
  • struct drm_v3d_reset_timestamp_query(9)
  • struct drm_v3d_copy_timestamp_query(9)
  • struct drm_v3d_reset_performance_query(9)
  • struct drm_v3d_copy_performance_query(9)
  • struct drm_v3d_perfmon_get_counter(9)
  • struct drm_v3d_perfmon_set_global(9)

go read all of those too, they're the friend group 🫢✨


and that's the page!! πŸŽ€ it lives in ./include/uapi/drm and it's stamped October 2026 β€” go off, calendar icon πŸ’– mwah, bye bestie πŸŒΈπŸ’œ

πŸ“¦ where this page comes from