| // Copyright 2017-2021 The Khronos Group, Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_KHR_16bit_storage.txt[] |
| |
| === Other Extension Metadata |
| |
| *Last Modified Date*:: |
| 2017-09-05 |
| *IP Status*:: |
| No known IP claims. |
| *Interactions and External Dependencies*:: |
| - Promoted to Vulkan 1.1 Core |
| - This extension requires |
| {spirv}/KHR/SPV_KHR_16bit_storage.html[`SPV_KHR_16bit_storage`] |
| - This extension provides API support for |
| https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_16bit_storage.txt[`GL_EXT_shader_16bit_storage`] |
| *Contributors*:: |
| - Alexander Galazin, ARM |
| - Jan-Harald Fredriksen, ARM |
| - Joerg Wagner, ARM |
| - Neil Henning, Codeplay |
| - Jeff Bolz, Nvidia |
| - Daniel Koch, Nvidia |
| - David Neto, Google |
| - John Kessenich, Google |
| |
| === Description |
| |
| The `VK_KHR_16bit_storage` extension allows use of 16-bit types in shader |
| input and output interfaces, and push constant blocks. |
| This extension introduces several new optional features which map to SPIR-V |
| capabilities and allow access to 16-bit data in code:Block-decorated objects |
| in the code:Uniform and the code:StorageBuffer storage classes, and objects |
| in the code:PushConstant storage class. |
| This extension allows 16-bit variables to be declared and used as |
| user-defined shader inputs and outputs but does not change location |
| assignment and component assignment rules. |
| |
| === Promotion to Vulkan 1.1 |
| |
| All functionality in this extension is included in core Vulkan 1.1, with the |
| KHR suffix omitted. |
| However, if Vulkan 1.1 is supported and this extension is not, the |
| code:storageBuffer16BitAccess capability is optional. |
| The original type, enum and command names are still available as aliases of |
| the core functionality. |
| |
| include::{generated}/interfaces/VK_KHR_16bit_storage.txt[] |
| |
| === New SPIR-V Capabilities |
| |
| * <<spirvenv-capabilities-table-StorageBuffer16BitAccess, |
| code:StorageBuffer16BitAccess>> |
| * <<spirvenv-capabilities-table-UniformAndStorageBuffer16BitAccess, |
| code:UniformAndStorageBuffer16BitAccess>> |
| * <<spirvenv-capabilities-table-StoragePushConstant16, |
| code:StoragePushConstant16>> |
| * <<spirvenv-capabilities-table-StorageInputOutput16, |
| code:StorageInputOutput16>> |
| |
| === Version History |
| |
| * Revision 1, 2017-03-23 (Alexander Galazin) |
| - Initial draft |