STRUCT DRM_V3D_TIMESTAMP_QUERY(9)
π struct drm_v3d_timestamp_query(9)
okay so real talk, bestie β this page is straight out of the Kernel API Manual, and the whole entire moment belongs to struct drm_v3d_timestamp_query. it's giving "niche kernel struct that absolutely ate" and honestly? obsessed. let's get into it π
β¨ NAME β¨
struct drm_v3d_timestamp_query β the ioctl extension that lets the CPU job calculate a timestamp query. that's it, that's the vibe. πΈ
π¦ SYNOPSIS π¦
here's the whole struct, copied exactly because we do not mess with kernel headers, periodt:
struct drm_v3d_timestamp_query {
struct drm_v3d_extension base;
__u64 offsets;
__u64 syncs;
__u32 count;
__u32 pad;
};
π«Ά Members π«Ά
ngl the member-by-member rundown on this page is lowkey empty β like, there's a Members section but it has nothing written under it, no cap. the fields themselves are right there in the struct above (base, offsets, syncs, count, pad), but this page doesn't hand you a cute little explanation for each one, so i'm not gonna sit here and make one up. we don't invent lore in this group chat π
π₯ DESCRIPTION π₯
okay so here's the actual tea, and it's good tea:
- when an extension
DRM_V3D_EXT_ID_TIMESTAMP_QUERYis defined, it points to this extension β right here, this struct β to define a timestamp query submission. that's its whole job. main character energy. - this CPU job will calculate the timestamp query and update the query value within the timestamp BO. yes, the BO. iconic behavior.
- moreover (putting on my fancy voice for one second) it will signal the timestamp syncobj to indicate that the query is available. so the syncobj is literally the "she's ready" text. π
fr fr though: those are the three facts β extension ID defines the submission, CPU job computes + writes the value into the timestamp BO, and the timestamp syncobj gets signalled for query availability. no more, no less.
π SEE ALSO π
the kernel file this all lives in is ./include/uapi/drm/v3d_drm.h β go read it, iykyk. and here's the full friend group:
struct drm_v3d_multi_sync(9)struct drm_v3d_submit_cl(9)struct drm_v3d_wait_bo(9)struct drm_v3d_create_bo(9)struct drm_v3d_mmap_bo(9)struct drm_v3d_indirect_csd(9)struct drm_v3d_reset_timestamp_query(9)struct drm_v3d_copy_timestamp_query(9)struct drm_v3d_reset_performance_query(9)struct drm_v3d_copy_performance_query(9)struct drm_v3d_perfmon_get_counter(9)struct drm_v3d_perfmon_set_global(9)
and that's the whole page π sourced from ./include/uapi/drm, dated October 2026 β mwah, go forth and query your timestamps responsibly bestie πβ¨π¦
π¦ 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