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