~mmach/netext73/spirv-headers

« back to all changes in this revision

Viewing changes to include/spirv/1.0/spirv.h

  • Committer: mmach
  • Date: 2020-02-05 18:41:33 UTC
  • Revision ID: netbit73@gmail.com-20200205184133-m07iqdth12970zel
1.5

Show diffs side-by-side

added added

removed removed

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