Safe Haskell | None |
---|---|
Language | Haskell2010 |
Name
VK_AMD_shader_core_properties - device extension
VK_AMD_shader_core_properties
- Name String
VK_AMD_shader_core_properties
- Extension Type
- Device extension
- Registered Extension Number
- 186
- Revision
- 2
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2
- Contact
Other Extension Metadata
- Last Modified Date
- 2019-06-25
- IP Status
- No known IP claims.
- Contributors
- Martin Dinkov, AMD
- Matthaeus G. Chajdas, AMD
Description
This extension exposes shader core properties for a target physical
device through the VK_KHR_get_physical_device_properties2
extension.
Please refer to the example below for proper usage.
New Structures
New Enum Constants
Examples
This example retrieves the shader core properties for a physical device.
extern VkInstance instance; PFN_vkGetPhysicalDeviceProperties2 pfnVkGetPhysicalDeviceProperties2 = reinterpret_cast<PFN_vkGetPhysicalDeviceProperties2> (vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties2") ); VkPhysicalDeviceProperties2 general_props; VkPhysicalDeviceShaderCorePropertiesAMD shader_core_properties; shader_core_properties.pNext = nullptr; shader_core_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD; general_props.pNext = &shader_core_properties; general_props.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2; // After this call, shader_core_properties has been populated pfnVkGetPhysicalDeviceProperties2(device, &general_props); printf("Number of shader engines: %d\n", m_shader_core_properties.shader_engine_count = shader_core_properties.shaderEngineCount; printf("Number of shader arrays: %d\n", m_shader_core_properties.shader_arrays_per_engine_count = shader_core_properties.shaderArraysPerEngineCount; printf("Number of CUs per shader array: %d\n", m_shader_core_properties.compute_units_per_shader_array = shader_core_properties.computeUnitsPerShaderArray; printf("Number of SIMDs per compute unit: %d\n", m_shader_core_properties.simd_per_compute_unit = shader_core_properties.simdPerComputeUnit; printf("Number of wavefront slots in each SIMD: %d\n", m_shader_core_properties.wavefronts_per_simd = shader_core_properties.wavefrontsPerSimd; printf("Number of threads per wavefront: %d\n", m_shader_core_properties.wavefront_size = shader_core_properties.wavefrontSize; printf("Number of physical SGPRs per SIMD: %d\n", m_shader_core_properties.sgprs_per_simd = shader_core_properties.sgprsPerSimd; printf("Minimum number of SGPRs that can be allocated by a wave: %d\n", m_shader_core_properties.min_sgpr_allocation = shader_core_properties.minSgprAllocation; printf("Number of available SGPRs: %d\n", m_shader_core_properties.max_sgpr_allocation = shader_core_properties.maxSgprAllocation; printf("SGPRs are allocated in groups of this size: %d\n", m_shader_core_properties.sgpr_allocation_granularity = shader_core_properties.sgprAllocationGranularity; printf("Number of physical VGPRs per SIMD: %d\n", m_shader_core_properties.vgprs_per_simd = shader_core_properties.vgprsPerSimd; printf("Minimum number of VGPRs that can be allocated by a wave: %d\n", m_shader_core_properties.min_vgpr_allocation = shader_core_properties.minVgprAllocation; printf("Number of available VGPRs: %d\n", m_shader_core_properties.max_vgpr_allocation = shader_core_properties.maxVgprAllocation; printf("VGPRs are allocated in groups of this size: %d\n", m_shader_core_properties.vgpr_allocation_granularity = shader_core_properties.vgprAllocationGranularity;
Version History
Revision 2, 2019-06-25 (Matthaeus G. Chajdas)
- Clarified the meaning of a few fields.
Revision 1, 2018-02-15 (Martin Dinkov)
- Initial draft.
See Also
PhysicalDeviceShaderCorePropertiesAMD
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- data PhysicalDeviceShaderCorePropertiesAMD = PhysicalDeviceShaderCorePropertiesAMD {
- shaderEngineCount :: Word32
- shaderArraysPerEngineCount :: Word32
- computeUnitsPerShaderArray :: Word32
- simdPerComputeUnit :: Word32
- wavefrontsPerSimd :: Word32
- wavefrontSize :: Word32
- sgprsPerSimd :: Word32
- minSgprAllocation :: Word32
- maxSgprAllocation :: Word32
- sgprAllocationGranularity :: Word32
- vgprsPerSimd :: Word32
- minVgprAllocation :: Word32
- maxVgprAllocation :: Word32
- vgprAllocationGranularity :: Word32
- type AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION = 2
- pattern AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION :: forall a. Integral a => a
- type AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME = "VK_AMD_shader_core_properties"
- pattern AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
data PhysicalDeviceShaderCorePropertiesAMD Source #
VkPhysicalDeviceShaderCorePropertiesAMD - Structure describing shader core properties that can be supported by an implementation
Members
The members of the PhysicalDeviceShaderCorePropertiesAMD
structure
describe the following implementation-dependent limits:
Description
If the PhysicalDeviceShaderCorePropertiesAMD
structure is included in
the pNext
chain of
PhysicalDeviceProperties2
,
it is filled with the implementation-dependent limits.
Valid Usage (Implicit)
See Also
PhysicalDeviceShaderCorePropertiesAMD | |
|
Instances
pattern AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION :: forall a. Integral a => a Source #
type AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME = "VK_AMD_shader_core_properties" Source #
pattern AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #