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     SpvCapabilityCooperativeMatrixNV = 5357,
819     SpvCapabilitySubgroupShuffleINTEL = 5568,
820     SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
821     SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
822     SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
823     SpvCapabilityMax = 0x7fffffff,
824 } SpvCapability;
825 
826 typedef enum SpvOp_ {
827     SpvOpNop = 0,
828     SpvOpUndef = 1,
829     SpvOpSourceContinued = 2,
830     SpvOpSource = 3,
831     SpvOpSourceExtension = 4,
832     SpvOpName = 5,
833     SpvOpMemberName = 6,
834     SpvOpString = 7,
835     SpvOpLine = 8,
836     SpvOpExtension = 10,
837     SpvOpExtInstImport = 11,
838     SpvOpExtInst = 12,
839     SpvOpMemoryModel = 14,
840     SpvOpEntryPoint = 15,
841     SpvOpExecutionMode = 16,
842     SpvOpCapability = 17,
843     SpvOpTypeVoid = 19,
844     SpvOpTypeBool = 20,
845     SpvOpTypeInt = 21,
846     SpvOpTypeFloat = 22,
847     SpvOpTypeVector = 23,
848     SpvOpTypeMatrix = 24,
849     SpvOpTypeImage = 25,
850     SpvOpTypeSampler = 26,
851     SpvOpTypeSampledImage = 27,
852     SpvOpTypeArray = 28,
853     SpvOpTypeRuntimeArray = 29,
854     SpvOpTypeStruct = 30,
855     SpvOpTypeOpaque = 31,
856     SpvOpTypePointer = 32,
857     SpvOpTypeFunction = 33,
858     SpvOpTypeEvent = 34,
859     SpvOpTypeDeviceEvent = 35,
860     SpvOpTypeReserveId = 36,
861     SpvOpTypeQueue = 37,
862     SpvOpTypePipe = 38,
863     SpvOpTypeForwardPointer = 39,
864     SpvOpConstantTrue = 41,
865     SpvOpConstantFalse = 42,
866     SpvOpConstant = 43,
867     SpvOpConstantComposite = 44,
868     SpvOpConstantSampler = 45,
869     SpvOpConstantNull = 46,
870     SpvOpSpecConstantTrue = 48,
871     SpvOpSpecConstantFalse = 49,
872     SpvOpSpecConstant = 50,
873     SpvOpSpecConstantComposite = 51,
874     SpvOpSpecConstantOp = 52,
875     SpvOpFunction = 54,
876     SpvOpFunctionParameter = 55,
877     SpvOpFunctionEnd = 56,
878     SpvOpFunctionCall = 57,
879     SpvOpVariable = 59,
880     SpvOpImageTexelPointer = 60,
881     SpvOpLoad = 61,
882     SpvOpStore = 62,
883     SpvOpCopyMemory = 63,
884     SpvOpCopyMemorySized = 64,
885     SpvOpAccessChain = 65,
886     SpvOpInBoundsAccessChain = 66,
887     SpvOpPtrAccessChain = 67,
888     SpvOpArrayLength = 68,
889     SpvOpGenericPtrMemSemantics = 69,
890     SpvOpInBoundsPtrAccessChain = 70,
891     SpvOpDecorate = 71,
892     SpvOpMemberDecorate = 72,
893     SpvOpDecorationGroup = 73,
894     SpvOpGroupDecorate = 74,
895     SpvOpGroupMemberDecorate = 75,
896     SpvOpVectorExtractDynamic = 77,
897     SpvOpVectorInsertDynamic = 78,
898     SpvOpVectorShuffle = 79,
899     SpvOpCompositeConstruct = 80,
900     SpvOpCompositeExtract = 81,
901     SpvOpCompositeInsert = 82,
902     SpvOpCopyObject = 83,
903     SpvOpTranspose = 84,
904     SpvOpSampledImage = 86,
905     SpvOpImageSampleImplicitLod = 87,
906     SpvOpImageSampleExplicitLod = 88,
907     SpvOpImageSampleDrefImplicitLod = 89,
908     SpvOpImageSampleDrefExplicitLod = 90,
909     SpvOpImageSampleProjImplicitLod = 91,
910     SpvOpImageSampleProjExplicitLod = 92,
911     SpvOpImageSampleProjDrefImplicitLod = 93,
912     SpvOpImageSampleProjDrefExplicitLod = 94,
913     SpvOpImageFetch = 95,
914     SpvOpImageGather = 96,
915     SpvOpImageDrefGather = 97,
916     SpvOpImageRead = 98,
917     SpvOpImageWrite = 99,
918     SpvOpImage = 100,
919     SpvOpImageQueryFormat = 101,
920     SpvOpImageQueryOrder = 102,
921     SpvOpImageQuerySizeLod = 103,
922     SpvOpImageQuerySize = 104,
923     SpvOpImageQueryLod = 105,
924     SpvOpImageQueryLevels = 106,
925     SpvOpImageQuerySamples = 107,
926     SpvOpConvertFToU = 109,
927     SpvOpConvertFToS = 110,
928     SpvOpConvertSToF = 111,
929     SpvOpConvertUToF = 112,
930     SpvOpUConvert = 113,
931     SpvOpSConvert = 114,
932     SpvOpFConvert = 115,
933     SpvOpQuantizeToF16 = 116,
934     SpvOpConvertPtrToU = 117,
935     SpvOpSatConvertSToU = 118,
936     SpvOpSatConvertUToS = 119,
937     SpvOpConvertUToPtr = 120,
938     SpvOpPtrCastToGeneric = 121,
939     SpvOpGenericCastToPtr = 122,
940     SpvOpGenericCastToPtrExplicit = 123,
941     SpvOpBitcast = 124,
942     SpvOpSNegate = 126,
943     SpvOpFNegate = 127,
944     SpvOpIAdd = 128,
945     SpvOpFAdd = 129,
946     SpvOpISub = 130,
947     SpvOpFSub = 131,
948     SpvOpIMul = 132,
949     SpvOpFMul = 133,
950     SpvOpUDiv = 134,
951     SpvOpSDiv = 135,
952     SpvOpFDiv = 136,
953     SpvOpUMod = 137,
954     SpvOpSRem = 138,
955     SpvOpSMod = 139,
956     SpvOpFRem = 140,
957     SpvOpFMod = 141,
958     SpvOpVectorTimesScalar = 142,
959     SpvOpMatrixTimesScalar = 143,
960     SpvOpVectorTimesMatrix = 144,
961     SpvOpMatrixTimesVector = 145,
962     SpvOpMatrixTimesMatrix = 146,
963     SpvOpOuterProduct = 147,
964     SpvOpDot = 148,
965     SpvOpIAddCarry = 149,
966     SpvOpISubBorrow = 150,
967     SpvOpUMulExtended = 151,
968     SpvOpSMulExtended = 152,
969     SpvOpAny = 154,
970     SpvOpAll = 155,
971     SpvOpIsNan = 156,
972     SpvOpIsInf = 157,
973     SpvOpIsFinite = 158,
974     SpvOpIsNormal = 159,
975     SpvOpSignBitSet = 160,
976     SpvOpLessOrGreater = 161,
977     SpvOpOrdered = 162,
978     SpvOpUnordered = 163,
979     SpvOpLogicalEqual = 164,
980     SpvOpLogicalNotEqual = 165,
981     SpvOpLogicalOr = 166,
982     SpvOpLogicalAnd = 167,
983     SpvOpLogicalNot = 168,
984     SpvOpSelect = 169,
985     SpvOpIEqual = 170,
986     SpvOpINotEqual = 171,
987     SpvOpUGreaterThan = 172,
988     SpvOpSGreaterThan = 173,
989     SpvOpUGreaterThanEqual = 174,
990     SpvOpSGreaterThanEqual = 175,
991     SpvOpULessThan = 176,
992     SpvOpSLessThan = 177,
993     SpvOpULessThanEqual = 178,
994     SpvOpSLessThanEqual = 179,
995     SpvOpFOrdEqual = 180,
996     SpvOpFUnordEqual = 181,
997     SpvOpFOrdNotEqual = 182,
998     SpvOpFUnordNotEqual = 183,
999     SpvOpFOrdLessThan = 184,
1000     SpvOpFUnordLessThan = 185,
1001     SpvOpFOrdGreaterThan = 186,
1002     SpvOpFUnordGreaterThan = 187,
1003     SpvOpFOrdLessThanEqual = 188,
1004     SpvOpFUnordLessThanEqual = 189,
1005     SpvOpFOrdGreaterThanEqual = 190,
1006     SpvOpFUnordGreaterThanEqual = 191,
1007     SpvOpShiftRightLogical = 194,
1008     SpvOpShiftRightArithmetic = 195,
1009     SpvOpShiftLeftLogical = 196,
1010     SpvOpBitwiseOr = 197,
1011     SpvOpBitwiseXor = 198,
1012     SpvOpBitwiseAnd = 199,
1013     SpvOpNot = 200,
1014     SpvOpBitFieldInsert = 201,
1015     SpvOpBitFieldSExtract = 202,
1016     SpvOpBitFieldUExtract = 203,
1017     SpvOpBitReverse = 204,
1018     SpvOpBitCount = 205,
1019     SpvOpDPdx = 207,
1020     SpvOpDPdy = 208,
1021     SpvOpFwidth = 209,
1022     SpvOpDPdxFine = 210,
1023     SpvOpDPdyFine = 211,
1024     SpvOpFwidthFine = 212,
1025     SpvOpDPdxCoarse = 213,
1026     SpvOpDPdyCoarse = 214,
1027     SpvOpFwidthCoarse = 215,
1028     SpvOpEmitVertex = 218,
1029     SpvOpEndPrimitive = 219,
1030     SpvOpEmitStreamVertex = 220,
1031     SpvOpEndStreamPrimitive = 221,
1032     SpvOpControlBarrier = 224,
1033     SpvOpMemoryBarrier = 225,
1034     SpvOpAtomicLoad = 227,
1035     SpvOpAtomicStore = 228,
1036     SpvOpAtomicExchange = 229,
1037     SpvOpAtomicCompareExchange = 230,
1038     SpvOpAtomicCompareExchangeWeak = 231,
1039     SpvOpAtomicIIncrement = 232,
1040     SpvOpAtomicIDecrement = 233,
1041     SpvOpAtomicIAdd = 234,
1042     SpvOpAtomicISub = 235,
1043     SpvOpAtomicSMin = 236,
1044     SpvOpAtomicUMin = 237,
1045     SpvOpAtomicSMax = 238,
1046     SpvOpAtomicUMax = 239,
1047     SpvOpAtomicAnd = 240,
1048     SpvOpAtomicOr = 241,
1049     SpvOpAtomicXor = 242,
1050     SpvOpPhi = 245,
1051     SpvOpLoopMerge = 246,
1052     SpvOpSelectionMerge = 247,
1053     SpvOpLabel = 248,
1054     SpvOpBranch = 249,
1055     SpvOpBranchConditional = 250,
1056     SpvOpSwitch = 251,
1057     SpvOpKill = 252,
1058     SpvOpReturn = 253,
1059     SpvOpReturnValue = 254,
1060     SpvOpUnreachable = 255,
1061     SpvOpLifetimeStart = 256,
1062     SpvOpLifetimeStop = 257,
1063     SpvOpGroupAsyncCopy = 259,
1064     SpvOpGroupWaitEvents = 260,
1065     SpvOpGroupAll = 261,
1066     SpvOpGroupAny = 262,
1067     SpvOpGroupBroadcast = 263,
1068     SpvOpGroupIAdd = 264,
1069     SpvOpGroupFAdd = 265,
1070     SpvOpGroupFMin = 266,
1071     SpvOpGroupUMin = 267,
1072     SpvOpGroupSMin = 268,
1073     SpvOpGroupFMax = 269,
1074     SpvOpGroupUMax = 270,
1075     SpvOpGroupSMax = 271,
1076     SpvOpReadPipe = 274,
1077     SpvOpWritePipe = 275,
1078     SpvOpReservedReadPipe = 276,
1079     SpvOpReservedWritePipe = 277,
1080     SpvOpReserveReadPipePackets = 278,
1081     SpvOpReserveWritePipePackets = 279,
1082     SpvOpCommitReadPipe = 280,
1083     SpvOpCommitWritePipe = 281,
1084     SpvOpIsValidReserveId = 282,
1085     SpvOpGetNumPipePackets = 283,
1086     SpvOpGetMaxPipePackets = 284,
1087     SpvOpGroupReserveReadPipePackets = 285,
1088     SpvOpGroupReserveWritePipePackets = 286,
1089     SpvOpGroupCommitReadPipe = 287,
1090     SpvOpGroupCommitWritePipe = 288,
1091     SpvOpEnqueueMarker = 291,
1092     SpvOpEnqueueKernel = 292,
1093     SpvOpGetKernelNDrangeSubGroupCount = 293,
1094     SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
1095     SpvOpGetKernelWorkGroupSize = 295,
1096     SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
1097     SpvOpRetainEvent = 297,
1098     SpvOpReleaseEvent = 298,
1099     SpvOpCreateUserEvent = 299,
1100     SpvOpIsValidEvent = 300,
1101     SpvOpSetUserEventStatus = 301,
1102     SpvOpCaptureEventProfilingInfo = 302,
1103     SpvOpGetDefaultQueue = 303,
1104     SpvOpBuildNDRange = 304,
1105     SpvOpImageSparseSampleImplicitLod = 305,
1106     SpvOpImageSparseSampleExplicitLod = 306,
1107     SpvOpImageSparseSampleDrefImplicitLod = 307,
1108     SpvOpImageSparseSampleDrefExplicitLod = 308,
1109     SpvOpImageSparseSampleProjImplicitLod = 309,
1110     SpvOpImageSparseSampleProjExplicitLod = 310,
1111     SpvOpImageSparseSampleProjDrefImplicitLod = 311,
1112     SpvOpImageSparseSampleProjDrefExplicitLod = 312,
1113     SpvOpImageSparseFetch = 313,
1114     SpvOpImageSparseGather = 314,
1115     SpvOpImageSparseDrefGather = 315,
1116     SpvOpImageSparseTexelsResident = 316,
1117     SpvOpNoLine = 317,
1118     SpvOpAtomicFlagTestAndSet = 318,
1119     SpvOpAtomicFlagClear = 319,
1120     SpvOpImageSparseRead = 320,
1121     SpvOpSizeOf = 321,
1122     SpvOpTypePipeStorage = 322,
1123     SpvOpConstantPipeStorage = 323,
1124     SpvOpCreatePipeFromPipeStorage = 324,
1125     SpvOpGetKernelLocalSizeForSubgroupCount = 325,
1126     SpvOpGetKernelMaxNumSubgroups = 326,
1127     SpvOpTypeNamedBarrier = 327,
1128     SpvOpNamedBarrierInitialize = 328,
1129     SpvOpMemoryNamedBarrier = 329,
1130     SpvOpModuleProcessed = 330,
1131     SpvOpExecutionModeId = 331,
1132     SpvOpDecorateId = 332,
1133     SpvOpGroupNonUniformElect = 333,
1134     SpvOpGroupNonUniformAll = 334,
1135     SpvOpGroupNonUniformAny = 335,
1136     SpvOpGroupNonUniformAllEqual = 336,
1137     SpvOpGroupNonUniformBroadcast = 337,
1138     SpvOpGroupNonUniformBroadcastFirst = 338,
1139     SpvOpGroupNonUniformBallot = 339,
1140     SpvOpGroupNonUniformInverseBallot = 340,
1141     SpvOpGroupNonUniformBallotBitExtract = 341,
1142     SpvOpGroupNonUniformBallotBitCount = 342,
1143     SpvOpGroupNonUniformBallotFindLSB = 343,
1144     SpvOpGroupNonUniformBallotFindMSB = 344,
1145     SpvOpGroupNonUniformShuffle = 345,
1146     SpvOpGroupNonUniformShuffleXor = 346,
1147     SpvOpGroupNonUniformShuffleUp = 347,
1148     SpvOpGroupNonUniformShuffleDown = 348,
1149     SpvOpGroupNonUniformIAdd = 349,
1150     SpvOpGroupNonUniformFAdd = 350,
1151     SpvOpGroupNonUniformIMul = 351,
1152     SpvOpGroupNonUniformFMul = 352,
1153     SpvOpGroupNonUniformSMin = 353,
1154     SpvOpGroupNonUniformUMin = 354,
1155     SpvOpGroupNonUniformFMin = 355,
1156     SpvOpGroupNonUniformSMax = 356,
1157     SpvOpGroupNonUniformUMax = 357,
1158     SpvOpGroupNonUniformFMax = 358,
1159     SpvOpGroupNonUniformBitwiseAnd = 359,
1160     SpvOpGroupNonUniformBitwiseOr = 360,
1161     SpvOpGroupNonUniformBitwiseXor = 361,
1162     SpvOpGroupNonUniformLogicalAnd = 362,
1163     SpvOpGroupNonUniformLogicalOr = 363,
1164     SpvOpGroupNonUniformLogicalXor = 364,
1165     SpvOpGroupNonUniformQuadBroadcast = 365,
1166     SpvOpGroupNonUniformQuadSwap = 366,
1167     SpvOpSubgroupBallotKHR = 4421,
1168     SpvOpSubgroupFirstInvocationKHR = 4422,
1169     SpvOpSubgroupAllKHR = 4428,
1170     SpvOpSubgroupAnyKHR = 4429,
1171     SpvOpSubgroupAllEqualKHR = 4430,
1172     SpvOpSubgroupReadInvocationKHR = 4432,
1173     SpvOpGroupIAddNonUniformAMD = 5000,
1174     SpvOpGroupFAddNonUniformAMD = 5001,
1175     SpvOpGroupFMinNonUniformAMD = 5002,
1176     SpvOpGroupUMinNonUniformAMD = 5003,
1177     SpvOpGroupSMinNonUniformAMD = 5004,
1178     SpvOpGroupFMaxNonUniformAMD = 5005,
1179     SpvOpGroupUMaxNonUniformAMD = 5006,
1180     SpvOpGroupSMaxNonUniformAMD = 5007,
1181     SpvOpFragmentMaskFetchAMD = 5011,
1182     SpvOpFragmentFetchAMD = 5012,
1183     SpvOpImageSampleFootprintNV = 5283,
1184     SpvOpGroupNonUniformPartitionNV = 5296,
1185     SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
1186     SpvOpReportIntersectionNV = 5334,
1187     SpvOpIgnoreIntersectionNV = 5335,
1188     SpvOpTerminateRayNV = 5336,
1189     SpvOpTraceNV = 5337,
1190     SpvOpTypeAccelerationStructureNV = 5341,
1191     SpvOpExecuteCallableNV = 5344,
1192     SpvOpTypeCooperativeMatrixNV = 5358,
1193     SpvOpCooperativeMatrixLoadNV = 5359,
1194     SpvOpCooperativeMatrixStoreNV = 5360,
1195     SpvOpCooperativeMatrixMulAddNV = 5361,
1196     SpvOpCooperativeMatrixLengthNV = 5362,
1197     SpvOpSubgroupShuffleINTEL = 5571,
1198     SpvOpSubgroupShuffleDownINTEL = 5572,
1199     SpvOpSubgroupShuffleUpINTEL = 5573,
1200     SpvOpSubgroupShuffleXorINTEL = 5574,
1201     SpvOpSubgroupBlockReadINTEL = 5575,
1202     SpvOpSubgroupBlockWriteINTEL = 5576,
1203     SpvOpSubgroupImageBlockReadINTEL = 5577,
1204     SpvOpSubgroupImageBlockWriteINTEL = 5578,
1205     SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
1206     SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
1207     SpvOpDecorateStringGOOGLE = 5632,
1208     SpvOpMemberDecorateStringGOOGLE = 5633,
1209     SpvOpMax = 0x7fffffff,
1210 } SpvOp;
1211 
1212 #endif
1213 
1214