Change log for March 5, 2018 Vulkan 1.1.72 spec update:
* Update release number to 72.
Github Issues:
* Restructure the repository to put the specification `Makefile` and
associated spec source material at the top level, `vk.xml` and
associated scripts material in `xml/`, and generated include and source
files in `include/vulkan/` and `src/ext_loader/`, respectively (public
issue 436).
* Add missing bullet point markup to flink:vkCmdCopyImage valid usage
statement, so it gets a VUID assigned (public issue 627).
* Fix broken links in a couple of extension appendices (public pull
request 665).
* Add the \<platform> tag to the index in section 4.1 of the registry
schema documentation, and add the protect= attribute of \<extension>
tags to the comments in `registry.rnc` (public issues 673, 678).
* Add missing valid usage statements for sparse image interactions to
flink:VkImageCreateInfo (public pull request 675).
* Fix improper usage and grammar of "`can: not`" (public pull request
681).
* Remove duplicate spec language and NOTE on present layout between the
flink:vkAcquireNextImageKHR and flink:vkAcquireNextImage2KHR commands
(public pull request 685).
* Fix some typos and markup issues (public pull request 689; public issues
642, 667, 687).
* Fix typo etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT ->
ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT in the
<<external-semaphore-handle-types-compatibility, External semaphore
handle types compatibility>> table (public pull request 691).
Internal Issues:
* Remove the need for the "`noautovalidity`" attribute on extension
structures in `vk.xml`. It is now implied by the "`structextends`"
attribute instead (internal issue 942).
* Replace uses of "`currently bound`" with "`bound`", since "`currently`"
is redundant and distracting, and add a corresponding rule to the style
guide (internal issue 993).
* Fixed subtle issues with the last updates to flink:vkAcquireNextImageKHR
language that had resulted in ambiguities (internal issue 1178).
* Make it clear that only one query of a given type is allowed at a time
by reordering valid usage statements for flink:vkCmdBeginQuery and
flink:vkCmdEndQuery, and removing redundant ones (internal issue 1213).
* Swapped OL1 and OL3 in `tessparamUL.svg` to match previous version, and
fixed where "`(no edge)`" appears (internal issue 1215).
Other Issues:
* Fixed a minor problem with the valid usage statement extraction script,
and corresponding markup in the spec source.
New Extensions:
* `VK_AMD_shader_core_properties`
* `VK_EXT_descriptor_indexing`
* `VK_NV_shader_subgroup_partitioned`
2018-04-05 11:24:56 +00:00
|
|
|
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
|
|
|
|
|
Change log for November 12, 2018 Vulkan 1.1.92 spec update:
* 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.
2018-11-12 12:40:40 +00:00
|
|
|
* Extending elink:VkStructureType:
|
Change log for March 5, 2018 Vulkan 1.1.72 spec update:
* Update release number to 72.
Github Issues:
* Restructure the repository to put the specification `Makefile` and
associated spec source material at the top level, `vk.xml` and
associated scripts material in `xml/`, and generated include and source
files in `include/vulkan/` and `src/ext_loader/`, respectively (public
issue 436).
* Add missing bullet point markup to flink:vkCmdCopyImage valid usage
statement, so it gets a VUID assigned (public issue 627).
* Fix broken links in a couple of extension appendices (public pull
request 665).
* Add the \<platform> tag to the index in section 4.1 of the registry
schema documentation, and add the protect= attribute of \<extension>
tags to the comments in `registry.rnc` (public issues 673, 678).
* Add missing valid usage statements for sparse image interactions to
flink:VkImageCreateInfo (public pull request 675).
* Fix improper usage and grammar of "`can: not`" (public pull request
681).
* Remove duplicate spec language and NOTE on present layout between the
flink:vkAcquireNextImageKHR and flink:vkAcquireNextImage2KHR commands
(public pull request 685).
* Fix some typos and markup issues (public pull request 689; public issues
642, 667, 687).
* Fix typo etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT ->
ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT in the
<<external-semaphore-handle-types-compatibility, External semaphore
handle types compatibility>> table (public pull request 691).
Internal Issues:
* Remove the need for the "`noautovalidity`" attribute on extension
structures in `vk.xml`. It is now implied by the "`structextends`"
attribute instead (internal issue 942).
* Replace uses of "`currently bound`" with "`bound`", since "`currently`"
is redundant and distracting, and add a corresponding rule to the style
guide (internal issue 993).
* Fixed subtle issues with the last updates to flink:vkAcquireNextImageKHR
language that had resulted in ambiguities (internal issue 1178).
* Make it clear that only one query of a given type is allowed at a time
by reordering valid usage statements for flink:vkCmdBeginQuery and
flink:vkCmdEndQuery, and removing redundant ones (internal issue 1213).
* Swapped OL1 and OL3 in `tessparamUL.svg` to match previous version, and
fixed where "`(no edge)`" appears (internal issue 1215).
Other Issues:
* Fixed a minor problem with the valid usage statement extraction script,
and corresponding markup in the spec source.
New Extensions:
* `VK_AMD_shader_core_properties`
* `VK_EXT_descriptor_indexing`
* `VK_NV_shader_subgroup_partitioned`
2018-04-05 11:24:56 +00:00
|
|
|
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
|
|
|
|
|
|
|
|
=== New Enums
|
|
|
|
|
|
|
|
None.
|
|
|
|
|
|
|
|
=== New Structures
|
|
|
|
|
2018-08-13 13:23:03 +00:00
|
|
|
* slink:VkPhysicalDeviceShaderCorePropertiesAMD
|
Change log for March 5, 2018 Vulkan 1.1.72 spec update:
* Update release number to 72.
Github Issues:
* Restructure the repository to put the specification `Makefile` and
associated spec source material at the top level, `vk.xml` and
associated scripts material in `xml/`, and generated include and source
files in `include/vulkan/` and `src/ext_loader/`, respectively (public
issue 436).
* Add missing bullet point markup to flink:vkCmdCopyImage valid usage
statement, so it gets a VUID assigned (public issue 627).
* Fix broken links in a couple of extension appendices (public pull
request 665).
* Add the \<platform> tag to the index in section 4.1 of the registry
schema documentation, and add the protect= attribute of \<extension>
tags to the comments in `registry.rnc` (public issues 673, 678).
* Add missing valid usage statements for sparse image interactions to
flink:VkImageCreateInfo (public pull request 675).
* Fix improper usage and grammar of "`can: not`" (public pull request
681).
* Remove duplicate spec language and NOTE on present layout between the
flink:vkAcquireNextImageKHR and flink:vkAcquireNextImage2KHR commands
(public pull request 685).
* Fix some typos and markup issues (public pull request 689; public issues
642, 667, 687).
* Fix typo etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT ->
ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT in the
<<external-semaphore-handle-types-compatibility, External semaphore
handle types compatibility>> table (public pull request 691).
Internal Issues:
* Remove the need for the "`noautovalidity`" attribute on extension
structures in `vk.xml`. It is now implied by the "`structextends`"
attribute instead (internal issue 942).
* Replace uses of "`currently bound`" with "`bound`", since "`currently`"
is redundant and distracting, and add a corresponding rule to the style
guide (internal issue 993).
* Fixed subtle issues with the last updates to flink:vkAcquireNextImageKHR
language that had resulted in ambiguities (internal issue 1178).
* Make it clear that only one query of a given type is allowed at a time
by reordering valid usage statements for flink:vkCmdBeginQuery and
flink:vkCmdEndQuery, and removing redundant ones (internal issue 1213).
* Swapped OL1 and OL3 in `tessparamUL.svg` to match previous version, and
fixed where "`(no edge)`" appears (internal issue 1215).
Other Issues:
* Fixed a minor problem with the valid usage statement extraction script,
and corresponding markup in the spec source.
New Extensions:
* `VK_AMD_shader_core_properties`
* `VK_EXT_descriptor_indexing`
* `VK_NV_shader_subgroup_partitioned`
2018-04-05 11:24:56 +00:00
|
|
|
|
|
|
|
=== 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.
|