spirv.h revision 7e102996
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
54typedef unsigned int SpvId;
55
56#define SPV_VERSION 0x10300
57#define SPV_REVISION 6
58
59static const unsigned int SpvMagicNumber = 0x07230203;
60static const unsigned int SpvVersion = 0x00010300;
61static const unsigned int SpvRevision = 6;
62static const unsigned int SpvOpCodeMask = 0xffff;
63static const unsigned int SpvWordCountShift = 16;
64
65typedef 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
75typedef 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
94typedef enum SpvAddressingModel_ {
95    SpvAddressingModelLogical = 0,
96    SpvAddressingModelPhysical32 = 1,
97    SpvAddressingModelPhysical64 = 2,
98    SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
99    SpvAddressingModelMax = 0x7fffffff,
100} SpvAddressingModel;
101
102typedef enum SpvMemoryModel_ {
103    SpvMemoryModelSimple = 0,
104    SpvMemoryModelGLSL450 = 1,
105    SpvMemoryModelOpenCL = 2,
106    SpvMemoryModelVulkanKHR = 3,
107    SpvMemoryModelMax = 0x7fffffff,
108} SpvMemoryModel;
109
110typedef 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
164typedef 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
188typedef 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
199typedef enum SpvSamplerAddressingMode_ {
200    SpvSamplerAddressingModeNone = 0,
201    SpvSamplerAddressingModeClampToEdge = 1,
202    SpvSamplerAddressingModeClamp = 2,
203    SpvSamplerAddressingModeRepeat = 3,
204    SpvSamplerAddressingModeRepeatMirrored = 4,
205    SpvSamplerAddressingModeMax = 0x7fffffff,
206} SpvSamplerAddressingMode;
207
208typedef enum SpvSamplerFilterMode_ {
209    SpvSamplerFilterModeNearest = 0,
210    SpvSamplerFilterModeLinear = 1,
211    SpvSamplerFilterModeMax = 0x7fffffff,
212} SpvSamplerFilterMode;
213
214typedef 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
258typedef 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
282typedef 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
303typedef 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
319typedef 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
335typedef enum SpvFPFastMathModeShift_ {
336    SpvFPFastMathModeNotNaNShift = 0,
337    SpvFPFastMathModeNotInfShift = 1,
338    SpvFPFastMathModeNSZShift = 2,
339    SpvFPFastMathModeAllowRecipShift = 3,
340    SpvFPFastMathModeFastShift = 4,
341    SpvFPFastMathModeMax = 0x7fffffff,
342} SpvFPFastMathModeShift;
343
344typedef enum SpvFPFastMathModeMask_ {
345    SpvFPFastMathModeMaskNone = 0,
346    SpvFPFastMathModeNotNaNMask = 0x00000001,
347    SpvFPFastMathModeNotInfMask = 0x00000002,
348    SpvFPFastMathModeNSZMask = 0x00000004,
349    SpvFPFastMathModeAllowRecipMask = 0x00000008,
350    SpvFPFastMathModeFastMask = 0x00000010,
351} SpvFPFastMathModeMask;
352
353typedef enum SpvFPRoundingMode_ {
354    SpvFPRoundingModeRTE = 0,
355    SpvFPRoundingModeRTZ = 1,
356    SpvFPRoundingModeRTP = 2,
357    SpvFPRoundingModeRTN = 3,
358    SpvFPRoundingModeMax = 0x7fffffff,
359} SpvFPRoundingMode;
360
361typedef enum SpvLinkageType_ {
362    SpvLinkageTypeExport = 0,
363    SpvLinkageTypeImport = 1,
364    SpvLinkageTypeMax = 0x7fffffff,
365} SpvLinkageType;
366
367typedef enum SpvAccessQualifier_ {
368    SpvAccessQualifierReadOnly = 0,
369    SpvAccessQualifierWriteOnly = 1,
370    SpvAccessQualifierReadWrite = 2,
371    SpvAccessQualifierMax = 0x7fffffff,
372} SpvAccessQualifier;
373
374typedef 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
386typedef 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
452typedef 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
554typedef enum SpvSelectionControlShift_ {
555    SpvSelectionControlFlattenShift = 0,
556    SpvSelectionControlDontFlattenShift = 1,
557    SpvSelectionControlMax = 0x7fffffff,
558} SpvSelectionControlShift;
559
560typedef enum SpvSelectionControlMask_ {
561    SpvSelectionControlMaskNone = 0,
562    SpvSelectionControlFlattenMask = 0x00000001,
563    SpvSelectionControlDontFlattenMask = 0x00000002,
564} SpvSelectionControlMask;
565
566typedef enum SpvLoopControlShift_ {
567    SpvLoopControlUnrollShift = 0,
568    SpvLoopControlDontUnrollShift = 1,
569    SpvLoopControlDependencyInfiniteShift = 2,
570    SpvLoopControlDependencyLengthShift = 3,
571    SpvLoopControlMax = 0x7fffffff,
572} SpvLoopControlShift;
573
574typedef enum SpvLoopControlMask_ {
575    SpvLoopControlMaskNone = 0,
576    SpvLoopControlUnrollMask = 0x00000001,
577    SpvLoopControlDontUnrollMask = 0x00000002,
578    SpvLoopControlDependencyInfiniteMask = 0x00000004,
579    SpvLoopControlDependencyLengthMask = 0x00000008,
580} SpvLoopControlMask;
581
582typedef enum SpvFunctionControlShift_ {
583    SpvFunctionControlInlineShift = 0,
584    SpvFunctionControlDontInlineShift = 1,
585    SpvFunctionControlPureShift = 2,
586    SpvFunctionControlConstShift = 3,
587    SpvFunctionControlMax = 0x7fffffff,
588} SpvFunctionControlShift;
589
590typedef enum SpvFunctionControlMask_ {
591    SpvFunctionControlMaskNone = 0,
592    SpvFunctionControlInlineMask = 0x00000001,
593    SpvFunctionControlDontInlineMask = 0x00000002,
594    SpvFunctionControlPureMask = 0x00000004,
595    SpvFunctionControlConstMask = 0x00000008,
596} SpvFunctionControlMask;
597
598typedef 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
615typedef 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
632typedef 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
642typedef 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
652typedef 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
662typedef 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
673typedef enum SpvKernelEnqueueFlags_ {
674    SpvKernelEnqueueFlagsNoWait = 0,
675    SpvKernelEnqueueFlagsWaitKernel = 1,
676    SpvKernelEnqueueFlagsWaitWorkGroup = 2,
677    SpvKernelEnqueueFlagsMax = 0x7fffffff,
678} SpvKernelEnqueueFlags;
679
680typedef enum SpvKernelProfilingInfoShift_ {
681    SpvKernelProfilingInfoCmdExecTimeShift = 0,
682    SpvKernelProfilingInfoMax = 0x7fffffff,
683} SpvKernelProfilingInfoShift;
684
685typedef enum SpvKernelProfilingInfoMask_ {
686    SpvKernelProfilingInfoMaskNone = 0,
687    SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
688} SpvKernelProfilingInfoMask;
689
690typedef 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
824typedef 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
1205