xref: /aosp_15_r20/external/mesa3d/src/compiler/spirv/spir-v.xml (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker<?xml version="1.0" encoding="UTF-8"?>
2*61046927SAndroid Build Coastguard Worker<registry>
3*61046927SAndroid Build Coastguard Worker    <!--
4*61046927SAndroid Build Coastguard Worker    Copyright (c) 2015-2024 The Khronos Group Inc.
5*61046927SAndroid Build Coastguard Worker
6*61046927SAndroid Build Coastguard Worker    Permission is hereby granted, free of charge, to any person obtaining a
7*61046927SAndroid Build Coastguard Worker    copy of this software and/or associated documentation files (the
8*61046927SAndroid Build Coastguard Worker    "Materials"), to deal in the Materials without restriction, including
9*61046927SAndroid Build Coastguard Worker    without limitation the rights to use, copy, modify, merge, publish,
10*61046927SAndroid Build Coastguard Worker    distribute, sublicense, and/or sell copies of the Materials, and to
11*61046927SAndroid Build Coastguard Worker    permit persons to whom the Materials are furnished to do so, subject to
12*61046927SAndroid Build Coastguard Worker    the following conditions:
13*61046927SAndroid Build Coastguard Worker
14*61046927SAndroid Build Coastguard Worker    The above copyright notice and this permission notice shall be included
15*61046927SAndroid Build Coastguard Worker    in all copies or substantial portions of the Materials.
16*61046927SAndroid Build Coastguard Worker
17*61046927SAndroid Build Coastguard Worker    THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18*61046927SAndroid Build Coastguard Worker    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19*61046927SAndroid Build Coastguard Worker    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20*61046927SAndroid Build Coastguard Worker    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
21*61046927SAndroid Build Coastguard Worker    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22*61046927SAndroid Build Coastguard Worker    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23*61046927SAndroid Build Coastguard Worker    MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
24*61046927SAndroid Build Coastguard Worker    -->
25*61046927SAndroid Build Coastguard Worker    <!--
26*61046927SAndroid Build Coastguard Worker    This file, spir-v.xml, is the SPIR-V Tool ID, opcode and enumerant registry.
27*61046927SAndroid Build Coastguard Worker    The canonical version of the registry, together with related schema and
28*61046927SAndroid Build Coastguard Worker    documentation, can be found in the Khronos Registry at
29*61046927SAndroid Build Coastguard Worker    include/spirv/spir-v.xml in the master branch at
30*61046927SAndroid Build Coastguard Worker    https://github.com/KhronosGroup/SPIRV-Headers
31*61046927SAndroid Build Coastguard Worker    -->
32*61046927SAndroid Build Coastguard Worker
33*61046927SAndroid Build Coastguard Worker    <!-- SECTION: SPIR-V Tool ID Definitions  -->
34*61046927SAndroid Build Coastguard Worker
35*61046927SAndroid Build Coastguard Worker    <!-- A SPIR-V Generator Magic Number is a 32 bit word: The high order 16
36*61046927SAndroid Build Coastguard Worker         bits are a tool ID, which should be unique across all SPIR-V
37*61046927SAndroid Build Coastguard Worker         generators. The low order 16 bits are reserved for use as a tool
38*61046927SAndroid Build Coastguard Worker         version number, or any other purpose the tool supplier chooses.
39*61046927SAndroid Build Coastguard Worker         Only the tool IDs are reserved with Khronos.
40*61046927SAndroid Build Coastguard Worker
41*61046927SAndroid Build Coastguard Worker         Add new tool ID reservations contiguously with the first available
42*61046927SAndroid Build Coastguard Worker         number (the "start" attribute of the <unused> tag below), and
43*61046927SAndroid Build Coastguard Worker         modify that <unused> tag accordingly. Please add a vendor/tool
44*61046927SAndroid Build Coastguard Worker         supplier name in a 'vendor="name"' attribute; a tool name in a
45*61046927SAndroid Build Coastguard Worker         'tool="name"' attribute; and a contact person/address in a
46*61046927SAndroid Build Coastguard Worker         'comment' attribute. Remember that this value is the high 16 bits
47*61046927SAndroid Build Coastguard Worker         of a 32-bit word.
48*61046927SAndroid Build Coastguard Worker
49*61046927SAndroid Build Coastguard Worker         Note: a single vendor/tool supplier may have multiple tool IDs
50*61046927SAndroid Build Coastguard Worker         reserved for different SPIR-V generators -->
51*61046927SAndroid Build Coastguard Worker
52*61046927SAndroid Build Coastguard Worker    <ids type="vendor" start="0" end="0xFFFF" comment="SPIR-V Tool IDs">
53*61046927SAndroid Build Coastguard Worker        <id value="0"   vendor="Khronos"    comment="Reserved by Khronos"/>
54*61046927SAndroid Build Coastguard Worker        <id value="1"   vendor="LunarG"     comment="Contact TBD"/>
55*61046927SAndroid Build Coastguard Worker        <id value="2"   vendor="Valve"      comment="Contact TBD"/>
56*61046927SAndroid Build Coastguard Worker        <id value="3"   vendor="Codeplay"   comment="Contact Victor Lomuller, [email protected]"/>
57*61046927SAndroid Build Coastguard Worker        <id value="4"   vendor="NVIDIA"     comment="Contact Kerch Holt, [email protected]"/>
58*61046927SAndroid Build Coastguard Worker        <id value="5"   vendor="ARM"        comment="Contact Kevin Petit, [email protected]"/>
59*61046927SAndroid Build Coastguard Worker        <id value="6"   vendor="Khronos" tool="LLVM/SPIR-V Translator" comment="Contact Yaxun (Sam) Liu, [email protected]"/>
60*61046927SAndroid Build Coastguard Worker        <id value="7"   vendor="Khronos" tool="SPIR-V Tools Assembler" comment="Contact David Neto, [email protected]"/>
61*61046927SAndroid Build Coastguard Worker        <id value="8"   vendor="Khronos" tool="Glslang Reference Front End" comment="Contact John Kessenich, [email protected]"/>
62*61046927SAndroid Build Coastguard Worker        <id value="9"   vendor="Qualcomm"   comment="Contact [email protected]"/>
63*61046927SAndroid Build Coastguard Worker        <id value="10"  vendor="AMD"        comment="Contact Daniel Rakos, [email protected]"/>
64*61046927SAndroid Build Coastguard Worker        <id value="11"  vendor="Intel"      comment="Contact Alexey, [email protected]"/>
65*61046927SAndroid Build Coastguard Worker        <id value="12"  vendor="Imagination" comment="Contact Stephen Clarke, [email protected]"/>
66*61046927SAndroid Build Coastguard Worker        <id value="13"  vendor="Google" tool="Shaderc over Glslang" comment="Contact David Neto, [email protected]"/>
67*61046927SAndroid Build Coastguard Worker        <id value="14"  vendor="Google" tool="spiregg" comment="Contact Steven Perron, [email protected]"/>
68*61046927SAndroid Build Coastguard Worker        <id value="15"  vendor="Google" tool="rspirv" comment="Contact Lei Zhang, [email protected]"/>
69*61046927SAndroid Build Coastguard Worker        <id value="16"  vendor="X-LEGEND"   tool="Mesa-IR/SPIR-V Translator" comment="Contact Metora Wang, github:metora/MesaGLSLCompiler"/>
70*61046927SAndroid Build Coastguard Worker        <id value="17"  vendor="Khronos" tool="SPIR-V Tools Linker" comment="Contact David Neto, [email protected]"/>
71*61046927SAndroid Build Coastguard Worker        <id value="18"  vendor="Wine" tool="VKD3D Shader Compiler" comment="Contact [email protected]"/>
72*61046927SAndroid Build Coastguard Worker        <id value="19"  vendor="Tellusim" tool="Clay Shader Compiler" comment="Contact [email protected]"/>
73*61046927SAndroid Build Coastguard Worker        <id value="20"  vendor="W3C WebGPU Group" tool="WHLSL Shader Translator" comment="https://github.com/gpuweb/WHLSL"/>
74*61046927SAndroid Build Coastguard Worker        <id value="21"  vendor="Google" tool="Clspv" comment="Contact David Neto, [email protected]"/>
75*61046927SAndroid Build Coastguard Worker        <id value="22"  vendor="LLVM" tool="MLIR SPIR-V Serializer" comment="Contact Jakub Kuderski, [email protected], https://mlir.llvm.org/docs/Dialects/SPIR-V/"/>
76*61046927SAndroid Build Coastguard Worker        <id value="23"  vendor="Google" tool="Tint Compiler" comment="Contact David Neto, [email protected]"/>
77*61046927SAndroid Build Coastguard Worker        <id value="24"  vendor="Google" tool="ANGLE Shader Compiler" comment="Contact Shahbaz Youssefi, [email protected]"/>
78*61046927SAndroid Build Coastguard Worker        <id value="25"  vendor="Netease Games" tool="Messiah Shader Compiler" comment="Contact Yuwen Wu, [email protected]"/>
79*61046927SAndroid Build Coastguard Worker        <id value="26"  vendor="Xenia" tool="Xenia Emulator Microcode Translator" comment="Contact Vitaliy Kuzmin, [email protected], https://github.com/xenia-project/xenia"/>
80*61046927SAndroid Build Coastguard Worker        <id value="27"  vendor="Embark Studios" tool="Rust GPU Compiler Backend" comment="https://github.com/embarkstudios/rust-gpu"/>
81*61046927SAndroid Build Coastguard Worker        <id value="28"  vendor="gfx-rs community" tool="Naga" comment="https://github.com/gfx-rs/naga"/>
82*61046927SAndroid Build Coastguard Worker        <id value="29"  vendor="Mikkosoft Productions" tool="MSP Shader Compiler" comment="Contact Mikko Rasa, [email protected]"/>
83*61046927SAndroid Build Coastguard Worker        <id value="30"  vendor="SpvGenTwo community" tool="SpvGenTwo SPIR-V IR Tools" comment="https://github.com/rAzoR8/SpvGenTwo"/>
84*61046927SAndroid Build Coastguard Worker        <id value="31"  vendor="Google" tool="Skia SkSL" comment="Contact Ethan Nicholas, [email protected]"/>
85*61046927SAndroid Build Coastguard Worker        <id value="32"  vendor="TornadoVM" tool="Beehive SPIRV Toolkit" comment="https://github.com/beehive-lab/beehive-spirv-toolkit"/>
86*61046927SAndroid Build Coastguard Worker        <id value="33"  vendor="DragonJoker" tool="ShaderWriter" comment="Contact Sylvain Doremus, https://github.com/DragonJoker/ShaderWriter"/>
87*61046927SAndroid Build Coastguard Worker        <id value="34"  vendor="Rayan Hatout" tool="SPIRVSmith" comment="Contact Rayan Hatout [email protected], Repo https://github.com/rayanht/SPIRVSmith"/>
88*61046927SAndroid Build Coastguard Worker        <id value="35"  vendor="Saarland University" tool="Shady" comment="Contact Hugo Devillers [email protected], Repo https://github.com/Hugobros3/shady"/>
89*61046927SAndroid Build Coastguard Worker        <id value="36"  vendor="Taichi Graphics" tool="Taichi" comment="Contact Rendong Liang [email protected], Repo https://github.com/taichi-dev/taichi"/>
90*61046927SAndroid Build Coastguard Worker        <id value="37"  vendor="heroseh" tool="Hero C Compiler" comment="https://github.com/heroseh/hcc"/>
91*61046927SAndroid Build Coastguard Worker        <id value="38"  vendor="Meta" tool="SparkSL" comment="Contact Dunfan Lu, [email protected], https://sparkar.facebook.com/ar-studio/learn/sparksl/sparksl-overview"/>
92*61046927SAndroid Build Coastguard Worker        <id value="39"  vendor="SirLynix" tool="Nazara ShaderLang Compiler" comment="Contact Jérôme Leclercq, https://github.com/NazaraEngine/ShaderLang"/>
93*61046927SAndroid Build Coastguard Worker        <id value="40"  vendor="NVIDIA" tool="Slang Compiler" comment="Contact Theresa Foley, [email protected], https://github.com/shader-slang/slang/"/>
94*61046927SAndroid Build Coastguard Worker        <id value="41"  vendor="Zig Software Foundation" tool="Zig Compiler" comment="Contact Robin Voetter, https://github.com/Snektron"/>
95*61046927SAndroid Build Coastguard Worker        <id value="42"  vendor="Rendong Liang" tool="spq" comment="Contact Rendong Liang, [email protected], https://github.com/PENGUINLIONG/spq-rs"/>
96*61046927SAndroid Build Coastguard Worker        <id value="43"  vendor="LLVM" tool="LLVM SPIR-V Backend" comment="Contact Michal Paszkowski, [email protected], https://github.com/llvm/llvm-project/tree/main/llvm/lib/Target/SPIRV"/>
97*61046927SAndroid Build Coastguard Worker        <id value="44"  vendor="Robert Konrad" tool="Kongruent" comment="Contact Robert Konrad, https://github.com/Kode/Kongruent"/>
98*61046927SAndroid Build Coastguard Worker        <unused start="45" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
99*61046927SAndroid Build Coastguard Worker    </ids>
100*61046927SAndroid Build Coastguard Worker
101*61046927SAndroid Build Coastguard Worker    <!-- SECTION: SPIR-V Opcodes and Enumerants -->
102*61046927SAndroid Build Coastguard Worker
103*61046927SAndroid Build Coastguard Worker    <!-- Vendors reserve new ranges of:
104*61046927SAndroid Build Coastguard Worker           - opcode enumerants in the "opcode" list below, and
105*61046927SAndroid Build Coastguard Worker           - non-opcode enumerants in the non-opcodes "enumerant" list below.
106*61046927SAndroid Build Coastguard Worker         Both are reserved by contiguous blocks of 64, preceding the given
107*61046927SAndroid Build Coastguard Worker         "Future use" blocks.
108*61046927SAndroid Build Coastguard Worker
109*61046927SAndroid Build Coastguard Worker         SPIR-V background:
110*61046927SAndroid Build Coastguard Worker           - SPIR-V currently has well over 30 enums, including the opcode enum
111*61046927SAndroid Build Coastguard Worker           - each enum has its own name space, allowing reuse of enumerants
112*61046927SAndroid Build Coastguard Worker           - SPIR-V restricts opcode enumerants to 16 bits
113*61046927SAndroid Build Coastguard Worker           - all other enums use 32-bit enumerants
114*61046927SAndroid Build Coastguard Worker
115*61046927SAndroid Build Coastguard Worker         Reservation rules:
116*61046927SAndroid Build Coastguard Worker           - opcode reservations ("opcode") are only valid for opcodes
117*61046927SAndroid Build Coastguard Worker           - non-opcode reservations ("enumerant") are not valid for opcodes
118*61046927SAndroid Build Coastguard Worker           - reservations in the enumerant list are valid for all non-opcode enums
119*61046927SAndroid Build Coastguard Worker           - it is simpler to use each non-opcode enumerant for only one purpose
120*61046927SAndroid Build Coastguard Worker             but this is left to the discretion of the vendor
121*61046927SAndroid Build Coastguard Worker           - all enumerants in a range should be used before allocating a new range
122*61046927SAndroid Build Coastguard Worker             (several extensions can use enumerants from the same range)
123*61046927SAndroid Build Coastguard Worker
124*61046927SAndroid Build Coastguard Worker         Each vendor determines the use of enumerants in the ranges they
125*61046927SAndroid Build Coastguard Worker         reserve. Vendors are not required to disclose those uses.  If the use
126*61046927SAndroid Build Coastguard Worker         of an enumerant is included in an extension that is adopted by a Khronos
127*61046927SAndroid Build Coastguard Worker         extension or specification, then that enumerant's use may be permanently
128*61046927SAndroid Build Coastguard Worker         fixed as if originally reserved in a Khronos range.
129*61046927SAndroid Build Coastguard Worker
130*61046927SAndroid Build Coastguard Worker         -->
131*61046927SAndroid Build Coastguard Worker
132*61046927SAndroid Build Coastguard Worker    <!-- Begin reservations of opcode enumerants -->
133*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="0" end="4095" vendor="Khronos" comment="Reserved opcodes, not available to vendors - see the SPIR-V Specification"/>
134*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="4096" end="4159" vendor="Mesa" comment="Contact TBD"/>
135*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="4160" end="4415" vendor="ARM" comment="Contact [email protected]"/>
136*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, [email protected]"/>
137*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="4480" end="4991" vendor="Qualcomm" comment="Contact [email protected]"/>
138*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="4992" end="5247" vendor="AMD"/>
139*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="5248" end="5503" vendor="NVIDIA"/>
140*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="5504" end="5567" vendor="Imagination"/>
141*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="5568" end="5631" vendor="Intel" comment="Contact [email protected]"/>
142*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="5632" end="5695" vendor="Google" comment="Contact [email protected]"/>
143*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="5696" end="5823" vendor="Intel" comment="Contact [email protected]"/>
144*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="5824" end="5951" vendor="Intel" comment="Contact [email protected]"/>
145*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="5952" end="6015" vendor="Codeplay" comment="Contact [email protected]"/>
146*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
147*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="6080" end="6143" vendor="Intel" comment="Contact [email protected]"/>
148*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="6144" end="6271" vendor="Intel" comment="Contact [email protected]"/>
149*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="6272" end="6399" vendor="Huawei" comment="Contact [email protected]"/>
150*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="6400" end="6463" vendor="Intel" comment="Contact [email protected]"/>
151*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="6464" end="6527" vendor="N/A" comment="Blank range to keep alignment with non-opcodes"/>
152*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="6528" end="6591" vendor="Codeplay" comment="Contact [email protected]"/>
153*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="6592" end="6655" vendor="Saarland University" comment="Contact [email protected]"/>
154*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="6656" end="6719" vendor="Meta" comment="Contact [email protected]"/>
155*61046927SAndroid Build Coastguard Worker    <!-- Opcode enumerants to reserve for future use. To get a block, allocate
156*61046927SAndroid Build Coastguard Worker         multiples of 64 starting at the lowest available point in this
157*61046927SAndroid Build Coastguard Worker         block and add a corresponding <ids> tag immediately above. Make
158*61046927SAndroid Build Coastguard Worker         sure to fill in the vendor attribute, and preferably add a contact
159*61046927SAndroid Build Coastguard Worker         person/address in a comment attribute. -->
160*61046927SAndroid Build Coastguard Worker    <!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
161*61046927SAndroid Build Coastguard Worker    <ids type="opcode" start="6720" end="65535" comment="Opcode range reservable for future use by vendors"/>
162*61046927SAndroid Build Coastguard Worker    <!-- End reservations of opcodes -->
163*61046927SAndroid Build Coastguard Worker
164*61046927SAndroid Build Coastguard Worker
165*61046927SAndroid Build Coastguard Worker    <!-- Begin reservations of non-opcode enumerants -->
166*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="0" end="4095" vendor="Khronos" comment="Reserved enumerants, not available to vendors - see the SPIR-V Specification"/>
167*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="4096" end="4159" vendor="Mesa" comment="Contact TBD"/>
168*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="4160" end="4415" vendor="ARM" comment="Contact [email protected]"/>
169*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, [email protected]"/>
170*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="4480" end="4991" vendor="Qualcomm" comment="Contact [email protected]"/>
171*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="4992" end="5247" vendor="AMD"/>
172*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="5248" end="5503" vendor="NVIDIA"/>
173*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="5504" end="5567" vendor="Imagination"/>
174*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="5568" end="5631" vendor="Intel" comment="Contact [email protected]"/>
175*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="5632" end="5695" vendor="Google" comment="Contact [email protected]"/>
176*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="5696" end="5823" vendor="Intel" comment="Contact [email protected]"/>
177*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="5824" end="5951" vendor="Intel" comment="Contact [email protected]"/>
178*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="5952" end="6015" vendor="Codeplay" comment="Contact [email protected]"/>
179*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
180*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="6080" end="6143" vendor="Intel" comment="Contact [email protected]"/>
181*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="6144" end="6271" vendor="Intel" comment="Contact [email protected]"/>
182*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="6272" end="6399" vendor="Huawei" comment="Contact [email protected]"/>
183*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="6400" end="6463" vendor="Intel" comment="Contact [email protected]"/>
184*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="6464" end="6527" vendor="Mikkosoft Productions" comment="Contact Mikko Rasa, [email protected]"/>
185*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="6528" end="6591" vendor="Codeplay" comment="Contact [email protected]"/>
186*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="6592" end="6655" vendor="Saarland University" comment="Contact [email protected]"/>
187*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="6656" end="6719" vendor="Meta" comment="Contact [email protected]"/>
188*61046927SAndroid Build Coastguard Worker    <!-- Enumerants to reserve for future use. To get a block, allocate
189*61046927SAndroid Build Coastguard Worker         multiples of 64 starting at the lowest available point in this
190*61046927SAndroid Build Coastguard Worker         block and add a corresponding <ids> tag immediately above. Make
191*61046927SAndroid Build Coastguard Worker         sure to fill in the vendor attribute, and preferably add a contact
192*61046927SAndroid Build Coastguard Worker         person/address in a comment attribute. -->
193*61046927SAndroid Build Coastguard Worker    <!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
194*61046927SAndroid Build Coastguard Worker    <ids type="enumerant" start="6720" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
195*61046927SAndroid Build Coastguard Worker    <!-- End reservations of enumerants -->
196*61046927SAndroid Build Coastguard Worker
197*61046927SAndroid Build Coastguard Worker
198*61046927SAndroid Build Coastguard Worker    <!-- SECTION: SPIR-V Loop Control Bit Reservations -->
199*61046927SAndroid Build Coastguard Worker    <!-- Reserve ranges of bits in the loop control bitfield.
200*61046927SAndroid Build Coastguard Worker
201*61046927SAndroid Build Coastguard Worker         Each vendor determines the use of values in their own ranges.
202*61046927SAndroid Build Coastguard Worker         Vendors are not required to disclose those uses.  If the use of a
203*61046927SAndroid Build Coastguard Worker         value is included in an extension that is adopted by a Khronos
204*61046927SAndroid Build Coastguard Worker         extension or specification, then that value's use may be permanently
205*61046927SAndroid Build Coastguard Worker         fixed as if originally reserved in a Khronos range.
206*61046927SAndroid Build Coastguard Worker
207*61046927SAndroid Build Coastguard Worker         The SPIR Working Group strongly recommends:
208*61046927SAndroid Build Coastguard Worker         - Each value is used for only one purpose.
209*61046927SAndroid Build Coastguard Worker         - All values in a range should be used before allocating a new range.
210*61046927SAndroid Build Coastguard Worker         -->
211*61046927SAndroid Build Coastguard Worker
212*61046927SAndroid Build Coastguard Worker    <!-- Reserved loop control bits -->
213*61046927SAndroid Build Coastguard Worker    <ids type="LoopControl" start="0" end="15" vendor="Khronos" comment="Reserved LoopControl bits, not available to vendors - see the SPIR-V Specification"/>
214*61046927SAndroid Build Coastguard Worker    <ids type="LoopControl" start="16" end="27" vendor="Intel" comment="Contact [email protected]"/>
215*61046927SAndroid Build Coastguard Worker    <ids type="LoopControl" start="28" end="30" comment="Unreserved bits reservable for use by vendors"/>
216*61046927SAndroid Build Coastguard Worker    <ids type="LoopControl" start="31" end="31" vendor="Khronos" comment="Reserved LoopControl bit, not available to vendors"/>
217*61046927SAndroid Build Coastguard Worker
218*61046927SAndroid Build Coastguard Worker
219*61046927SAndroid Build Coastguard Worker    <!-- SECTION: SPIR-V Function Control Bit Reservations -->
220*61046927SAndroid Build Coastguard Worker    <!-- Reserve ranges of bits in the function control bitfield.
221*61046927SAndroid Build Coastguard Worker
222*61046927SAndroid Build Coastguard Worker         Each vendor determines the use of values in their own ranges.
223*61046927SAndroid Build Coastguard Worker         Vendors are not required to disclose those uses.  If the use of a
224*61046927SAndroid Build Coastguard Worker         value is included in an extension that is adopted by a Khronos
225*61046927SAndroid Build Coastguard Worker         extension or specification, then that value's use may be permanently
226*61046927SAndroid Build Coastguard Worker         fixed as if originally reserved in a Khronos range.
227*61046927SAndroid Build Coastguard Worker
228*61046927SAndroid Build Coastguard Worker         The SPIR Working Group strongly recommends:
229*61046927SAndroid Build Coastguard Worker         - Each value is used for only one purpose.
230*61046927SAndroid Build Coastguard Worker         - All values in a range should be used before allocating a new range.
231*61046927SAndroid Build Coastguard Worker         -->
232*61046927SAndroid Build Coastguard Worker
233*61046927SAndroid Build Coastguard Worker    <!-- Reserved function control bits -->
234*61046927SAndroid Build Coastguard Worker    <ids type="FunctionControl" start="0" end="15" vendor="Khronos" comment="Reserved FunctionControl bits, not available to vendors - see the SPIR-V Specification"/>
235*61046927SAndroid Build Coastguard Worker    <ids type="FunctionControl" start="16" end="16" vendor="Intel" comment="Contact [email protected]"/>
236*61046927SAndroid Build Coastguard Worker    <ids type="FunctionControl" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
237*61046927SAndroid Build Coastguard Worker    <ids type="FunctionControl" start="31" end="31" vendor="Khronos" comment="Reserved FunctionControl bit, not available to vendors"/>
238*61046927SAndroid Build Coastguard Worker
239*61046927SAndroid Build Coastguard Worker
240*61046927SAndroid Build Coastguard Worker    <!-- SECTION: SPIR-V FP Fast Math Mode Bit Reservations -->
241*61046927SAndroid Build Coastguard Worker    <!-- Reserve ranges of bits in the "FP Fast Math Mode" bitfield.
242*61046927SAndroid Build Coastguard Worker         Each vendor determines the use of values in their own ranges.
243*61046927SAndroid Build Coastguard Worker         Vendors are not required to disclose those uses.  If the use of a
244*61046927SAndroid Build Coastguard Worker         value is included in an extension that is adopted by a Khronos
245*61046927SAndroid Build Coastguard Worker         extension or specification, then that value's use may be permanently
246*61046927SAndroid Build Coastguard Worker         fixed as if originally reserved in a Khronos range.
247*61046927SAndroid Build Coastguard Worker         The SPIR Working Group strongly recommends:
248*61046927SAndroid Build Coastguard Worker         - Each value is used for only one purpose.
249*61046927SAndroid Build Coastguard Worker         - All values in a range should be used before allocating a new range.
250*61046927SAndroid Build Coastguard Worker         -->
251*61046927SAndroid Build Coastguard Worker
252*61046927SAndroid Build Coastguard Worker    <!-- Reserved FP fast math mode bits -->
253*61046927SAndroid Build Coastguard Worker    <ids type="FPFastMathMode" start="0" end="15" vendor="Khronos" comment="Reserved FPFastMathMode bits, not available to vendors - see the SPIR-V Specification"/>
254*61046927SAndroid Build Coastguard Worker    <ids type="FPFastMathMode" start="16" end="17" vendor="Intel" comment="Contact [email protected]"/>
255*61046927SAndroid Build Coastguard Worker    <ids type="FPFastMathMode" start="18" end="18" vendor="khronos" comment="Reserved FPFastMathMode bit, not available to vendors - see SPV_KHR_float_controls2"/>
256*61046927SAndroid Build Coastguard Worker    <ids type="FPFastMathMode" start="19" end="31" comment="Unreserved bits reservable for use by vendors"/>
257*61046927SAndroid Build Coastguard Worker
258*61046927SAndroid Build Coastguard Worker
259*61046927SAndroid Build Coastguard Worker    <!-- SECTION: SPIR-V Memory Operand Bit Reservations -->
260*61046927SAndroid Build Coastguard Worker    <!-- Reserve ranges of bits in the memory operands bitfield.
261*61046927SAndroid Build Coastguard Worker
262*61046927SAndroid Build Coastguard Worker         Each vendor determines the use of values in their own ranges.
263*61046927SAndroid Build Coastguard Worker         Vendors are not required to disclose those uses.  If the use of a
264*61046927SAndroid Build Coastguard Worker         value is included in an extension that is adopted by a Khronos
265*61046927SAndroid Build Coastguard Worker         extension or specification, then that value's use may be permanently
266*61046927SAndroid Build Coastguard Worker         fixed as if originally reserved in a Khronos range.
267*61046927SAndroid Build Coastguard Worker
268*61046927SAndroid Build Coastguard Worker         The SPIR Working Group strongly recommends:
269*61046927SAndroid Build Coastguard Worker         - Each value is used for only one purpose.
270*61046927SAndroid Build Coastguard Worker         - All values in a range should be used before allocating a new range.
271*61046927SAndroid Build Coastguard Worker         -->
272*61046927SAndroid Build Coastguard Worker
273*61046927SAndroid Build Coastguard Worker    <!-- Reserved memory operand bits -->
274*61046927SAndroid Build Coastguard Worker    <ids type="MemoryOperand" start="0" end="15" vendor="Khronos" comment="Reserved MemoryOperand bits, not available to vendors - see the SPIR-V Specification"/>
275*61046927SAndroid Build Coastguard Worker    <ids type="MemoryOperand" start="16" end="18" vendor="Intel" comment="Contact [email protected]"/>
276*61046927SAndroid Build Coastguard Worker    <ids type="MemoryOperand" start="19" end="22" vendor="Arm" comment="Contact [email protected]"/>
277*61046927SAndroid Build Coastguard Worker    <ids type="MemoryOperand" start="23" end="30" comment="Unreserved bits reservable for use by vendors"/>
278*61046927SAndroid Build Coastguard Worker    <ids type="MemoryOperand" start="31" end="31" vendor="Khronos" comment="Reserved MemoryOperand bit, not available to vendors"/>
279*61046927SAndroid Build Coastguard Worker
280*61046927SAndroid Build Coastguard Worker    <!-- SECTION: SPIR-V Image Operand Bit Reservations -->
281*61046927SAndroid Build Coastguard Worker    <!-- Reserve ranges of bits in the image operands bitfield.
282*61046927SAndroid Build Coastguard Worker
283*61046927SAndroid Build Coastguard Worker         Each vendor determines the use of values in their own ranges.
284*61046927SAndroid Build Coastguard Worker         Vendors are not required to disclose those uses.  If the use of a
285*61046927SAndroid Build Coastguard Worker         value is included in an extension that is adopted by a Khronos
286*61046927SAndroid Build Coastguard Worker         extension or specification, then that value's use may be permanently
287*61046927SAndroid Build Coastguard Worker         fixed as if originally reserved in a Khronos range.
288*61046927SAndroid Build Coastguard Worker
289*61046927SAndroid Build Coastguard Worker         The SPIR Working Group strongly recommends:
290*61046927SAndroid Build Coastguard Worker         - Each value is used for only one purpose.
291*61046927SAndroid Build Coastguard Worker         - All values in a range should be used before allocating a new range.
292*61046927SAndroid Build Coastguard Worker         -->
293*61046927SAndroid Build Coastguard Worker
294*61046927SAndroid Build Coastguard Worker    <!-- Reserved image operand bits -->
295*61046927SAndroid Build Coastguard Worker    <ids type="ImageOperand" start="0" end="15" vendor="Khronos" comment="Reserved ImageOperand bits, not available to vendors - see the SPIR-V Specification"/>
296*61046927SAndroid Build Coastguard Worker    <ids type="ImageOperand" start="16" end="16" vendor="Nvidia" comment="Contact [email protected]"/>
297*61046927SAndroid Build Coastguard Worker    <ids type="ImageOperand" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
298*61046927SAndroid Build Coastguard Worker    <ids type="ImageOperand" start="31" end="31" vendor="Khronos" comment="Reserved ImageOperand bit, not available to vendors"/>
299*61046927SAndroid Build Coastguard Worker
300*61046927SAndroid Build Coastguard Worker</registry>
301