mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-11 13:57:01 +00:00
* Update release number to 92. Public Issues: * Move and modify valid usage statements dealing with pname:aspectMask in flink:vkCmdClearColorImage, flink:vkCmdClearDepthStencilImage, and slink:VkClearAttachment, so they are in places where all necessary information is available (public issue 529). * Fix math markup in <<textures-texel-anisotropic-filtering, Texel Anisotropic Filtering>> (public pull request 840). * Fix misspellings (public pull request 845). Internal Issues: * Add installation instructions and a Makefile "`chunked`" target for chunked HTML generation (internal issue 1352). * Fix pipeline mesh diagram style; also fix a minor bug in the classic pipeline diagram where vertex/index buffers wrongly fed into the vertex shader (internal issue 1436). * Make asciidoctor ERROR output raise an error, and don't suppress executed command output from CI make invocation (internal issue 1454). * Minor typo fixes and clarifications for `VK_NV_raytracing`. * Cleanup extension-specific properties ** Remove duplicated documentation for pname:maxDiscardRectangles, pname:pointClippingBehavior, and pname:maxVertexAttribDivisor (they shouldn't be documented with the other members of slink:VkPhysicalDeviceLimits at all). ** Remove duplicate anchor for pname:maxVertexAttribDivisor ** Consistently document stext:VkPhysicalDevice<Extension>PropertiesKHR *** Always document pname:sType/pname:pNext (was inconsistent before) *** Always mention chaining to slink:VkPhysicalDeviceProperties2 (and not as slink:VkPhysicalDeviceProperties2KHR) *** Always include Valid Usage statements last * Update Makefile 'checklinks' target and associated scripts, and fix markup problems identified by checkLinks.py, so that we can rely on the checklinks script as part of Gitlab CI.
109 lines
3.7 KiB
Plaintext
109 lines
3.7 KiB
Plaintext
include::meta/VK_AMD_shader_core_properties.txt[]
|
|
|
|
*Last Modified Date*::
|
|
2018-02-15
|
|
*IP Status*::
|
|
No known IP claims.
|
|
*Contributors*::
|
|
- Martin Dinkov, AMD
|
|
- Matthaeus Chajdas, AMD
|
|
|
|
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 Object Types
|
|
|
|
None.
|
|
|
|
=== New Enum Constants
|
|
|
|
* Extending elink:VkStructureType:
|
|
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
|
|
|
|
=== New Enums
|
|
|
|
None.
|
|
|
|
=== New Structures
|
|
|
|
* slink:VkPhysicalDeviceShaderCorePropertiesAMD
|
|
|
|
=== New Functions
|
|
|
|
None.
|
|
|
|
=== Examples
|
|
|
|
This example retrieves the shader core properties for a physical device.
|
|
|
|
[source,c++]
|
|
----------------------------------------
|
|
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 1, 2018-02-15 (Martin Dinkov)
|
|
- Initial draft.
|