Vulkan-Docs/appendices/VK_EXT_fragment_shader_interlock.txt
Jon Leech 22a5a1459f Change log for October 6, 2019 Vulkan 1.1.124 spec update:
* Update release number to 124.

Github Issues:

  * Fix Makefile SPECREMARK macro to work when not building in a git tree
    (public issue 992).
  * Ignore pname:aspectMask for unused attachments in
    slink:VkSubpassDescription2KHR valid usage statements (public pull
    request 1028).
  * Minor markup / spelling fixes (public pull requests 1035, 1045).

Internal Issues:

  * Fix markup in Valid Usage statement for slink:VkCreateFramebuffer
    (internal issue 1823).
  * Add a new <<synchronization-signal-operation-order, _signal operation
    order_>> section to the synchronization chapter which describes in
    detail the ordering guarantees provided by the API between fence and
    semaphore signal operations (internal merge request 3368).
  * Move generated `appendix/meta/` files into the Makefile GENERATED
    directory (internal merge request 3381).

New Extensions

  * `<<VK_KHR_shader_clock>>`
  * `<<VK_KHR_timeline_semaphore>>`
2019-10-06 12:42:12 -07:00

79 lines
2.5 KiB
Plaintext

include::{generated}/meta/VK_EXT_fragment_shader_interlock.txt[]
*Last Modified Data*::
2019-05-02
*Interactions and External Dependencies*::
- This extension requires the
{spirv}/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