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