STRUCT DRM_IVPU_CMDQ_SUBMIT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct drm_ivpu_cmdq_submit(9) β€” Kernel API Manual

okay so bestie, welcome to the drm_ivpu_cmdq_submit page from the Kernel API Manual ✨ this is the whole "submit commands to the VPU using an explicit command queue" situation, and honestly? it's giving structured. let's get into it 🫢


✨ NAME ✨

struct drm_ivpu_cmdq_submit β€” submit commands to the VPU using an explicit command queue. that's it, that's the vibe πŸ’…


🌸 SYNOPSIS 🌸

struct drm_ivpu_cmdq_submit {
    __u64 buffers_ptr;
    __u32 buffer_count;
    __u32 cmdq_id;
    __u32 flags;
    __u32 commands_offset;
    __u32 preempt_buffer_index;
    __u32 reserved;
 };

like, look at her. all fields, no notes πŸ‘‘


πŸŽ€ Members πŸŽ€

  • buffers_ptr β€” a pointer to a u32 array of GEM handles of the BOs required for this job πŸ’– the number of elements in that array must be equal to the value given by buffer_count β€” no cap, it literally has to match.
the first BO is the command buffer. the rest of the array has to contain all the BOs referenced from the command buffer. every single one, bestie, don't leave anyone out πŸ₯Ί
  • buffer_count β€” number of elements in the buffers_ptr array. the headcount. the guest list. πŸ“‹
  • cmdq_id β€” ID for the command queue where the job will be submitted πŸ¦‹
  • flags β€” reserved for future use β€” must be zero. like, zero zero. not "zero but with a little something". zero. πŸ™ˆ
  • commands_offset β€” offset inside the first buffer in buffers_ptr containing the commands to be executed. lowkey important: the offset has to be 8-byte aligned ✨ don't skip that part.
  • preempt_buffer_index β€” index of the preemption buffer in the buffers_ptr array 🌸

πŸ’œ Description πŸ’œ

Execute a single command buffer on a given command queue πŸ”₯ handles to all referenced buffer objects have to be provided in buffers_ptr β€” the way that "all" means all.

User space may wait on job completion using the DRM_IVPU_BO_WAIT ioctl ⏳ so like, you don't have to sit there refreshing, you can just wait properly. iconic behaviour honestly.


🌈 SEE ALSO 🌈

Kernel file ./include/uapi/drm/ivpu_accel.h plus, in no particular order:

go read them, i'll wait πŸ’…


and that's the whole page bestie!! this lil masterpiece lives in ./include/uapi/drm and the date on it is October 2026 β€” so yeah, mark your calendar, it's giving future-forward πŸ—“οΈβœ¨ mwah, ily, go submit some command buffers responsibly πŸ’–πŸŒŸ


πŸ“¦ where this page comes from