mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-26 13:05:13 +00:00
* 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>>`
79 lines
2.5 KiB
Plaintext
79 lines
2.5 KiB
Plaintext
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
|