1// Copyright 2016-2023 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5include::{generated}/meta/{refprefix}VK_KHR_variable_pointers.adoc[] 6 7=== Other Extension Metadata 8 9*Last Modified Date*:: 10 2017-09-05 11*IP Status*:: 12 No known IP claims. 13*Interactions and External Dependencies*:: 14 - This extension requires 15 {spirv}/KHR/SPV_KHR_variable_pointers.html[`SPV_KHR_variable_pointers`] 16 - Promoted to Vulkan 1.1 Core 17*Contributors*:: 18 - John Kessenich, Google 19 - Neil Henning, Codeplay 20 - David Neto, Google 21 - Daniel Koch, Nvidia 22 - Graeme Leese, Broadcom 23 - Weifeng Zhang, Qualcomm 24 - Stephen Clarke, Imagination Technologies 25 - Faith Ekstrand, Intel 26 - Jesse Hall, Google 27 28=== Description 29 30The `VK_KHR_variable_pointers` extension allows implementations to indicate 31their level of support for the `SPV_KHR_variable_pointers` SPIR-V extension. 32The SPIR-V extension allows shader modules to use invocation-private 33pointers into uniform and/or storage buffers, where the pointer values can 34be dynamic and non-uniform. 35 36The `SPV_KHR_variable_pointers` extension introduces two capabilities. 37The first, code:VariablePointersStorageBuffer, must: be supported by all 38implementations of this extension. 39The second, code:VariablePointers, is optional. 40 41=== Promotion to Vulkan 1.1 42 43All functionality in this extension is included in core Vulkan 1.1, with the 44KHR suffix omitted, however support for the 45<<features-variablePointersStorageBuffer, 46pname:variablePointersStorageBuffer>> feature is made optional. 47The original type, enum and command names are still available as aliases of 48the core functionality. 49 50include::{generated}/interfaces/VK_KHR_variable_pointers.adoc[] 51 52=== New SPIR-V Capabilities 53 54 * <<spirvenv-capabilities-table-VariablePointers, code:VariablePointers>> 55 * <<spirvenv-capabilities-table-VariablePointersStorageBuffer, 56 code:VariablePointersStorageBuffer>> 57 58=== Issues 59 601) Do we need an optional property for the SPIR-V 61code:VariablePointersStorageBuffer capability or should it be mandatory when 62this extension is advertised? 63 64*RESOLVED*: Add it as a distinct feature, but make support mandatory. 65Adding it as a feature makes the extension easier to include in a future 66core API version. 67In the extension, the feature is mandatory, so that presence of the 68extension guarantees some functionality. 69When included in a core API version, the feature would be optional. 70 712) Can support for these capabilities vary between shader stages? 72 73*RESOLVED*: No, if the capability is supported in any stage it must be 74supported in all stages. 75 763) Should the capabilities be features or limits? 77 78*RESOLVED*: Features, primarily for consistency with other similar 79extensions. 80 81=== Version History 82 83 * Revision 1, 2017-03-14 (Jesse Hall and John Kessenich) 84 ** Internal revisions 85