// Copyright 2020-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_shader_terminate_invocation.adoc[]

=== Other Extension Metadata

*Last Modified Date*::
    2020-08-11
*IP Status*::
    No known IP claims.
*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.adoc[]

=== Promotion to Vulkan 1.3

Functionality in this extension is included in core Vulkan 1.3, with the KHR
suffix omitted.
The original type, enum and command names are still available as aliases of
the core functionality.

=== Version History

  * Revision 1, 2020-08-11 (Jesse Hall)
