vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_NV_push_constant_bank

Description

Name

VK_NV_push_constant_bank - device extension

VK_NV_push_constant_bank

Name String
VK_NV_push_constant_bank
Extension Type
Device extension
Registered Extension Number
581
Revision
1
Ratification Status
Not ratified
Extension and Version Dependencies
None
SPIR-V Dependencies
Contact
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 PushConstantBankInfoNV structures to be chained to DescriptorSetAndBindingMappingEXT, PushDataInfoEXT, Promoted_From_VK_KHR_maintenance6AdditionalFunctionality.PushConstantsInfo', or IndirectCommandsLayoutTokenEXT 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 PhysicalDevicePushConstantBankPropertiesNV: 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

New SPIR-V Decorations

New Structures

New Enum Constants

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.

Synopsis

Documentation

data PushConstantBankInfoNV Source #

VkPushConstantBankInfoNV - Structure specifying push constant bank information

Description

This structure can be chained to PushDataInfoEXT, Promoted_From_VK_KHR_maintenance6AdditionalFunctionality.PushConstantsInfo', DescriptorSetAndBindingMappingEXT, and IndirectCommandsLayoutTokenEXT via the pNext chain to specify push constant bank placement:

This allows for more flexible push constant management in descriptor heap scenarios where shaders access different root descriptors with specific bank requirements.

Valid Usage

Valid Usage (Implicit)

See Also

VK_NV_push_constant_bank, StructureType

Constructors

PushConstantBankInfoNV 

Fields

  • bank :: Word32

    bank is the index of the hardware bank into which the data is pushed.

Instances

Instances details
Eq PushConstantBankInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

Storable PushConstantBankInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

Show PushConstantBankInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

FromCStruct PushConstantBankInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

ToCStruct PushConstantBankInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

Zero PushConstantBankInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

data PhysicalDevicePushConstantBankFeaturesNV Source #

VkPhysicalDevicePushConstantBankFeaturesNV - Structure describing push constant bank features

Members

This structure describes the following features:

Description

If the PhysicalDevicePushConstantBankFeaturesNV structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. If the application wishes to use a Device with any features described by PhysicalDevicePushConstantBankFeaturesNV, it must add an instance of the structure, with the desired feature members set to TRUE, to the pNext chain of DeviceCreateInfo when creating the Device.

Valid Usage (Implicit)

See Also

VK_NV_push_constant_bank, Bool32, StructureType

Constructors

PhysicalDevicePushConstantBankFeaturesNV 

Fields

  • pushConstantBank :: Bool

    pushConstantBank indicates whether push constant bank functionality is supported.

Instances

Instances details
Eq PhysicalDevicePushConstantBankFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

Storable PhysicalDevicePushConstantBankFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

Show PhysicalDevicePushConstantBankFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

FromCStruct PhysicalDevicePushConstantBankFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

ToCStruct PhysicalDevicePushConstantBankFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

Zero PhysicalDevicePushConstantBankFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

data PhysicalDevicePushConstantBankPropertiesNV Source #

VkPhysicalDevicePushConstantBankPropertiesNV - Structure describing push constant bank properties

Members

This structure describes the following implementation-dependent limits:

Description

If the PhysicalDevicePushConstantBankPropertiesNV structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

The number of banks available for descriptor heap usage (maxGraphicsPushDataBanks and maxComputePushDataBanks) is equal or greater than the number of banks available for non-descriptor heap usage (maxGraphicsPushConstantBanks and maxComputePushConstantBanks).

For graphics shaders, both descriptor heap and non-descriptor heap limits are greater than 1. For compute shaders, the number of banks is equal to or greater than 1.

Valid Usage (Implicit)

See Also

VK_NV_push_constant_bank, StructureType

Constructors

PhysicalDevicePushConstantBankPropertiesNV 

Fields

  • maxGraphicsPushConstantBanks :: Word32

    maxGraphicsPushConstantBanks indicates the maximum number of push constant banks supported for graphics pipelines when used with non-descriptor heap scenarios.

  • maxComputePushConstantBanks :: Word32

    maxComputePushConstantBanks indicates the maximum number of push constant banks supported for compute pipelines when used with non-descriptor heap scenarios.

  • maxGraphicsPushDataBanks :: Word32

    maxGraphicsPushDataBanks indicates the maximum number of push data banks supported for graphics pipelines when using descriptor heaps.

  • maxComputePushDataBanks :: Word32

    maxComputePushDataBanks indicates the maximum number of push data banks supported for compute pipelines when using descriptor heaps.

Instances

Instances details
Eq PhysicalDevicePushConstantBankPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

Storable PhysicalDevicePushConstantBankPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

Show PhysicalDevicePushConstantBankPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

FromCStruct PhysicalDevicePushConstantBankPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

ToCStruct PhysicalDevicePushConstantBankPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

Zero PhysicalDevicePushConstantBankPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_push_constant_bank

type NV_PUSH_CONSTANT_BANK_EXTENSION_NAME = "VK_NV_push_constant_bank" Source #