~mmach/netext73/mesa-haswell

« back to all changes in this revision

Viewing changes to src/compiler/spirv/spir-v.xml

  • Committer: mmach
  • Date: 2022-09-22 19:56:13 UTC
  • Revision ID: netbit73@gmail.com-20220922195613-wtik9mmy20tmor0i
2022-09-22 21:17:09

Show diffs side-by-side

added added

removed removed

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