ENUM DRM_ASAHI_FEATURE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– enum drm_asahi_feature(9) πŸ’–

okay so bestie, welcome to the enum drm_asahi_feature(9) page from the Kernel API Manual ✨ β€” this is the little shortlist of feature bits, and honestly it's a short one, so grab a strawberry πŸ“ and let's go.


🌸 NAME 🌸

enum drm_asahi_feature β€” the feature bits, periodt πŸ’…


✨ SYNOPSIS ✨

enum drm_asahi_feature {
    DRM_ASAHI_FEATURE_SOFT_FAULTS

};

πŸŽ€ Constants πŸŽ€

  • DRM_ASAHI_FEATURE_SOFT_FAULTS β€” so this one means the GPU has "soft fault" turned on, no cap. What that actually does: any shader load from unmapped memory just comes back as zero 🫢, and any shader store to unmapped memory gets silently yeeted into the void (discarded, not an error, just gone πŸ’€). And listen β€” only shader load/store is affected. Other hardware units are not, and that notably includes texture sampling, iykyk. πŸ™ˆ

So soft fault gets set whenever the GPU is initialized, and it cannot be toggled at runtime β€” literally not a thing you can flip later. That's exactly why it's exposed as a feature bit instead of as a userspace-settable flag on the VM, bestie. And when it's enabled? Userspace gets to speculate on memory accesses way more aggressively πŸ”₯ iconic behavior honestly.


πŸ¦‹ Description πŸ¦‹

This whole thing only covers features that userspace cannot infer from the architecture version. Most features don't need to be here at all β€” main character energy, minimal casting. πŸ‘‘


🌈 SEE ALSO 🌈

okay this list ate, it's the whole friend group, go say hi:

  • 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)
  • 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_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)

that's the whole page babes, you're officially educated πŸ’œ this came from ./include/uapi/drm, dated October 2026, and it's the enum drm_asahi_feature(9) page β€” slay, go read your manpages, ily, bye πŸ§šβ€β™€οΈβ­

πŸ“¦ where this page comes from