/ appendices / VK_EXT_fragment_shader_interlock.txt
VK_EXT_fragment_shader_interlock.txt
1 include::meta/VK_EXT_fragment_shader_interlock.txt[] 2 3 *Last Modified Data*:: 4 2019-05-02 5 *Interactions and External Dependencies*:: 6 - This extension requires the 7 https://www.khronos.org/registry/spir-v/extensions/EXT/SPV_EXT_fragment_shader_interlock.html[+SPV_EXT_fragment_shader_interlock+] 8 SPIR-V extension. 9 - This extension requires the 10 https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_fragment_shader_interlock.txt[+GL_ARB_fragment_shader_interlock+], 11 extensions for GLSL source languages. 12 *Contributors*:: 13 - Daniel Koch, NVIDIA 14 - Graeme Leese, Broadcom 15 - Jan-Harald Fredriksen, Arm 16 - Jason Ekstrand, Intel 17 - Jeff Bolz, NVIDIA 18 - Ruihao Zhang, Qualcomm 19 - Slawomir Grajewski, Intel 20 - Spencer Fricke, Samsung 21 22 This extension adds support for the code:FragmentShaderPixelInterlockEXT, 23 code:FragmentShaderSampleInterlockEXT, and 24 code:FragmentShaderShadingRateInterlockEXT capabilities from the 25 +SPV_EXT_fragment_shader_interlock+ extension to Vulkan. 26 27 Enabling these capabilities provides a critical section for fragment shaders 28 to avoid overlapping pixels being processed at the same time, and certain 29 guarantees about the ordering of fragment shader invocations of fragments of 30 overlapping pixels. 31 32 This extension can be useful for algorithms that need to access per-pixel 33 data structures via shader loads and stores. 34 Algorithms using this extension can access per-pixel data structures in 35 critical sections without other invocations accessing the same per-pixel 36 data. 37 Additionally, the ordering guarantees are useful for cases where the API 38 ordering of fragments is meaningful. 39 For example, applications may be able to execute programmable blending 40 operations in the fragment shader, where the destination buffer is read via 41 image loads and the final value is written via image stores. 42 43 === New Object Types 44 45 None. 46 47 === New Enum Constants 48 49 * Extending elink:VkStructureType: 50 ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT 51 52 === New Enums 53 54 None. 55 56 === New Structures 57 58 * Extending slink:VkPhysicalDeviceFeatures2: 59 ** slink:VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT 60 61 === New Functions 62 63 None. 64 65 === New SPIR-V Capabilities 66 67 * <<spirvenv-capabilities-table-fragmentShaderInterlock,FragmentShaderInterlockEXT>> 68 * <<spirvenv-capabilities-table-fragmentShaderInterlock,FragmentShaderPixelInterlockEXT>> 69 * <<spirvenv-capabilities-table-fragmentShaderInterlock,FragmentShaderShadingRateInterlockEXT>> 70 71 === Issues 72 73 None. 74 75 === Version History 76 77 * Revision 1, 2019-05-24 (Piers Daniell) 78 - Internal revisions