# VK_KHR_shader_maximal_reconvergence(3) Manual Page

## Name

VK_KHR_shader_maximal_reconvergence - device extension

Loading… please wait.

## Registered Extension Number

435

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

Vulkan Version 1.1

## SPIR-V Dependencies

- SPV_KHR_maximal_reconvergence

## Contact

- Alan Baker [GitHub]alan-baker

## Extension Proposal

VK_KHR_shader_maximal_reconvergence

## Other Extension Metadata

Last Modified Date

  2021-11-12

IP Status

  No known IP claims.

Interactions and External Dependencies

  - Requires SPIR-V 1.3.

  - This extension requires `SPV_KHR_maximal_reconvergence`

Contributors

  - Alan Baker, Google

## Description

This extension allows the use of the `SPV_KHR_maximal_reconvergence` SPIR-V extension in shader modules. `SPV_KHR_maximal_reconvergence` provides stronger guarantees that diverged subgroups will reconverge. These guarantees should match shader author intuition about divergence and reconvergence of invocations based on the structure of the code in the HLL.

Developers should utilize this extension if they require stronger guarantees about reconvergence than either the core spec or SPV_KHR_subgroup_uniform_control_flow. This extension will define the rules that govern how invocations diverge and reconverge in a way that should match developer intuition. It allows robust programs to be written relying on subgroup operations and other tangled instructions.

## New Structures

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR

## New Enum Constants

- `VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME`

- `VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR`

## Version History

- Revision 1, 2021-11-12 (Alan Baker)

  - Internal draft version

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