| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_AMD_shader_core_properties
Description
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
Constructors
| PhysicalDeviceShaderCorePropertiesAMD | |
Fields
| |
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 #