Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Change log for October 13, 2019 Vulkan 1.1.125 spec update:
* Update release number to 125. Github Issues: * Allow slink:VkRenderPassFragmentDensityMapCreateInfoEXT to extend slink:VkRenderPassCreateInfo2KHR in `vk.xml` (public issue 1027). * Fix markup in `<<VK_EXT_external_memory_dma_buf>>` appendix (public pull request 1051). * Update .gitignore (public pull request 1052). Internal Issues: * Disallowed slink:VkEvent from participating in queue family ownership transfers in the <<devsandqueues-index, Queue Family Index>> section (internal issue 1691). * Relax language describing default NT handle access rights for slink:VkExportMemoryWin32HandleInfoKHR and slink:VkExportSemaphoreWin32HandleInfoKHR (internal issue 1838). * Fix markup for slink:VkDeviceCreateInfo valid usage statement 00372 to remove imbedded asciidoctor conditionals by splitting it into two VUs (internal issue 1846). * Clarify lifetime of samplers used as immutable samplers in slink:VkDescriptorSetLayoutBinding (internal issue 1849). * Add a valid usage statement prohibiting flink:vkCmdBeginQuery on timestamp queries (internal issue 1851). * Correct some <<Precision of GLSL.std.450 Instructions, SPIR-V instruction precisions>> (internal merge request 3391). * Fix a typo in flink:vkQueueBindSparse valid usage statement 03245 (internal merge request 3394). New Extensions * `<<VK_KHR_spirv_1_4>>`
- Loading branch information
Showing
14 changed files
with
249 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
// Copyright (c) 2018-2019 Khronos Group. This work is licensed under a | ||
// Creative Commons Attribution 4.0 International License; see | ||
// http://creativecommons.org/licenses/by/4.0/ | ||
|
||
include::{generated}/meta/VK_KHR_spirv_1_4.txt[] | ||
|
||
*Last Modified Date*:: | ||
2019-04-01 | ||
*IP Status*:: | ||
No known IP claims. | ||
*Interactions and External Dependencies*:: | ||
- Requires SPIR-V 1.4. | ||
*Contributors*:: | ||
- Alexander Galazin, Arm | ||
- David Neto, Google | ||
- Jesse Hall, Google | ||
- John Kessenich, Google | ||
- Neil Henning, AMD | ||
- Tom Olson, Arm | ||
|
||
This extension allows the use of SPIR-V 1.4 shader modules. | ||
SPIR-V 1.4's new features primarily make it an easier target for compilers | ||
from high-level languages, rather than exposing new hardware functionality. | ||
|
||
SPIR-V 1.4 incorporates features that are also available separately as | ||
extensions. | ||
SPIR-V 1.4 shader modules do not need to enable those extensions with the | ||
`OpExtension` opcode, since they are integral parts of SPIR-V 1.4. | ||
|
||
SPIR-V 1.4 introduces new floating point execution mode capabilities, also | ||
available via `SPV_KHR_float_controls`. | ||
Implementations are not required to support all of these new capabilities; | ||
support can be queried using | ||
slink:VkPhysicalDeviceFloatControlsPropertiesKHR from the | ||
<<VK_KHR_shader_float_controls>> extension. | ||
|
||
=== New Object Types | ||
|
||
None. | ||
|
||
=== New Enum Constants | ||
|
||
None. | ||
|
||
=== New Enums | ||
|
||
None. | ||
|
||
=== New Structures | ||
|
||
None. | ||
|
||
=== New Functions | ||
|
||
None. | ||
|
||
=== Issues | ||
|
||
1. | ||
Should we have an extension specific to this SPIR-V version, or add a | ||
version-generic query for SPIR-V version? SPIR-V 1.4 doesn't need any other | ||
API changes. | ||
|
||
RESOLVED: Just expose SPIR-V 1.4. | ||
|
||
Most new SPIR-V versions introduce optionally-required capabilities or have | ||
implementation-defined limits, and would need more API and specification | ||
changes specific to that version to make them available in Vulkan. | ||
For example, to support the subgroup features added in SPIR-V 1.3 required | ||
introducing slink:VkPhysicalDeviceSubgroupProperties to allow querying the | ||
supported subgroup operation categories, maximum supported subgroup size, | ||
etc. | ||
While we could expose the parts of a new SPIR-V version that don't need | ||
accompanying changes generically, we'll still end up writing extensions | ||
specific to each version for the remaining parts. | ||
Thus the generic mechanism won't reduce future spec-writing effort. | ||
In addition, making it clear which parts of a future version are supported | ||
by the generic mechanism and which can't be used without specific support | ||
would be difficult to get right ahead of time. | ||
|
||
2. | ||
Can different stages of the same pipeline use shaders with different SPIR-V | ||
versions? | ||
|
||
RESOLVED: Yes. | ||
|
||
Mixing SPIR-V versions 1.0-1.3 in the same pipeline has not been disallowed, | ||
so it would be inconsistent to disallow mixing 1.4 with previous versions.. | ||
SPIR-V 1.4 does not introduce anything that should cause new difficulties | ||
here. | ||
|
||
3. | ||
Must Vulkan extensions corresponding to SPIR-V extensions that were promoted | ||
to core in 1.4 be enabled in order to use that functionality in a SPIR-V 1.4 | ||
module? | ||
|
||
RESOLVED: No, with caveats. | ||
|
||
The SPIR-V 1.4 module does not need to declare the SPIR-V extensions, since | ||
the functionality is now part of core, so there is no need to enable the | ||
Vulkan extension that allows SPIR-V modules to declare the SPIR-V extension. | ||
However, when the functionality that is now core in SPIR-V 1.4 is optionally | ||
supported, the query for support is provided by a Vulkan extension, and that | ||
query can only be used if the extension is enabled. | ||
|
||
This applies to any SPIR-V version; specifically for SPIR-V 1.4 this only | ||
applies to the functionality from `SPV_KHR_float_controls`, which was made | ||
available in Vulkan by <<VK_KHR_shader_float_controls>>. | ||
Even though the extension was promoted in SPIR-V 1.4, the capabilities are | ||
still optional in implementations that support `VK_KHR_spirv_1_4`. | ||
|
||
A SPIR-V 1.4 module doesn't need to enable `SPV_KHR_float_controls` in order | ||
to use the capabilities, so if the application has _a priori_ knowledge that | ||
the implementation supports the capabilities, it doesn't need to enable | ||
<<VK_KHR_shader_float_controls>>. | ||
However, if it doesn't have this knowledge and has to query for support at | ||
runtime, it must enable <<VK_KHR_shader_float_controls>> in order to use | ||
slink:VkPhysicalDeviceFloatControlsPropertiesKHR. | ||
|
||
=== Version History | ||
|
||
* Revision 1, 2019-04-01 (Jesse Hall) | ||
- Internal draft versions |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.