1// Copyright 2017-2021 The Khronos Group, Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5include::{generated}/meta/{refprefix}VK_KHR_16bit_storage.txt[] 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 - Promoted to Vulkan 1.1 Core 15 - This extension requires 16 {spirv}/KHR/SPV_KHR_16bit_storage.html[`SPV_KHR_16bit_storage`] 17 - This extension provides API support for 18 https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_16bit_storage.txt[`GL_EXT_shader_16bit_storage`] 19*Contributors*:: 20 - Alexander Galazin, ARM 21 - Jan-Harald Fredriksen, ARM 22 - Joerg Wagner, ARM 23 - Neil Henning, Codeplay 24 - Jeff Bolz, Nvidia 25 - Daniel Koch, Nvidia 26 - David Neto, Google 27 - John Kessenich, Google 28 29=== Description 30 31The `VK_KHR_16bit_storage` extension allows use of 16-bit types in shader 32input and output interfaces, and push constant blocks. 33This extension introduces several new optional features which map to SPIR-V 34capabilities and allow access to 16-bit data in code:Block-decorated objects 35in the code:Uniform and the code:StorageBuffer storage classes, and objects 36in the code:PushConstant storage class. 37This extension allows 16-bit variables to be declared and used as 38user-defined shader inputs and outputs but does not change location 39assignment and component assignment rules. 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. 45However, if Vulkan 1.1 is supported and this extension is not, the 46code:storageBuffer16BitAccess capability is optional. 47The original type, enum and command names are still available as aliases of 48the core functionality. 49 50include::{generated}/interfaces/VK_KHR_16bit_storage.txt[] 51 52=== New SPIR-V Capabilities 53 54 * <<spirvenv-capabilities-table-StorageBuffer16BitAccess, 55 code:StorageBuffer16BitAccess>> 56 * <<spirvenv-capabilities-table-UniformAndStorageBuffer16BitAccess, 57 code:UniformAndStorageBuffer16BitAccess>> 58 * <<spirvenv-capabilities-table-StoragePushConstant16, 59 code:StoragePushConstant16>> 60 * <<spirvenv-capabilities-table-StorageInputOutput16, 61 code:StorageInputOutput16>> 62 63=== Version History 64 65 * Revision 1, 2017-03-23 (Alexander Galazin) 66 - Initial draft 67