STRUCT DRM_TEGRA_SUBMIT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 that syncpts points 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 array cmdbufs points to. slay.
  • num_relocs β€” how many relocations need to happen before this job runs. this defines the length of the array pointed to by relocs. πŸ”₯
  • num_waitchks β€” how many wait checks get performed as part of this job. defines the length of the array that waitchks points 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 of struct drm_tegra_syncpt structures 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 by num_syncpts. no cap, they gotta match.
  • cmdbufs β€” a pointer to an array of struct drm_tegra_cmdbuf structures 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 by num_syncpts. πŸ™ˆ yes, that's what it says β€” num_syncpts. we're just reporting the lore, bestie.
  • relocs β€” a pointer to an array of struct drm_tegra_reloc structures 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 by num_relocs. πŸ’œ
  • waitchks β€” a pointer to an array of struct drm_tegra_waitchk structures that specify the wait checks performed while executing this job. the number of elements in the array must be equal to the value given by num_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 the DRM_TEGRA_SYNCPT_WAIT IOCTL to wait for this job to be finished. it's giving "the kernel left you a little note" πŸŽ€
  • reserved β€” reserved for future use. must be 0. 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 πŸ’«


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