VK_NV_push_constant_bank(3)

# VK_NV_push_constant_bank(3) Manual Page

## Name

VK_NV_push_constant_bank - device extension

## Registered Extension Number

581

## Revision

1

## Ratification Status

Not ratified

## Extension and Version Dependencies

None

## SPIR-V Dependencies

- SPV_NV_push_constant_bank

## Contact

- Vassili Nikolaev [GitHub]vasnik1

## Extension Proposal

VK_NV_push_constant_bank

## Other Extension Metadata

Last Modified Date

  2025-09-15

Contributors

  - Pat Brown, NVIDIA

  - Piers Daniell, NVIDIA

  - Rodrigo Locatti, NVIDIA

  - Daniel Story, Nintendo

## Description

The VK_NV_push_constant_bank extension allows applications to specify a bank and offset for push constants, enabling more flexible push constant management in descriptor heap scenarios where shaders are able to access different root descriptors.

Traditional push constants are placed in a default location, but this extension allows applications to specify which hardware constant bank to use and at what offset within that bank. This provides greater control over memory layout and enables more efficient use of hardware resources in advanced descriptor heap configurations.

The extension integrates with VK_EXT_descriptor_heap by allowing `VkPushConstantBankInfoNV` structures to be chained to `VkDescriptorSetAndBindingMappingEXT`, `VkPushDataInfoEXT`, `VkPushConstantsInfo`, or `VkIndirectCommandsLayoutTokenEXT` structures, specifying the hardware bank where push constants should be placed as part of the descriptor heap mapping configuration or push data operations.

Key features include:

- Bank and offset specification for push constant placement

- Integration with descriptor heap mapping through structure chaining

- Support for GLSL shader qualifiers for bank and offset specification in SPIR-V

- Validation of bank bounds and alignment requirements

- Compatibility with existing push constant API

The number of available push constant banks is implementation-dependent and can be queried through separate limits in `VkPhysicalDevicePushConstantBankPropertiesNV`: `maxGraphicsPushConstantBanks` and `maxComputePushConstantBanks` for non-descriptor heap usage, and `maxGraphicsPushDataBanks` and `maxComputePushDataBanks` for descriptor heap scenarios. Applications must ensure bank indices remain within the appropriate implementation-defined range based on the shader type and usage context.

Shader support for banks and member offsets are defined by the `SPV_NV_push_constant_bank` SPIR-V extension, which can be used with the `GLSL_NV_push_constant_bank` GLSL extension.

## New SPIR-V Capabilities

- `PushConstantBanksNV`

## New SPIR-V Decorations

- `BankNV`

- `MemberOffsetNV`

## New Structures

- Extending VkDescriptorSetAndBindingMappingEXT, VkPushDataInfoEXT, VkPushConstantsInfo, VkIndirectCommandsLayoutTokenEXT:

  - VkPushConstantBankInfoNV

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDevicePushConstantBankFeaturesNV

- Extending VkPhysicalDeviceProperties2:

  - VkPhysicalDevicePushConstantBankPropertiesNV

## New Enum Constants

- `VK_NV_PUSH_CONSTANT_BANK_EXTENSION_NAME`

- `VK_NV_PUSH_CONSTANT_BANK_SPEC_VERSION`

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV

  - VK_STRUCTURE_TYPE_PUSH_CONSTANT_BANK_INFO_NV

## Issues

None.

## Version History

- Revision 1, 2025-09-15 (NVIDIA Vassili Nikolaev)

  - 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-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0