STRUCT DRM_TEGRA_SUBMIT(9)
π struct drm_tegra_submit(9) β the job submission glow-up
okay bestie, so this is a page from the Kernel API Manual (manual name: struct drm_tegra_submit(9), yes the title is the same as the thing, iconic) and it's literally all about struct drm_tegra_submit β the job submission structure π. that's the NAME section btw. let's get into it β¨
π¦ SYNOPSIS π¦
here's the whole struct, copy-paste ready, don't touch a single character bestie:
struct drm_tegra_submit {
__u64 context;
__u32 num_syncpts;
__u32 num_cmdbufs;
__u32 num_relocs;
__u32 num_waitchks;
__u32 waitchk_mask;
__u32 timeout;
__u64 syncpts;
__u64 cmdbufs;
__u64 relocs;
__u64 waitchks;
__u32 fence;
__u32 reserved[5];
};
πΈ Members πΈ
okay so now we're doing a field-by-field vibe check, one at a time, no skipping π
contextβ the application context, aka the thing that tells everyone which channel this job runs on. main character identification fr.num_syncptsβ how many syncpoints this job operates on. this is literally the length of the array thatsyncptspoints at. math is math πnum_cmdbufsβ how many command buffers get executed as part of this job. and yup, that sets the length of the arraycmdbufspoints to. slay.num_relocsβ how many relocations need to happen before this job runs. this defines the length of the array pointed to byrelocs. π₯num_waitchksβ how many wait checks get performed as part of this job. defines the length of the array thatwaitchkspoints to. periodt.waitchk_maskβ a bitmask of valid wait checks πtimeoutβ timeout, in milliseconds, before this job gets cancelled π so like, the deadline basically.syncptsβ a pointer to an array ofstruct drm_tegra_syncptstructures that say which syncpoint operations happen as part of this job. and β important β the number of elements in the array must be equal to the value given bynum_syncpts. no cap, they gotta match.cmdbufsβ a pointer to an array ofstruct drm_tegra_cmdbufstructures that define the command buffers executed as part of this job. the number of elements in the array must be equal to the value given bynum_syncpts. π yes, that's what it says βnum_syncpts. we're just reporting the lore, bestie.relocsβ a pointer to an array ofstruct drm_tegra_relocstructures that specify the relocations that need to be performed before executing this job. the number of elements in the array must be equal to the value given bynum_relocs. πwaitchksβ a pointer to an array ofstruct drm_tegra_waitchkstructures that specify the wait checks performed while executing this job. the number of elements in the array must be equal to the value given bynum_waitchks. π«Άfenceβ the threshold of the syncpoint associated with this job after it's been completed. the kernel sets this on successful completion of the IOCTL. you can pair it with theDRM_TEGRA_SYNCPT_WAITIOCTL to wait for this job to be finished. it's giving "the kernel left you a little note" πreservedβ reserved for future use. must be0. that's it, that's the whole rule β
ngl the "must be equal to" clauses are not a suggestion, they're a whole personality. mismatch = sadness.
π SEE ALSO π
the whole friend group, linked up π«
- Kernel file
./include/uapi/drm/tegra_drm.hstruct drm_tegra_gem_create(9),struct drm_tegra_gem_mmap(9),struct drm_tegra_syncpt_read(9),struct drm_tegra_syncpt_incr(9),struct drm_tegra_syncpt_wait(9),struct drm_tegra_open_channel(9),struct drm_tegra_close_channel(9),struct drm_tegra_get_syncpt(9),struct drm_tegra_get_syncpt_base(9),struct drm_tegra_syncpt(9),struct drm_tegra_cmdbuf(9),struct drm_tegra_reloc(9),struct drm_tegra_waitchk(9),struct drm_tegra_gem_set_tiling(9),struct drm_tegra_gem_get_tiling(9),struct drm_tegra_gem_set_flags(9),struct drm_tegra_gem_get_flags(9),DRM_TEGRA_SUBMIT_RELOC_SECTOR_LAYOUT(9),DRM_TEGRA_SUBMIT_CMD_GATHER_UPTR(9),DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT(9),DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT_RELATIVE(9)
that's the whole page bestie, go submit some jobs responsibly π§π
sign-off time: this little gem lives in ./include/uapi/drm, dated October 2026, and it's the struct drm_tegra_submit(9) page from the Kernel API Manual. ate and left no crumbs β¨π
π¦ 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