STRUCT DRM_ASAHI_TIMESTAMP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct drm_asahi_timestamp(9) ✨

okay so this is a page from the Kernel API Manual and bestie, it's literally all about struct drm_asahi_timestamp β€” the little buddy that describes a timestamp write. let's get into it πŸ’–


🌸 NAME 🌸

struct drm_asahi_timestamp β€” describes a timestamp write. that's it, that's the vibe πŸŽ€


⭐ SYNOPSIS ⭐

here's the whole struct, copied exactly, no notes:

struct drm_asahi_timestamp {
    __u32 handle;
    __u32 offset;
 };

two __u32s. that's the entire icon. πŸ‘‘


🫢 Members 🫢

πŸ’… handle

this is the handle of the timestamp buffer β€” or 0 if you wanna skip this timestamp entirely (valid, we love a skip). and if it's nonzero, it must equal the value that came back in drm_asahi_gem_bind_object::object_handle. no cap, they have to match. πŸ¦‹

πŸ’… offset

the offset to write into the timestamp buffer. simple as that, bestie. ✨


🌈 Description 🌈

so here's the lore: the firmware can optionally write the GPU timestamp at render pass granularities, but for that to work it needs to be mapped specially via DRM_IOCTL_ASAHI_GEM_BIND_OBJECT. that's why this struct describes where to write as a handle-offset pair instead of a GPU address like normal. different system, same goals πŸ’«

also important, lowkey: this struct is embedded in other structs, and therefore it is not extensible. so don't come at it expecting room to grow. it is what it is. πŸ™ˆ

🧚 SEE ALSO 🧚

go read these too, iykw2:

  • Kernel file ./include/uapi/drm/asahi_drm.h
  • Introduction to the Asahi UAPI(9)
  • enum drm_asahi_ioctl_id(9)
  • struct drm_asahi_params_global(9)
  • enum drm_asahi_feature(9)
  • struct drm_asahi_get_params(9)
  • struct drm_asahi_vm_create(9)
  • struct drm_asahi_vm_destroy(9)
  • enum drm_asahi_gem_flags(9)
  • struct drm_asahi_gem_create(9)
  • struct drm_asahi_gem_mmap_offset(9)
  • enum drm_asahi_bind_flags(9)
  • struct drm_asahi_gem_bind_op(9)
  • struct drm_asahi_vm_bind(9)
  • enum drm_asahi_bind_object_op(9)
  • enum drm_asahi_bind_object_flags(9)
  • struct drm_asahi_gem_bind_object(9)
  • enum drm_asahi_cmd_type(9)
  • enum drm_asahi_priority(9)
  • struct drm_asahi_queue_create(9)
  • struct drm_asahi_queue_destroy(9)
  • enum drm_asahi_sync_type(9)
  • struct drm_asahi_sync(9)
  • DRM_ASAHI_BARRIER_NONE(9)
  • struct drm_asahi_cmd_header(9)
  • struct drm_asahi_submit(9)
  • struct drm_asahi_attachment(9)
  • struct drm_asahi_zls_buffer(9)
  • struct drm_asahi_timestamps(9)
  • struct drm_asahi_helper_program(9)
  • struct drm_asahi_bg_eot(9)
  • struct drm_asahi_cmd_render(9)
  • struct drm_asahi_cmd_compute(9)
  • struct drm_asahi_get_time(9)
  • DRM_IOCTL_ASAHI(9)

okay that's the whole page, you ate that πŸ“ this cutie lives in ./include/uapi/drm, dated October 2026, and it's page struct drm_asahi_timestamp(9) of the Kernel API Manual β€” love that for us, mwah πŸ’œ

πŸ“¦ where this page comes from