| // Copyright 2019-2021 The Khronos Group Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_EXT_shader_demote_to_helper_invocation.txt[] |
| |
| === Other Extension Metadata |
| |
| *Last Modified Date*:: |
| 2019-06-01 |
| *IP Status*:: |
| No known IP claims. |
| *Interactions and External Dependencies*:: |
| - This extension requires |
| {spirv}/EXT/SPV_EXT_demote_to_helper_invocation.html[`SPV_EXT_demote_to_helper_invocation`] |
| *Contributors*:: |
| - Jeff Bolz, NVIDIA |
| |
| === Description |
| |
| This extension adds Vulkan support for the |
| {spirv}/EXT/SPV_EXT_demote_to_helper_invocation.html[`SPV_EXT_demote_to_helper_invocation`] |
| SPIR-V extension. |
| That SPIR-V extension provides a new instruction |
| code:OpDemoteToHelperInvocationEXT allowing shaders to "`demote`" a fragment |
| shader invocation to behave like a helper invocation for its duration. |
| The demoted invocation will have no further side effects and will not output |
| to the framebuffer, but remains active and can participate in computing |
| derivatives and in <<shaders-group-operations, group operations>>. |
| This is a better match for the "`discard`" instruction in HLSL. |
| |
| include::{generated}/interfaces/VK_EXT_shader_demote_to_helper_invocation.txt[] |
| |
| === New SPIR-V Capability |
| |
| * <<spirvenv-capabilities-table-DemoteToHelperInvocationEXT,DemoteToHelperInvocationEXT>> |
| |
| === Version History |
| |
| * Revision 1, 2019-06-01 (Jeff Bolz) |
| - Initial draft |