# VK_EXT_shader_demote_to_helper_invocation(3) Manual Page

## Name

VK_EXT_shader_demote_to_helper_invocation - device extension

Loading… please wait.

## Registered Extension Number

277

## Revision

1

## Ratification Status

Not ratified

## Extension and Version Dependencies

VK_KHR_get_physical_device_properties2
or
Vulkan Version 1.1

## SPIR-V Dependencies

- SPV_EXT_demote_to_helper_invocation

## Deprecation State

- Promoted to Vulkan 1.3

## Contact

- Jeff Bolz [GitHub]jeffbolznv

## Other Extension Metadata

Last Modified Date

  2019-06-01

IP Status

  No known IP claims.

Interactions and External Dependencies

  - This extension provides API support for `GL_EXT_demote_to_helper_invocation`

Contributors

  - Jeff Bolz, NVIDIA

## Description

This extension adds Vulkan support for the `SPV_EXT_demote_to_helper_invocation` SPIR-V extension. That SPIR-V extension provides a new instruction `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 group operations. This is a better match for the “discard” instruction in HLSL.

## New Structures

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT

## New Enum Constants

- `VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME`

- `VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT`

## New SPIR-V Capability

- `DemoteToHelperInvocationEXT`

## Promotion to Vulkan 1.3

Vulkan APIs in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.

## Version History

- Revision 1, 2019-06-01 (Jeff Bolz)

  - Initial draft

## See Also

No cross-references are available

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