| // Copyright 2020-2021 The Khronos Group Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_KHR_shader_terminate_invocation.txt[] |
| |
| === Other Extension Metadata |
| |
| *Last Modified Date*:: |
| 2020-08-11 |
| *IP Status*:: |
| No known IP claims. |
| *Interactions and External Dependencies*:: |
| - Requires the |
| {spirv}/KHR/SPV_KHR_terminate_invocation.html[`SPV_KHR_terminate_invocation`] |
| SPIR-V extension. |
| *Contributors*:: |
| - Alan Baker, Google |
| - Jeff Bolz, NVIDIA |
| - Jesse Hall, Google |
| - Ralph Potter, Samsung |
| - Tom Olson, Arm |
| |
| === Description |
| |
| This extension adds Vulkan support for the |
| {spirv}/KHR/SPV_KHR_terminate_invocation.html[`SPV_KHR_terminate_invocation`] |
| SPIR-V extension. |
| That SPIR-V extension provides a new instruction, |
| code:OpTerminateInvocation, which causes a shader invocation to immediately |
| terminate and sets the coverage of shaded samples to `0`; only previously |
| executed instructions will have observable effects. |
| The code:OpTerminateInvocation instruction, along with the |
| code:OpDemoteToHelperInvocation instruction from the |
| `apiext:VK_EXT_shader_demote_to_helper_invocation` extension, together |
| replace the code:OpKill instruction, which could behave like either of these |
| instructions. |
| code:OpTerminateInvocation provides the behavior required by the GLSL |
| code:discard statement, and should be used when available by GLSL compilers |
| and applications that need the GLSL code:discard behavior. |
| |
| include::{generated}/interfaces/VK_KHR_shader_terminate_invocation.txt[] |
| |
| === Version History |
| |
| * Revision 1, 2020-08-11 (Jesse Hall) |