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.shaderEngineCountis an unsigned integer value indicating the number of shader engines found inside the shader core of the physical device.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.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.simdPerComputeUnitis an unsigned integer value indicating the number of SIMDs inside a compute unit. Each SIMD processes a single instruction at a time.wavefrontSizeis an unsigned integer value indicating the maximum size of a subgroup.sgprsPerSimdis an unsigned integer value indicating the number of physical Scalar General-Purpose Registers (SGPRs) per SIMD.minSgprAllocationis an unsigned integer value indicating the minimum number of SGPRs allocated for a wave.maxSgprAllocationis an unsigned integer value indicating the maximum number of SGPRs allocated for a wave.sgprAllocationGranularityis an unsigned integer value indicating the granularity of SGPR allocation for a wave.vgprsPerSimdis an unsigned integer value indicating the number of physical Vector General-Purpose Registers (VGPRs) per SIMD.minVgprAllocationis an unsigned integer value indicating the minimum number of VGPRs allocated for a wave.maxVgprAllocationis an unsigned integer value indicating the maximum number of VGPRs allocated for a wave.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