STRUCT DRM_ASAHI_ATTACHMENT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so bestie, this page is from the Kernel API Manual, and the main character is struct drm_asahi_attachment β€” its whole job is to describe an "attachment". slay, we love a clear title πŸ’…


✨ SYNOPSIS ✨

here's the struct, copied exactly, no edits, no cap:

       struct drm_asahi_attachment {
           __u64 pointer;
           __u64 size;
           __u32 pad;
           __u32 flags;
        };

πŸŽ€ Members πŸŽ€

  • pointer β€” base address of the attachment. that's it, that's the address πŸ’–
  • size β€” size of the attachment in bytes. numbers, iconic ✨
  • pad β€” MBZ. the page literally says MBZ, so we respect the mystery 🫢
  • flags β€” MBZ. same vibe, same MBZ, periodt πŸŽ€

🌸 Description 🌸

okay so an attachment is any memory written by shaders β€” and yes, that notably includes render target attachments written by the end-of-tile program. this is purely a hint about the accessed memory regions, bestie. it's optional to specify, which is genuinely fortunate because it cannot be specified precisely with bindless access anyway. but where possible, it's probably a good idea for userspace to include these hints, forwarded to the firmware. cute! useful! optional! we love πŸ’–

also important: this struct is implicitly sized and therefore is not extensible. so yeah, no growing it later, that's the rule 😭


πŸ¦‹ SEE ALSO πŸ¦‹

the whole see-also squad, all present and accounted for πŸ’…:

  • 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_zls_buffer(9)
  • struct drm_asahi_timestamp(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)

mwah πŸ’– this lil page comes from ./include/uapi/drm, dated October 2026, and it's the struct drm_asahi_attachment(9) page β€” byeee bestie πŸŽ€βœ¨πŸŒˆ

πŸ“¦ where this page comes from