• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2019-2021 The Khronos Group Inc.
2//
3// SPDX-License-Identifier: CC-BY-4.0
4
5include::{generated}/meta/{refprefix}VK_EXT_fragment_shader_interlock.txt[]
6
7=== Other Extension Metadata
8
9*Last Modified Date*::
10    2019-05-02
11*Interactions and External Dependencies*::
12  - This extension requires
13    {spirv}/EXT/SPV_EXT_fragment_shader_interlock.html[`SPV_EXT_fragment_shader_interlock`]
14  - This extension provides API support for
15    https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_fragment_shader_interlock.txt[`GL_ARB_fragment_shader_interlock`]
16*Contributors*::
17  - Daniel Koch, NVIDIA
18  - Graeme Leese, Broadcom
19  - Jan-Harald Fredriksen, Arm
20  - Jason Ekstrand, Intel
21  - Jeff Bolz, NVIDIA
22  - Ruihao Zhang, Qualcomm
23  - Slawomir Grajewski, Intel
24  - Spencer Fricke, Samsung
25
26=== Description
27
28This extension adds support for the code:FragmentShaderPixelInterlockEXT,
29code:FragmentShaderSampleInterlockEXT, and
30code:FragmentShaderShadingRateInterlockEXT capabilities from the
31`SPV_EXT_fragment_shader_interlock` extension to Vulkan.
32
33Enabling these capabilities provides a critical section for fragment shaders
34to avoid overlapping pixels being processed at the same time, and certain
35guarantees about the ordering of fragment shader invocations of fragments of
36overlapping pixels.
37
38This extension can be useful for algorithms that need to access per-pixel
39data structures via shader loads and stores.
40Algorithms using this extension can access per-pixel data structures in
41critical sections without other invocations accessing the same per-pixel
42data.
43Additionally, the ordering guarantees are useful for cases where the API
44ordering of fragments is meaningful.
45For example, applications may be able to execute programmable blending
46operations in the fragment shader, where the destination buffer is read via
47image loads and the final value is written via image stores.
48
49include::{generated}/interfaces/VK_EXT_fragment_shader_interlock.txt[]
50
51=== New SPIR-V Capabilities
52
53  * <<spirvenv-capabilities-table-FragmentShaderSampleInterlockEXT,FragmentShaderInterlockEXT>>
54  * <<spirvenv-capabilities-table-FragmentShaderPixelInterlockEXT,FragmentShaderPixelInterlockEXT>>
55  * <<spirvenv-capabilities-table-FragmentShaderShadingRateInterlockEXT,FragmentShaderShadingRateInterlockEXT>>
56
57=== Version History
58
59  * Revision 1, 2019-05-24 (Piers Daniell)
60    - Internal revisions
61