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