Structures
VkPhysicalDeviceShaderCorePropertiesAMD
Structure describing shader core properties that can be supported by an implementation
The VkPhysicalDeviceShaderCorePropertiesAMD structure is defined as:
typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
VkStructureType sType;
void* pNext;
uint32_t shaderEngineCount;
uint32_t shaderArraysPerEngineCount;
uint32_t computeUnitsPerShaderArray;
uint32_t simdPerComputeUnit;
uint32_t wavefrontsPerSimd;
uint32_t wavefrontSize;
uint32_t sgprsPerSimd;
uint32_t minSgprAllocation;
uint32_t maxSgprAllocation;
uint32_t sgprAllocationGranularity;
uint32_t vgprsPerSimd;
uint32_t minVgprAllocation;
uint32_t maxVgprAllocation;
uint32_t vgprAllocationGranularity;
} VkPhysicalDeviceShaderCorePropertiesAMD;
pub struct PhysicalDeviceShaderCorePropertiesAMD {
s_type: vk::StructureType,
p_next: *mut c_void,
shader_engine_count: u32, // number of shader engines
shader_arrays_per_engine_count: u32, // number of shader arrays
compute_units_per_shader_array: u32, // number of physical CUs per shader array
simd_per_compute_unit: u32, // number of SIMDs per compute unit
wavefronts_per_simd: u32, // number of wavefront slots in each SIMD
wavefront_size: u32, // maximum number of threads per wavefront
sgprs_per_simd: u32, // number of physical SGPRs per SIMD
min_sgpr_allocation: u32, // minimum number of SGPRs that can be allocated by a wave
max_sgpr_allocation: u32, // number of available SGPRs
sgpr_allocation_granularity: u32, // SGPRs are allocated in groups of this size
vgprs_per_simd: u32, // number of physical VGPRs per SIMD
min_vgpr_allocation: u32, // minimum number of VGPRs that can be allocated by a wave
max_vgpr_allocation: u32, // number of available VGPRs
vgpr_allocation_granularity: u32, // VGPRs are allocated in groups of this size
}
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.- LIMITS SHADERENGINECOUNT
shaderEngineCountis an unsigned integer value indicating the number of shader engines found inside the shader core of the physical device. - LIMITS SHADERARRAYSPERENGINECOUNT
shaderArraysPerEngineCountis an unsigned integer value indicating the number of shader arrays inside a shader engine. Each shader array has its own scan converter, set of compute units, and a render back end (color and depth attachments). Shader arrays within a shader engine share shader processor input (wave launcher) and shader export (export buffer) units. Currently, a shader engine can have one or two shader arrays. - LIMITS COMPUTEUNITSPERSHADERARRAY
computeUnitsPerShaderArrayis an unsigned integer value indicating the physical number of compute units within a shader array. The active number of compute units in a shader array may be lower. A compute unit houses a set of SIMDs along with a sequencer module and a local data store. - LIMITS SIMDPERCOMPUTEUNIT
simdPerComputeUnitis an unsigned integer value indicating the number of SIMDs inside a compute unit. Each SIMD processes a single instruction at a time. - LIMITS WAVEFRONTSIZE
wavefrontSizeis an unsigned integer value indicating the maximum size of a subgroup. - LIMITS SGPRSPERSIMD
sgprsPerSimdis an unsigned integer value indicating the number of physical Scalar General-Purpose Registers (SGPRs) per SIMD. - LIMITS MINSGPRALLOCATION
minSgprAllocationis an unsigned integer value indicating the minimum number of SGPRs allocated for a wave. - LIMITS MAXSGPRALLOCATION
maxSgprAllocationis an unsigned integer value indicating the maximum number of SGPRs allocated for a wave. - LIMITS SGPRALLOCATIONGRANULARITY
sgprAllocationGranularityis an unsigned integer value indicating the granularity of SGPR allocation for a wave. - LIMITS VGPRSPERSIMD
vgprsPerSimdis an unsigned integer value indicating the number of physical Vector General-Purpose Registers (VGPRs) per SIMD. - LIMITS MINVGPRALLOCATION
minVgprAllocationis an unsigned integer value indicating the minimum number of VGPRs allocated for a wave. - LIMITS MAXVGPRALLOCATION
maxVgprAllocationis an unsigned integer value indicating the maximum number of VGPRs allocated for a wave. - LIMITS VGPRALLOCATIONGRANULARITY
vgprAllocationGranularityis an unsigned integer value indicating the granularity of VGPR allocation for a wave.
If the VkPhysicalDeviceShaderCorePropertiesAMD structure is included in the pNext chain of the
VkPhysicalDeviceProperties2 structure passed to
vkGetPhysicalDeviceProperties2, it is filled in with each
corresponding implementation-dependent property.
Valid Usage (Implicit)
VUID-VkPhysicalDeviceShaderCorePropertiesAMD-sType-sType
sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD