vulkan-3.24.4: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Extensions.VK_KHR_variable_pointers

Description

Name

VK_KHR_variable_pointers - device extension

VK_KHR_variable_pointers

Name String
VK_KHR_variable_pointers
Extension Type
Device extension
Registered Extension Number
121
Revision
1
Extension and Version Dependencies
  • Requires support for Vulkan 1.0
  • Requires VK_KHR_get_physical_device_properties2 to be enabled for any device-level functionality
  • Requires VK_KHR_storage_buffer_storage_class to be enabled for any device-level functionality
Deprecation state
Contact

Other Extension Metadata

Last Modified Date
2017-09-05
IP Status
No known IP claims.
Interactions and External Dependencies
Contributors
  • John Kessenich, Google
  • Neil Henning, Codeplay
  • David Neto, Google
  • Daniel Koch, Nvidia
  • Graeme Leese, Broadcom
  • Weifeng Zhang, Qualcomm
  • Stephen Clarke, Imagination Technologies
  • Jason Ekstrand, Intel
  • Jesse Hall, Google

Description

The VK_KHR_variable_pointers extension allows implementations to indicate their level of support for the SPV_KHR_variable_pointers SPIR-V extension. The SPIR-V extension allows shader modules to use invocation-private pointers into uniform and/or storage buffers, where the pointer values can be dynamic and non-uniform.

The SPV_KHR_variable_pointers extension introduces two capabilities. The first, VariablePointersStorageBuffer, must be supported by all implementations of this extension. The second, VariablePointers, is optional.

Promotion to Vulkan 1.1

All functionality in this extension is included in core Vulkan 1.1, with the KHR suffix omitted, however support for the variablePointersStorageBuffer feature is made optional. The original type, enum and command names are still available as aliases of the core functionality.

New Structures

New Enum Constants

New SPIR-V Capabilities

Issues

1) Do we need an optional property for the SPIR-V VariablePointersStorageBuffer capability or should it be mandatory when this extension is advertised?

RESOLVED: Add it as a distinct feature, but make support mandatory. Adding it as a feature makes the extension easier to include in a future core API version. In the extension, the feature is mandatory, so that presence of the extension guarantees some functionality. When included in a core API version, the feature would be optional.

2) Can support for these capabilities vary between shader stages?

RESOLVED: No, if the capability is supported in any stage it must be supported in all stages.

3) Should the capabilities be features or limits?

RESOLVED: Features, primarily for consistency with other similar extensions.

Version History

  • Revision 1, 2017-03-14 (Jesse Hall and John Kessenich)

    • Internal revisions

See Also

PhysicalDeviceVariablePointerFeaturesKHR, PhysicalDeviceVariablePointersFeaturesKHR

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.

Documentation

type KHR_VARIABLE_POINTERS_EXTENSION_NAME = "VK_KHR_variable_pointers" Source #

pattern KHR_VARIABLE_POINTERS_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #