• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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