VK_KHR_shader_terminate_invocation(3)

# VK_KHR_shader_terminate_invocation(3) Manual Page

## Name

VK_KHR_shader_terminate_invocation - device extension

Loading… please wait.

## Registered Extension Number

216

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_get_physical_device_properties2
or
Version 1.1

## SPIR-V Dependencies

- SPV_KHR_terminate_invocation

## Deprecation State

- Promoted to Vulkan 1.3

## Contact

- Jesse Hall critsec

## 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 `SPV_KHR_terminate_invocation` SPIR-V extension. That SPIR-V extension provides a new instruction, `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 `OpTerminateInvocation` instruction, along with the `OpDemoteToHelperInvocation` instruction from the `VK_EXT_shader_demote_to_helper_invocation` extension, together replace the `OpKill` instruction, which could behave like either of these instructions. `OpTerminateInvocation` provides the behavior required by the GLSL `discard` statement, and should be used when available by GLSL compilers and applications that need the GLSL `discard` behavior.

## New Structures

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR

## New Enum Constants

- `VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME`

- `VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR`

## 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)

## See Also

VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR

## Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

## Copyright

Copyright 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0