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