spirv: Import the latest 1.2 header from Khronos
[mesa.git] / src / compiler / spirv / spirv.h
1 /*
2 ** Copyright (c) 2014-2017 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 0x10200
54 #define SPV_REVISION 1
55
56 static const unsigned int SpvMagicNumber = 0x07230203;
57 static const unsigned int SpvVersion = 0x00010200;
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 SpvExecutionModelMax = 0x7fffffff,
81 } SpvExecutionModel;
82
83 typedef enum SpvAddressingModel_ {
84 SpvAddressingModelLogical = 0,
85 SpvAddressingModelPhysical32 = 1,
86 SpvAddressingModelPhysical64 = 2,
87 SpvAddressingModelMax = 0x7fffffff,
88 } SpvAddressingModel;
89
90 typedef enum SpvMemoryModel_ {
91 SpvMemoryModelSimple = 0,
92 SpvMemoryModelGLSL450 = 1,
93 SpvMemoryModelOpenCL = 2,
94 SpvMemoryModelMax = 0x7fffffff,
95 } SpvMemoryModel;
96
97 typedef enum SpvExecutionMode_ {
98 SpvExecutionModeInvocations = 0,
99 SpvExecutionModeSpacingEqual = 1,
100 SpvExecutionModeSpacingFractionalEven = 2,
101 SpvExecutionModeSpacingFractionalOdd = 3,
102 SpvExecutionModeVertexOrderCw = 4,
103 SpvExecutionModeVertexOrderCcw = 5,
104 SpvExecutionModePixelCenterInteger = 6,
105 SpvExecutionModeOriginUpperLeft = 7,
106 SpvExecutionModeOriginLowerLeft = 8,
107 SpvExecutionModeEarlyFragmentTests = 9,
108 SpvExecutionModePointMode = 10,
109 SpvExecutionModeXfb = 11,
110 SpvExecutionModeDepthReplacing = 12,
111 SpvExecutionModeDepthGreater = 14,
112 SpvExecutionModeDepthLess = 15,
113 SpvExecutionModeDepthUnchanged = 16,
114 SpvExecutionModeLocalSize = 17,
115 SpvExecutionModeLocalSizeHint = 18,
116 SpvExecutionModeInputPoints = 19,
117 SpvExecutionModeInputLines = 20,
118 SpvExecutionModeInputLinesAdjacency = 21,
119 SpvExecutionModeTriangles = 22,
120 SpvExecutionModeInputTrianglesAdjacency = 23,
121 SpvExecutionModeQuads = 24,
122 SpvExecutionModeIsolines = 25,
123 SpvExecutionModeOutputVertices = 26,
124 SpvExecutionModeOutputPoints = 27,
125 SpvExecutionModeOutputLineStrip = 28,
126 SpvExecutionModeOutputTriangleStrip = 29,
127 SpvExecutionModeVecTypeHint = 30,
128 SpvExecutionModeContractionOff = 31,
129 SpvExecutionModeInitializer = 33,
130 SpvExecutionModeFinalizer = 34,
131 SpvExecutionModeSubgroupSize = 35,
132 SpvExecutionModeSubgroupsPerWorkgroup = 36,
133 SpvExecutionModeSubgroupsPerWorkgroupId = 37,
134 SpvExecutionModeLocalSizeId = 38,
135 SpvExecutionModeLocalSizeHintId = 39,
136 SpvExecutionModePostDepthCoverage = 4446,
137 SpvExecutionModeMax = 0x7fffffff,
138 } SpvExecutionMode;
139
140 typedef enum SpvStorageClass_ {
141 SpvStorageClassUniformConstant = 0,
142 SpvStorageClassInput = 1,
143 SpvStorageClassUniform = 2,
144 SpvStorageClassOutput = 3,
145 SpvStorageClassWorkgroup = 4,
146 SpvStorageClassCrossWorkgroup = 5,
147 SpvStorageClassPrivate = 6,
148 SpvStorageClassFunction = 7,
149 SpvStorageClassGeneric = 8,
150 SpvStorageClassPushConstant = 9,
151 SpvStorageClassAtomicCounter = 10,
152 SpvStorageClassImage = 11,
153 SpvStorageClassStorageBuffer = 12,
154 SpvStorageClassMax = 0x7fffffff,
155 } SpvStorageClass;
156
157 typedef enum SpvDim_ {
158 SpvDim1D = 0,
159 SpvDim2D = 1,
160 SpvDim3D = 2,
161 SpvDimCube = 3,
162 SpvDimRect = 4,
163 SpvDimBuffer = 5,
164 SpvDimSubpassData = 6,
165 SpvDimMax = 0x7fffffff,
166 } SpvDim;
167
168 typedef enum SpvSamplerAddressingMode_ {
169 SpvSamplerAddressingModeNone = 0,
170 SpvSamplerAddressingModeClampToEdge = 1,
171 SpvSamplerAddressingModeClamp = 2,
172 SpvSamplerAddressingModeRepeat = 3,
173 SpvSamplerAddressingModeRepeatMirrored = 4,
174 SpvSamplerAddressingModeMax = 0x7fffffff,
175 } SpvSamplerAddressingMode;
176
177 typedef enum SpvSamplerFilterMode_ {
178 SpvSamplerFilterModeNearest = 0,
179 SpvSamplerFilterModeLinear = 1,
180 SpvSamplerFilterModeMax = 0x7fffffff,
181 } SpvSamplerFilterMode;
182
183 typedef enum SpvImageFormat_ {
184 SpvImageFormatUnknown = 0,
185 SpvImageFormatRgba32f = 1,
186 SpvImageFormatRgba16f = 2,
187 SpvImageFormatR32f = 3,
188 SpvImageFormatRgba8 = 4,
189 SpvImageFormatRgba8Snorm = 5,
190 SpvImageFormatRg32f = 6,
191 SpvImageFormatRg16f = 7,
192 SpvImageFormatR11fG11fB10f = 8,
193 SpvImageFormatR16f = 9,
194 SpvImageFormatRgba16 = 10,
195 SpvImageFormatRgb10A2 = 11,
196 SpvImageFormatRg16 = 12,
197 SpvImageFormatRg8 = 13,
198 SpvImageFormatR16 = 14,
199 SpvImageFormatR8 = 15,
200 SpvImageFormatRgba16Snorm = 16,
201 SpvImageFormatRg16Snorm = 17,
202 SpvImageFormatRg8Snorm = 18,
203 SpvImageFormatR16Snorm = 19,
204 SpvImageFormatR8Snorm = 20,
205 SpvImageFormatRgba32i = 21,
206 SpvImageFormatRgba16i = 22,
207 SpvImageFormatRgba8i = 23,
208 SpvImageFormatR32i = 24,
209 SpvImageFormatRg32i = 25,
210 SpvImageFormatRg16i = 26,
211 SpvImageFormatRg8i = 27,
212 SpvImageFormatR16i = 28,
213 SpvImageFormatR8i = 29,
214 SpvImageFormatRgba32ui = 30,
215 SpvImageFormatRgba16ui = 31,
216 SpvImageFormatRgba8ui = 32,
217 SpvImageFormatR32ui = 33,
218 SpvImageFormatRgb10a2ui = 34,
219 SpvImageFormatRg32ui = 35,
220 SpvImageFormatRg16ui = 36,
221 SpvImageFormatRg8ui = 37,
222 SpvImageFormatR16ui = 38,
223 SpvImageFormatR8ui = 39,
224 SpvImageFormatMax = 0x7fffffff,
225 } SpvImageFormat;
226
227 typedef enum SpvImageChannelOrder_ {
228 SpvImageChannelOrderR = 0,
229 SpvImageChannelOrderA = 1,
230 SpvImageChannelOrderRG = 2,
231 SpvImageChannelOrderRA = 3,
232 SpvImageChannelOrderRGB = 4,
233 SpvImageChannelOrderRGBA = 5,
234 SpvImageChannelOrderBGRA = 6,
235 SpvImageChannelOrderARGB = 7,
236 SpvImageChannelOrderIntensity = 8,
237 SpvImageChannelOrderLuminance = 9,
238 SpvImageChannelOrderRx = 10,
239 SpvImageChannelOrderRGx = 11,
240 SpvImageChannelOrderRGBx = 12,
241 SpvImageChannelOrderDepth = 13,
242 SpvImageChannelOrderDepthStencil = 14,
243 SpvImageChannelOrdersRGB = 15,
244 SpvImageChannelOrdersRGBx = 16,
245 SpvImageChannelOrdersRGBA = 17,
246 SpvImageChannelOrdersBGRA = 18,
247 SpvImageChannelOrderABGR = 19,
248 SpvImageChannelOrderMax = 0x7fffffff,
249 } SpvImageChannelOrder;
250
251 typedef enum SpvImageChannelDataType_ {
252 SpvImageChannelDataTypeSnormInt8 = 0,
253 SpvImageChannelDataTypeSnormInt16 = 1,
254 SpvImageChannelDataTypeUnormInt8 = 2,
255 SpvImageChannelDataTypeUnormInt16 = 3,
256 SpvImageChannelDataTypeUnormShort565 = 4,
257 SpvImageChannelDataTypeUnormShort555 = 5,
258 SpvImageChannelDataTypeUnormInt101010 = 6,
259 SpvImageChannelDataTypeSignedInt8 = 7,
260 SpvImageChannelDataTypeSignedInt16 = 8,
261 SpvImageChannelDataTypeSignedInt32 = 9,
262 SpvImageChannelDataTypeUnsignedInt8 = 10,
263 SpvImageChannelDataTypeUnsignedInt16 = 11,
264 SpvImageChannelDataTypeUnsignedInt32 = 12,
265 SpvImageChannelDataTypeHalfFloat = 13,
266 SpvImageChannelDataTypeFloat = 14,
267 SpvImageChannelDataTypeUnormInt24 = 15,
268 SpvImageChannelDataTypeUnormInt101010_2 = 16,
269 SpvImageChannelDataTypeMax = 0x7fffffff,
270 } SpvImageChannelDataType;
271
272 typedef enum SpvImageOperandsShift_ {
273 SpvImageOperandsBiasShift = 0,
274 SpvImageOperandsLodShift = 1,
275 SpvImageOperandsGradShift = 2,
276 SpvImageOperandsConstOffsetShift = 3,
277 SpvImageOperandsOffsetShift = 4,
278 SpvImageOperandsConstOffsetsShift = 5,
279 SpvImageOperandsSampleShift = 6,
280 SpvImageOperandsMinLodShift = 7,
281 SpvImageOperandsMax = 0x7fffffff,
282 } SpvImageOperandsShift;
283
284 typedef enum SpvImageOperandsMask_ {
285 SpvImageOperandsMaskNone = 0,
286 SpvImageOperandsBiasMask = 0x00000001,
287 SpvImageOperandsLodMask = 0x00000002,
288 SpvImageOperandsGradMask = 0x00000004,
289 SpvImageOperandsConstOffsetMask = 0x00000008,
290 SpvImageOperandsOffsetMask = 0x00000010,
291 SpvImageOperandsConstOffsetsMask = 0x00000020,
292 SpvImageOperandsSampleMask = 0x00000040,
293 SpvImageOperandsMinLodMask = 0x00000080,
294 } SpvImageOperandsMask;
295
296 typedef enum SpvFPFastMathModeShift_ {
297 SpvFPFastMathModeNotNaNShift = 0,
298 SpvFPFastMathModeNotInfShift = 1,
299 SpvFPFastMathModeNSZShift = 2,
300 SpvFPFastMathModeAllowRecipShift = 3,
301 SpvFPFastMathModeFastShift = 4,
302 SpvFPFastMathModeMax = 0x7fffffff,
303 } SpvFPFastMathModeShift;
304
305 typedef enum SpvFPFastMathModeMask_ {
306 SpvFPFastMathModeMaskNone = 0,
307 SpvFPFastMathModeNotNaNMask = 0x00000001,
308 SpvFPFastMathModeNotInfMask = 0x00000002,
309 SpvFPFastMathModeNSZMask = 0x00000004,
310 SpvFPFastMathModeAllowRecipMask = 0x00000008,
311 SpvFPFastMathModeFastMask = 0x00000010,
312 } SpvFPFastMathModeMask;
313
314 typedef enum SpvFPRoundingMode_ {
315 SpvFPRoundingModeRTE = 0,
316 SpvFPRoundingModeRTZ = 1,
317 SpvFPRoundingModeRTP = 2,
318 SpvFPRoundingModeRTN = 3,
319 SpvFPRoundingModeMax = 0x7fffffff,
320 } SpvFPRoundingMode;
321
322 typedef enum SpvLinkageType_ {
323 SpvLinkageTypeExport = 0,
324 SpvLinkageTypeImport = 1,
325 SpvLinkageTypeMax = 0x7fffffff,
326 } SpvLinkageType;
327
328 typedef enum SpvAccessQualifier_ {
329 SpvAccessQualifierReadOnly = 0,
330 SpvAccessQualifierWriteOnly = 1,
331 SpvAccessQualifierReadWrite = 2,
332 SpvAccessQualifierMax = 0x7fffffff,
333 } SpvAccessQualifier;
334
335 typedef enum SpvFunctionParameterAttribute_ {
336 SpvFunctionParameterAttributeZext = 0,
337 SpvFunctionParameterAttributeSext = 1,
338 SpvFunctionParameterAttributeByVal = 2,
339 SpvFunctionParameterAttributeSret = 3,
340 SpvFunctionParameterAttributeNoAlias = 4,
341 SpvFunctionParameterAttributeNoCapture = 5,
342 SpvFunctionParameterAttributeNoWrite = 6,
343 SpvFunctionParameterAttributeNoReadWrite = 7,
344 SpvFunctionParameterAttributeMax = 0x7fffffff,
345 } SpvFunctionParameterAttribute;
346
347 typedef enum SpvDecoration_ {
348 SpvDecorationRelaxedPrecision = 0,
349 SpvDecorationSpecId = 1,
350 SpvDecorationBlock = 2,
351 SpvDecorationBufferBlock = 3,
352 SpvDecorationRowMajor = 4,
353 SpvDecorationColMajor = 5,
354 SpvDecorationArrayStride = 6,
355 SpvDecorationMatrixStride = 7,
356 SpvDecorationGLSLShared = 8,
357 SpvDecorationGLSLPacked = 9,
358 SpvDecorationCPacked = 10,
359 SpvDecorationBuiltIn = 11,
360 SpvDecorationNoPerspective = 13,
361 SpvDecorationFlat = 14,
362 SpvDecorationPatch = 15,
363 SpvDecorationCentroid = 16,
364 SpvDecorationSample = 17,
365 SpvDecorationInvariant = 18,
366 SpvDecorationRestrict = 19,
367 SpvDecorationAliased = 20,
368 SpvDecorationVolatile = 21,
369 SpvDecorationConstant = 22,
370 SpvDecorationCoherent = 23,
371 SpvDecorationNonWritable = 24,
372 SpvDecorationNonReadable = 25,
373 SpvDecorationUniform = 26,
374 SpvDecorationSaturatedConversion = 28,
375 SpvDecorationStream = 29,
376 SpvDecorationLocation = 30,
377 SpvDecorationComponent = 31,
378 SpvDecorationIndex = 32,
379 SpvDecorationBinding = 33,
380 SpvDecorationDescriptorSet = 34,
381 SpvDecorationOffset = 35,
382 SpvDecorationXfbBuffer = 36,
383 SpvDecorationXfbStride = 37,
384 SpvDecorationFuncParamAttr = 38,
385 SpvDecorationFPRoundingMode = 39,
386 SpvDecorationFPFastMathMode = 40,
387 SpvDecorationLinkageAttributes = 41,
388 SpvDecorationNoContraction = 42,
389 SpvDecorationInputAttachmentIndex = 43,
390 SpvDecorationAlignment = 44,
391 SpvDecorationMaxByteOffset = 45,
392 SpvDecorationAlignmentId = 46,
393 SpvDecorationMaxByteOffsetId = 47,
394 SpvDecorationExplicitInterpAMD = 4999,
395 SpvDecorationOverrideCoverageNV = 5248,
396 SpvDecorationPassthroughNV = 5250,
397 SpvDecorationViewportRelativeNV = 5252,
398 SpvDecorationSecondaryViewportRelativeNV = 5256,
399 SpvDecorationMax = 0x7fffffff,
400 } SpvDecoration;
401
402 typedef enum SpvBuiltIn_ {
403 SpvBuiltInPosition = 0,
404 SpvBuiltInPointSize = 1,
405 SpvBuiltInClipDistance = 3,
406 SpvBuiltInCullDistance = 4,
407 SpvBuiltInVertexId = 5,
408 SpvBuiltInInstanceId = 6,
409 SpvBuiltInPrimitiveId = 7,
410 SpvBuiltInInvocationId = 8,
411 SpvBuiltInLayer = 9,
412 SpvBuiltInViewportIndex = 10,
413 SpvBuiltInTessLevelOuter = 11,
414 SpvBuiltInTessLevelInner = 12,
415 SpvBuiltInTessCoord = 13,
416 SpvBuiltInPatchVertices = 14,
417 SpvBuiltInFragCoord = 15,
418 SpvBuiltInPointCoord = 16,
419 SpvBuiltInFrontFacing = 17,
420 SpvBuiltInSampleId = 18,
421 SpvBuiltInSamplePosition = 19,
422 SpvBuiltInSampleMask = 20,
423 SpvBuiltInFragDepth = 22,
424 SpvBuiltInHelperInvocation = 23,
425 SpvBuiltInNumWorkgroups = 24,
426 SpvBuiltInWorkgroupSize = 25,
427 SpvBuiltInWorkgroupId = 26,
428 SpvBuiltInLocalInvocationId = 27,
429 SpvBuiltInGlobalInvocationId = 28,
430 SpvBuiltInLocalInvocationIndex = 29,
431 SpvBuiltInWorkDim = 30,
432 SpvBuiltInGlobalSize = 31,
433 SpvBuiltInEnqueuedWorkgroupSize = 32,
434 SpvBuiltInGlobalOffset = 33,
435 SpvBuiltInGlobalLinearId = 34,
436 SpvBuiltInSubgroupSize = 36,
437 SpvBuiltInSubgroupMaxSize = 37,
438 SpvBuiltInNumSubgroups = 38,
439 SpvBuiltInNumEnqueuedSubgroups = 39,
440 SpvBuiltInSubgroupId = 40,
441 SpvBuiltInSubgroupLocalInvocationId = 41,
442 SpvBuiltInVertexIndex = 42,
443 SpvBuiltInInstanceIndex = 43,
444 SpvBuiltInSubgroupEqMaskKHR = 4416,
445 SpvBuiltInSubgroupGeMaskKHR = 4417,
446 SpvBuiltInSubgroupGtMaskKHR = 4418,
447 SpvBuiltInSubgroupLeMaskKHR = 4419,
448 SpvBuiltInSubgroupLtMaskKHR = 4420,
449 SpvBuiltInBaseVertex = 4424,
450 SpvBuiltInBaseInstance = 4425,
451 SpvBuiltInDrawIndex = 4426,
452 SpvBuiltInDeviceIndex = 4438,
453 SpvBuiltInViewIndex = 4440,
454 SpvBuiltInBaryCoordNoPerspAMD = 4992,
455 SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
456 SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
457 SpvBuiltInBaryCoordSmoothAMD = 4995,
458 SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
459 SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
460 SpvBuiltInBaryCoordPullModelAMD = 4998,
461 SpvBuiltInViewportMaskNV = 5253,
462 SpvBuiltInSecondaryPositionNV = 5257,
463 SpvBuiltInSecondaryViewportMaskNV = 5258,
464 SpvBuiltInPositionPerViewNV = 5261,
465 SpvBuiltInViewportMaskPerViewNV = 5262,
466 SpvBuiltInMax = 0x7fffffff,
467 } SpvBuiltIn;
468
469 typedef enum SpvSelectionControlShift_ {
470 SpvSelectionControlFlattenShift = 0,
471 SpvSelectionControlDontFlattenShift = 1,
472 SpvSelectionControlMax = 0x7fffffff,
473 } SpvSelectionControlShift;
474
475 typedef enum SpvSelectionControlMask_ {
476 SpvSelectionControlMaskNone = 0,
477 SpvSelectionControlFlattenMask = 0x00000001,
478 SpvSelectionControlDontFlattenMask = 0x00000002,
479 } SpvSelectionControlMask;
480
481 typedef enum SpvLoopControlShift_ {
482 SpvLoopControlUnrollShift = 0,
483 SpvLoopControlDontUnrollShift = 1,
484 SpvLoopControlDependencyInfiniteShift = 2,
485 SpvLoopControlDependencyLengthShift = 3,
486 SpvLoopControlMax = 0x7fffffff,
487 } SpvLoopControlShift;
488
489 typedef enum SpvLoopControlMask_ {
490 SpvLoopControlMaskNone = 0,
491 SpvLoopControlUnrollMask = 0x00000001,
492 SpvLoopControlDontUnrollMask = 0x00000002,
493 SpvLoopControlDependencyInfiniteMask = 0x00000004,
494 SpvLoopControlDependencyLengthMask = 0x00000008,
495 } SpvLoopControlMask;
496
497 typedef enum SpvFunctionControlShift_ {
498 SpvFunctionControlInlineShift = 0,
499 SpvFunctionControlDontInlineShift = 1,
500 SpvFunctionControlPureShift = 2,
501 SpvFunctionControlConstShift = 3,
502 SpvFunctionControlMax = 0x7fffffff,
503 } SpvFunctionControlShift;
504
505 typedef enum SpvFunctionControlMask_ {
506 SpvFunctionControlMaskNone = 0,
507 SpvFunctionControlInlineMask = 0x00000001,
508 SpvFunctionControlDontInlineMask = 0x00000002,
509 SpvFunctionControlPureMask = 0x00000004,
510 SpvFunctionControlConstMask = 0x00000008,
511 } SpvFunctionControlMask;
512
513 typedef enum SpvMemorySemanticsShift_ {
514 SpvMemorySemanticsAcquireShift = 1,
515 SpvMemorySemanticsReleaseShift = 2,
516 SpvMemorySemanticsAcquireReleaseShift = 3,
517 SpvMemorySemanticsSequentiallyConsistentShift = 4,
518 SpvMemorySemanticsUniformMemoryShift = 6,
519 SpvMemorySemanticsSubgroupMemoryShift = 7,
520 SpvMemorySemanticsWorkgroupMemoryShift = 8,
521 SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
522 SpvMemorySemanticsAtomicCounterMemoryShift = 10,
523 SpvMemorySemanticsImageMemoryShift = 11,
524 SpvMemorySemanticsMax = 0x7fffffff,
525 } SpvMemorySemanticsShift;
526
527 typedef enum SpvMemorySemanticsMask_ {
528 SpvMemorySemanticsMaskNone = 0,
529 SpvMemorySemanticsAcquireMask = 0x00000002,
530 SpvMemorySemanticsReleaseMask = 0x00000004,
531 SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
532 SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
533 SpvMemorySemanticsUniformMemoryMask = 0x00000040,
534 SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
535 SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
536 SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
537 SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
538 SpvMemorySemanticsImageMemoryMask = 0x00000800,
539 } SpvMemorySemanticsMask;
540
541 typedef enum SpvMemoryAccessShift_ {
542 SpvMemoryAccessVolatileShift = 0,
543 SpvMemoryAccessAlignedShift = 1,
544 SpvMemoryAccessNontemporalShift = 2,
545 SpvMemoryAccessMax = 0x7fffffff,
546 } SpvMemoryAccessShift;
547
548 typedef enum SpvMemoryAccessMask_ {
549 SpvMemoryAccessMaskNone = 0,
550 SpvMemoryAccessVolatileMask = 0x00000001,
551 SpvMemoryAccessAlignedMask = 0x00000002,
552 SpvMemoryAccessNontemporalMask = 0x00000004,
553 } SpvMemoryAccessMask;
554
555 typedef enum SpvScope_ {
556 SpvScopeCrossDevice = 0,
557 SpvScopeDevice = 1,
558 SpvScopeWorkgroup = 2,
559 SpvScopeSubgroup = 3,
560 SpvScopeInvocation = 4,
561 SpvScopeMax = 0x7fffffff,
562 } SpvScope;
563
564 typedef enum SpvGroupOperation_ {
565 SpvGroupOperationReduce = 0,
566 SpvGroupOperationInclusiveScan = 1,
567 SpvGroupOperationExclusiveScan = 2,
568 SpvGroupOperationMax = 0x7fffffff,
569 } SpvGroupOperation;
570
571 typedef enum SpvKernelEnqueueFlags_ {
572 SpvKernelEnqueueFlagsNoWait = 0,
573 SpvKernelEnqueueFlagsWaitKernel = 1,
574 SpvKernelEnqueueFlagsWaitWorkGroup = 2,
575 SpvKernelEnqueueFlagsMax = 0x7fffffff,
576 } SpvKernelEnqueueFlags;
577
578 typedef enum SpvKernelProfilingInfoShift_ {
579 SpvKernelProfilingInfoCmdExecTimeShift = 0,
580 SpvKernelProfilingInfoMax = 0x7fffffff,
581 } SpvKernelProfilingInfoShift;
582
583 typedef enum SpvKernelProfilingInfoMask_ {
584 SpvKernelProfilingInfoMaskNone = 0,
585 SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
586 } SpvKernelProfilingInfoMask;
587
588 typedef enum SpvCapability_ {
589 SpvCapabilityMatrix = 0,
590 SpvCapabilityShader = 1,
591 SpvCapabilityGeometry = 2,
592 SpvCapabilityTessellation = 3,
593 SpvCapabilityAddresses = 4,
594 SpvCapabilityLinkage = 5,
595 SpvCapabilityKernel = 6,
596 SpvCapabilityVector16 = 7,
597 SpvCapabilityFloat16Buffer = 8,
598 SpvCapabilityFloat16 = 9,
599 SpvCapabilityFloat64 = 10,
600 SpvCapabilityInt64 = 11,
601 SpvCapabilityInt64Atomics = 12,
602 SpvCapabilityImageBasic = 13,
603 SpvCapabilityImageReadWrite = 14,
604 SpvCapabilityImageMipmap = 15,
605 SpvCapabilityPipes = 17,
606 SpvCapabilityGroups = 18,
607 SpvCapabilityDeviceEnqueue = 19,
608 SpvCapabilityLiteralSampler = 20,
609 SpvCapabilityAtomicStorage = 21,
610 SpvCapabilityInt16 = 22,
611 SpvCapabilityTessellationPointSize = 23,
612 SpvCapabilityGeometryPointSize = 24,
613 SpvCapabilityImageGatherExtended = 25,
614 SpvCapabilityStorageImageMultisample = 27,
615 SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
616 SpvCapabilitySampledImageArrayDynamicIndexing = 29,
617 SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
618 SpvCapabilityStorageImageArrayDynamicIndexing = 31,
619 SpvCapabilityClipDistance = 32,
620 SpvCapabilityCullDistance = 33,
621 SpvCapabilityImageCubeArray = 34,
622 SpvCapabilitySampleRateShading = 35,
623 SpvCapabilityImageRect = 36,
624 SpvCapabilitySampledRect = 37,
625 SpvCapabilityGenericPointer = 38,
626 SpvCapabilityInt8 = 39,
627 SpvCapabilityInputAttachment = 40,
628 SpvCapabilitySparseResidency = 41,
629 SpvCapabilityMinLod = 42,
630 SpvCapabilitySampled1D = 43,
631 SpvCapabilityImage1D = 44,
632 SpvCapabilitySampledCubeArray = 45,
633 SpvCapabilitySampledBuffer = 46,
634 SpvCapabilityImageBuffer = 47,
635 SpvCapabilityImageMSArray = 48,
636 SpvCapabilityStorageImageExtendedFormats = 49,
637 SpvCapabilityImageQuery = 50,
638 SpvCapabilityDerivativeControl = 51,
639 SpvCapabilityInterpolationFunction = 52,
640 SpvCapabilityTransformFeedback = 53,
641 SpvCapabilityGeometryStreams = 54,
642 SpvCapabilityStorageImageReadWithoutFormat = 55,
643 SpvCapabilityStorageImageWriteWithoutFormat = 56,
644 SpvCapabilityMultiViewport = 57,
645 SpvCapabilitySubgroupDispatch = 58,
646 SpvCapabilityNamedBarrier = 59,
647 SpvCapabilityPipeStorage = 60,
648 SpvCapabilitySubgroupBallotKHR = 4423,
649 SpvCapabilityDrawParameters = 4427,
650 SpvCapabilitySubgroupVoteKHR = 4431,
651 SpvCapabilityStorageBuffer16BitAccess = 4433,
652 SpvCapabilityStorageUniformBufferBlock16 = 4433,
653 SpvCapabilityStorageUniform16 = 4434,
654 SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
655 SpvCapabilityStoragePushConstant16 = 4435,
656 SpvCapabilityStorageInputOutput16 = 4436,
657 SpvCapabilityDeviceGroup = 4437,
658 SpvCapabilityMultiView = 4439,
659 SpvCapabilityVariablePointersStorageBuffer = 4441,
660 SpvCapabilityVariablePointers = 4442,
661 SpvCapabilityAtomicStorageOps = 4445,
662 SpvCapabilitySampleMaskPostDepthCoverage = 4447,
663 SpvCapabilityImageGatherBiasLodAMD = 5009,
664 SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
665 SpvCapabilityGeometryShaderPassthroughNV = 5251,
666 SpvCapabilityShaderViewportIndexLayerNV = 5254,
667 SpvCapabilityShaderViewportMaskNV = 5255,
668 SpvCapabilityShaderStereoViewNV = 5259,
669 SpvCapabilityPerViewAttributesNV = 5260,
670 SpvCapabilityMax = 0x7fffffff,
671 } SpvCapability;
672
673 typedef enum SpvOp_ {
674 SpvOpNop = 0,
675 SpvOpUndef = 1,
676 SpvOpSourceContinued = 2,
677 SpvOpSource = 3,
678 SpvOpSourceExtension = 4,
679 SpvOpName = 5,
680 SpvOpMemberName = 6,
681 SpvOpString = 7,
682 SpvOpLine = 8,
683 SpvOpExtension = 10,
684 SpvOpExtInstImport = 11,
685 SpvOpExtInst = 12,
686 SpvOpMemoryModel = 14,
687 SpvOpEntryPoint = 15,
688 SpvOpExecutionMode = 16,
689 SpvOpCapability = 17,
690 SpvOpTypeVoid = 19,
691 SpvOpTypeBool = 20,
692 SpvOpTypeInt = 21,
693 SpvOpTypeFloat = 22,
694 SpvOpTypeVector = 23,
695 SpvOpTypeMatrix = 24,
696 SpvOpTypeImage = 25,
697 SpvOpTypeSampler = 26,
698 SpvOpTypeSampledImage = 27,
699 SpvOpTypeArray = 28,
700 SpvOpTypeRuntimeArray = 29,
701 SpvOpTypeStruct = 30,
702 SpvOpTypeOpaque = 31,
703 SpvOpTypePointer = 32,
704 SpvOpTypeFunction = 33,
705 SpvOpTypeEvent = 34,
706 SpvOpTypeDeviceEvent = 35,
707 SpvOpTypeReserveId = 36,
708 SpvOpTypeQueue = 37,
709 SpvOpTypePipe = 38,
710 SpvOpTypeForwardPointer = 39,
711 SpvOpConstantTrue = 41,
712 SpvOpConstantFalse = 42,
713 SpvOpConstant = 43,
714 SpvOpConstantComposite = 44,
715 SpvOpConstantSampler = 45,
716 SpvOpConstantNull = 46,
717 SpvOpSpecConstantTrue = 48,
718 SpvOpSpecConstantFalse = 49,
719 SpvOpSpecConstant = 50,
720 SpvOpSpecConstantComposite = 51,
721 SpvOpSpecConstantOp = 52,
722 SpvOpFunction = 54,
723 SpvOpFunctionParameter = 55,
724 SpvOpFunctionEnd = 56,
725 SpvOpFunctionCall = 57,
726 SpvOpVariable = 59,
727 SpvOpImageTexelPointer = 60,
728 SpvOpLoad = 61,
729 SpvOpStore = 62,
730 SpvOpCopyMemory = 63,
731 SpvOpCopyMemorySized = 64,
732 SpvOpAccessChain = 65,
733 SpvOpInBoundsAccessChain = 66,
734 SpvOpPtrAccessChain = 67,
735 SpvOpArrayLength = 68,
736 SpvOpGenericPtrMemSemantics = 69,
737 SpvOpInBoundsPtrAccessChain = 70,
738 SpvOpDecorate = 71,
739 SpvOpMemberDecorate = 72,
740 SpvOpDecorationGroup = 73,
741 SpvOpGroupDecorate = 74,
742 SpvOpGroupMemberDecorate = 75,
743 SpvOpVectorExtractDynamic = 77,
744 SpvOpVectorInsertDynamic = 78,
745 SpvOpVectorShuffle = 79,
746 SpvOpCompositeConstruct = 80,
747 SpvOpCompositeExtract = 81,
748 SpvOpCompositeInsert = 82,
749 SpvOpCopyObject = 83,
750 SpvOpTranspose = 84,
751 SpvOpSampledImage = 86,
752 SpvOpImageSampleImplicitLod = 87,
753 SpvOpImageSampleExplicitLod = 88,
754 SpvOpImageSampleDrefImplicitLod = 89,
755 SpvOpImageSampleDrefExplicitLod = 90,
756 SpvOpImageSampleProjImplicitLod = 91,
757 SpvOpImageSampleProjExplicitLod = 92,
758 SpvOpImageSampleProjDrefImplicitLod = 93,
759 SpvOpImageSampleProjDrefExplicitLod = 94,
760 SpvOpImageFetch = 95,
761 SpvOpImageGather = 96,
762 SpvOpImageDrefGather = 97,
763 SpvOpImageRead = 98,
764 SpvOpImageWrite = 99,
765 SpvOpImage = 100,
766 SpvOpImageQueryFormat = 101,
767 SpvOpImageQueryOrder = 102,
768 SpvOpImageQuerySizeLod = 103,
769 SpvOpImageQuerySize = 104,
770 SpvOpImageQueryLod = 105,
771 SpvOpImageQueryLevels = 106,
772 SpvOpImageQuerySamples = 107,
773 SpvOpConvertFToU = 109,
774 SpvOpConvertFToS = 110,
775 SpvOpConvertSToF = 111,
776 SpvOpConvertUToF = 112,
777 SpvOpUConvert = 113,
778 SpvOpSConvert = 114,
779 SpvOpFConvert = 115,
780 SpvOpQuantizeToF16 = 116,
781 SpvOpConvertPtrToU = 117,
782 SpvOpSatConvertSToU = 118,
783 SpvOpSatConvertUToS = 119,
784 SpvOpConvertUToPtr = 120,
785 SpvOpPtrCastToGeneric = 121,
786 SpvOpGenericCastToPtr = 122,
787 SpvOpGenericCastToPtrExplicit = 123,
788 SpvOpBitcast = 124,
789 SpvOpSNegate = 126,
790 SpvOpFNegate = 127,
791 SpvOpIAdd = 128,
792 SpvOpFAdd = 129,
793 SpvOpISub = 130,
794 SpvOpFSub = 131,
795 SpvOpIMul = 132,
796 SpvOpFMul = 133,
797 SpvOpUDiv = 134,
798 SpvOpSDiv = 135,
799 SpvOpFDiv = 136,
800 SpvOpUMod = 137,
801 SpvOpSRem = 138,
802 SpvOpSMod = 139,
803 SpvOpFRem = 140,
804 SpvOpFMod = 141,
805 SpvOpVectorTimesScalar = 142,
806 SpvOpMatrixTimesScalar = 143,
807 SpvOpVectorTimesMatrix = 144,
808 SpvOpMatrixTimesVector = 145,
809 SpvOpMatrixTimesMatrix = 146,
810 SpvOpOuterProduct = 147,
811 SpvOpDot = 148,
812 SpvOpIAddCarry = 149,
813 SpvOpISubBorrow = 150,
814 SpvOpUMulExtended = 151,
815 SpvOpSMulExtended = 152,
816 SpvOpAny = 154,
817 SpvOpAll = 155,
818 SpvOpIsNan = 156,
819 SpvOpIsInf = 157,
820 SpvOpIsFinite = 158,
821 SpvOpIsNormal = 159,
822 SpvOpSignBitSet = 160,
823 SpvOpLessOrGreater = 161,
824 SpvOpOrdered = 162,
825 SpvOpUnordered = 163,
826 SpvOpLogicalEqual = 164,
827 SpvOpLogicalNotEqual = 165,
828 SpvOpLogicalOr = 166,
829 SpvOpLogicalAnd = 167,
830 SpvOpLogicalNot = 168,
831 SpvOpSelect = 169,
832 SpvOpIEqual = 170,
833 SpvOpINotEqual = 171,
834 SpvOpUGreaterThan = 172,
835 SpvOpSGreaterThan = 173,
836 SpvOpUGreaterThanEqual = 174,
837 SpvOpSGreaterThanEqual = 175,
838 SpvOpULessThan = 176,
839 SpvOpSLessThan = 177,
840 SpvOpULessThanEqual = 178,
841 SpvOpSLessThanEqual = 179,
842 SpvOpFOrdEqual = 180,
843 SpvOpFUnordEqual = 181,
844 SpvOpFOrdNotEqual = 182,
845 SpvOpFUnordNotEqual = 183,
846 SpvOpFOrdLessThan = 184,
847 SpvOpFUnordLessThan = 185,
848 SpvOpFOrdGreaterThan = 186,
849 SpvOpFUnordGreaterThan = 187,
850 SpvOpFOrdLessThanEqual = 188,
851 SpvOpFUnordLessThanEqual = 189,
852 SpvOpFOrdGreaterThanEqual = 190,
853 SpvOpFUnordGreaterThanEqual = 191,
854 SpvOpShiftRightLogical = 194,
855 SpvOpShiftRightArithmetic = 195,
856 SpvOpShiftLeftLogical = 196,
857 SpvOpBitwiseOr = 197,
858 SpvOpBitwiseXor = 198,
859 SpvOpBitwiseAnd = 199,
860 SpvOpNot = 200,
861 SpvOpBitFieldInsert = 201,
862 SpvOpBitFieldSExtract = 202,
863 SpvOpBitFieldUExtract = 203,
864 SpvOpBitReverse = 204,
865 SpvOpBitCount = 205,
866 SpvOpDPdx = 207,
867 SpvOpDPdy = 208,
868 SpvOpFwidth = 209,
869 SpvOpDPdxFine = 210,
870 SpvOpDPdyFine = 211,
871 SpvOpFwidthFine = 212,
872 SpvOpDPdxCoarse = 213,
873 SpvOpDPdyCoarse = 214,
874 SpvOpFwidthCoarse = 215,
875 SpvOpEmitVertex = 218,
876 SpvOpEndPrimitive = 219,
877 SpvOpEmitStreamVertex = 220,
878 SpvOpEndStreamPrimitive = 221,
879 SpvOpControlBarrier = 224,
880 SpvOpMemoryBarrier = 225,
881 SpvOpAtomicLoad = 227,
882 SpvOpAtomicStore = 228,
883 SpvOpAtomicExchange = 229,
884 SpvOpAtomicCompareExchange = 230,
885 SpvOpAtomicCompareExchangeWeak = 231,
886 SpvOpAtomicIIncrement = 232,
887 SpvOpAtomicIDecrement = 233,
888 SpvOpAtomicIAdd = 234,
889 SpvOpAtomicISub = 235,
890 SpvOpAtomicSMin = 236,
891 SpvOpAtomicUMin = 237,
892 SpvOpAtomicSMax = 238,
893 SpvOpAtomicUMax = 239,
894 SpvOpAtomicAnd = 240,
895 SpvOpAtomicOr = 241,
896 SpvOpAtomicXor = 242,
897 SpvOpPhi = 245,
898 SpvOpLoopMerge = 246,
899 SpvOpSelectionMerge = 247,
900 SpvOpLabel = 248,
901 SpvOpBranch = 249,
902 SpvOpBranchConditional = 250,
903 SpvOpSwitch = 251,
904 SpvOpKill = 252,
905 SpvOpReturn = 253,
906 SpvOpReturnValue = 254,
907 SpvOpUnreachable = 255,
908 SpvOpLifetimeStart = 256,
909 SpvOpLifetimeStop = 257,
910 SpvOpGroupAsyncCopy = 259,
911 SpvOpGroupWaitEvents = 260,
912 SpvOpGroupAll = 261,
913 SpvOpGroupAny = 262,
914 SpvOpGroupBroadcast = 263,
915 SpvOpGroupIAdd = 264,
916 SpvOpGroupFAdd = 265,
917 SpvOpGroupFMin = 266,
918 SpvOpGroupUMin = 267,
919 SpvOpGroupSMin = 268,
920 SpvOpGroupFMax = 269,
921 SpvOpGroupUMax = 270,
922 SpvOpGroupSMax = 271,
923 SpvOpReadPipe = 274,
924 SpvOpWritePipe = 275,
925 SpvOpReservedReadPipe = 276,
926 SpvOpReservedWritePipe = 277,
927 SpvOpReserveReadPipePackets = 278,
928 SpvOpReserveWritePipePackets = 279,
929 SpvOpCommitReadPipe = 280,
930 SpvOpCommitWritePipe = 281,
931 SpvOpIsValidReserveId = 282,
932 SpvOpGetNumPipePackets = 283,
933 SpvOpGetMaxPipePackets = 284,
934 SpvOpGroupReserveReadPipePackets = 285,
935 SpvOpGroupReserveWritePipePackets = 286,
936 SpvOpGroupCommitReadPipe = 287,
937 SpvOpGroupCommitWritePipe = 288,
938 SpvOpEnqueueMarker = 291,
939 SpvOpEnqueueKernel = 292,
940 SpvOpGetKernelNDrangeSubGroupCount = 293,
941 SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
942 SpvOpGetKernelWorkGroupSize = 295,
943 SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
944 SpvOpRetainEvent = 297,
945 SpvOpReleaseEvent = 298,
946 SpvOpCreateUserEvent = 299,
947 SpvOpIsValidEvent = 300,
948 SpvOpSetUserEventStatus = 301,
949 SpvOpCaptureEventProfilingInfo = 302,
950 SpvOpGetDefaultQueue = 303,
951 SpvOpBuildNDRange = 304,
952 SpvOpImageSparseSampleImplicitLod = 305,
953 SpvOpImageSparseSampleExplicitLod = 306,
954 SpvOpImageSparseSampleDrefImplicitLod = 307,
955 SpvOpImageSparseSampleDrefExplicitLod = 308,
956 SpvOpImageSparseSampleProjImplicitLod = 309,
957 SpvOpImageSparseSampleProjExplicitLod = 310,
958 SpvOpImageSparseSampleProjDrefImplicitLod = 311,
959 SpvOpImageSparseSampleProjDrefExplicitLod = 312,
960 SpvOpImageSparseFetch = 313,
961 SpvOpImageSparseGather = 314,
962 SpvOpImageSparseDrefGather = 315,
963 SpvOpImageSparseTexelsResident = 316,
964 SpvOpNoLine = 317,
965 SpvOpAtomicFlagTestAndSet = 318,
966 SpvOpAtomicFlagClear = 319,
967 SpvOpImageSparseRead = 320,
968 SpvOpSizeOf = 321,
969 SpvOpTypePipeStorage = 322,
970 SpvOpConstantPipeStorage = 323,
971 SpvOpCreatePipeFromPipeStorage = 324,
972 SpvOpGetKernelLocalSizeForSubgroupCount = 325,
973 SpvOpGetKernelMaxNumSubgroups = 326,
974 SpvOpTypeNamedBarrier = 327,
975 SpvOpNamedBarrierInitialize = 328,
976 SpvOpMemoryNamedBarrier = 329,
977 SpvOpModuleProcessed = 330,
978 SpvOpExecutionModeId = 331,
979 SpvOpDecorateId = 332,
980 SpvOpSubgroupBallotKHR = 4421,
981 SpvOpSubgroupFirstInvocationKHR = 4422,
982 SpvOpSubgroupAllKHR = 4428,
983 SpvOpSubgroupAnyKHR = 4429,
984 SpvOpSubgroupAllEqualKHR = 4430,
985 SpvOpSubgroupReadInvocationKHR = 4432,
986 SpvOpGroupIAddNonUniformAMD = 5000,
987 SpvOpGroupFAddNonUniformAMD = 5001,
988 SpvOpGroupFMinNonUniformAMD = 5002,
989 SpvOpGroupUMinNonUniformAMD = 5003,
990 SpvOpGroupSMinNonUniformAMD = 5004,
991 SpvOpGroupFMaxNonUniformAMD = 5005,
992 SpvOpGroupUMaxNonUniformAMD = 5006,
993 SpvOpGroupSMaxNonUniformAMD = 5007,
994 SpvOpMax = 0x7fffffff,
995 } SpvOp;
996
997 #endif // #ifndef spirv_H
998