STRUCT DRM_XE_QUERY_TOPOLOGY_MASK(9)
π struct drm_xe_query_topology_mask(9) β¨
okay so bestie, we're in the Kernel API Manual today and this one is literally the blueprint of your GPU's inner glow-up. it's struct drm_xe_query_topology_mask(9) and it's giving "let me show you my real physical form" energy. no cap.
πΈ NAME πΈ
struct drm_xe_query_topology_mask β describes the topology mask of a GT. that's it, that's the vibe. π«Ά
β¨ SYNOPSIS β¨
struct drm_xe_query_topology_mask {
__u16 gt_id;
#define DRM_XE_TOPO_DSS_GEOMETRY 1;
#define DRM_XE_TOPO_DSS_COMPUTE 2;
#define DRM_XE_TOPO_L3_BANK 3;
#define DRM_XE_TOPO_EU_PER_DSS 4;
#define DRM_XE_TOPO_SIMD16_EU_PER_DSS 5;
__u16 type;
__u32 num_bytes;
__u8 mask[];
};
look at her. she's gorgeous. π
π Members π
gt_idβ the GT ID this mask is associated with. like, which GT is this even about, y'know? iykyk.typeβ the type of mask. this is the main character selector, it decides what you're actually asking for.num_bytesβ how many bytes are in the requested mask. literally the byte count, nothing more, nothing less.maskβ the actual mask ofnum_bytes, little-endian. little-endian!! don't forget!! π
π¦ Description π¦
so this is the hardware topology β the internal physical structure of the GPU. like, the actual bones of the thing. not a vibe, not an abstraction, the real physical layout. obsessed. π₯
if a query is made with a struct drm_xe_device_query where .query is equal to DRM_XE_DEVICE_QUERY_GT_TOPOLOGY, then the reply uses struct drm_xe_query_topology_mask in .data. that's the contract, bestie, respect it. π€
the type can be:
DRM_XE_TOPO_DSS_GEOMETRYβ to query the mask of Dual Sub Slices (DSS) available for geometry operations. example time: a query response containing the following inmask:DSS_GEOMETRY ff ff ff ff 00 00 00 00means 32 DSS are available for geometry. see how that works? πDRM_XE_TOPO_DSS_COMPUTEβ to query the mask of Dual Sub Slices (DSS) available for compute operations. example: a query response containing the following inmask:DSS_COMPUTE ff ff ff ff 00 00 00 00means 32 DSS are available for compute. slay.DRM_XE_TOPO_L3_BANKβ to query the mask of enabled L3 banks. β οΈ this type may be omitted if the driver is unable to query the mask from the hardware. so like, don't come for the driver if it ghosts you on this one. πDRM_XE_TOPO_EU_PER_DSSβ to query the mask of Execution Units (EU) available per Dual Sub Slices (DSS). example: a query response containing the following inmask:EU_PER_DSS ff ff 00 00 00 00 00 00means each DSS has 16 SIMD8 EUs. β οΈ this type may be omitted if device doesn't have SIMD8 EUs. no SIMD8, no problem, no mask. πDRM_XE_TOPO_SIMD16_EU_PER_DSSβ to query the mask of SIMD16 Execution Units (EU) available per Dual Sub Slices (DSS). example: a query response containing the following inmask:SIMD16_EU_PER_DSS ff ff 00 00 00 00 00 00means each DSS has 16 SIMD16 EUs. β οΈ this type may be omitted if device doesn't have SIMD16 EUs. same deal, girl. π
fr fr though β those "may be omitted" lines are real. if the hardware can't tell you, or doesn't have the thing, the type just won't show up. that's not a bug, that's just the driver being honest with you. π«Ά
π SEE ALSO π
okay this list is LONG, buckle up bestie, we're going shopping. ποΈ
- Kernel file
./include/uapi/drm/xe_drm.h Xe Device Block Diagram(9)Xe uAPI Overview(9)Xe IOCTL Extensions(9)struct drm_xe_user_extension(9)struct drm_xe_ext_set_property(9)struct drm_xe_engine_class_instance(9)struct drm_xe_engine(9)struct drm_xe_query_engines(9)enum drm_xe_memory_class(9)struct drm_xe_mem_region(9)struct drm_xe_query_mem_regions(9)struct drm_xe_query_config(9)struct drm_xe_gt(9)struct drm_xe_query_gt_list(9)struct drm_xe_query_engine_cycles(9)struct drm_xe_query_uc_fw_version(9)struct drm_xe_query_pxp_status(9)struct drm_xe_device_query(9)struct drm_xe_gem_create(9)struct drm_xe_gem_mmap_offset(9)struct drm_xe_vm_create(9)struct drm_xe_vm_destroy(9)struct drm_xe_vm_bind_op(9)struct drm_xe_vm_bind(9)struct drm_xe_vm_get_property(9)struct drm_xe_exec_queue_create(9)struct drm_xe_exec_queue_destroy(9)struct drm_xe_exec_queue_get_property(9)struct drm_xe_sync(9)struct drm_xe_exec(9)struct drm_xe_wait_user_fence(9)enum drm_xe_observation_type(9)enum drm_xe_observation_op(9)struct drm_xe_observation_param(9)enum drm_xe_observation_ioctls(9)enum drm_xe_oa_unit_type(9)struct drm_xe_oa_unit(9)struct drm_xe_query_oa_units(9)enum drm_xe_oa_format_type(9)enum drm_xe_oa_property_id(9)struct drm_xe_oa_config(9)struct drm_xe_oa_stream_status(9)struct drm_xe_oa_stream_info(9)enum drm_xe_pxp_session_type(9)enum drm_xe_eu_stall_property_id(9)struct drm_xe_query_eu_stall(9)struct drm_xe_madvise(9)struct drm_xe_mem_range_attr(9)struct drm_xe_vm_query_mem_range_attr(9)struct drm_xe_exec_queue_set_property(9)Xe DRM RAS(9)enum drm_xe_ras_error_severity(9)enum drm_xe_ras_error_component(9)
literally all of them. every single one. i would never do you dirty like that. π
aaaand that's the page!! π this lil beauty came out of ./include/uapi/drm, dated October 2026 β so mark your calendar, bestie, that's when this icon was born. go forth and query those topology masks, you absolute legend. ππ¦β¨
π¦ 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