nir: make nir_const_value scalar
[mesa.git] / src / compiler / spirv / spirv.h
1 /*
2 ** Copyright (c) 2014-2019 The Khronos Group Inc.
3 **
4 ** Permission is hereby granted, free of charge, to any person obtaining a copy
5 ** of this software and/or associated documentation files (the "Materials"),
6 ** to deal in the Materials without restriction, including without limitation
7 ** the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 ** and/or sell copies of the Materials, and to permit persons to whom the
9 ** Materials are furnished to do so, subject to the following conditions:
10 **
11 ** The above copyright notice and this permission notice shall be included in
12 ** all copies or substantial portions of the Materials.
13 **
14 ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
15 ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
16 ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
17 **
18 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
24 ** IN THE MATERIALS.
25 */
26
27 /*
28 ** This header is automatically generated by the same tool that creates
29 ** the Binary Section of the SPIR-V specification.
30 */
31
32 /*
33 ** Enumeration tokens for SPIR-V, in various styles:
34 ** C, C++, C++11, JSON, Lua, Python, C#, D
35 **
36 ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
37 ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
38 ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
39 ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
40 ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
41 ** - C# will use enum classes in the Specification class located in the "Spv" namespace,
42 ** e.g.: Spv.Specification.SourceLanguage.GLSL
43 ** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
44 **
45 ** Some tokens act like mask values, which can be OR'd together,
46 ** while others are mutually exclusive. The mask-like ones have
47 ** "Mask" in their name, and a parallel enum that has the shift
48 ** amount (1 << x) for each corresponding enumerant.
49 */
50
51 #ifndef spirv_H
52 #define spirv_H
53
54 typedef unsigned int SpvId;
55
56 #define SPV_VERSION 0x10300
57 #define SPV_REVISION 6
58
59 static const unsigned int SpvMagicNumber = 0x07230203;
60 static const unsigned int SpvVersion = 0x00010300;
61 static const unsigned int SpvRevision = 6;
62 static const unsigned int SpvOpCodeMask = 0xffff;
63 static const unsigned int SpvWordCountShift = 16;
64
65 typedef enum SpvSourceLanguage_ {
66 SpvSourceLanguageUnknown = 0,
67 SpvSourceLanguageESSL = 1,
68 SpvSourceLanguageGLSL = 2,
69 SpvSourceLanguageOpenCL_C = 3,
70 SpvSourceLanguageOpenCL_CPP = 4,
71 SpvSourceLanguageHLSL = 5,
72 SpvSourceLanguageMax = 0x7fffffff,
73 } SpvSourceLanguage;
74
75 typedef enum SpvExecutionModel_ {
76 SpvExecutionModelVertex = 0,
77 SpvExecutionModelTessellationControl = 1,
78 SpvExecutionModelTessellationEvaluation = 2,
79 SpvExecutionModelGeometry = 3,
80 SpvExecutionModelFragment = 4,
81 SpvExecutionModelGLCompute = 5,
82 SpvExecutionModelKernel = 6,
83 SpvExecutionModelTaskNV = 5267,
84 SpvExecutionModelMeshNV = 5268,
85 SpvExecutionModelRayGenerationNV = 5313,
86 SpvExecutionModelIntersectionNV = 5314,
87 SpvExecutionModelAnyHitNV = 5315,
88 SpvExecutionModelClosestHitNV = 5316,
89 SpvExecutionModelMissNV = 5317,
90 SpvExecutionModelCallableNV = 5318,
91 SpvExecutionModelMax = 0x7fffffff,
92 } SpvExecutionModel;
93
94 typedef enum SpvAddressingModel_ {
95 SpvAddressingModelLogical = 0,
96 SpvAddressingModelPhysical32 = 1,
97 SpvAddressingModelPhysical64 = 2,
98 SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
99 SpvAddressingModelMax = 0x7fffffff,
100 } SpvAddressingModel;
101
102 typedef enum SpvMemoryModel_ {
103 SpvMemoryModelSimple = 0,
104 SpvMemoryModelGLSL450 = 1,
105 SpvMemoryModelOpenCL = 2,
106 SpvMemoryModelVulkanKHR = 3,
107 SpvMemoryModelMax = 0x7fffffff,
108 } SpvMemoryModel;
109
110 typedef enum SpvExecutionMode_ {
111 SpvExecutionModeInvocations = 0,
112 SpvExecutionModeSpacingEqual = 1,
113 SpvExecutionModeSpacingFractionalEven = 2,
114 SpvExecutionModeSpacingFractionalOdd = 3,
115 SpvExecutionModeVertexOrderCw = 4,
116 SpvExecutionModeVertexOrderCcw = 5,
117 SpvExecutionModePixelCenterInteger = 6,
118 SpvExecutionModeOriginUpperLeft = 7,
119 SpvExecutionModeOriginLowerLeft = 8,
120 SpvExecutionModeEarlyFragmentTests = 9,
121 SpvExecutionModePointMode = 10,
122 SpvExecutionModeXfb = 11,
123 SpvExecutionModeDepthReplacing = 12,
124 SpvExecutionModeDepthGreater = 14,
125 SpvExecutionModeDepthLess = 15,
126 SpvExecutionModeDepthUnchanged = 16,
127 SpvExecutionModeLocalSize = 17,
128 SpvExecutionModeLocalSizeHint = 18,
129 SpvExecutionModeInputPoints = 19,
130 SpvExecutionModeInputLines = 20,
131 SpvExecutionModeInputLinesAdjacency = 21,
132 SpvExecutionModeTriangles = 22,
133 SpvExecutionModeInputTrianglesAdjacency = 23,
134 SpvExecutionModeQuads = 24,
135 SpvExecutionModeIsolines = 25,
136 SpvExecutionModeOutputVertices = 26,
137 SpvExecutionModeOutputPoints = 27,
138 SpvExecutionModeOutputLineStrip = 28,
139 SpvExecutionModeOutputTriangleStrip = 29,
140 SpvExecutionModeVecTypeHint = 30,
141 SpvExecutionModeContractionOff = 31,
142 SpvExecutionModeInitializer = 33,
143 SpvExecutionModeFinalizer = 34,
144 SpvExecutionModeSubgroupSize = 35,
145 SpvExecutionModeSubgroupsPerWorkgroup = 36,
146 SpvExecutionModeSubgroupsPerWorkgroupId = 37,
147 SpvExecutionModeLocalSizeId = 38,
148 SpvExecutionModeLocalSizeHintId = 39,
149 SpvExecutionModePostDepthCoverage = 4446,
150 SpvExecutionModeDenormPreserve = 4459,
151 SpvExecutionModeDenormFlushToZero = 4460,
152 SpvExecutionModeSignedZeroInfNanPreserve = 4461,
153 SpvExecutionModeRoundingModeRTE = 4462,
154 SpvExecutionModeRoundingModeRTZ = 4463,
155 SpvExecutionModeStencilRefReplacingEXT = 5027,
156 SpvExecutionModeOutputLinesNV = 5269,
157 SpvExecutionModeOutputPrimitivesNV = 5270,
158 SpvExecutionModeDerivativeGroupQuadsNV = 5289,
159 SpvExecutionModeDerivativeGroupLinearNV = 5290,
160 SpvExecutionModeOutputTrianglesNV = 5298,
161 SpvExecutionModeMax = 0x7fffffff,
162 } SpvExecutionMode;
163
164 typedef enum SpvStorageClass_ {
165 SpvStorageClassUniformConstant = 0,
166 SpvStorageClassInput = 1,
167 SpvStorageClassUniform = 2,
168 SpvStorageClassOutput = 3,
169 SpvStorageClassWorkgroup = 4,
170 SpvStorageClassCrossWorkgroup = 5,
171 SpvStorageClassPrivate = 6,
172 SpvStorageClassFunction = 7,
173 SpvStorageClassGeneric = 8,
174 SpvStorageClassPushConstant = 9,
175 SpvStorageClassAtomicCounter = 10,
176 SpvStorageClassImage = 11,
177 SpvStorageClassStorageBuffer = 12,
178 SpvStorageClassCallableDataNV = 5328,
179 SpvStorageClassIncomingCallableDataNV = 5329,
180 SpvStorageClassRayPayloadNV = 5338,
181 SpvStorageClassHitAttributeNV = 5339,
182 SpvStorageClassIncomingRayPayloadNV = 5342,
183 SpvStorageClassShaderRecordBufferNV = 5343,
184 SpvStorageClassPhysicalStorageBufferEXT = 5349,
185 SpvStorageClassMax = 0x7fffffff,
186 } SpvStorageClass;
187
188 typedef enum SpvDim_ {
189 SpvDim1D = 0,
190 SpvDim2D = 1,
191 SpvDim3D = 2,
192 SpvDimCube = 3,
193 SpvDimRect = 4,
194 SpvDimBuffer = 5,
195 SpvDimSubpassData = 6,
196 SpvDimMax = 0x7fffffff,
197 } SpvDim;
198
199 typedef enum SpvSamplerAddressingMode_ {
200 SpvSamplerAddressingModeNone = 0,
201 SpvSamplerAddressingModeClampToEdge = 1,
202 SpvSamplerAddressingModeClamp = 2,
203 SpvSamplerAddressingModeRepeat = 3,
204 SpvSamplerAddressingModeRepeatMirrored = 4,
205 SpvSamplerAddressingModeMax = 0x7fffffff,
206 } SpvSamplerAddressingMode;
207
208 typedef enum SpvSamplerFilterMode_ {
209 SpvSamplerFilterModeNearest = 0,
210 SpvSamplerFilterModeLinear = 1,
211 SpvSamplerFilterModeMax = 0x7fffffff,
212 } SpvSamplerFilterMode;
213
214 typedef enum SpvImageFormat_ {
215 SpvImageFormatUnknown = 0,
216 SpvImageFormatRgba32f = 1,
217 SpvImageFormatRgba16f = 2,
218 SpvImageFormatR32f = 3,
219 SpvImageFormatRgba8 = 4,
220 SpvImageFormatRgba8Snorm = 5,
221 SpvImageFormatRg32f = 6,
222 SpvImageFormatRg16f = 7,
223 SpvImageFormatR11fG11fB10f = 8,
224 SpvImageFormatR16f = 9,
225 SpvImageFormatRgba16 = 10,
226 SpvImageFormatRgb10A2 = 11,
227 SpvImageFormatRg16 = 12,
228 SpvImageFormatRg8 = 13,
229 SpvImageFormatR16 = 14,
230 SpvImageFormatR8 = 15,
231 SpvImageFormatRgba16Snorm = 16,
232 SpvImageFormatRg16Snorm = 17,
233 SpvImageFormatRg8Snorm = 18,
234 SpvImageFormatR16Snorm = 19,
235 SpvImageFormatR8Snorm = 20,
236 SpvImageFormatRgba32i = 21,
237 SpvImageFormatRgba16i = 22,
238 SpvImageFormatRgba8i = 23,
239 SpvImageFormatR32i = 24,
240 SpvImageFormatRg32i = 25,
241 SpvImageFormatRg16i = 26,
242 SpvImageFormatRg8i = 27,
243 SpvImageFormatR16i = 28,
244 SpvImageFormatR8i = 29,
245 SpvImageFormatRgba32ui = 30,
246 SpvImageFormatRgba16ui = 31,
247 SpvImageFormatRgba8ui = 32,
248 SpvImageFormatR32ui = 33,
249 SpvImageFormatRgb10a2ui = 34,
250 SpvImageFormatRg32ui = 35,
251 SpvImageFormatRg16ui = 36,
252 SpvImageFormatRg8ui = 37,
253 SpvImageFormatR16ui = 38,
254 SpvImageFormatR8ui = 39,
255 SpvImageFormatMax = 0x7fffffff,
256 } SpvImageFormat;
257
258 typedef enum SpvImageChannelOrder_ {
259 SpvImageChannelOrderR = 0,
260 SpvImageChannelOrderA = 1,
261 SpvImageChannelOrderRG = 2,
262 SpvImageChannelOrderRA = 3,
263 SpvImageChannelOrderRGB = 4,
264 SpvImageChannelOrderRGBA = 5,
265 SpvImageChannelOrderBGRA = 6,
266 SpvImageChannelOrderARGB = 7,
267 SpvImageChannelOrderIntensity = 8,
268 SpvImageChannelOrderLuminance = 9,
269 SpvImageChannelOrderRx = 10,
270 SpvImageChannelOrderRGx = 11,
271 SpvImageChannelOrderRGBx = 12,
272 SpvImageChannelOrderDepth = 13,
273 SpvImageChannelOrderDepthStencil = 14,
274 SpvImageChannelOrdersRGB = 15,
275 SpvImageChannelOrdersRGBx = 16,
276 SpvImageChannelOrdersRGBA = 17,
277 SpvImageChannelOrdersBGRA = 18,
278 SpvImageChannelOrderABGR = 19,
279 SpvImageChannelOrderMax = 0x7fffffff,
280 } SpvImageChannelOrder;
281
282 typedef enum SpvImageChannelDataType_ {
283 SpvImageChannelDataTypeSnormInt8 = 0,
284 SpvImageChannelDataTypeSnormInt16 = 1,
285 SpvImageChannelDataTypeUnormInt8 = 2,
286 SpvImageChannelDataTypeUnormInt16 = 3,
287 SpvImageChannelDataTypeUnormShort565 = 4,
288 SpvImageChannelDataTypeUnormShort555 = 5,
289 SpvImageChannelDataTypeUnormInt101010 = 6,
290 SpvImageChannelDataTypeSignedInt8 = 7,
291 SpvImageChannelDataTypeSignedInt16 = 8,
292 SpvImageChannelDataTypeSignedInt32 = 9,
293 SpvImageChannelDataTypeUnsignedInt8 = 10,
294 SpvImageChannelDataTypeUnsignedInt16 = 11,
295 SpvImageChannelDataTypeUnsignedInt32 = 12,
296 SpvImageChannelDataTypeHalfFloat = 13,
297 SpvImageChannelDataTypeFloat = 14,
298 SpvImageChannelDataTypeUnormInt24 = 15,
299 SpvImageChannelDataTypeUnormInt101010_2 = 16,
300 SpvImageChannelDataTypeMax = 0x7fffffff,
301 } SpvImageChannelDataType;
302
303 typedef enum SpvImageOperandsShift_ {
304 SpvImageOperandsBiasShift = 0,
305 SpvImageOperandsLodShift = 1,
306 SpvImageOperandsGradShift = 2,
307 SpvImageOperandsConstOffsetShift = 3,
308 SpvImageOperandsOffsetShift = 4,
309 SpvImageOperandsConstOffsetsShift = 5,
310 SpvImageOperandsSampleShift = 6,
311 SpvImageOperandsMinLodShift = 7,
312 SpvImageOperandsMakeTexelAvailableKHRShift = 8,
313 SpvImageOperandsMakeTexelVisibleKHRShift = 9,
314 SpvImageOperandsNonPrivateTexelKHRShift = 10,
315 SpvImageOperandsVolatileTexelKHRShift = 11,
316 SpvImageOperandsMax = 0x7fffffff,
317 } SpvImageOperandsShift;
318
319 typedef enum SpvImageOperandsMask_ {
320 SpvImageOperandsMaskNone = 0,
321 SpvImageOperandsBiasMask = 0x00000001,
322 SpvImageOperandsLodMask = 0x00000002,
323 SpvImageOperandsGradMask = 0x00000004,
324 SpvImageOperandsConstOffsetMask = 0x00000008,
325 SpvImageOperandsOffsetMask = 0x00000010,
326 SpvImageOperandsConstOffsetsMask = 0x00000020,
327 SpvImageOperandsSampleMask = 0x00000040,
328 SpvImageOperandsMinLodMask = 0x00000080,
329 SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
330 SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
331 SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
332 SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
333 } SpvImageOperandsMask;
334
335 typedef enum SpvFPFastMathModeShift_ {
336 SpvFPFastMathModeNotNaNShift = 0,
337 SpvFPFastMathModeNotInfShift = 1,
338 SpvFPFastMathModeNSZShift = 2,
339 SpvFPFastMathModeAllowRecipShift = 3,
340 SpvFPFastMathModeFastShift = 4,
341 SpvFPFastMathModeMax = 0x7fffffff,
342 } SpvFPFastMathModeShift;
343
344 typedef enum SpvFPFastMathModeMask_ {
345 SpvFPFastMathModeMaskNone = 0,
346 SpvFPFastMathModeNotNaNMask = 0x00000001,
347 SpvFPFastMathModeNotInfMask = 0x00000002,
348 SpvFPFastMathModeNSZMask = 0x00000004,
349 SpvFPFastMathModeAllowRecipMask = 0x00000008,
350 SpvFPFastMathModeFastMask = 0x00000010,
351 } SpvFPFastMathModeMask;
352
353 typedef enum SpvFPRoundingMode_ {
354 SpvFPRoundingModeRTE = 0,
355 SpvFPRoundingModeRTZ = 1,
356 SpvFPRoundingModeRTP = 2,
357 SpvFPRoundingModeRTN = 3,
358 SpvFPRoundingModeMax = 0x7fffffff,
359 } SpvFPRoundingMode;
360
361 typedef enum SpvLinkageType_ {
362 SpvLinkageTypeExport = 0,
363 SpvLinkageTypeImport = 1,
364 SpvLinkageTypeMax = 0x7fffffff,
365 } SpvLinkageType;
366
367 typedef enum SpvAccessQualifier_ {
368 SpvAccessQualifierReadOnly = 0,
369 SpvAccessQualifierWriteOnly = 1,
370 SpvAccessQualifierReadWrite = 2,
371 SpvAccessQualifierMax = 0x7fffffff,
372 } SpvAccessQualifier;
373
374 typedef enum SpvFunctionParameterAttribute_ {
375 SpvFunctionParameterAttributeZext = 0,
376 SpvFunctionParameterAttributeSext = 1,
377 SpvFunctionParameterAttributeByVal = 2,
378 SpvFunctionParameterAttributeSret = 3,
379 SpvFunctionParameterAttributeNoAlias = 4,
380 SpvFunctionParameterAttributeNoCapture = 5,
381 SpvFunctionParameterAttributeNoWrite = 6,
382 SpvFunctionParameterAttributeNoReadWrite = 7,
383 SpvFunctionParameterAttributeMax = 0x7fffffff,
384 } SpvFunctionParameterAttribute;
385
386 typedef enum SpvDecoration_ {
387 SpvDecorationRelaxedPrecision = 0,
388 SpvDecorationSpecId = 1,
389 SpvDecorationBlock = 2,
390 SpvDecorationBufferBlock = 3,
391 SpvDecorationRowMajor = 4,
392 SpvDecorationColMajor = 5,
393 SpvDecorationArrayStride = 6,
394 SpvDecorationMatrixStride = 7,
395 SpvDecorationGLSLShared = 8,
396 SpvDecorationGLSLPacked = 9,
397 SpvDecorationCPacked = 10,
398 SpvDecorationBuiltIn = 11,
399 SpvDecorationNoPerspective = 13,
400 SpvDecorationFlat = 14,
401 SpvDecorationPatch = 15,
402 SpvDecorationCentroid = 16,
403 SpvDecorationSample = 17,
404 SpvDecorationInvariant = 18,
405 SpvDecorationRestrict = 19,
406 SpvDecorationAliased = 20,
407 SpvDecorationVolatile = 21,
408 SpvDecorationConstant = 22,
409 SpvDecorationCoherent = 23,
410 SpvDecorationNonWritable = 24,
411 SpvDecorationNonReadable = 25,
412 SpvDecorationUniform = 26,
413 SpvDecorationSaturatedConversion = 28,
414 SpvDecorationStream = 29,
415 SpvDecorationLocation = 30,
416 SpvDecorationComponent = 31,
417 SpvDecorationIndex = 32,
418 SpvDecorationBinding = 33,
419 SpvDecorationDescriptorSet = 34,
420 SpvDecorationOffset = 35,
421 SpvDecorationXfbBuffer = 36,
422 SpvDecorationXfbStride = 37,
423 SpvDecorationFuncParamAttr = 38,
424 SpvDecorationFPRoundingMode = 39,
425 SpvDecorationFPFastMathMode = 40,
426 SpvDecorationLinkageAttributes = 41,
427 SpvDecorationNoContraction = 42,
428 SpvDecorationInputAttachmentIndex = 43,
429 SpvDecorationAlignment = 44,
430 SpvDecorationMaxByteOffset = 45,
431 SpvDecorationAlignmentId = 46,
432 SpvDecorationMaxByteOffsetId = 47,
433 SpvDecorationNoSignedWrap = 4469,
434 SpvDecorationNoUnsignedWrap = 4470,
435 SpvDecorationExplicitInterpAMD = 4999,
436 SpvDecorationOverrideCoverageNV = 5248,
437 SpvDecorationPassthroughNV = 5250,
438 SpvDecorationViewportRelativeNV = 5252,
439 SpvDecorationSecondaryViewportRelativeNV = 5256,
440 SpvDecorationPerPrimitiveNV = 5271,
441 SpvDecorationPerViewNV = 5272,
442 SpvDecorationPerTaskNV = 5273,
443 SpvDecorationPerVertexNV = 5285,
444 SpvDecorationNonUniformEXT = 5300,
445 SpvDecorationRestrictPointerEXT = 5355,
446 SpvDecorationAliasedPointerEXT = 5356,
447 SpvDecorationHlslCounterBufferGOOGLE = 5634,
448 SpvDecorationHlslSemanticGOOGLE = 5635,
449 SpvDecorationMax = 0x7fffffff,
450 } SpvDecoration;
451
452 typedef enum SpvBuiltIn_ {
453 SpvBuiltInPosition = 0,
454 SpvBuiltInPointSize = 1,
455 SpvBuiltInClipDistance = 3,
456 SpvBuiltInCullDistance = 4,
457 SpvBuiltInVertexId = 5,
458 SpvBuiltInInstanceId = 6,
459 SpvBuiltInPrimitiveId = 7,
460 SpvBuiltInInvocationId = 8,
461 SpvBuiltInLayer = 9,
462 SpvBuiltInViewportIndex = 10,
463 SpvBuiltInTessLevelOuter = 11,
464 SpvBuiltInTessLevelInner = 12,
465 SpvBuiltInTessCoord = 13,
466 SpvBuiltInPatchVertices = 14,
467 SpvBuiltInFragCoord = 15,
468 SpvBuiltInPointCoord = 16,
469 SpvBuiltInFrontFacing = 17,
470 SpvBuiltInSampleId = 18,
471 SpvBuiltInSamplePosition = 19,
472 SpvBuiltInSampleMask = 20,
473 SpvBuiltInFragDepth = 22,
474 SpvBuiltInHelperInvocation = 23,
475 SpvBuiltInNumWorkgroups = 24,
476 SpvBuiltInWorkgroupSize = 25,
477 SpvBuiltInWorkgroupId = 26,
478 SpvBuiltInLocalInvocationId = 27,
479 SpvBuiltInGlobalInvocationId = 28,
480 SpvBuiltInLocalInvocationIndex = 29,
481 SpvBuiltInWorkDim = 30,
482 SpvBuiltInGlobalSize = 31,
483 SpvBuiltInEnqueuedWorkgroupSize = 32,
484 SpvBuiltInGlobalOffset = 33,
485 SpvBuiltInGlobalLinearId = 34,
486 SpvBuiltInSubgroupSize = 36,
487 SpvBuiltInSubgroupMaxSize = 37,
488 SpvBuiltInNumSubgroups = 38,
489 SpvBuiltInNumEnqueuedSubgroups = 39,
490 SpvBuiltInSubgroupId = 40,
491 SpvBuiltInSubgroupLocalInvocationId = 41,
492 SpvBuiltInVertexIndex = 42,
493 SpvBuiltInInstanceIndex = 43,
494 SpvBuiltInSubgroupEqMask = 4416,
495 SpvBuiltInSubgroupEqMaskKHR = 4416,
496 SpvBuiltInSubgroupGeMask = 4417,
497 SpvBuiltInSubgroupGeMaskKHR = 4417,
498 SpvBuiltInSubgroupGtMask = 4418,
499 SpvBuiltInSubgroupGtMaskKHR = 4418,
500 SpvBuiltInSubgroupLeMask = 4419,
501 SpvBuiltInSubgroupLeMaskKHR = 4419,
502 SpvBuiltInSubgroupLtMask = 4420,
503 SpvBuiltInSubgroupLtMaskKHR = 4420,
504 SpvBuiltInBaseVertex = 4424,
505 SpvBuiltInBaseInstance = 4425,
506 SpvBuiltInDrawIndex = 4426,
507 SpvBuiltInDeviceIndex = 4438,
508 SpvBuiltInViewIndex = 4440,
509 SpvBuiltInBaryCoordNoPerspAMD = 4992,
510 SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
511 SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
512 SpvBuiltInBaryCoordSmoothAMD = 4995,
513 SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
514 SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
515 SpvBuiltInBaryCoordPullModelAMD = 4998,
516 SpvBuiltInFragStencilRefEXT = 5014,
517 SpvBuiltInViewportMaskNV = 5253,
518 SpvBuiltInSecondaryPositionNV = 5257,
519 SpvBuiltInSecondaryViewportMaskNV = 5258,
520 SpvBuiltInPositionPerViewNV = 5261,
521 SpvBuiltInViewportMaskPerViewNV = 5262,
522 SpvBuiltInFullyCoveredEXT = 5264,
523 SpvBuiltInTaskCountNV = 5274,
524 SpvBuiltInPrimitiveCountNV = 5275,
525 SpvBuiltInPrimitiveIndicesNV = 5276,
526 SpvBuiltInClipDistancePerViewNV = 5277,
527 SpvBuiltInCullDistancePerViewNV = 5278,
528 SpvBuiltInLayerPerViewNV = 5279,
529 SpvBuiltInMeshViewCountNV = 5280,
530 SpvBuiltInMeshViewIndicesNV = 5281,
531 SpvBuiltInBaryCoordNV = 5286,
532 SpvBuiltInBaryCoordNoPerspNV = 5287,
533 SpvBuiltInFragSizeEXT = 5292,
534 SpvBuiltInFragmentSizeNV = 5292,
535 SpvBuiltInFragInvocationCountEXT = 5293,
536 SpvBuiltInInvocationsPerPixelNV = 5293,
537 SpvBuiltInLaunchIdNV = 5319,
538 SpvBuiltInLaunchSizeNV = 5320,
539 SpvBuiltInWorldRayOriginNV = 5321,
540 SpvBuiltInWorldRayDirectionNV = 5322,
541 SpvBuiltInObjectRayOriginNV = 5323,
542 SpvBuiltInObjectRayDirectionNV = 5324,
543 SpvBuiltInRayTminNV = 5325,
544 SpvBuiltInRayTmaxNV = 5326,
545 SpvBuiltInInstanceCustomIndexNV = 5327,
546 SpvBuiltInObjectToWorldNV = 5330,
547 SpvBuiltInWorldToObjectNV = 5331,
548 SpvBuiltInHitTNV = 5332,
549 SpvBuiltInHitKindNV = 5333,
550 SpvBuiltInIncomingRayFlagsNV = 5351,
551 SpvBuiltInMax = 0x7fffffff,
552 } SpvBuiltIn;
553
554 typedef enum SpvSelectionControlShift_ {
555 SpvSelectionControlFlattenShift = 0,
556 SpvSelectionControlDontFlattenShift = 1,
557 SpvSelectionControlMax = 0x7fffffff,
558 } SpvSelectionControlShift;
559
560 typedef enum SpvSelectionControlMask_ {
561 SpvSelectionControlMaskNone = 0,
562 SpvSelectionControlFlattenMask = 0x00000001,
563 SpvSelectionControlDontFlattenMask = 0x00000002,
564 } SpvSelectionControlMask;
565
566 typedef enum SpvLoopControlShift_ {
567 SpvLoopControlUnrollShift = 0,
568 SpvLoopControlDontUnrollShift = 1,
569 SpvLoopControlDependencyInfiniteShift = 2,
570 SpvLoopControlDependencyLengthShift = 3,
571 SpvLoopControlMax = 0x7fffffff,
572 } SpvLoopControlShift;
573
574 typedef enum SpvLoopControlMask_ {
575 SpvLoopControlMaskNone = 0,
576 SpvLoopControlUnrollMask = 0x00000001,
577 SpvLoopControlDontUnrollMask = 0x00000002,
578 SpvLoopControlDependencyInfiniteMask = 0x00000004,
579 SpvLoopControlDependencyLengthMask = 0x00000008,
580 } SpvLoopControlMask;
581
582 typedef enum SpvFunctionControlShift_ {
583 SpvFunctionControlInlineShift = 0,
584 SpvFunctionControlDontInlineShift = 1,
585 SpvFunctionControlPureShift = 2,
586 SpvFunctionControlConstShift = 3,
587 SpvFunctionControlMax = 0x7fffffff,
588 } SpvFunctionControlShift;
589
590 typedef enum SpvFunctionControlMask_ {
591 SpvFunctionControlMaskNone = 0,
592 SpvFunctionControlInlineMask = 0x00000001,
593 SpvFunctionControlDontInlineMask = 0x00000002,
594 SpvFunctionControlPureMask = 0x00000004,
595 SpvFunctionControlConstMask = 0x00000008,
596 } SpvFunctionControlMask;
597
598 typedef enum SpvMemorySemanticsShift_ {
599 SpvMemorySemanticsAcquireShift = 1,
600 SpvMemorySemanticsReleaseShift = 2,
601 SpvMemorySemanticsAcquireReleaseShift = 3,
602 SpvMemorySemanticsSequentiallyConsistentShift = 4,
603 SpvMemorySemanticsUniformMemoryShift = 6,
604 SpvMemorySemanticsSubgroupMemoryShift = 7,
605 SpvMemorySemanticsWorkgroupMemoryShift = 8,
606 SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
607 SpvMemorySemanticsAtomicCounterMemoryShift = 10,
608 SpvMemorySemanticsImageMemoryShift = 11,
609 SpvMemorySemanticsOutputMemoryKHRShift = 12,
610 SpvMemorySemanticsMakeAvailableKHRShift = 13,
611 SpvMemorySemanticsMakeVisibleKHRShift = 14,
612 SpvMemorySemanticsMax = 0x7fffffff,
613 } SpvMemorySemanticsShift;
614
615 typedef enum SpvMemorySemanticsMask_ {
616 SpvMemorySemanticsMaskNone = 0,
617 SpvMemorySemanticsAcquireMask = 0x00000002,
618 SpvMemorySemanticsReleaseMask = 0x00000004,
619 SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
620 SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
621 SpvMemorySemanticsUniformMemoryMask = 0x00000040,
622 SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
623 SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
624 SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
625 SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
626 SpvMemorySemanticsImageMemoryMask = 0x00000800,
627 SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
628 SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
629 SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
630 } SpvMemorySemanticsMask;
631
632 typedef enum SpvMemoryAccessShift_ {
633 SpvMemoryAccessVolatileShift = 0,
634 SpvMemoryAccessAlignedShift = 1,
635 SpvMemoryAccessNontemporalShift = 2,
636 SpvMemoryAccessMakePointerAvailableKHRShift = 3,
637 SpvMemoryAccessMakePointerVisibleKHRShift = 4,
638 SpvMemoryAccessNonPrivatePointerKHRShift = 5,
639 SpvMemoryAccessMax = 0x7fffffff,
640 } SpvMemoryAccessShift;
641
642 typedef enum SpvMemoryAccessMask_ {
643 SpvMemoryAccessMaskNone = 0,
644 SpvMemoryAccessVolatileMask = 0x00000001,
645 SpvMemoryAccessAlignedMask = 0x00000002,
646 SpvMemoryAccessNontemporalMask = 0x00000004,
647 SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
648 SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
649 SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
650 } SpvMemoryAccessMask;
651
652 typedef enum SpvScope_ {
653 SpvScopeCrossDevice = 0,
654 SpvScopeDevice = 1,
655 SpvScopeWorkgroup = 2,
656 SpvScopeSubgroup = 3,
657 SpvScopeInvocation = 4,
658 SpvScopeQueueFamilyKHR = 5,
659 SpvScopeMax = 0x7fffffff,
660 } SpvScope;
661
662 typedef enum SpvGroupOperation_ {
663 SpvGroupOperationReduce = 0,
664 SpvGroupOperationInclusiveScan = 1,
665 SpvGroupOperationExclusiveScan = 2,
666 SpvGroupOperationClusteredReduce = 3,
667 SpvGroupOperationPartitionedReduceNV = 6,
668 SpvGroupOperationPartitionedInclusiveScanNV = 7,
669 SpvGroupOperationPartitionedExclusiveScanNV = 8,
670 SpvGroupOperationMax = 0x7fffffff,
671 } SpvGroupOperation;
672
673 typedef enum SpvKernelEnqueueFlags_ {
674 SpvKernelEnqueueFlagsNoWait = 0,
675 SpvKernelEnqueueFlagsWaitKernel = 1,
676 SpvKernelEnqueueFlagsWaitWorkGroup = 2,
677 SpvKernelEnqueueFlagsMax = 0x7fffffff,
678 } SpvKernelEnqueueFlags;
679
680 typedef enum SpvKernelProfilingInfoShift_ {
681 SpvKernelProfilingInfoCmdExecTimeShift = 0,
682 SpvKernelProfilingInfoMax = 0x7fffffff,
683 } SpvKernelProfilingInfoShift;
684
685 typedef enum SpvKernelProfilingInfoMask_ {
686 SpvKernelProfilingInfoMaskNone = 0,
687 SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
688 } SpvKernelProfilingInfoMask;
689
690 typedef enum SpvCapability_ {
691 SpvCapabilityMatrix = 0,
692 SpvCapabilityShader = 1,
693 SpvCapabilityGeometry = 2,
694 SpvCapabilityTessellation = 3,
695 SpvCapabilityAddresses = 4,
696 SpvCapabilityLinkage = 5,
697 SpvCapabilityKernel = 6,
698 SpvCapabilityVector16 = 7,
699 SpvCapabilityFloat16Buffer = 8,
700 SpvCapabilityFloat16 = 9,
701 SpvCapabilityFloat64 = 10,
702 SpvCapabilityInt64 = 11,
703 SpvCapabilityInt64Atomics = 12,
704 SpvCapabilityImageBasic = 13,
705 SpvCapabilityImageReadWrite = 14,
706 SpvCapabilityImageMipmap = 15,
707 SpvCapabilityPipes = 17,
708 SpvCapabilityGroups = 18,
709 SpvCapabilityDeviceEnqueue = 19,
710 SpvCapabilityLiteralSampler = 20,
711 SpvCapabilityAtomicStorage = 21,
712 SpvCapabilityInt16 = 22,
713 SpvCapabilityTessellationPointSize = 23,
714 SpvCapabilityGeometryPointSize = 24,
715 SpvCapabilityImageGatherExtended = 25,
716 SpvCapabilityStorageImageMultisample = 27,
717 SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
718 SpvCapabilitySampledImageArrayDynamicIndexing = 29,
719 SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
720 SpvCapabilityStorageImageArrayDynamicIndexing = 31,
721 SpvCapabilityClipDistance = 32,
722 SpvCapabilityCullDistance = 33,
723 SpvCapabilityImageCubeArray = 34,
724 SpvCapabilitySampleRateShading = 35,
725 SpvCapabilityImageRect = 36,
726 SpvCapabilitySampledRect = 37,
727 SpvCapabilityGenericPointer = 38,
728 SpvCapabilityInt8 = 39,
729 SpvCapabilityInputAttachment = 40,
730 SpvCapabilitySparseResidency = 41,
731 SpvCapabilityMinLod = 42,
732 SpvCapabilitySampled1D = 43,
733 SpvCapabilityImage1D = 44,
734 SpvCapabilitySampledCubeArray = 45,
735 SpvCapabilitySampledBuffer = 46,
736 SpvCapabilityImageBuffer = 47,
737 SpvCapabilityImageMSArray = 48,
738 SpvCapabilityStorageImageExtendedFormats = 49,
739 SpvCapabilityImageQuery = 50,
740 SpvCapabilityDerivativeControl = 51,
741 SpvCapabilityInterpolationFunction = 52,
742 SpvCapabilityTransformFeedback = 53,
743 SpvCapabilityGeometryStreams = 54,
744 SpvCapabilityStorageImageReadWithoutFormat = 55,
745 SpvCapabilityStorageImageWriteWithoutFormat = 56,
746 SpvCapabilityMultiViewport = 57,
747 SpvCapabilitySubgroupDispatch = 58,
748 SpvCapabilityNamedBarrier = 59,
749 SpvCapabilityPipeStorage = 60,
750 SpvCapabilityGroupNonUniform = 61,
751 SpvCapabilityGroupNonUniformVote = 62,
752 SpvCapabilityGroupNonUniformArithmetic = 63,
753 SpvCapabilityGroupNonUniformBallot = 64,
754 SpvCapabilityGroupNonUniformShuffle = 65,
755 SpvCapabilityGroupNonUniformShuffleRelative = 66,
756 SpvCapabilityGroupNonUniformClustered = 67,
757 SpvCapabilityGroupNonUniformQuad = 68,
758 SpvCapabilitySubgroupBallotKHR = 4423,
759 SpvCapabilityDrawParameters = 4427,
760 SpvCapabilitySubgroupVoteKHR = 4431,
761 SpvCapabilityStorageBuffer16BitAccess = 4433,
762 SpvCapabilityStorageUniformBufferBlock16 = 4433,
763 SpvCapabilityStorageUniform16 = 4434,
764 SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
765 SpvCapabilityStoragePushConstant16 = 4435,
766 SpvCapabilityStorageInputOutput16 = 4436,
767 SpvCapabilityDeviceGroup = 4437,
768 SpvCapabilityMultiView = 4439,
769 SpvCapabilityVariablePointersStorageBuffer = 4441,
770 SpvCapabilityVariablePointers = 4442,
771 SpvCapabilityAtomicStorageOps = 4445,
772 SpvCapabilitySampleMaskPostDepthCoverage = 4447,
773 SpvCapabilityStorageBuffer8BitAccess = 4448,
774 SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
775 SpvCapabilityStoragePushConstant8 = 4450,
776 SpvCapabilityDenormPreserve = 4464,
777 SpvCapabilityDenormFlushToZero = 4465,
778 SpvCapabilitySignedZeroInfNanPreserve = 4466,
779 SpvCapabilityRoundingModeRTE = 4467,
780 SpvCapabilityRoundingModeRTZ = 4468,
781 SpvCapabilityFloat16ImageAMD = 5008,
782 SpvCapabilityImageGatherBiasLodAMD = 5009,
783 SpvCapabilityFragmentMaskAMD = 5010,
784 SpvCapabilityStencilExportEXT = 5013,
785 SpvCapabilityImageReadWriteLodAMD = 5015,
786 SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
787 SpvCapabilityGeometryShaderPassthroughNV = 5251,
788 SpvCapabilityShaderViewportIndexLayerEXT = 5254,
789 SpvCapabilityShaderViewportIndexLayerNV = 5254,
790 SpvCapabilityShaderViewportMaskNV = 5255,
791 SpvCapabilityShaderStereoViewNV = 5259,
792 SpvCapabilityPerViewAttributesNV = 5260,
793 SpvCapabilityFragmentFullyCoveredEXT = 5265,
794 SpvCapabilityMeshShadingNV = 5266,
795 SpvCapabilityImageFootprintNV = 5282,
796 SpvCapabilityFragmentBarycentricNV = 5284,
797 SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
798 SpvCapabilityFragmentDensityEXT = 5291,
799 SpvCapabilityShadingRateNV = 5291,
800 SpvCapabilityGroupNonUniformPartitionedNV = 5297,
801 SpvCapabilityShaderNonUniformEXT = 5301,
802 SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
803 SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
804 SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
805 SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
806 SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
807 SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
808 SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
809 SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
810 SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
811 SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
812 SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
813 SpvCapabilityRayTracingNV = 5340,
814 SpvCapabilityVulkanMemoryModelKHR = 5345,
815 SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
816 SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
817 SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
818 SpvCapabilitySubgroupShuffleINTEL = 5568,
819 SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
820 SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
821 SpvCapabilityMax = 0x7fffffff,
822 } SpvCapability;
823
824 typedef enum SpvOp_ {
825 SpvOpNop = 0,
826 SpvOpUndef = 1,
827 SpvOpSourceContinued = 2,
828 SpvOpSource = 3,
829 SpvOpSourceExtension = 4,
830 SpvOpName = 5,
831 SpvOpMemberName = 6,
832 SpvOpString = 7,
833 SpvOpLine = 8,
834 SpvOpExtension = 10,
835 SpvOpExtInstImport = 11,
836 SpvOpExtInst = 12,
837 SpvOpMemoryModel = 14,
838 SpvOpEntryPoint = 15,
839 SpvOpExecutionMode = 16,
840 SpvOpCapability = 17,
841 SpvOpTypeVoid = 19,
842 SpvOpTypeBool = 20,
843 SpvOpTypeInt = 21,
844 SpvOpTypeFloat = 22,
845 SpvOpTypeVector = 23,
846 SpvOpTypeMatrix = 24,
847 SpvOpTypeImage = 25,
848 SpvOpTypeSampler = 26,
849 SpvOpTypeSampledImage = 27,
850 SpvOpTypeArray = 28,
851 SpvOpTypeRuntimeArray = 29,
852 SpvOpTypeStruct = 30,
853 SpvOpTypeOpaque = 31,
854 SpvOpTypePointer = 32,
855 SpvOpTypeFunction = 33,
856 SpvOpTypeEvent = 34,
857 SpvOpTypeDeviceEvent = 35,
858 SpvOpTypeReserveId = 36,
859 SpvOpTypeQueue = 37,
860 SpvOpTypePipe = 38,
861 SpvOpTypeForwardPointer = 39,
862 SpvOpConstantTrue = 41,
863 SpvOpConstantFalse = 42,
864 SpvOpConstant = 43,
865 SpvOpConstantComposite = 44,
866 SpvOpConstantSampler = 45,
867 SpvOpConstantNull = 46,
868 SpvOpSpecConstantTrue = 48,
869 SpvOpSpecConstantFalse = 49,
870 SpvOpSpecConstant = 50,
871 SpvOpSpecConstantComposite = 51,
872 SpvOpSpecConstantOp = 52,
873 SpvOpFunction = 54,
874 SpvOpFunctionParameter = 55,
875 SpvOpFunctionEnd = 56,
876 SpvOpFunctionCall = 57,
877 SpvOpVariable = 59,
878 SpvOpImageTexelPointer = 60,
879 SpvOpLoad = 61,
880 SpvOpStore = 62,
881 SpvOpCopyMemory = 63,
882 SpvOpCopyMemorySized = 64,
883 SpvOpAccessChain = 65,
884 SpvOpInBoundsAccessChain = 66,
885 SpvOpPtrAccessChain = 67,
886 SpvOpArrayLength = 68,
887 SpvOpGenericPtrMemSemantics = 69,
888 SpvOpInBoundsPtrAccessChain = 70,
889 SpvOpDecorate = 71,
890 SpvOpMemberDecorate = 72,
891 SpvOpDecorationGroup = 73,
892 SpvOpGroupDecorate = 74,
893 SpvOpGroupMemberDecorate = 75,
894 SpvOpVectorExtractDynamic = 77,
895 SpvOpVectorInsertDynamic = 78,
896 SpvOpVectorShuffle = 79,
897 SpvOpCompositeConstruct = 80,
898 SpvOpCompositeExtract = 81,
899 SpvOpCompositeInsert = 82,
900 SpvOpCopyObject = 83,
901 SpvOpTranspose = 84,
902 SpvOpSampledImage = 86,
903 SpvOpImageSampleImplicitLod = 87,
904 SpvOpImageSampleExplicitLod = 88,
905 SpvOpImageSampleDrefImplicitLod = 89,
906 SpvOpImageSampleDrefExplicitLod = 90,
907 SpvOpImageSampleProjImplicitLod = 91,
908 SpvOpImageSampleProjExplicitLod = 92,
909 SpvOpImageSampleProjDrefImplicitLod = 93,
910 SpvOpImageSampleProjDrefExplicitLod = 94,
911 SpvOpImageFetch = 95,
912 SpvOpImageGather = 96,
913 SpvOpImageDrefGather = 97,
914 SpvOpImageRead = 98,
915 SpvOpImageWrite = 99,
916 SpvOpImage = 100,
917 SpvOpImageQueryFormat = 101,
918 SpvOpImageQueryOrder = 102,
919 SpvOpImageQuerySizeLod = 103,
920 SpvOpImageQuerySize = 104,
921 SpvOpImageQueryLod = 105,
922 SpvOpImageQueryLevels = 106,
923 SpvOpImageQuerySamples = 107,
924 SpvOpConvertFToU = 109,
925 SpvOpConvertFToS = 110,
926 SpvOpConvertSToF = 111,
927 SpvOpConvertUToF = 112,
928 SpvOpUConvert = 113,
929 SpvOpSConvert = 114,
930 SpvOpFConvert = 115,
931 SpvOpQuantizeToF16 = 116,
932 SpvOpConvertPtrToU = 117,
933 SpvOpSatConvertSToU = 118,
934 SpvOpSatConvertUToS = 119,
935 SpvOpConvertUToPtr = 120,
936 SpvOpPtrCastToGeneric = 121,
937 SpvOpGenericCastToPtr = 122,
938 SpvOpGenericCastToPtrExplicit = 123,
939 SpvOpBitcast = 124,
940 SpvOpSNegate = 126,
941 SpvOpFNegate = 127,
942 SpvOpIAdd = 128,
943 SpvOpFAdd = 129,
944 SpvOpISub = 130,
945 SpvOpFSub = 131,
946 SpvOpIMul = 132,
947 SpvOpFMul = 133,
948 SpvOpUDiv = 134,
949 SpvOpSDiv = 135,
950 SpvOpFDiv = 136,
951 SpvOpUMod = 137,
952 SpvOpSRem = 138,
953 SpvOpSMod = 139,
954 SpvOpFRem = 140,
955 SpvOpFMod = 141,
956 SpvOpVectorTimesScalar = 142,
957 SpvOpMatrixTimesScalar = 143,
958 SpvOpVectorTimesMatrix = 144,
959 SpvOpMatrixTimesVector = 145,
960 SpvOpMatrixTimesMatrix = 146,
961 SpvOpOuterProduct = 147,
962 SpvOpDot = 148,
963 SpvOpIAddCarry = 149,
964 SpvOpISubBorrow = 150,
965 SpvOpUMulExtended = 151,
966 SpvOpSMulExtended = 152,
967 SpvOpAny = 154,
968 SpvOpAll = 155,
969 SpvOpIsNan = 156,
970 SpvOpIsInf = 157,
971 SpvOpIsFinite = 158,
972 SpvOpIsNormal = 159,
973 SpvOpSignBitSet = 160,
974 SpvOpLessOrGreater = 161,
975 SpvOpOrdered = 162,
976 SpvOpUnordered = 163,
977 SpvOpLogicalEqual = 164,
978 SpvOpLogicalNotEqual = 165,
979 SpvOpLogicalOr = 166,
980 SpvOpLogicalAnd = 167,
981 SpvOpLogicalNot = 168,
982 SpvOpSelect = 169,
983 SpvOpIEqual = 170,
984 SpvOpINotEqual = 171,
985 SpvOpUGreaterThan = 172,
986 SpvOpSGreaterThan = 173,
987 SpvOpUGreaterThanEqual = 174,
988 SpvOpSGreaterThanEqual = 175,
989 SpvOpULessThan = 176,
990 SpvOpSLessThan = 177,
991 SpvOpULessThanEqual = 178,
992 SpvOpSLessThanEqual = 179,
993 SpvOpFOrdEqual = 180,
994 SpvOpFUnordEqual = 181,
995 SpvOpFOrdNotEqual = 182,
996 SpvOpFUnordNotEqual = 183,
997 SpvOpFOrdLessThan = 184,
998 SpvOpFUnordLessThan = 185,
999 SpvOpFOrdGreaterThan = 186,
1000 SpvOpFUnordGreaterThan = 187,
1001 SpvOpFOrdLessThanEqual = 188,
1002 SpvOpFUnordLessThanEqual = 189,
1003 SpvOpFOrdGreaterThanEqual = 190,
1004 SpvOpFUnordGreaterThanEqual = 191,
1005 SpvOpShiftRightLogical = 194,
1006 SpvOpShiftRightArithmetic = 195,
1007 SpvOpShiftLeftLogical = 196,
1008 SpvOpBitwiseOr = 197,
1009 SpvOpBitwiseXor = 198,
1010 SpvOpBitwiseAnd = 199,
1011 SpvOpNot = 200,
1012 SpvOpBitFieldInsert = 201,
1013 SpvOpBitFieldSExtract = 202,
1014 SpvOpBitFieldUExtract = 203,
1015 SpvOpBitReverse = 204,
1016 SpvOpBitCount = 205,
1017 SpvOpDPdx = 207,
1018 SpvOpDPdy = 208,
1019 SpvOpFwidth = 209,
1020 SpvOpDPdxFine = 210,
1021 SpvOpDPdyFine = 211,
1022 SpvOpFwidthFine = 212,
1023 SpvOpDPdxCoarse = 213,
1024 SpvOpDPdyCoarse = 214,
1025 SpvOpFwidthCoarse = 215,
1026 SpvOpEmitVertex = 218,
1027 SpvOpEndPrimitive = 219,
1028 SpvOpEmitStreamVertex = 220,
1029 SpvOpEndStreamPrimitive = 221,
1030 SpvOpControlBarrier = 224,
1031 SpvOpMemoryBarrier = 225,
1032 SpvOpAtomicLoad = 227,
1033 SpvOpAtomicStore = 228,
1034 SpvOpAtomicExchange = 229,
1035 SpvOpAtomicCompareExchange = 230,
1036 SpvOpAtomicCompareExchangeWeak = 231,
1037 SpvOpAtomicIIncrement = 232,
1038 SpvOpAtomicIDecrement = 233,
1039 SpvOpAtomicIAdd = 234,
1040 SpvOpAtomicISub = 235,
1041 SpvOpAtomicSMin = 236,
1042 SpvOpAtomicUMin = 237,
1043 SpvOpAtomicSMax = 238,
1044 SpvOpAtomicUMax = 239,
1045 SpvOpAtomicAnd = 240,
1046 SpvOpAtomicOr = 241,
1047 SpvOpAtomicXor = 242,
1048 SpvOpPhi = 245,
1049 SpvOpLoopMerge = 246,
1050 SpvOpSelectionMerge = 247,
1051 SpvOpLabel = 248,
1052 SpvOpBranch = 249,
1053 SpvOpBranchConditional = 250,
1054 SpvOpSwitch = 251,
1055 SpvOpKill = 252,
1056 SpvOpReturn = 253,
1057 SpvOpReturnValue = 254,
1058 SpvOpUnreachable = 255,
1059 SpvOpLifetimeStart = 256,
1060 SpvOpLifetimeStop = 257,
1061 SpvOpGroupAsyncCopy = 259,
1062 SpvOpGroupWaitEvents = 260,
1063 SpvOpGroupAll = 261,
1064 SpvOpGroupAny = 262,
1065 SpvOpGroupBroadcast = 263,
1066 SpvOpGroupIAdd = 264,
1067 SpvOpGroupFAdd = 265,
1068 SpvOpGroupFMin = 266,
1069 SpvOpGroupUMin = 267,
1070 SpvOpGroupSMin = 268,
1071 SpvOpGroupFMax = 269,
1072 SpvOpGroupUMax = 270,
1073 SpvOpGroupSMax = 271,
1074 SpvOpReadPipe = 274,
1075 SpvOpWritePipe = 275,
1076 SpvOpReservedReadPipe = 276,
1077 SpvOpReservedWritePipe = 277,
1078 SpvOpReserveReadPipePackets = 278,
1079 SpvOpReserveWritePipePackets = 279,
1080 SpvOpCommitReadPipe = 280,
1081 SpvOpCommitWritePipe = 281,
1082 SpvOpIsValidReserveId = 282,
1083 SpvOpGetNumPipePackets = 283,
1084 SpvOpGetMaxPipePackets = 284,
1085 SpvOpGroupReserveReadPipePackets = 285,
1086 SpvOpGroupReserveWritePipePackets = 286,
1087 SpvOpGroupCommitReadPipe = 287,
1088 SpvOpGroupCommitWritePipe = 288,
1089 SpvOpEnqueueMarker = 291,
1090 SpvOpEnqueueKernel = 292,
1091 SpvOpGetKernelNDrangeSubGroupCount = 293,
1092 SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
1093 SpvOpGetKernelWorkGroupSize = 295,
1094 SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
1095 SpvOpRetainEvent = 297,
1096 SpvOpReleaseEvent = 298,
1097 SpvOpCreateUserEvent = 299,
1098 SpvOpIsValidEvent = 300,
1099 SpvOpSetUserEventStatus = 301,
1100 SpvOpCaptureEventProfilingInfo = 302,
1101 SpvOpGetDefaultQueue = 303,
1102 SpvOpBuildNDRange = 304,
1103 SpvOpImageSparseSampleImplicitLod = 305,
1104 SpvOpImageSparseSampleExplicitLod = 306,
1105 SpvOpImageSparseSampleDrefImplicitLod = 307,
1106 SpvOpImageSparseSampleDrefExplicitLod = 308,
1107 SpvOpImageSparseSampleProjImplicitLod = 309,
1108 SpvOpImageSparseSampleProjExplicitLod = 310,
1109 SpvOpImageSparseSampleProjDrefImplicitLod = 311,
1110 SpvOpImageSparseSampleProjDrefExplicitLod = 312,
1111 SpvOpImageSparseFetch = 313,
1112 SpvOpImageSparseGather = 314,
1113 SpvOpImageSparseDrefGather = 315,
1114 SpvOpImageSparseTexelsResident = 316,
1115 SpvOpNoLine = 317,
1116 SpvOpAtomicFlagTestAndSet = 318,
1117 SpvOpAtomicFlagClear = 319,
1118 SpvOpImageSparseRead = 320,
1119 SpvOpSizeOf = 321,
1120 SpvOpTypePipeStorage = 322,
1121 SpvOpConstantPipeStorage = 323,
1122 SpvOpCreatePipeFromPipeStorage = 324,
1123 SpvOpGetKernelLocalSizeForSubgroupCount = 325,
1124 SpvOpGetKernelMaxNumSubgroups = 326,
1125 SpvOpTypeNamedBarrier = 327,
1126 SpvOpNamedBarrierInitialize = 328,
1127 SpvOpMemoryNamedBarrier = 329,
1128 SpvOpModuleProcessed = 330,
1129 SpvOpExecutionModeId = 331,
1130 SpvOpDecorateId = 332,
1131 SpvOpGroupNonUniformElect = 333,
1132 SpvOpGroupNonUniformAll = 334,
1133 SpvOpGroupNonUniformAny = 335,
1134 SpvOpGroupNonUniformAllEqual = 336,
1135 SpvOpGroupNonUniformBroadcast = 337,
1136 SpvOpGroupNonUniformBroadcastFirst = 338,
1137 SpvOpGroupNonUniformBallot = 339,
1138 SpvOpGroupNonUniformInverseBallot = 340,
1139 SpvOpGroupNonUniformBallotBitExtract = 341,
1140 SpvOpGroupNonUniformBallotBitCount = 342,
1141 SpvOpGroupNonUniformBallotFindLSB = 343,
1142 SpvOpGroupNonUniformBallotFindMSB = 344,
1143 SpvOpGroupNonUniformShuffle = 345,
1144 SpvOpGroupNonUniformShuffleXor = 346,
1145 SpvOpGroupNonUniformShuffleUp = 347,
1146 SpvOpGroupNonUniformShuffleDown = 348,
1147 SpvOpGroupNonUniformIAdd = 349,
1148 SpvOpGroupNonUniformFAdd = 350,
1149 SpvOpGroupNonUniformIMul = 351,
1150 SpvOpGroupNonUniformFMul = 352,
1151 SpvOpGroupNonUniformSMin = 353,
1152 SpvOpGroupNonUniformUMin = 354,
1153 SpvOpGroupNonUniformFMin = 355,
1154 SpvOpGroupNonUniformSMax = 356,
1155 SpvOpGroupNonUniformUMax = 357,
1156 SpvOpGroupNonUniformFMax = 358,
1157 SpvOpGroupNonUniformBitwiseAnd = 359,
1158 SpvOpGroupNonUniformBitwiseOr = 360,
1159 SpvOpGroupNonUniformBitwiseXor = 361,
1160 SpvOpGroupNonUniformLogicalAnd = 362,
1161 SpvOpGroupNonUniformLogicalOr = 363,
1162 SpvOpGroupNonUniformLogicalXor = 364,
1163 SpvOpGroupNonUniformQuadBroadcast = 365,
1164 SpvOpGroupNonUniformQuadSwap = 366,
1165 SpvOpSubgroupBallotKHR = 4421,
1166 SpvOpSubgroupFirstInvocationKHR = 4422,
1167 SpvOpSubgroupAllKHR = 4428,
1168 SpvOpSubgroupAnyKHR = 4429,
1169 SpvOpSubgroupAllEqualKHR = 4430,
1170 SpvOpSubgroupReadInvocationKHR = 4432,
1171 SpvOpGroupIAddNonUniformAMD = 5000,
1172 SpvOpGroupFAddNonUniformAMD = 5001,
1173 SpvOpGroupFMinNonUniformAMD = 5002,
1174 SpvOpGroupUMinNonUniformAMD = 5003,
1175 SpvOpGroupSMinNonUniformAMD = 5004,
1176 SpvOpGroupFMaxNonUniformAMD = 5005,
1177 SpvOpGroupUMaxNonUniformAMD = 5006,
1178 SpvOpGroupSMaxNonUniformAMD = 5007,
1179 SpvOpFragmentMaskFetchAMD = 5011,
1180 SpvOpFragmentFetchAMD = 5012,
1181 SpvOpImageSampleFootprintNV = 5283,
1182 SpvOpGroupNonUniformPartitionNV = 5296,
1183 SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
1184 SpvOpReportIntersectionNV = 5334,
1185 SpvOpIgnoreIntersectionNV = 5335,
1186 SpvOpTerminateRayNV = 5336,
1187 SpvOpTraceNV = 5337,
1188 SpvOpTypeAccelerationStructureNV = 5341,
1189 SpvOpExecuteCallableNV = 5344,
1190 SpvOpSubgroupShuffleINTEL = 5571,
1191 SpvOpSubgroupShuffleDownINTEL = 5572,
1192 SpvOpSubgroupShuffleUpINTEL = 5573,
1193 SpvOpSubgroupShuffleXorINTEL = 5574,
1194 SpvOpSubgroupBlockReadINTEL = 5575,
1195 SpvOpSubgroupBlockWriteINTEL = 5576,
1196 SpvOpSubgroupImageBlockReadINTEL = 5577,
1197 SpvOpSubgroupImageBlockWriteINTEL = 5578,
1198 SpvOpDecorateStringGOOGLE = 5632,
1199 SpvOpMemberDecorateStringGOOGLE = 5633,
1200 SpvOpMax = 0x7fffffff,
1201 } SpvOp;
1202
1203 #endif // #ifndef spirv_H
1204