STRUCT DRM_ASAHI_PARAMS_GLOBAL(9)
π struct drm_a...arams_global(9) β Global parameters π
okay so bestie π
you're in the Kernel API Manual, and this page is all about struct drm_asahi_params_global. The header up top is serving truncated struct drm_a...arams_global(9) realness β mysterious, cunty, a little chaotic β but we move. This struct is basically the global parameter info dump, and it's lowkey important. β¨
πΈ NAME πΈ
struct drm_asahi_params_global β Global parameters. no cap, that's the vibe. π
π SYNOPSIS π
struct drm_asahi_params_global {
__u64 features;
__u32 gpu_generation;
__u32 gpu_variant;
__u32 gpu_revision;
__u32 chip_id;
__u32 num_dies;
__u32 num_clusters_total;
__u32 num_cores_per_cluster;
__u32 max_frequency_khz;
__u64 core_masks[DRM_ASAHI_MAX_CLUSTERS];
__u64 vm_start;
__u64 vm_end;
__u64 vm_kernel_min_size;
__u32 max_commands_per_submission;
__u32 max_attachments;
__u64 command_timestamp_frequency_hz;
};
π«Ά Members π«Ά
featuresβ Feature bits fromdrm_asahi_featureβ¨gpu_generationβ GPU generation, e.g.13forG13Gπgpu_variantβ GPU variant as a character, e.g.'C'forG13Cπgpu_revisionβ GPU revision in BCD, e.g.0x00for'A0'or0x21for'C1'π¦chip_idβ Chip ID in BCD, e.g.0x8103forT8103πΈnum_diesβ Number of dies in the SoC π§num_clusters_totalβ Number of GPU clusters (across all dies) πnum_cores_per_clusterβ Number of logical cores per cluster (including inactive/nonexistent) πmax_frequency_khzβ Maximum GPU core clock frequency π₯core_masksβ Bitmask of present/enabled cores per cluster βvm_startβ VM range start VMA. Together withvm_end, this defines the window of valid GPU VAs. Userspace is expected to subdivide VAs out of this window. π
This window contains all virtual addresses that userspace needs to know about. There may be kernel-internal GPU VAs outside this range, but that detail is not relevant here. π
vm_endβ VM range end VMA πvm_kernel_min_sizeβ Minimum kernel VMA window size. π«Ά
When creating a VM, userspace is required to carve out a section of virtual addresses (within the range given by vm_start and vm_end). The kernel will allocate various internal structures within the specified VA range. β¨
Allowing userspace to choose the VA range for the kernel, rather than the kernel reserving VAs and requiring userspace to cope, can assist in implementing SVM. π
max_commands_per_submissionβ Maximum number of supported commands per submission. This mirrors firmware limits. Userspace must split up larger command buffers, which may require inserting additional synchronization. β‘max_attachmentsβ Maximum number ofdrm_asahi_attachment's per command πcommand_timestamp_frequency_hzβ Timebase frequency for timestamps written during command execution, specified viadrm_asahi_timestampstructures. As this rate is controlled by the firmware, it is a queryable parameter. π°οΈ
Userspace must divide by this frequency to convert timestamps to seconds, rather than hardcoding a particular firmware's rate. no shortcuts, bestie π
π Description π
This struct may be queried by drm_asahi_get_params. That's the whole description β short, sweet, and slay. π¦
π SEE ALSO π
okay bestie, here's the whole friend group, no one left out:
- Kernel file
./include/uapi/drm/asahi_drm.h - Introduction to the Asahi UAPI(9)
enum drm_asahi_ioctl_id(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_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)
okay that's the page π this was struct drm_a...arams_global(9) from the Kernel API Manual, source ./include/uapi/drm, dated October 2026. bye bestie, go query some params responsibly π«Άβ¨
π¦ 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