ENUM DRM_ASAHI_FEATURE(9)
π 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
- 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