-
Notifications
You must be signed in to change notification settings - Fork 463
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 June 2, 2019 Vulkan 1.1.110 spec update:
* Update release number to 110. Github Issues: * Fix typo (public pull request 972). * Rename Pastel driver ID to SwiftShader (public pull request 974). New Extensions: * `<<VK_EXT_fragment_shader_interlock>>` * `<<VK_NV_shader_sm_builtins>>`
- Loading branch information
Showing
12 changed files
with
558 additions
and
26 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
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,78 @@ | |||
include::meta/VK_EXT_fragment_shader_interlock.txt[] | |||
|
|||
*Last Modified Data*:: | |||
2019-05-02 | |||
*Interactions and External Dependencies*:: | |||
- This extension requires the | |||
https://www.khronos.org/registry/spir-v/extensions/EXT/SPV_EXT_fragment_shader_interlock.html[+SPV_EXT_fragment_shader_interlock+] | |||
SPIR-V extension. | |||
- This extension requires the | |||
https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_fragment_shader_interlock.txt[+GL_ARB_fragment_shader_interlock+], | |||
extensions for GLSL source languages. | |||
*Contributors*:: | |||
- Daniel Koch, NVIDIA | |||
- Graeme Leese, Broadcom | |||
- Jan-Harald Fredriksen, Arm | |||
- Jason Ekstrand, Intel | |||
- Jeff Bolz, NVIDIA | |||
- Ruihao Zhang, Qualcomm | |||
- Slawomir Grajewski, Intel | |||
- Spencer Fricke, Samsung | |||
|
|||
This extension adds support for the code:FragmentShaderPixelInterlockEXT, | |||
code:FragmentShaderSampleInterlockEXT, and | |||
code:FragmentShaderShadingRateInterlockEXT capabilities from the | |||
+SPV_EXT_fragment_shader_interlock+ extension to Vulkan. | |||
|
|||
Enabling these capabilities provides a critical section for fragment shaders | |||
to avoid overlapping pixels being processed at the same time, and certain | |||
guarantees about the ordering of fragment shader invocations of fragments of | |||
overlapping pixels. | |||
|
|||
This extension can be useful for algorithms that need to access per-pixel | |||
data structures via shader loads and stores. | |||
Algorithms using this extension can access per-pixel data structures in | |||
critical sections without other invocations accessing the same per-pixel | |||
data. | |||
Additionally, the ordering guarantees are useful for cases where the API | |||
ordering of fragments is meaningful. | |||
For example, applications may be able to execute programmable blending | |||
operations in the fragment shader, where the destination buffer is read via | |||
image loads and the final value is written via image stores. | |||
|
|||
=== New Object Types | |||
|
|||
None. | |||
|
|||
=== New Enum Constants | |||
|
|||
* Extending elink:VkStructureType: | |||
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT | |||
|
|||
=== New Enums | |||
|
|||
None. | |||
|
|||
=== New Structures | |||
|
|||
* Extending slink:VkPhysicalDeviceFeatures2: | |||
** slink:VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT | |||
|
|||
=== New Functions | |||
|
|||
None. | |||
|
|||
=== New SPIR-V Capabilities | |||
|
|||
* <<spirvenv-capabilities-table-fragmentShaderInterlock,FragmentShaderInterlockEXT>> | |||
* <<spirvenv-capabilities-table-fragmentShaderInterlock,FragmentShaderPixelInterlockEXT>> | |||
* <<spirvenv-capabilities-table-fragmentShaderInterlock,FragmentShaderShadingRateInterlockEXT>> | |||
|
|||
=== Issues | |||
|
|||
None. | |||
|
|||
=== Version History | |||
|
|||
* Revision 1, 2019-05-24 (Piers Daniell) | |||
- Internal revisions |
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 | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,86 @@ | |||
include::meta/VK_NV_shader_sm_builtins.txt[] | |||
|
|||
*Last Modified Date*:: | |||
2019-05-28 | |||
|
|||
*Interactions and External Dependencies*:: | |||
- This extension requires | |||
http://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/NV/SPV_NV_shader_sm_builtins.html[+SPV_NV_shader_sm_builtins+]. | |||
- This extension enables | |||
https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_shader_sm_builtins.txt[+GL_NV_shader_sm_builtins+] | |||
for GLSL source languages. | |||
|
|||
*Contributors*:: | |||
- Jeff Bolz, NVIDIA | |||
- Eric Werness, NVIDIA | |||
|
|||
=== Description | |||
|
|||
This extension provides the ability to determine device-specific properties | |||
on NVIDIA GPUs. | |||
It provides the number of streaming multiprocessors (SMs), the maximum | |||
number warps (subgroups) that can run on an SM, and shader builtins to | |||
enable invocations to identify which SM and warp a shader invocation is | |||
executing on. | |||
|
|||
This extension enables support for the SPIR-V code:ShaderSMBuiltinsNV | |||
capability. | |||
|
|||
These properties and built-ins should: typically only be used for debugging | |||
purposes. | |||
|
|||
|
|||
=== New Object Types | |||
|
|||
None. | |||
|
|||
=== New Enum Constants | |||
|
|||
* Extending elink:VkStructureType: | |||
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV | |||
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV | |||
|
|||
=== New Enums | |||
|
|||
None. | |||
|
|||
=== New Structures | |||
|
|||
* slink:VkPhysicalDeviceShaderSMBuiltinsFeaturesNV | |||
* slink:VkPhysicalDeviceShaderSMBuiltinsPropertiesNV | |||
|
|||
=== New Functions | |||
|
|||
None. | |||
|
|||
=== New or Modified Built-In Variables | |||
|
|||
* <<interfaces-builtin-variables-warpspersmnv,code:WarpsPerSMNV>> | |||
* <<interfaces-builtin-variables-smcountnv,code:SMCountNV>> | |||
* <<interfaces-builtin-variables-warpidnv,code:WarpIDNV>> | |||
* <<interfaces-builtin-variables-smidnv,code:SMIDNV>> | |||
|
|||
=== New SPIR-V Capabilities | |||
|
|||
* <<spirvenv-capabilities-table-shadersmbuiltins,code:ShaderSMBuiltinsNV>> | |||
|
|||
=== Issues | |||
. What should we call this extension? | |||
+ | |||
-- | |||
RESOLVED: Using NV_shader_sm_builtins. | |||
Other options considered included: | |||
|
|||
* NV_shader_smid - but SMID is really easy to typo/confuse as SIMD. | |||
* NV_shader_sm_info - but *Info* is typically reserved for input | |||
structures | |||
|
|||
-- | |||
|
|||
|
|||
=== Version History | |||
|
|||
* Revision 1, 2019-05-28 (Daniel Koch) | |||
- Internal revisions | |||
|
|||
|
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.