STRUCT DRM_PANFROST_SUBMIT(9)
π struct drm_panfrost_submit(9) π
okay bestie, gather round, because this is a page straight out of the Kernel API Manual and it's honestly iconic. it's the whole scoop on struct drm_panfrost_submit β the ioctl argument you use to yeet your commands at the 3D engine. no cap, it's lowkey the main character of the panfrost UAPI. π
β¨ NAME β¨
struct drm_panfrost_submit β the ioctl argument for submitting commands to the 3D engine. that's it, that's the vibe. π¦
π SYNOPSIS π
here's the shape of it, character for character, don't touch:
struct drm_panfrost_submit {
__u64 jc;
__u64 in_syncs;
__u32 in_sync_count;
__u32 out_sync;
__u64 bo_handles;
__u32 bo_handle_count;
__u32 requirements;
__u32 jm_ctx_handle;
__u32 pad;
};
πΈ Members πΈ
okay so every single field, in order, no skipping, we're doing this properly:
jcβ the address to the GPU mapping of the job descriptor. like, where the job actually lives. πin_syncsβ an optional array of sync objects to wait on before this job starts. think of it as the "hold up, let me finish my iced coffee first" list. π§in_sync_countβ how many sync objects we're waiting on before starting this job. the headcount for the waiting room. π«Άout_syncβ an optional sync object where the completion fence gets dropped. this is the "tell me when you're done" slot. β¨bo_handlesβ pointer to au32array of the BOs that the job references. the guest list, basically. πbo_handle_countβ number of BO handles passed in (and yes, the size is that times 4 π ). the count has to match the guest list or it's giving chaos.requirementsβ a combination ofPANFROST_JD_REQ_*. mix and match your req flags, slay. π₯jm_ctx_handleβ the JM context handle. set it to zero if you want to use the default context. zero = default, no thoughts, just vibes. βpadβ padding field. must be zero. not "maybe zero", not "zero-ish". zero. fr fr. π
π¦ Description π¦
so what does this whole thing do? it asks the kernel to have the GPU execute a render command list. that's the entire plot. you hand it over, kernel says "say less", GPU goes brrr. ππ₯
π SEE ALSO π
go touch some related grass, bestie:
- Kernel file
./include/uapi/drm/panfrost_drm.h struct drm_panfrost_wait_bo(9)struct drm_panfrost_create_bo(9)struct drm_panfrost_mmap_bo(9)struct drm_panfrost_set_label_bo(9)struct drm_panfrost_sync_bo(9)
and that's the whole page, diva. π it lives in ./include/uapi/drm, dated October 2026, and it's filed under struct drm_panfrost_submit(9) β same title, same date, same source, we kept the receipts. periodt. π
πΈ
π¦ 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