1// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a 2// Creative Commons Attribution 4.0 International License; see 3// http://creativecommons.org/licenses/by/4.0/ 4 5include::meta/VK_KHR_16bit_storage.txt[] 6 7*Last Modified Date*:: 8 2017-09-05 9*IP Status*:: 10 No known IP claims. 11*Interactions and External Dependencies*:: 12 - This extension requires 13 https://www.khronos.org/registry/spir-v/extensions/KHR/SPV_KHR_16bit_storage.html[+SPV_KHR_16bit_storage+] 14 - Promoted to Vulkan 1.1 Core 15*Contributors*:: 16 - Alexander Galazin, ARM 17 - Jan-Harald Fredriksen, ARM 18 - Joerg Wagner, ARM 19 - Neil Henning, Codeplay 20 - Jeff Bolz, Nvidia 21 - Daniel Koch, Nvidia 22 - David Neto, Google 23 - John Kessenich, Google 24 25The `VK_KHR_16bit_storage` extension allows use of 16-bit types in shader 26input and output interfaces, and push constant blocks. 27This extension introduces several new optional features which map to SPIR-V 28capabilities and allow access to 16-bit data in code:Block-decorated objects 29in the code:Uniform and the code:StorageBuffer storage classes, and objects 30in the code:PushConstant storage class. 31This extension allows 16-bit variables to be declared and used as 32user-defined shader inputs and outputs but does not change location 33assignment and component assignment rules. 34 35=== New Enum Constants 36 37 * Extending elink:VkStructureType: 38 ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR 39 40=== New Structures 41 42 * slink:VkPhysicalDevice16BitStorageFeaturesKHR 43 44=== New SPIR-V Capabilities 45 46 * <<spirvenv-capabilities-table-16bitstorage,code:StorageBuffer16BitAccess>> 47 * <<spirvenv-capabilities-table-16bitstorage,code:UniformAndStorageBuffer16BitAccess>> 48 * <<spirvenv-capabilities-table-16bitstorage,code:StoragePushConstant16>> 49 * <<spirvenv-capabilities-table-16bitstorage,code:StorageInputOutput16>> 50 51=== Promotion to Vulkan 1.1 52 53All functionality in this extension is included in core Vulkan 1.1, with the 54KHR suffix omitted. 55The original type, enum and command names are still available as aliases of 56the core functionality. 57 58=== Issues 59 60=== Version History 61 62 * Revision 1, 2017-03-23 (Alexander Galazin) 63 - Initial draft 64