STRUCT DRM_IVPU_CMDQ_SUBMIT(9)
π 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 au32array of GEM handles of the BOs required for this job π the number of elements in that array must be equal to the value given bybuffer_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 thebuffers_ptrarray. 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 inbuffers_ptrcontaining 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 thebuffers_ptrarray πΈ
π 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:
contexts(9)DRM_IVPU_CAP_METRIC_STREAMER(9)DRM_IVPU_CAP_DMA_MEMORY_RANGE(9)DRM_IVPU_CAP_MANAGE_CMDQ(9)DRM_IVPU_CAP_BO_CREATE_FROM_USERPTR(9)struct drm_ivpu_param(9)struct drm_ivpu_bo_create(9)struct drm_ivpu_bo_create_from_userptr(9)struct drm_ivpu_bo_info(9)struct drm_ivpu_submit(9)struct drm_ivpu_bo_wait(9)struct drm_ivpu_metric_streamer_start(9)struct drm_ivpu_metric_streamer_get_data(9)struct drm_ivpu_cmdq_create(9)struct drm_ivpu_cmdq_destroy(9)struct drm_ivpu_metric_streamer_stop(9)
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
- 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