| // Copyright (c) 2017-2018 Khronos Group. This work is licensed under a |
| // Creative Commons Attribution 4.0 International License; see |
| // http://creativecommons.org/licenses/by/4.0/ |
| |
| include::meta/VK_KHR_16bit_storage.txt[] |
| |
| *Last Modified Date*:: |
| 2017-09-05 |
| *IP Status*:: |
| No known IP claims. |
| *Interactions and External Dependencies*:: |
| - This extension requires |
| https://www.khronos.org/registry/spir-v/extensions/KHR/SPV_KHR_16bit_storage.html[+SPV_KHR_16bit_storage+] |
| - Promoted to Vulkan 1.1 Core |
| *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 |
| |
| 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. |
| |
| === New Enum Constants |
| |
| * Extending elink:VkStructureType: |
| ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR |
| |
| === New Structures |
| |
| * slink:VkPhysicalDevice16BitStorageFeaturesKHR |
| |
| === New SPIR-V Capabilities |
| |
| * <<spirvenv-capabilities-table-16bitstorage,code:StorageBuffer16BitAccess>> |
| * <<spirvenv-capabilities-table-16bitstorage,code:UniformAndStorageBuffer16BitAccess>> |
| * <<spirvenv-capabilities-table-16bitstorage,code:StoragePushConstant16>> |
| * <<spirvenv-capabilities-table-16bitstorage,code:StorageInputOutput16>> |
| |
| === Promotion to Vulkan 1.1 |
| |
| All functionality in this extension is included in core Vulkan 1.1, with the |
| KHR suffix omitted. |
| The original type, enum and command names are still available as aliases of |
| the core functionality. |
| |
| === Issues |
| |
| === Version History |
| |
| * Revision 1, 2017-03-23 (Alexander Galazin) |
| - Initial draft |