~mmach/netext73/mesa-haswell

« back to all changes in this revision

Viewing changes to src/compiler/spirv/spirv.h

  • Committer: mmach
  • Date: 2022-09-22 19:56:13 UTC
  • Revision ID: netbit73@gmail.com-20220922195613-wtik9mmy20tmor0i
2022-09-22 21:17:09

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
** Copyright (c) 2014-2020 The Khronos Group Inc.
3
 
** 
4
 
** Permission is hereby granted, free of charge, to any person obtaining a copy
5
 
** of this software and/or associated documentation files (the "Materials"),
6
 
** to deal in the Materials without restriction, including without limitation
7
 
** the rights to use, copy, modify, merge, publish, distribute, sublicense,
8
 
** and/or sell copies of the Materials, and to permit persons to whom the
9
 
** Materials are furnished to do so, subject to the following conditions:
10
 
** 
11
 
** The above copyright notice and this permission notice shall be included in
12
 
** all copies or substantial portions of the Materials.
13
 
** 
14
 
** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
15
 
** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
16
 
** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 
17
 
** 
18
 
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19
 
** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
 
** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21
 
** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
 
** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
 
** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
24
 
** IN THE MATERIALS.
25
 
*/
26
 
 
27
 
/*
28
 
** This header is automatically generated by the same tool that creates
29
 
** the Binary Section of the SPIR-V specification.
30
 
*/
31
 
 
32
 
/*
33
 
** Enumeration tokens for SPIR-V, in various styles:
34
 
**   C, C++, C++11, JSON, Lua, Python, C#, D
35
 
** 
36
 
** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
37
 
** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
38
 
** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
39
 
** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
40
 
** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
41
 
** - C# will use enum classes in the Specification class located in the "Spv" namespace,
42
 
**     e.g.: Spv.Specification.SourceLanguage.GLSL
43
 
** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
44
 
** 
45
 
** Some tokens act like mask values, which can be OR'd together,
46
 
** while others are mutually exclusive.  The mask-like ones have
47
 
** "Mask" in their name, and a parallel enum that has the shift
48
 
** amount (1 << x) for each corresponding enumerant.
49
 
*/
50
 
 
51
 
#ifndef spirv_H
52
 
#define spirv_H
53
 
 
54
 
typedef unsigned int SpvId;
55
 
 
56
 
#define SPV_VERSION 0x10600
57
 
#define SPV_REVISION 1
58
 
 
59
 
static const unsigned int SpvMagicNumber = 0x07230203;
60
 
static const unsigned int SpvVersion = 0x00010600;
61
 
static const unsigned int SpvRevision = 1;
62
 
static const unsigned int SpvOpCodeMask = 0xffff;
63
 
static const unsigned int SpvWordCountShift = 16;
64
 
 
65
 
typedef enum SpvSourceLanguage_ {
66
 
    SpvSourceLanguageUnknown = 0,
67
 
    SpvSourceLanguageESSL = 1,
68
 
    SpvSourceLanguageGLSL = 2,
69
 
    SpvSourceLanguageOpenCL_C = 3,
70
 
    SpvSourceLanguageOpenCL_CPP = 4,
71
 
    SpvSourceLanguageHLSL = 5,
72
 
    SpvSourceLanguageCPP_for_OpenCL = 6,
73
 
    SpvSourceLanguageMax = 0x7fffffff,
74
 
} SpvSourceLanguage;
75
 
 
76
 
typedef enum SpvExecutionModel_ {
77
 
    SpvExecutionModelVertex = 0,
78
 
    SpvExecutionModelTessellationControl = 1,
79
 
    SpvExecutionModelTessellationEvaluation = 2,
80
 
    SpvExecutionModelGeometry = 3,
81
 
    SpvExecutionModelFragment = 4,
82
 
    SpvExecutionModelGLCompute = 5,
83
 
    SpvExecutionModelKernel = 6,
84
 
    SpvExecutionModelTaskNV = 5267,
85
 
    SpvExecutionModelMeshNV = 5268,
86
 
    SpvExecutionModelRayGenerationKHR = 5313,
87
 
    SpvExecutionModelRayGenerationNV = 5313,
88
 
    SpvExecutionModelIntersectionKHR = 5314,
89
 
    SpvExecutionModelIntersectionNV = 5314,
90
 
    SpvExecutionModelAnyHitKHR = 5315,
91
 
    SpvExecutionModelAnyHitNV = 5315,
92
 
    SpvExecutionModelClosestHitKHR = 5316,
93
 
    SpvExecutionModelClosestHitNV = 5316,
94
 
    SpvExecutionModelMissKHR = 5317,
95
 
    SpvExecutionModelMissNV = 5317,
96
 
    SpvExecutionModelCallableKHR = 5318,
97
 
    SpvExecutionModelCallableNV = 5318,
98
 
    SpvExecutionModelMax = 0x7fffffff,
99
 
} SpvExecutionModel;
100
 
 
101
 
typedef enum SpvAddressingModel_ {
102
 
    SpvAddressingModelLogical = 0,
103
 
    SpvAddressingModelPhysical32 = 1,
104
 
    SpvAddressingModelPhysical64 = 2,
105
 
    SpvAddressingModelPhysicalStorageBuffer64 = 5348,
106
 
    SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
107
 
    SpvAddressingModelMax = 0x7fffffff,
108
 
} SpvAddressingModel;
109
 
 
110
 
typedef enum SpvMemoryModel_ {
111
 
    SpvMemoryModelSimple = 0,
112
 
    SpvMemoryModelGLSL450 = 1,
113
 
    SpvMemoryModelOpenCL = 2,
114
 
    SpvMemoryModelVulkan = 3,
115
 
    SpvMemoryModelVulkanKHR = 3,
116
 
    SpvMemoryModelMax = 0x7fffffff,
117
 
} SpvMemoryModel;
118
 
 
119
 
typedef enum SpvExecutionMode_ {
120
 
    SpvExecutionModeInvocations = 0,
121
 
    SpvExecutionModeSpacingEqual = 1,
122
 
    SpvExecutionModeSpacingFractionalEven = 2,
123
 
    SpvExecutionModeSpacingFractionalOdd = 3,
124
 
    SpvExecutionModeVertexOrderCw = 4,
125
 
    SpvExecutionModeVertexOrderCcw = 5,
126
 
    SpvExecutionModePixelCenterInteger = 6,
127
 
    SpvExecutionModeOriginUpperLeft = 7,
128
 
    SpvExecutionModeOriginLowerLeft = 8,
129
 
    SpvExecutionModeEarlyFragmentTests = 9,
130
 
    SpvExecutionModePointMode = 10,
131
 
    SpvExecutionModeXfb = 11,
132
 
    SpvExecutionModeDepthReplacing = 12,
133
 
    SpvExecutionModeDepthGreater = 14,
134
 
    SpvExecutionModeDepthLess = 15,
135
 
    SpvExecutionModeDepthUnchanged = 16,
136
 
    SpvExecutionModeLocalSize = 17,
137
 
    SpvExecutionModeLocalSizeHint = 18,
138
 
    SpvExecutionModeInputPoints = 19,
139
 
    SpvExecutionModeInputLines = 20,
140
 
    SpvExecutionModeInputLinesAdjacency = 21,
141
 
    SpvExecutionModeTriangles = 22,
142
 
    SpvExecutionModeInputTrianglesAdjacency = 23,
143
 
    SpvExecutionModeQuads = 24,
144
 
    SpvExecutionModeIsolines = 25,
145
 
    SpvExecutionModeOutputVertices = 26,
146
 
    SpvExecutionModeOutputPoints = 27,
147
 
    SpvExecutionModeOutputLineStrip = 28,
148
 
    SpvExecutionModeOutputTriangleStrip = 29,
149
 
    SpvExecutionModeVecTypeHint = 30,
150
 
    SpvExecutionModeContractionOff = 31,
151
 
    SpvExecutionModeInitializer = 33,
152
 
    SpvExecutionModeFinalizer = 34,
153
 
    SpvExecutionModeSubgroupSize = 35,
154
 
    SpvExecutionModeSubgroupsPerWorkgroup = 36,
155
 
    SpvExecutionModeSubgroupsPerWorkgroupId = 37,
156
 
    SpvExecutionModeLocalSizeId = 38,
157
 
    SpvExecutionModeLocalSizeHintId = 39,
158
 
    SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
159
 
    SpvExecutionModePostDepthCoverage = 4446,
160
 
    SpvExecutionModeDenormPreserve = 4459,
161
 
    SpvExecutionModeDenormFlushToZero = 4460,
162
 
    SpvExecutionModeSignedZeroInfNanPreserve = 4461,
163
 
    SpvExecutionModeRoundingModeRTE = 4462,
164
 
    SpvExecutionModeRoundingModeRTZ = 4463,
165
 
    SpvExecutionModeStencilRefReplacingEXT = 5027,
166
 
    SpvExecutionModeOutputLinesNV = 5269,
167
 
    SpvExecutionModeOutputPrimitivesNV = 5270,
168
 
    SpvExecutionModeDerivativeGroupQuadsNV = 5289,
169
 
    SpvExecutionModeDerivativeGroupLinearNV = 5290,
170
 
    SpvExecutionModeOutputTrianglesNV = 5298,
171
 
    SpvExecutionModePixelInterlockOrderedEXT = 5366,
172
 
    SpvExecutionModePixelInterlockUnorderedEXT = 5367,
173
 
    SpvExecutionModeSampleInterlockOrderedEXT = 5368,
174
 
    SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
175
 
    SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
176
 
    SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
177
 
    SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
178
 
    SpvExecutionModeRoundingModeRTPINTEL = 5620,
179
 
    SpvExecutionModeRoundingModeRTNINTEL = 5621,
180
 
    SpvExecutionModeFloatingPointModeALTINTEL = 5622,
181
 
    SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
182
 
    SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
183
 
    SpvExecutionModeMaxWorkDimINTEL = 5894,
184
 
    SpvExecutionModeNoGlobalOffsetINTEL = 5895,
185
 
    SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
186
 
    SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
187
 
    SpvExecutionModeMax = 0x7fffffff,
188
 
} SpvExecutionMode;
189
 
 
190
 
typedef enum SpvStorageClass_ {
191
 
    SpvStorageClassUniformConstant = 0,
192
 
    SpvStorageClassInput = 1,
193
 
    SpvStorageClassUniform = 2,
194
 
    SpvStorageClassOutput = 3,
195
 
    SpvStorageClassWorkgroup = 4,
196
 
    SpvStorageClassCrossWorkgroup = 5,
197
 
    SpvStorageClassPrivate = 6,
198
 
    SpvStorageClassFunction = 7,
199
 
    SpvStorageClassGeneric = 8,
200
 
    SpvStorageClassPushConstant = 9,
201
 
    SpvStorageClassAtomicCounter = 10,
202
 
    SpvStorageClassImage = 11,
203
 
    SpvStorageClassStorageBuffer = 12,
204
 
    SpvStorageClassCallableDataKHR = 5328,
205
 
    SpvStorageClassCallableDataNV = 5328,
206
 
    SpvStorageClassIncomingCallableDataKHR = 5329,
207
 
    SpvStorageClassIncomingCallableDataNV = 5329,
208
 
    SpvStorageClassRayPayloadKHR = 5338,
209
 
    SpvStorageClassRayPayloadNV = 5338,
210
 
    SpvStorageClassHitAttributeKHR = 5339,
211
 
    SpvStorageClassHitAttributeNV = 5339,
212
 
    SpvStorageClassIncomingRayPayloadKHR = 5342,
213
 
    SpvStorageClassIncomingRayPayloadNV = 5342,
214
 
    SpvStorageClassShaderRecordBufferKHR = 5343,
215
 
    SpvStorageClassShaderRecordBufferNV = 5343,
216
 
    SpvStorageClassPhysicalStorageBuffer = 5349,
217
 
    SpvStorageClassPhysicalStorageBufferEXT = 5349,
218
 
    SpvStorageClassCodeSectionINTEL = 5605,
219
 
    SpvStorageClassDeviceOnlyINTEL = 5936,
220
 
    SpvStorageClassHostOnlyINTEL = 5937,
221
 
    SpvStorageClassMax = 0x7fffffff,
222
 
} SpvStorageClass;
223
 
 
224
 
typedef enum SpvDim_ {
225
 
    SpvDim1D = 0,
226
 
    SpvDim2D = 1,
227
 
    SpvDim3D = 2,
228
 
    SpvDimCube = 3,
229
 
    SpvDimRect = 4,
230
 
    SpvDimBuffer = 5,
231
 
    SpvDimSubpassData = 6,
232
 
    SpvDimMax = 0x7fffffff,
233
 
} SpvDim;
234
 
 
235
 
typedef enum SpvSamplerAddressingMode_ {
236
 
    SpvSamplerAddressingModeNone = 0,
237
 
    SpvSamplerAddressingModeClampToEdge = 1,
238
 
    SpvSamplerAddressingModeClamp = 2,
239
 
    SpvSamplerAddressingModeRepeat = 3,
240
 
    SpvSamplerAddressingModeRepeatMirrored = 4,
241
 
    SpvSamplerAddressingModeMax = 0x7fffffff,
242
 
} SpvSamplerAddressingMode;
243
 
 
244
 
typedef enum SpvSamplerFilterMode_ {
245
 
    SpvSamplerFilterModeNearest = 0,
246
 
    SpvSamplerFilterModeLinear = 1,
247
 
    SpvSamplerFilterModeMax = 0x7fffffff,
248
 
} SpvSamplerFilterMode;
249
 
 
250
 
typedef enum SpvImageFormat_ {
251
 
    SpvImageFormatUnknown = 0,
252
 
    SpvImageFormatRgba32f = 1,
253
 
    SpvImageFormatRgba16f = 2,
254
 
    SpvImageFormatR32f = 3,
255
 
    SpvImageFormatRgba8 = 4,
256
 
    SpvImageFormatRgba8Snorm = 5,
257
 
    SpvImageFormatRg32f = 6,
258
 
    SpvImageFormatRg16f = 7,
259
 
    SpvImageFormatR11fG11fB10f = 8,
260
 
    SpvImageFormatR16f = 9,
261
 
    SpvImageFormatRgba16 = 10,
262
 
    SpvImageFormatRgb10A2 = 11,
263
 
    SpvImageFormatRg16 = 12,
264
 
    SpvImageFormatRg8 = 13,
265
 
    SpvImageFormatR16 = 14,
266
 
    SpvImageFormatR8 = 15,
267
 
    SpvImageFormatRgba16Snorm = 16,
268
 
    SpvImageFormatRg16Snorm = 17,
269
 
    SpvImageFormatRg8Snorm = 18,
270
 
    SpvImageFormatR16Snorm = 19,
271
 
    SpvImageFormatR8Snorm = 20,
272
 
    SpvImageFormatRgba32i = 21,
273
 
    SpvImageFormatRgba16i = 22,
274
 
    SpvImageFormatRgba8i = 23,
275
 
    SpvImageFormatR32i = 24,
276
 
    SpvImageFormatRg32i = 25,
277
 
    SpvImageFormatRg16i = 26,
278
 
    SpvImageFormatRg8i = 27,
279
 
    SpvImageFormatR16i = 28,
280
 
    SpvImageFormatR8i = 29,
281
 
    SpvImageFormatRgba32ui = 30,
282
 
    SpvImageFormatRgba16ui = 31,
283
 
    SpvImageFormatRgba8ui = 32,
284
 
    SpvImageFormatR32ui = 33,
285
 
    SpvImageFormatRgb10a2ui = 34,
286
 
    SpvImageFormatRg32ui = 35,
287
 
    SpvImageFormatRg16ui = 36,
288
 
    SpvImageFormatRg8ui = 37,
289
 
    SpvImageFormatR16ui = 38,
290
 
    SpvImageFormatR8ui = 39,
291
 
    SpvImageFormatR64ui = 40,
292
 
    SpvImageFormatR64i = 41,
293
 
    SpvImageFormatMax = 0x7fffffff,
294
 
} SpvImageFormat;
295
 
 
296
 
typedef enum SpvImageChannelOrder_ {
297
 
    SpvImageChannelOrderR = 0,
298
 
    SpvImageChannelOrderA = 1,
299
 
    SpvImageChannelOrderRG = 2,
300
 
    SpvImageChannelOrderRA = 3,
301
 
    SpvImageChannelOrderRGB = 4,
302
 
    SpvImageChannelOrderRGBA = 5,
303
 
    SpvImageChannelOrderBGRA = 6,
304
 
    SpvImageChannelOrderARGB = 7,
305
 
    SpvImageChannelOrderIntensity = 8,
306
 
    SpvImageChannelOrderLuminance = 9,
307
 
    SpvImageChannelOrderRx = 10,
308
 
    SpvImageChannelOrderRGx = 11,
309
 
    SpvImageChannelOrderRGBx = 12,
310
 
    SpvImageChannelOrderDepth = 13,
311
 
    SpvImageChannelOrderDepthStencil = 14,
312
 
    SpvImageChannelOrdersRGB = 15,
313
 
    SpvImageChannelOrdersRGBx = 16,
314
 
    SpvImageChannelOrdersRGBA = 17,
315
 
    SpvImageChannelOrdersBGRA = 18,
316
 
    SpvImageChannelOrderABGR = 19,
317
 
    SpvImageChannelOrderMax = 0x7fffffff,
318
 
} SpvImageChannelOrder;
319
 
 
320
 
typedef enum SpvImageChannelDataType_ {
321
 
    SpvImageChannelDataTypeSnormInt8 = 0,
322
 
    SpvImageChannelDataTypeSnormInt16 = 1,
323
 
    SpvImageChannelDataTypeUnormInt8 = 2,
324
 
    SpvImageChannelDataTypeUnormInt16 = 3,
325
 
    SpvImageChannelDataTypeUnormShort565 = 4,
326
 
    SpvImageChannelDataTypeUnormShort555 = 5,
327
 
    SpvImageChannelDataTypeUnormInt101010 = 6,
328
 
    SpvImageChannelDataTypeSignedInt8 = 7,
329
 
    SpvImageChannelDataTypeSignedInt16 = 8,
330
 
    SpvImageChannelDataTypeSignedInt32 = 9,
331
 
    SpvImageChannelDataTypeUnsignedInt8 = 10,
332
 
    SpvImageChannelDataTypeUnsignedInt16 = 11,
333
 
    SpvImageChannelDataTypeUnsignedInt32 = 12,
334
 
    SpvImageChannelDataTypeHalfFloat = 13,
335
 
    SpvImageChannelDataTypeFloat = 14,
336
 
    SpvImageChannelDataTypeUnormInt24 = 15,
337
 
    SpvImageChannelDataTypeUnormInt101010_2 = 16,
338
 
    SpvImageChannelDataTypeMax = 0x7fffffff,
339
 
} SpvImageChannelDataType;
340
 
 
341
 
typedef enum SpvImageOperandsShift_ {
342
 
    SpvImageOperandsBiasShift = 0,
343
 
    SpvImageOperandsLodShift = 1,
344
 
    SpvImageOperandsGradShift = 2,
345
 
    SpvImageOperandsConstOffsetShift = 3,
346
 
    SpvImageOperandsOffsetShift = 4,
347
 
    SpvImageOperandsConstOffsetsShift = 5,
348
 
    SpvImageOperandsSampleShift = 6,
349
 
    SpvImageOperandsMinLodShift = 7,
350
 
    SpvImageOperandsMakeTexelAvailableShift = 8,
351
 
    SpvImageOperandsMakeTexelAvailableKHRShift = 8,
352
 
    SpvImageOperandsMakeTexelVisibleShift = 9,
353
 
    SpvImageOperandsMakeTexelVisibleKHRShift = 9,
354
 
    SpvImageOperandsNonPrivateTexelShift = 10,
355
 
    SpvImageOperandsNonPrivateTexelKHRShift = 10,
356
 
    SpvImageOperandsVolatileTexelShift = 11,
357
 
    SpvImageOperandsVolatileTexelKHRShift = 11,
358
 
    SpvImageOperandsSignExtendShift = 12,
359
 
    SpvImageOperandsZeroExtendShift = 13,
360
 
    SpvImageOperandsNontemporalShift = 14,
361
 
    SpvImageOperandsOffsetsShift = 16,
362
 
    SpvImageOperandsMax = 0x7fffffff,
363
 
} SpvImageOperandsShift;
364
 
 
365
 
typedef enum SpvImageOperandsMask_ {
366
 
    SpvImageOperandsMaskNone = 0,
367
 
    SpvImageOperandsBiasMask = 0x00000001,
368
 
    SpvImageOperandsLodMask = 0x00000002,
369
 
    SpvImageOperandsGradMask = 0x00000004,
370
 
    SpvImageOperandsConstOffsetMask = 0x00000008,
371
 
    SpvImageOperandsOffsetMask = 0x00000010,
372
 
    SpvImageOperandsConstOffsetsMask = 0x00000020,
373
 
    SpvImageOperandsSampleMask = 0x00000040,
374
 
    SpvImageOperandsMinLodMask = 0x00000080,
375
 
    SpvImageOperandsMakeTexelAvailableMask = 0x00000100,
376
 
    SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
377
 
    SpvImageOperandsMakeTexelVisibleMask = 0x00000200,
378
 
    SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
379
 
    SpvImageOperandsNonPrivateTexelMask = 0x00000400,
380
 
    SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
381
 
    SpvImageOperandsVolatileTexelMask = 0x00000800,
382
 
    SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
383
 
    SpvImageOperandsSignExtendMask = 0x00001000,
384
 
    SpvImageOperandsZeroExtendMask = 0x00002000,
385
 
    SpvImageOperandsNontemporalMask = 0x00004000,
386
 
    SpvImageOperandsOffsetsMask = 0x00010000,
387
 
} SpvImageOperandsMask;
388
 
 
389
 
typedef enum SpvFPFastMathModeShift_ {
390
 
    SpvFPFastMathModeNotNaNShift = 0,
391
 
    SpvFPFastMathModeNotInfShift = 1,
392
 
    SpvFPFastMathModeNSZShift = 2,
393
 
    SpvFPFastMathModeAllowRecipShift = 3,
394
 
    SpvFPFastMathModeFastShift = 4,
395
 
    SpvFPFastMathModeAllowContractFastINTELShift = 16,
396
 
    SpvFPFastMathModeAllowReassocINTELShift = 17,
397
 
    SpvFPFastMathModeMax = 0x7fffffff,
398
 
} SpvFPFastMathModeShift;
399
 
 
400
 
typedef enum SpvFPFastMathModeMask_ {
401
 
    SpvFPFastMathModeMaskNone = 0,
402
 
    SpvFPFastMathModeNotNaNMask = 0x00000001,
403
 
    SpvFPFastMathModeNotInfMask = 0x00000002,
404
 
    SpvFPFastMathModeNSZMask = 0x00000004,
405
 
    SpvFPFastMathModeAllowRecipMask = 0x00000008,
406
 
    SpvFPFastMathModeFastMask = 0x00000010,
407
 
    SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
408
 
    SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
409
 
} SpvFPFastMathModeMask;
410
 
 
411
 
typedef enum SpvFPRoundingMode_ {
412
 
    SpvFPRoundingModeRTE = 0,
413
 
    SpvFPRoundingModeRTZ = 1,
414
 
    SpvFPRoundingModeRTP = 2,
415
 
    SpvFPRoundingModeRTN = 3,
416
 
    SpvFPRoundingModeMax = 0x7fffffff,
417
 
} SpvFPRoundingMode;
418
 
 
419
 
typedef enum SpvLinkageType_ {
420
 
    SpvLinkageTypeExport = 0,
421
 
    SpvLinkageTypeImport = 1,
422
 
    SpvLinkageTypeLinkOnceODR = 2,
423
 
    SpvLinkageTypeMax = 0x7fffffff,
424
 
} SpvLinkageType;
425
 
 
426
 
typedef enum SpvAccessQualifier_ {
427
 
    SpvAccessQualifierReadOnly = 0,
428
 
    SpvAccessQualifierWriteOnly = 1,
429
 
    SpvAccessQualifierReadWrite = 2,
430
 
    SpvAccessQualifierMax = 0x7fffffff,
431
 
} SpvAccessQualifier;
432
 
 
433
 
typedef enum SpvFunctionParameterAttribute_ {
434
 
    SpvFunctionParameterAttributeZext = 0,
435
 
    SpvFunctionParameterAttributeSext = 1,
436
 
    SpvFunctionParameterAttributeByVal = 2,
437
 
    SpvFunctionParameterAttributeSret = 3,
438
 
    SpvFunctionParameterAttributeNoAlias = 4,
439
 
    SpvFunctionParameterAttributeNoCapture = 5,
440
 
    SpvFunctionParameterAttributeNoWrite = 6,
441
 
    SpvFunctionParameterAttributeNoReadWrite = 7,
442
 
    SpvFunctionParameterAttributeMax = 0x7fffffff,
443
 
} SpvFunctionParameterAttribute;
444
 
 
445
 
typedef enum SpvDecoration_ {
446
 
    SpvDecorationRelaxedPrecision = 0,
447
 
    SpvDecorationSpecId = 1,
448
 
    SpvDecorationBlock = 2,
449
 
    SpvDecorationBufferBlock = 3,
450
 
    SpvDecorationRowMajor = 4,
451
 
    SpvDecorationColMajor = 5,
452
 
    SpvDecorationArrayStride = 6,
453
 
    SpvDecorationMatrixStride = 7,
454
 
    SpvDecorationGLSLShared = 8,
455
 
    SpvDecorationGLSLPacked = 9,
456
 
    SpvDecorationCPacked = 10,
457
 
    SpvDecorationBuiltIn = 11,
458
 
    SpvDecorationNoPerspective = 13,
459
 
    SpvDecorationFlat = 14,
460
 
    SpvDecorationPatch = 15,
461
 
    SpvDecorationCentroid = 16,
462
 
    SpvDecorationSample = 17,
463
 
    SpvDecorationInvariant = 18,
464
 
    SpvDecorationRestrict = 19,
465
 
    SpvDecorationAliased = 20,
466
 
    SpvDecorationVolatile = 21,
467
 
    SpvDecorationConstant = 22,
468
 
    SpvDecorationCoherent = 23,
469
 
    SpvDecorationNonWritable = 24,
470
 
    SpvDecorationNonReadable = 25,
471
 
    SpvDecorationUniform = 26,
472
 
    SpvDecorationUniformId = 27,
473
 
    SpvDecorationSaturatedConversion = 28,
474
 
    SpvDecorationStream = 29,
475
 
    SpvDecorationLocation = 30,
476
 
    SpvDecorationComponent = 31,
477
 
    SpvDecorationIndex = 32,
478
 
    SpvDecorationBinding = 33,
479
 
    SpvDecorationDescriptorSet = 34,
480
 
    SpvDecorationOffset = 35,
481
 
    SpvDecorationXfbBuffer = 36,
482
 
    SpvDecorationXfbStride = 37,
483
 
    SpvDecorationFuncParamAttr = 38,
484
 
    SpvDecorationFPRoundingMode = 39,
485
 
    SpvDecorationFPFastMathMode = 40,
486
 
    SpvDecorationLinkageAttributes = 41,
487
 
    SpvDecorationNoContraction = 42,
488
 
    SpvDecorationInputAttachmentIndex = 43,
489
 
    SpvDecorationAlignment = 44,
490
 
    SpvDecorationMaxByteOffset = 45,
491
 
    SpvDecorationAlignmentId = 46,
492
 
    SpvDecorationMaxByteOffsetId = 47,
493
 
    SpvDecorationNoSignedWrap = 4469,
494
 
    SpvDecorationNoUnsignedWrap = 4470,
495
 
    SpvDecorationExplicitInterpAMD = 4999,
496
 
    SpvDecorationOverrideCoverageNV = 5248,
497
 
    SpvDecorationPassthroughNV = 5250,
498
 
    SpvDecorationViewportRelativeNV = 5252,
499
 
    SpvDecorationSecondaryViewportRelativeNV = 5256,
500
 
    SpvDecorationPerPrimitiveNV = 5271,
501
 
    SpvDecorationPerViewNV = 5272,
502
 
    SpvDecorationPerTaskNV = 5273,
503
 
    SpvDecorationPerVertexKHR = 5285,
504
 
    SpvDecorationPerVertexNV = 5285,
505
 
    SpvDecorationNonUniform = 5300,
506
 
    SpvDecorationNonUniformEXT = 5300,
507
 
    SpvDecorationRestrictPointer = 5355,
508
 
    SpvDecorationRestrictPointerEXT = 5355,
509
 
    SpvDecorationAliasedPointer = 5356,
510
 
    SpvDecorationAliasedPointerEXT = 5356,
511
 
    SpvDecorationBindlessSamplerNV = 5398,
512
 
    SpvDecorationBindlessImageNV = 5399,
513
 
    SpvDecorationBoundSamplerNV = 5400,
514
 
    SpvDecorationBoundImageNV = 5401,
515
 
    SpvDecorationSIMTCallINTEL = 5599,
516
 
    SpvDecorationReferencedIndirectlyINTEL = 5602,
517
 
    SpvDecorationClobberINTEL = 5607,
518
 
    SpvDecorationSideEffectsINTEL = 5608,
519
 
    SpvDecorationVectorComputeVariableINTEL = 5624,
520
 
    SpvDecorationFuncParamIOKindINTEL = 5625,
521
 
    SpvDecorationVectorComputeFunctionINTEL = 5626,
522
 
    SpvDecorationStackCallINTEL = 5627,
523
 
    SpvDecorationGlobalVariableOffsetINTEL = 5628,
524
 
    SpvDecorationCounterBuffer = 5634,
525
 
    SpvDecorationHlslCounterBufferGOOGLE = 5634,
526
 
    SpvDecorationHlslSemanticGOOGLE = 5635,
527
 
    SpvDecorationUserSemantic = 5635,
528
 
    SpvDecorationUserTypeGOOGLE = 5636,
529
 
    SpvDecorationFunctionRoundingModeINTEL = 5822,
530
 
    SpvDecorationFunctionDenormModeINTEL = 5823,
531
 
    SpvDecorationRegisterINTEL = 5825,
532
 
    SpvDecorationMemoryINTEL = 5826,
533
 
    SpvDecorationNumbanksINTEL = 5827,
534
 
    SpvDecorationBankwidthINTEL = 5828,
535
 
    SpvDecorationMaxPrivateCopiesINTEL = 5829,
536
 
    SpvDecorationSinglepumpINTEL = 5830,
537
 
    SpvDecorationDoublepumpINTEL = 5831,
538
 
    SpvDecorationMaxReplicatesINTEL = 5832,
539
 
    SpvDecorationSimpleDualPortINTEL = 5833,
540
 
    SpvDecorationMergeINTEL = 5834,
541
 
    SpvDecorationBankBitsINTEL = 5835,
542
 
    SpvDecorationForcePow2DepthINTEL = 5836,
543
 
    SpvDecorationBurstCoalesceINTEL = 5899,
544
 
    SpvDecorationCacheSizeINTEL = 5900,
545
 
    SpvDecorationDontStaticallyCoalesceINTEL = 5901,
546
 
    SpvDecorationPrefetchINTEL = 5902,
547
 
    SpvDecorationStallEnableINTEL = 5905,
548
 
    SpvDecorationFuseLoopsInFunctionINTEL = 5907,
549
 
    SpvDecorationBufferLocationINTEL = 5921,
550
 
    SpvDecorationIOPipeStorageINTEL = 5944,
551
 
    SpvDecorationFunctionFloatingPointModeINTEL = 6080,
552
 
    SpvDecorationSingleElementVectorINTEL = 6085,
553
 
    SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
554
 
    SpvDecorationMediaBlockIOINTEL = 6140,
555
 
    SpvDecorationMax = 0x7fffffff,
556
 
} SpvDecoration;
557
 
 
558
 
typedef enum SpvBuiltIn_ {
559
 
    SpvBuiltInPosition = 0,
560
 
    SpvBuiltInPointSize = 1,
561
 
    SpvBuiltInClipDistance = 3,
562
 
    SpvBuiltInCullDistance = 4,
563
 
    SpvBuiltInVertexId = 5,
564
 
    SpvBuiltInInstanceId = 6,
565
 
    SpvBuiltInPrimitiveId = 7,
566
 
    SpvBuiltInInvocationId = 8,
567
 
    SpvBuiltInLayer = 9,
568
 
    SpvBuiltInViewportIndex = 10,
569
 
    SpvBuiltInTessLevelOuter = 11,
570
 
    SpvBuiltInTessLevelInner = 12,
571
 
    SpvBuiltInTessCoord = 13,
572
 
    SpvBuiltInPatchVertices = 14,
573
 
    SpvBuiltInFragCoord = 15,
574
 
    SpvBuiltInPointCoord = 16,
575
 
    SpvBuiltInFrontFacing = 17,
576
 
    SpvBuiltInSampleId = 18,
577
 
    SpvBuiltInSamplePosition = 19,
578
 
    SpvBuiltInSampleMask = 20,
579
 
    SpvBuiltInFragDepth = 22,
580
 
    SpvBuiltInHelperInvocation = 23,
581
 
    SpvBuiltInNumWorkgroups = 24,
582
 
    SpvBuiltInWorkgroupSize = 25,
583
 
    SpvBuiltInWorkgroupId = 26,
584
 
    SpvBuiltInLocalInvocationId = 27,
585
 
    SpvBuiltInGlobalInvocationId = 28,
586
 
    SpvBuiltInLocalInvocationIndex = 29,
587
 
    SpvBuiltInWorkDim = 30,
588
 
    SpvBuiltInGlobalSize = 31,
589
 
    SpvBuiltInEnqueuedWorkgroupSize = 32,
590
 
    SpvBuiltInGlobalOffset = 33,
591
 
    SpvBuiltInGlobalLinearId = 34,
592
 
    SpvBuiltInSubgroupSize = 36,
593
 
    SpvBuiltInSubgroupMaxSize = 37,
594
 
    SpvBuiltInNumSubgroups = 38,
595
 
    SpvBuiltInNumEnqueuedSubgroups = 39,
596
 
    SpvBuiltInSubgroupId = 40,
597
 
    SpvBuiltInSubgroupLocalInvocationId = 41,
598
 
    SpvBuiltInVertexIndex = 42,
599
 
    SpvBuiltInInstanceIndex = 43,
600
 
    SpvBuiltInSubgroupEqMask = 4416,
601
 
    SpvBuiltInSubgroupEqMaskKHR = 4416,
602
 
    SpvBuiltInSubgroupGeMask = 4417,
603
 
    SpvBuiltInSubgroupGeMaskKHR = 4417,
604
 
    SpvBuiltInSubgroupGtMask = 4418,
605
 
    SpvBuiltInSubgroupGtMaskKHR = 4418,
606
 
    SpvBuiltInSubgroupLeMask = 4419,
607
 
    SpvBuiltInSubgroupLeMaskKHR = 4419,
608
 
    SpvBuiltInSubgroupLtMask = 4420,
609
 
    SpvBuiltInSubgroupLtMaskKHR = 4420,
610
 
    SpvBuiltInBaseVertex = 4424,
611
 
    SpvBuiltInBaseInstance = 4425,
612
 
    SpvBuiltInDrawIndex = 4426,
613
 
    SpvBuiltInPrimitiveShadingRateKHR = 4432,
614
 
    SpvBuiltInDeviceIndex = 4438,
615
 
    SpvBuiltInViewIndex = 4440,
616
 
    SpvBuiltInShadingRateKHR = 4444,
617
 
    SpvBuiltInBaryCoordNoPerspAMD = 4992,
618
 
    SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
619
 
    SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
620
 
    SpvBuiltInBaryCoordSmoothAMD = 4995,
621
 
    SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
622
 
    SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
623
 
    SpvBuiltInBaryCoordPullModelAMD = 4998,
624
 
    SpvBuiltInFragStencilRefEXT = 5014,
625
 
    SpvBuiltInViewportMaskNV = 5253,
626
 
    SpvBuiltInSecondaryPositionNV = 5257,
627
 
    SpvBuiltInSecondaryViewportMaskNV = 5258,
628
 
    SpvBuiltInPositionPerViewNV = 5261,
629
 
    SpvBuiltInViewportMaskPerViewNV = 5262,
630
 
    SpvBuiltInFullyCoveredEXT = 5264,
631
 
    SpvBuiltInTaskCountNV = 5274,
632
 
    SpvBuiltInPrimitiveCountNV = 5275,
633
 
    SpvBuiltInPrimitiveIndicesNV = 5276,
634
 
    SpvBuiltInClipDistancePerViewNV = 5277,
635
 
    SpvBuiltInCullDistancePerViewNV = 5278,
636
 
    SpvBuiltInLayerPerViewNV = 5279,
637
 
    SpvBuiltInMeshViewCountNV = 5280,
638
 
    SpvBuiltInMeshViewIndicesNV = 5281,
639
 
    SpvBuiltInBaryCoordKHR = 5286,
640
 
    SpvBuiltInBaryCoordNV = 5286,
641
 
    SpvBuiltInBaryCoordNoPerspKHR = 5287,
642
 
    SpvBuiltInBaryCoordNoPerspNV = 5287,
643
 
    SpvBuiltInFragSizeEXT = 5292,
644
 
    SpvBuiltInFragmentSizeNV = 5292,
645
 
    SpvBuiltInFragInvocationCountEXT = 5293,
646
 
    SpvBuiltInInvocationsPerPixelNV = 5293,
647
 
    SpvBuiltInLaunchIdKHR = 5319,
648
 
    SpvBuiltInLaunchIdNV = 5319,
649
 
    SpvBuiltInLaunchSizeKHR = 5320,
650
 
    SpvBuiltInLaunchSizeNV = 5320,
651
 
    SpvBuiltInWorldRayOriginKHR = 5321,
652
 
    SpvBuiltInWorldRayOriginNV = 5321,
653
 
    SpvBuiltInWorldRayDirectionKHR = 5322,
654
 
    SpvBuiltInWorldRayDirectionNV = 5322,
655
 
    SpvBuiltInObjectRayOriginKHR = 5323,
656
 
    SpvBuiltInObjectRayOriginNV = 5323,
657
 
    SpvBuiltInObjectRayDirectionKHR = 5324,
658
 
    SpvBuiltInObjectRayDirectionNV = 5324,
659
 
    SpvBuiltInRayTminKHR = 5325,
660
 
    SpvBuiltInRayTminNV = 5325,
661
 
    SpvBuiltInRayTmaxKHR = 5326,
662
 
    SpvBuiltInRayTmaxNV = 5326,
663
 
    SpvBuiltInInstanceCustomIndexKHR = 5327,
664
 
    SpvBuiltInInstanceCustomIndexNV = 5327,
665
 
    SpvBuiltInObjectToWorldKHR = 5330,
666
 
    SpvBuiltInObjectToWorldNV = 5330,
667
 
    SpvBuiltInWorldToObjectKHR = 5331,
668
 
    SpvBuiltInWorldToObjectNV = 5331,
669
 
    SpvBuiltInHitTNV = 5332,
670
 
    SpvBuiltInHitKindKHR = 5333,
671
 
    SpvBuiltInHitKindNV = 5333,
672
 
    SpvBuiltInCurrentRayTimeNV = 5334,
673
 
    SpvBuiltInIncomingRayFlagsKHR = 5351,
674
 
    SpvBuiltInIncomingRayFlagsNV = 5351,
675
 
    SpvBuiltInRayGeometryIndexKHR = 5352,
676
 
    SpvBuiltInWarpsPerSMNV = 5374,
677
 
    SpvBuiltInSMCountNV = 5375,
678
 
    SpvBuiltInWarpIDNV = 5376,
679
 
    SpvBuiltInSMIDNV = 5377,
680
 
    SpvBuiltInMax = 0x7fffffff,
681
 
} SpvBuiltIn;
682
 
 
683
 
typedef enum SpvSelectionControlShift_ {
684
 
    SpvSelectionControlFlattenShift = 0,
685
 
    SpvSelectionControlDontFlattenShift = 1,
686
 
    SpvSelectionControlMax = 0x7fffffff,
687
 
} SpvSelectionControlShift;
688
 
 
689
 
typedef enum SpvSelectionControlMask_ {
690
 
    SpvSelectionControlMaskNone = 0,
691
 
    SpvSelectionControlFlattenMask = 0x00000001,
692
 
    SpvSelectionControlDontFlattenMask = 0x00000002,
693
 
} SpvSelectionControlMask;
694
 
 
695
 
typedef enum SpvLoopControlShift_ {
696
 
    SpvLoopControlUnrollShift = 0,
697
 
    SpvLoopControlDontUnrollShift = 1,
698
 
    SpvLoopControlDependencyInfiniteShift = 2,
699
 
    SpvLoopControlDependencyLengthShift = 3,
700
 
    SpvLoopControlMinIterationsShift = 4,
701
 
    SpvLoopControlMaxIterationsShift = 5,
702
 
    SpvLoopControlIterationMultipleShift = 6,
703
 
    SpvLoopControlPeelCountShift = 7,
704
 
    SpvLoopControlPartialCountShift = 8,
705
 
    SpvLoopControlInitiationIntervalINTELShift = 16,
706
 
    SpvLoopControlMaxConcurrencyINTELShift = 17,
707
 
    SpvLoopControlDependencyArrayINTELShift = 18,
708
 
    SpvLoopControlPipelineEnableINTELShift = 19,
709
 
    SpvLoopControlLoopCoalesceINTELShift = 20,
710
 
    SpvLoopControlMaxInterleavingINTELShift = 21,
711
 
    SpvLoopControlSpeculatedIterationsINTELShift = 22,
712
 
    SpvLoopControlNoFusionINTELShift = 23,
713
 
    SpvLoopControlMax = 0x7fffffff,
714
 
} SpvLoopControlShift;
715
 
 
716
 
typedef enum SpvLoopControlMask_ {
717
 
    SpvLoopControlMaskNone = 0,
718
 
    SpvLoopControlUnrollMask = 0x00000001,
719
 
    SpvLoopControlDontUnrollMask = 0x00000002,
720
 
    SpvLoopControlDependencyInfiniteMask = 0x00000004,
721
 
    SpvLoopControlDependencyLengthMask = 0x00000008,
722
 
    SpvLoopControlMinIterationsMask = 0x00000010,
723
 
    SpvLoopControlMaxIterationsMask = 0x00000020,
724
 
    SpvLoopControlIterationMultipleMask = 0x00000040,
725
 
    SpvLoopControlPeelCountMask = 0x00000080,
726
 
    SpvLoopControlPartialCountMask = 0x00000100,
727
 
    SpvLoopControlInitiationIntervalINTELMask = 0x00010000,
728
 
    SpvLoopControlMaxConcurrencyINTELMask = 0x00020000,
729
 
    SpvLoopControlDependencyArrayINTELMask = 0x00040000,
730
 
    SpvLoopControlPipelineEnableINTELMask = 0x00080000,
731
 
    SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
732
 
    SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
733
 
    SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
734
 
    SpvLoopControlNoFusionINTELMask = 0x00800000,
735
 
} SpvLoopControlMask;
736
 
 
737
 
typedef enum SpvFunctionControlShift_ {
738
 
    SpvFunctionControlInlineShift = 0,
739
 
    SpvFunctionControlDontInlineShift = 1,
740
 
    SpvFunctionControlPureShift = 2,
741
 
    SpvFunctionControlConstShift = 3,
742
 
    SpvFunctionControlOptNoneINTELShift = 16,
743
 
    SpvFunctionControlMax = 0x7fffffff,
744
 
} SpvFunctionControlShift;
745
 
 
746
 
typedef enum SpvFunctionControlMask_ {
747
 
    SpvFunctionControlMaskNone = 0,
748
 
    SpvFunctionControlInlineMask = 0x00000001,
749
 
    SpvFunctionControlDontInlineMask = 0x00000002,
750
 
    SpvFunctionControlPureMask = 0x00000004,
751
 
    SpvFunctionControlConstMask = 0x00000008,
752
 
    SpvFunctionControlOptNoneINTELMask = 0x00010000,
753
 
} SpvFunctionControlMask;
754
 
 
755
 
typedef enum SpvMemorySemanticsShift_ {
756
 
    SpvMemorySemanticsAcquireShift = 1,
757
 
    SpvMemorySemanticsReleaseShift = 2,
758
 
    SpvMemorySemanticsAcquireReleaseShift = 3,
759
 
    SpvMemorySemanticsSequentiallyConsistentShift = 4,
760
 
    SpvMemorySemanticsUniformMemoryShift = 6,
761
 
    SpvMemorySemanticsSubgroupMemoryShift = 7,
762
 
    SpvMemorySemanticsWorkgroupMemoryShift = 8,
763
 
    SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
764
 
    SpvMemorySemanticsAtomicCounterMemoryShift = 10,
765
 
    SpvMemorySemanticsImageMemoryShift = 11,
766
 
    SpvMemorySemanticsOutputMemoryShift = 12,
767
 
    SpvMemorySemanticsOutputMemoryKHRShift = 12,
768
 
    SpvMemorySemanticsMakeAvailableShift = 13,
769
 
    SpvMemorySemanticsMakeAvailableKHRShift = 13,
770
 
    SpvMemorySemanticsMakeVisibleShift = 14,
771
 
    SpvMemorySemanticsMakeVisibleKHRShift = 14,
772
 
    SpvMemorySemanticsVolatileShift = 15,
773
 
    SpvMemorySemanticsMax = 0x7fffffff,
774
 
} SpvMemorySemanticsShift;
775
 
 
776
 
typedef enum SpvMemorySemanticsMask_ {
777
 
    SpvMemorySemanticsMaskNone = 0,
778
 
    SpvMemorySemanticsAcquireMask = 0x00000002,
779
 
    SpvMemorySemanticsReleaseMask = 0x00000004,
780
 
    SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
781
 
    SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
782
 
    SpvMemorySemanticsUniformMemoryMask = 0x00000040,
783
 
    SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
784
 
    SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
785
 
    SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
786
 
    SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
787
 
    SpvMemorySemanticsImageMemoryMask = 0x00000800,
788
 
    SpvMemorySemanticsOutputMemoryMask = 0x00001000,
789
 
    SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
790
 
    SpvMemorySemanticsMakeAvailableMask = 0x00002000,
791
 
    SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
792
 
    SpvMemorySemanticsMakeVisibleMask = 0x00004000,
793
 
    SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
794
 
    SpvMemorySemanticsVolatileMask = 0x00008000,
795
 
} SpvMemorySemanticsMask;
796
 
 
797
 
typedef enum SpvMemoryAccessShift_ {
798
 
    SpvMemoryAccessVolatileShift = 0,
799
 
    SpvMemoryAccessAlignedShift = 1,
800
 
    SpvMemoryAccessNontemporalShift = 2,
801
 
    SpvMemoryAccessMakePointerAvailableShift = 3,
802
 
    SpvMemoryAccessMakePointerAvailableKHRShift = 3,
803
 
    SpvMemoryAccessMakePointerVisibleShift = 4,
804
 
    SpvMemoryAccessMakePointerVisibleKHRShift = 4,
805
 
    SpvMemoryAccessNonPrivatePointerShift = 5,
806
 
    SpvMemoryAccessNonPrivatePointerKHRShift = 5,
807
 
    SpvMemoryAccessMax = 0x7fffffff,
808
 
} SpvMemoryAccessShift;
809
 
 
810
 
typedef enum SpvMemoryAccessMask_ {
811
 
    SpvMemoryAccessMaskNone = 0,
812
 
    SpvMemoryAccessVolatileMask = 0x00000001,
813
 
    SpvMemoryAccessAlignedMask = 0x00000002,
814
 
    SpvMemoryAccessNontemporalMask = 0x00000004,
815
 
    SpvMemoryAccessMakePointerAvailableMask = 0x00000008,
816
 
    SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
817
 
    SpvMemoryAccessMakePointerVisibleMask = 0x00000010,
818
 
    SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
819
 
    SpvMemoryAccessNonPrivatePointerMask = 0x00000020,
820
 
    SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
821
 
} SpvMemoryAccessMask;
822
 
 
823
 
typedef enum SpvScope_ {
824
 
    SpvScopeCrossDevice = 0,
825
 
    SpvScopeDevice = 1,
826
 
    SpvScopeWorkgroup = 2,
827
 
    SpvScopeSubgroup = 3,
828
 
    SpvScopeInvocation = 4,
829
 
    SpvScopeQueueFamily = 5,
830
 
    SpvScopeQueueFamilyKHR = 5,
831
 
    SpvScopeShaderCallKHR = 6,
832
 
    SpvScopeMax = 0x7fffffff,
833
 
} SpvScope;
834
 
 
835
 
typedef enum SpvGroupOperation_ {
836
 
    SpvGroupOperationReduce = 0,
837
 
    SpvGroupOperationInclusiveScan = 1,
838
 
    SpvGroupOperationExclusiveScan = 2,
839
 
    SpvGroupOperationClusteredReduce = 3,
840
 
    SpvGroupOperationPartitionedReduceNV = 6,
841
 
    SpvGroupOperationPartitionedInclusiveScanNV = 7,
842
 
    SpvGroupOperationPartitionedExclusiveScanNV = 8,
843
 
    SpvGroupOperationMax = 0x7fffffff,
844
 
} SpvGroupOperation;
845
 
 
846
 
typedef enum SpvKernelEnqueueFlags_ {
847
 
    SpvKernelEnqueueFlagsNoWait = 0,
848
 
    SpvKernelEnqueueFlagsWaitKernel = 1,
849
 
    SpvKernelEnqueueFlagsWaitWorkGroup = 2,
850
 
    SpvKernelEnqueueFlagsMax = 0x7fffffff,
851
 
} SpvKernelEnqueueFlags;
852
 
 
853
 
typedef enum SpvKernelProfilingInfoShift_ {
854
 
    SpvKernelProfilingInfoCmdExecTimeShift = 0,
855
 
    SpvKernelProfilingInfoMax = 0x7fffffff,
856
 
} SpvKernelProfilingInfoShift;
857
 
 
858
 
typedef enum SpvKernelProfilingInfoMask_ {
859
 
    SpvKernelProfilingInfoMaskNone = 0,
860
 
    SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
861
 
} SpvKernelProfilingInfoMask;
862
 
 
863
 
typedef enum SpvCapability_ {
864
 
    SpvCapabilityMatrix = 0,
865
 
    SpvCapabilityShader = 1,
866
 
    SpvCapabilityGeometry = 2,
867
 
    SpvCapabilityTessellation = 3,
868
 
    SpvCapabilityAddresses = 4,
869
 
    SpvCapabilityLinkage = 5,
870
 
    SpvCapabilityKernel = 6,
871
 
    SpvCapabilityVector16 = 7,
872
 
    SpvCapabilityFloat16Buffer = 8,
873
 
    SpvCapabilityFloat16 = 9,
874
 
    SpvCapabilityFloat64 = 10,
875
 
    SpvCapabilityInt64 = 11,
876
 
    SpvCapabilityInt64Atomics = 12,
877
 
    SpvCapabilityImageBasic = 13,
878
 
    SpvCapabilityImageReadWrite = 14,
879
 
    SpvCapabilityImageMipmap = 15,
880
 
    SpvCapabilityPipes = 17,
881
 
    SpvCapabilityGroups = 18,
882
 
    SpvCapabilityDeviceEnqueue = 19,
883
 
    SpvCapabilityLiteralSampler = 20,
884
 
    SpvCapabilityAtomicStorage = 21,
885
 
    SpvCapabilityInt16 = 22,
886
 
    SpvCapabilityTessellationPointSize = 23,
887
 
    SpvCapabilityGeometryPointSize = 24,
888
 
    SpvCapabilityImageGatherExtended = 25,
889
 
    SpvCapabilityStorageImageMultisample = 27,
890
 
    SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
891
 
    SpvCapabilitySampledImageArrayDynamicIndexing = 29,
892
 
    SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
893
 
    SpvCapabilityStorageImageArrayDynamicIndexing = 31,
894
 
    SpvCapabilityClipDistance = 32,
895
 
    SpvCapabilityCullDistance = 33,
896
 
    SpvCapabilityImageCubeArray = 34,
897
 
    SpvCapabilitySampleRateShading = 35,
898
 
    SpvCapabilityImageRect = 36,
899
 
    SpvCapabilitySampledRect = 37,
900
 
    SpvCapabilityGenericPointer = 38,
901
 
    SpvCapabilityInt8 = 39,
902
 
    SpvCapabilityInputAttachment = 40,
903
 
    SpvCapabilitySparseResidency = 41,
904
 
    SpvCapabilityMinLod = 42,
905
 
    SpvCapabilitySampled1D = 43,
906
 
    SpvCapabilityImage1D = 44,
907
 
    SpvCapabilitySampledCubeArray = 45,
908
 
    SpvCapabilitySampledBuffer = 46,
909
 
    SpvCapabilityImageBuffer = 47,
910
 
    SpvCapabilityImageMSArray = 48,
911
 
    SpvCapabilityStorageImageExtendedFormats = 49,
912
 
    SpvCapabilityImageQuery = 50,
913
 
    SpvCapabilityDerivativeControl = 51,
914
 
    SpvCapabilityInterpolationFunction = 52,
915
 
    SpvCapabilityTransformFeedback = 53,
916
 
    SpvCapabilityGeometryStreams = 54,
917
 
    SpvCapabilityStorageImageReadWithoutFormat = 55,
918
 
    SpvCapabilityStorageImageWriteWithoutFormat = 56,
919
 
    SpvCapabilityMultiViewport = 57,
920
 
    SpvCapabilitySubgroupDispatch = 58,
921
 
    SpvCapabilityNamedBarrier = 59,
922
 
    SpvCapabilityPipeStorage = 60,
923
 
    SpvCapabilityGroupNonUniform = 61,
924
 
    SpvCapabilityGroupNonUniformVote = 62,
925
 
    SpvCapabilityGroupNonUniformArithmetic = 63,
926
 
    SpvCapabilityGroupNonUniformBallot = 64,
927
 
    SpvCapabilityGroupNonUniformShuffle = 65,
928
 
    SpvCapabilityGroupNonUniformShuffleRelative = 66,
929
 
    SpvCapabilityGroupNonUniformClustered = 67,
930
 
    SpvCapabilityGroupNonUniformQuad = 68,
931
 
    SpvCapabilityShaderLayer = 69,
932
 
    SpvCapabilityShaderViewportIndex = 70,
933
 
    SpvCapabilityUniformDecoration = 71,
934
 
    SpvCapabilityFragmentShadingRateKHR = 4422,
935
 
    SpvCapabilitySubgroupBallotKHR = 4423,
936
 
    SpvCapabilityDrawParameters = 4427,
937
 
    SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
938
 
    SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
939
 
    SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
940
 
    SpvCapabilitySubgroupVoteKHR = 4431,
941
 
    SpvCapabilityStorageBuffer16BitAccess = 4433,
942
 
    SpvCapabilityStorageUniformBufferBlock16 = 4433,
943
 
    SpvCapabilityStorageUniform16 = 4434,
944
 
    SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
945
 
    SpvCapabilityStoragePushConstant16 = 4435,
946
 
    SpvCapabilityStorageInputOutput16 = 4436,
947
 
    SpvCapabilityDeviceGroup = 4437,
948
 
    SpvCapabilityMultiView = 4439,
949
 
    SpvCapabilityVariablePointersStorageBuffer = 4441,
950
 
    SpvCapabilityVariablePointers = 4442,
951
 
    SpvCapabilityAtomicStorageOps = 4445,
952
 
    SpvCapabilitySampleMaskPostDepthCoverage = 4447,
953
 
    SpvCapabilityStorageBuffer8BitAccess = 4448,
954
 
    SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
955
 
    SpvCapabilityStoragePushConstant8 = 4450,
956
 
    SpvCapabilityDenormPreserve = 4464,
957
 
    SpvCapabilityDenormFlushToZero = 4465,
958
 
    SpvCapabilitySignedZeroInfNanPreserve = 4466,
959
 
    SpvCapabilityRoundingModeRTE = 4467,
960
 
    SpvCapabilityRoundingModeRTZ = 4468,
961
 
    SpvCapabilityRayQueryProvisionalKHR = 4471,
962
 
    SpvCapabilityRayQueryKHR = 4472,
963
 
    SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
964
 
    SpvCapabilityRayTracingKHR = 4479,
965
 
    SpvCapabilityFloat16ImageAMD = 5008,
966
 
    SpvCapabilityImageGatherBiasLodAMD = 5009,
967
 
    SpvCapabilityFragmentMaskAMD = 5010,
968
 
    SpvCapabilityStencilExportEXT = 5013,
969
 
    SpvCapabilityImageReadWriteLodAMD = 5015,
970
 
    SpvCapabilityInt64ImageEXT = 5016,
971
 
    SpvCapabilityShaderClockKHR = 5055,
972
 
    SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
973
 
    SpvCapabilityGeometryShaderPassthroughNV = 5251,
974
 
    SpvCapabilityShaderViewportIndexLayerEXT = 5254,
975
 
    SpvCapabilityShaderViewportIndexLayerNV = 5254,
976
 
    SpvCapabilityShaderViewportMaskNV = 5255,
977
 
    SpvCapabilityShaderStereoViewNV = 5259,
978
 
    SpvCapabilityPerViewAttributesNV = 5260,
979
 
    SpvCapabilityFragmentFullyCoveredEXT = 5265,
980
 
    SpvCapabilityMeshShadingNV = 5266,
981
 
    SpvCapabilityImageFootprintNV = 5282,
982
 
    SpvCapabilityFragmentBarycentricKHR = 5284,
983
 
    SpvCapabilityFragmentBarycentricNV = 5284,
984
 
    SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
985
 
    SpvCapabilityFragmentDensityEXT = 5291,
986
 
    SpvCapabilityShadingRateNV = 5291,
987
 
    SpvCapabilityGroupNonUniformPartitionedNV = 5297,
988
 
    SpvCapabilityShaderNonUniform = 5301,
989
 
    SpvCapabilityShaderNonUniformEXT = 5301,
990
 
    SpvCapabilityRuntimeDescriptorArray = 5302,
991
 
    SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
992
 
    SpvCapabilityInputAttachmentArrayDynamicIndexing = 5303,
993
 
    SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
994
 
    SpvCapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
995
 
    SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
996
 
    SpvCapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
997
 
    SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
998
 
    SpvCapabilityUniformBufferArrayNonUniformIndexing = 5306,
999
 
    SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
1000
 
    SpvCapabilitySampledImageArrayNonUniformIndexing = 5307,
1001
 
    SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
1002
 
    SpvCapabilityStorageBufferArrayNonUniformIndexing = 5308,
1003
 
    SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
1004
 
    SpvCapabilityStorageImageArrayNonUniformIndexing = 5309,
1005
 
    SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
1006
 
    SpvCapabilityInputAttachmentArrayNonUniformIndexing = 5310,
1007
 
    SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
1008
 
    SpvCapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
1009
 
    SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
1010
 
    SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
1011
 
    SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1012
 
    SpvCapabilityRayTracingNV = 5340,
1013
 
    SpvCapabilityRayTracingMotionBlurNV = 5341,
1014
 
    SpvCapabilityVulkanMemoryModel = 5345,
1015
 
    SpvCapabilityVulkanMemoryModelKHR = 5345,
1016
 
    SpvCapabilityVulkanMemoryModelDeviceScope = 5346,
1017
 
    SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
1018
 
    SpvCapabilityPhysicalStorageBufferAddresses = 5347,
1019
 
    SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
1020
 
    SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
1021
 
    SpvCapabilityRayTracingProvisionalKHR = 5353,
1022
 
    SpvCapabilityCooperativeMatrixNV = 5357,
1023
 
    SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
1024
 
    SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
1025
 
    SpvCapabilityShaderSMBuiltinsNV = 5373,
1026
 
    SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
1027
 
    SpvCapabilityDemoteToHelperInvocation = 5379,
1028
 
    SpvCapabilityDemoteToHelperInvocationEXT = 5379,
1029
 
    SpvCapabilityBindlessTextureNV = 5390,
1030
 
    SpvCapabilitySubgroupShuffleINTEL = 5568,
1031
 
    SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
1032
 
    SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
1033
 
    SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
1034
 
    SpvCapabilityRoundToInfinityINTEL = 5582,
1035
 
    SpvCapabilityFloatingPointModeINTEL = 5583,
1036
 
    SpvCapabilityIntegerFunctions2INTEL = 5584,
1037
 
    SpvCapabilityFunctionPointersINTEL = 5603,
1038
 
    SpvCapabilityIndirectReferencesINTEL = 5604,
1039
 
    SpvCapabilityAsmINTEL = 5606,
1040
 
    SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
1041
 
    SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
1042
 
    SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
1043
 
    SpvCapabilityVectorComputeINTEL = 5617,
1044
 
    SpvCapabilityVectorAnyINTEL = 5619,
1045
 
    SpvCapabilityExpectAssumeKHR = 5629,
1046
 
    SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
1047
 
    SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
1048
 
    SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
1049
 
    SpvCapabilityVariableLengthArrayINTEL = 5817,
1050
 
    SpvCapabilityFunctionFloatControlINTEL = 5821,
1051
 
    SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
1052
 
    SpvCapabilityFPFastMathModeINTEL = 5837,
1053
 
    SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
1054
 
    SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
1055
 
    SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
1056
 
    SpvCapabilityFPGALoopControlsINTEL = 5888,
1057
 
    SpvCapabilityKernelAttributesINTEL = 5892,
1058
 
    SpvCapabilityFPGAKernelAttributesINTEL = 5897,
1059
 
    SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
1060
 
    SpvCapabilityFPGAClusterAttributesINTEL = 5904,
1061
 
    SpvCapabilityLoopFuseINTEL = 5906,
1062
 
    SpvCapabilityFPGABufferLocationINTEL = 5920,
1063
 
    SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
1064
 
    SpvCapabilityUSMStorageClassesINTEL = 5935,
1065
 
    SpvCapabilityIOPipesINTEL = 5943,
1066
 
    SpvCapabilityBlockingPipesINTEL = 5945,
1067
 
    SpvCapabilityFPGARegINTEL = 5948,
1068
 
    SpvCapabilityDotProductInputAll = 6016,
1069
 
    SpvCapabilityDotProductInputAllKHR = 6016,
1070
 
    SpvCapabilityDotProductInput4x8Bit = 6017,
1071
 
    SpvCapabilityDotProductInput4x8BitKHR = 6017,
1072
 
    SpvCapabilityDotProductInput4x8BitPacked = 6018,
1073
 
    SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
1074
 
    SpvCapabilityDotProduct = 6019,
1075
 
    SpvCapabilityDotProductKHR = 6019,
1076
 
    SpvCapabilityBitInstructions = 6025,
1077
 
    SpvCapabilityAtomicFloat32AddEXT = 6033,
1078
 
    SpvCapabilityAtomicFloat64AddEXT = 6034,
1079
 
    SpvCapabilityLongConstantCompositeINTEL = 6089,
1080
 
    SpvCapabilityOptNoneINTEL = 6094,
1081
 
    SpvCapabilityAtomicFloat16AddEXT = 6095,
1082
 
    SpvCapabilityDebugInfoModuleINTEL = 6114,
1083
 
    SpvCapabilityMax = 0x7fffffff,
1084
 
} SpvCapability;
1085
 
 
1086
 
typedef enum SpvRayFlagsShift_ {
1087
 
    SpvRayFlagsOpaqueKHRShift = 0,
1088
 
    SpvRayFlagsNoOpaqueKHRShift = 1,
1089
 
    SpvRayFlagsTerminateOnFirstHitKHRShift = 2,
1090
 
    SpvRayFlagsSkipClosestHitShaderKHRShift = 3,
1091
 
    SpvRayFlagsCullBackFacingTrianglesKHRShift = 4,
1092
 
    SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5,
1093
 
    SpvRayFlagsCullOpaqueKHRShift = 6,
1094
 
    SpvRayFlagsCullNoOpaqueKHRShift = 7,
1095
 
    SpvRayFlagsSkipTrianglesKHRShift = 8,
1096
 
    SpvRayFlagsSkipAABBsKHRShift = 9,
1097
 
    SpvRayFlagsMax = 0x7fffffff,
1098
 
} SpvRayFlagsShift;
1099
 
 
1100
 
typedef enum SpvRayFlagsMask_ {
1101
 
    SpvRayFlagsMaskNone = 0,
1102
 
    SpvRayFlagsOpaqueKHRMask = 0x00000001,
1103
 
    SpvRayFlagsNoOpaqueKHRMask = 0x00000002,
1104
 
    SpvRayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
1105
 
    SpvRayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
1106
 
    SpvRayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
1107
 
    SpvRayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
1108
 
    SpvRayFlagsCullOpaqueKHRMask = 0x00000040,
1109
 
    SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080,
1110
 
    SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
1111
 
    SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
1112
 
} SpvRayFlagsMask;
1113
 
 
1114
 
typedef enum SpvRayQueryIntersection_ {
1115
 
    SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
1116
 
    SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
1117
 
    SpvRayQueryIntersectionMax = 0x7fffffff,
1118
 
} SpvRayQueryIntersection;
1119
 
 
1120
 
typedef enum SpvRayQueryCommittedIntersectionType_ {
1121
 
    SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
1122
 
    SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
1123
 
    SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
1124
 
    SpvRayQueryCommittedIntersectionTypeMax = 0x7fffffff,
1125
 
} SpvRayQueryCommittedIntersectionType;
1126
 
 
1127
 
typedef enum SpvRayQueryCandidateIntersectionType_ {
1128
 
    SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
1129
 
    SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
1130
 
    SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
1131
 
} SpvRayQueryCandidateIntersectionType;
1132
 
 
1133
 
typedef enum SpvFragmentShadingRateShift_ {
1134
 
    SpvFragmentShadingRateVertical2PixelsShift = 0,
1135
 
    SpvFragmentShadingRateVertical4PixelsShift = 1,
1136
 
    SpvFragmentShadingRateHorizontal2PixelsShift = 2,
1137
 
    SpvFragmentShadingRateHorizontal4PixelsShift = 3,
1138
 
    SpvFragmentShadingRateMax = 0x7fffffff,
1139
 
} SpvFragmentShadingRateShift;
1140
 
 
1141
 
typedef enum SpvFragmentShadingRateMask_ {
1142
 
    SpvFragmentShadingRateMaskNone = 0,
1143
 
    SpvFragmentShadingRateVertical2PixelsMask = 0x00000001,
1144
 
    SpvFragmentShadingRateVertical4PixelsMask = 0x00000002,
1145
 
    SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004,
1146
 
    SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
1147
 
} SpvFragmentShadingRateMask;
1148
 
 
1149
 
typedef enum SpvFPDenormMode_ {
1150
 
    SpvFPDenormModePreserve = 0,
1151
 
    SpvFPDenormModeFlushToZero = 1,
1152
 
    SpvFPDenormModeMax = 0x7fffffff,
1153
 
} SpvFPDenormMode;
1154
 
 
1155
 
typedef enum SpvFPOperationMode_ {
1156
 
    SpvFPOperationModeIEEE = 0,
1157
 
    SpvFPOperationModeALT = 1,
1158
 
    SpvFPOperationModeMax = 0x7fffffff,
1159
 
} SpvFPOperationMode;
1160
 
 
1161
 
typedef enum SpvQuantizationModes_ {
1162
 
    SpvQuantizationModesTRN = 0,
1163
 
    SpvQuantizationModesTRN_ZERO = 1,
1164
 
    SpvQuantizationModesRND = 2,
1165
 
    SpvQuantizationModesRND_ZERO = 3,
1166
 
    SpvQuantizationModesRND_INF = 4,
1167
 
    SpvQuantizationModesRND_MIN_INF = 5,
1168
 
    SpvQuantizationModesRND_CONV = 6,
1169
 
    SpvQuantizationModesRND_CONV_ODD = 7,
1170
 
    SpvQuantizationModesMax = 0x7fffffff,
1171
 
} SpvQuantizationModes;
1172
 
 
1173
 
typedef enum SpvOverflowModes_ {
1174
 
    SpvOverflowModesWRAP = 0,
1175
 
    SpvOverflowModesSAT = 1,
1176
 
    SpvOverflowModesSAT_ZERO = 2,
1177
 
    SpvOverflowModesSAT_SYM = 3,
1178
 
    SpvOverflowModesMax = 0x7fffffff,
1179
 
} SpvOverflowModes;
1180
 
 
1181
 
typedef enum SpvPackedVectorFormat_ {
1182
 
    SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0,
1183
 
    SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
1184
 
    SpvPackedVectorFormatMax = 0x7fffffff,
1185
 
} SpvPackedVectorFormat;
1186
 
 
1187
 
typedef enum SpvOp_ {
1188
 
    SpvOpNop = 0,
1189
 
    SpvOpUndef = 1,
1190
 
    SpvOpSourceContinued = 2,
1191
 
    SpvOpSource = 3,
1192
 
    SpvOpSourceExtension = 4,
1193
 
    SpvOpName = 5,
1194
 
    SpvOpMemberName = 6,
1195
 
    SpvOpString = 7,
1196
 
    SpvOpLine = 8,
1197
 
    SpvOpExtension = 10,
1198
 
    SpvOpExtInstImport = 11,
1199
 
    SpvOpExtInst = 12,
1200
 
    SpvOpMemoryModel = 14,
1201
 
    SpvOpEntryPoint = 15,
1202
 
    SpvOpExecutionMode = 16,
1203
 
    SpvOpCapability = 17,
1204
 
    SpvOpTypeVoid = 19,
1205
 
    SpvOpTypeBool = 20,
1206
 
    SpvOpTypeInt = 21,
1207
 
    SpvOpTypeFloat = 22,
1208
 
    SpvOpTypeVector = 23,
1209
 
    SpvOpTypeMatrix = 24,
1210
 
    SpvOpTypeImage = 25,
1211
 
    SpvOpTypeSampler = 26,
1212
 
    SpvOpTypeSampledImage = 27,
1213
 
    SpvOpTypeArray = 28,
1214
 
    SpvOpTypeRuntimeArray = 29,
1215
 
    SpvOpTypeStruct = 30,
1216
 
    SpvOpTypeOpaque = 31,
1217
 
    SpvOpTypePointer = 32,
1218
 
    SpvOpTypeFunction = 33,
1219
 
    SpvOpTypeEvent = 34,
1220
 
    SpvOpTypeDeviceEvent = 35,
1221
 
    SpvOpTypeReserveId = 36,
1222
 
    SpvOpTypeQueue = 37,
1223
 
    SpvOpTypePipe = 38,
1224
 
    SpvOpTypeForwardPointer = 39,
1225
 
    SpvOpConstantTrue = 41,
1226
 
    SpvOpConstantFalse = 42,
1227
 
    SpvOpConstant = 43,
1228
 
    SpvOpConstantComposite = 44,
1229
 
    SpvOpConstantSampler = 45,
1230
 
    SpvOpConstantNull = 46,
1231
 
    SpvOpSpecConstantTrue = 48,
1232
 
    SpvOpSpecConstantFalse = 49,
1233
 
    SpvOpSpecConstant = 50,
1234
 
    SpvOpSpecConstantComposite = 51,
1235
 
    SpvOpSpecConstantOp = 52,
1236
 
    SpvOpFunction = 54,
1237
 
    SpvOpFunctionParameter = 55,
1238
 
    SpvOpFunctionEnd = 56,
1239
 
    SpvOpFunctionCall = 57,
1240
 
    SpvOpVariable = 59,
1241
 
    SpvOpImageTexelPointer = 60,
1242
 
    SpvOpLoad = 61,
1243
 
    SpvOpStore = 62,
1244
 
    SpvOpCopyMemory = 63,
1245
 
    SpvOpCopyMemorySized = 64,
1246
 
    SpvOpAccessChain = 65,
1247
 
    SpvOpInBoundsAccessChain = 66,
1248
 
    SpvOpPtrAccessChain = 67,
1249
 
    SpvOpArrayLength = 68,
1250
 
    SpvOpGenericPtrMemSemantics = 69,
1251
 
    SpvOpInBoundsPtrAccessChain = 70,
1252
 
    SpvOpDecorate = 71,
1253
 
    SpvOpMemberDecorate = 72,
1254
 
    SpvOpDecorationGroup = 73,
1255
 
    SpvOpGroupDecorate = 74,
1256
 
    SpvOpGroupMemberDecorate = 75,
1257
 
    SpvOpVectorExtractDynamic = 77,
1258
 
    SpvOpVectorInsertDynamic = 78,
1259
 
    SpvOpVectorShuffle = 79,
1260
 
    SpvOpCompositeConstruct = 80,
1261
 
    SpvOpCompositeExtract = 81,
1262
 
    SpvOpCompositeInsert = 82,
1263
 
    SpvOpCopyObject = 83,
1264
 
    SpvOpTranspose = 84,
1265
 
    SpvOpSampledImage = 86,
1266
 
    SpvOpImageSampleImplicitLod = 87,
1267
 
    SpvOpImageSampleExplicitLod = 88,
1268
 
    SpvOpImageSampleDrefImplicitLod = 89,
1269
 
    SpvOpImageSampleDrefExplicitLod = 90,
1270
 
    SpvOpImageSampleProjImplicitLod = 91,
1271
 
    SpvOpImageSampleProjExplicitLod = 92,
1272
 
    SpvOpImageSampleProjDrefImplicitLod = 93,
1273
 
    SpvOpImageSampleProjDrefExplicitLod = 94,
1274
 
    SpvOpImageFetch = 95,
1275
 
    SpvOpImageGather = 96,
1276
 
    SpvOpImageDrefGather = 97,
1277
 
    SpvOpImageRead = 98,
1278
 
    SpvOpImageWrite = 99,
1279
 
    SpvOpImage = 100,
1280
 
    SpvOpImageQueryFormat = 101,
1281
 
    SpvOpImageQueryOrder = 102,
1282
 
    SpvOpImageQuerySizeLod = 103,
1283
 
    SpvOpImageQuerySize = 104,
1284
 
    SpvOpImageQueryLod = 105,
1285
 
    SpvOpImageQueryLevels = 106,
1286
 
    SpvOpImageQuerySamples = 107,
1287
 
    SpvOpConvertFToU = 109,
1288
 
    SpvOpConvertFToS = 110,
1289
 
    SpvOpConvertSToF = 111,
1290
 
    SpvOpConvertUToF = 112,
1291
 
    SpvOpUConvert = 113,
1292
 
    SpvOpSConvert = 114,
1293
 
    SpvOpFConvert = 115,
1294
 
    SpvOpQuantizeToF16 = 116,
1295
 
    SpvOpConvertPtrToU = 117,
1296
 
    SpvOpSatConvertSToU = 118,
1297
 
    SpvOpSatConvertUToS = 119,
1298
 
    SpvOpConvertUToPtr = 120,
1299
 
    SpvOpPtrCastToGeneric = 121,
1300
 
    SpvOpGenericCastToPtr = 122,
1301
 
    SpvOpGenericCastToPtrExplicit = 123,
1302
 
    SpvOpBitcast = 124,
1303
 
    SpvOpSNegate = 126,
1304
 
    SpvOpFNegate = 127,
1305
 
    SpvOpIAdd = 128,
1306
 
    SpvOpFAdd = 129,
1307
 
    SpvOpISub = 130,
1308
 
    SpvOpFSub = 131,
1309
 
    SpvOpIMul = 132,
1310
 
    SpvOpFMul = 133,
1311
 
    SpvOpUDiv = 134,
1312
 
    SpvOpSDiv = 135,
1313
 
    SpvOpFDiv = 136,
1314
 
    SpvOpUMod = 137,
1315
 
    SpvOpSRem = 138,
1316
 
    SpvOpSMod = 139,
1317
 
    SpvOpFRem = 140,
1318
 
    SpvOpFMod = 141,
1319
 
    SpvOpVectorTimesScalar = 142,
1320
 
    SpvOpMatrixTimesScalar = 143,
1321
 
    SpvOpVectorTimesMatrix = 144,
1322
 
    SpvOpMatrixTimesVector = 145,
1323
 
    SpvOpMatrixTimesMatrix = 146,
1324
 
    SpvOpOuterProduct = 147,
1325
 
    SpvOpDot = 148,
1326
 
    SpvOpIAddCarry = 149,
1327
 
    SpvOpISubBorrow = 150,
1328
 
    SpvOpUMulExtended = 151,
1329
 
    SpvOpSMulExtended = 152,
1330
 
    SpvOpAny = 154,
1331
 
    SpvOpAll = 155,
1332
 
    SpvOpIsNan = 156,
1333
 
    SpvOpIsInf = 157,
1334
 
    SpvOpIsFinite = 158,
1335
 
    SpvOpIsNormal = 159,
1336
 
    SpvOpSignBitSet = 160,
1337
 
    SpvOpLessOrGreater = 161,
1338
 
    SpvOpOrdered = 162,
1339
 
    SpvOpUnordered = 163,
1340
 
    SpvOpLogicalEqual = 164,
1341
 
    SpvOpLogicalNotEqual = 165,
1342
 
    SpvOpLogicalOr = 166,
1343
 
    SpvOpLogicalAnd = 167,
1344
 
    SpvOpLogicalNot = 168,
1345
 
    SpvOpSelect = 169,
1346
 
    SpvOpIEqual = 170,
1347
 
    SpvOpINotEqual = 171,
1348
 
    SpvOpUGreaterThan = 172,
1349
 
    SpvOpSGreaterThan = 173,
1350
 
    SpvOpUGreaterThanEqual = 174,
1351
 
    SpvOpSGreaterThanEqual = 175,
1352
 
    SpvOpULessThan = 176,
1353
 
    SpvOpSLessThan = 177,
1354
 
    SpvOpULessThanEqual = 178,
1355
 
    SpvOpSLessThanEqual = 179,
1356
 
    SpvOpFOrdEqual = 180,
1357
 
    SpvOpFUnordEqual = 181,
1358
 
    SpvOpFOrdNotEqual = 182,
1359
 
    SpvOpFUnordNotEqual = 183,
1360
 
    SpvOpFOrdLessThan = 184,
1361
 
    SpvOpFUnordLessThan = 185,
1362
 
    SpvOpFOrdGreaterThan = 186,
1363
 
    SpvOpFUnordGreaterThan = 187,
1364
 
    SpvOpFOrdLessThanEqual = 188,
1365
 
    SpvOpFUnordLessThanEqual = 189,
1366
 
    SpvOpFOrdGreaterThanEqual = 190,
1367
 
    SpvOpFUnordGreaterThanEqual = 191,
1368
 
    SpvOpShiftRightLogical = 194,
1369
 
    SpvOpShiftRightArithmetic = 195,
1370
 
    SpvOpShiftLeftLogical = 196,
1371
 
    SpvOpBitwiseOr = 197,
1372
 
    SpvOpBitwiseXor = 198,
1373
 
    SpvOpBitwiseAnd = 199,
1374
 
    SpvOpNot = 200,
1375
 
    SpvOpBitFieldInsert = 201,
1376
 
    SpvOpBitFieldSExtract = 202,
1377
 
    SpvOpBitFieldUExtract = 203,
1378
 
    SpvOpBitReverse = 204,
1379
 
    SpvOpBitCount = 205,
1380
 
    SpvOpDPdx = 207,
1381
 
    SpvOpDPdy = 208,
1382
 
    SpvOpFwidth = 209,
1383
 
    SpvOpDPdxFine = 210,
1384
 
    SpvOpDPdyFine = 211,
1385
 
    SpvOpFwidthFine = 212,
1386
 
    SpvOpDPdxCoarse = 213,
1387
 
    SpvOpDPdyCoarse = 214,
1388
 
    SpvOpFwidthCoarse = 215,
1389
 
    SpvOpEmitVertex = 218,
1390
 
    SpvOpEndPrimitive = 219,
1391
 
    SpvOpEmitStreamVertex = 220,
1392
 
    SpvOpEndStreamPrimitive = 221,
1393
 
    SpvOpControlBarrier = 224,
1394
 
    SpvOpMemoryBarrier = 225,
1395
 
    SpvOpAtomicLoad = 227,
1396
 
    SpvOpAtomicStore = 228,
1397
 
    SpvOpAtomicExchange = 229,
1398
 
    SpvOpAtomicCompareExchange = 230,
1399
 
    SpvOpAtomicCompareExchangeWeak = 231,
1400
 
    SpvOpAtomicIIncrement = 232,
1401
 
    SpvOpAtomicIDecrement = 233,
1402
 
    SpvOpAtomicIAdd = 234,
1403
 
    SpvOpAtomicISub = 235,
1404
 
    SpvOpAtomicSMin = 236,
1405
 
    SpvOpAtomicUMin = 237,
1406
 
    SpvOpAtomicSMax = 238,
1407
 
    SpvOpAtomicUMax = 239,
1408
 
    SpvOpAtomicAnd = 240,
1409
 
    SpvOpAtomicOr = 241,
1410
 
    SpvOpAtomicXor = 242,
1411
 
    SpvOpPhi = 245,
1412
 
    SpvOpLoopMerge = 246,
1413
 
    SpvOpSelectionMerge = 247,
1414
 
    SpvOpLabel = 248,
1415
 
    SpvOpBranch = 249,
1416
 
    SpvOpBranchConditional = 250,
1417
 
    SpvOpSwitch = 251,
1418
 
    SpvOpKill = 252,
1419
 
    SpvOpReturn = 253,
1420
 
    SpvOpReturnValue = 254,
1421
 
    SpvOpUnreachable = 255,
1422
 
    SpvOpLifetimeStart = 256,
1423
 
    SpvOpLifetimeStop = 257,
1424
 
    SpvOpGroupAsyncCopy = 259,
1425
 
    SpvOpGroupWaitEvents = 260,
1426
 
    SpvOpGroupAll = 261,
1427
 
    SpvOpGroupAny = 262,
1428
 
    SpvOpGroupBroadcast = 263,
1429
 
    SpvOpGroupIAdd = 264,
1430
 
    SpvOpGroupFAdd = 265,
1431
 
    SpvOpGroupFMin = 266,
1432
 
    SpvOpGroupUMin = 267,
1433
 
    SpvOpGroupSMin = 268,
1434
 
    SpvOpGroupFMax = 269,
1435
 
    SpvOpGroupUMax = 270,
1436
 
    SpvOpGroupSMax = 271,
1437
 
    SpvOpReadPipe = 274,
1438
 
    SpvOpWritePipe = 275,
1439
 
    SpvOpReservedReadPipe = 276,
1440
 
    SpvOpReservedWritePipe = 277,
1441
 
    SpvOpReserveReadPipePackets = 278,
1442
 
    SpvOpReserveWritePipePackets = 279,
1443
 
    SpvOpCommitReadPipe = 280,
1444
 
    SpvOpCommitWritePipe = 281,
1445
 
    SpvOpIsValidReserveId = 282,
1446
 
    SpvOpGetNumPipePackets = 283,
1447
 
    SpvOpGetMaxPipePackets = 284,
1448
 
    SpvOpGroupReserveReadPipePackets = 285,
1449
 
    SpvOpGroupReserveWritePipePackets = 286,
1450
 
    SpvOpGroupCommitReadPipe = 287,
1451
 
    SpvOpGroupCommitWritePipe = 288,
1452
 
    SpvOpEnqueueMarker = 291,
1453
 
    SpvOpEnqueueKernel = 292,
1454
 
    SpvOpGetKernelNDrangeSubGroupCount = 293,
1455
 
    SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
1456
 
    SpvOpGetKernelWorkGroupSize = 295,
1457
 
    SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
1458
 
    SpvOpRetainEvent = 297,
1459
 
    SpvOpReleaseEvent = 298,
1460
 
    SpvOpCreateUserEvent = 299,
1461
 
    SpvOpIsValidEvent = 300,
1462
 
    SpvOpSetUserEventStatus = 301,
1463
 
    SpvOpCaptureEventProfilingInfo = 302,
1464
 
    SpvOpGetDefaultQueue = 303,
1465
 
    SpvOpBuildNDRange = 304,
1466
 
    SpvOpImageSparseSampleImplicitLod = 305,
1467
 
    SpvOpImageSparseSampleExplicitLod = 306,
1468
 
    SpvOpImageSparseSampleDrefImplicitLod = 307,
1469
 
    SpvOpImageSparseSampleDrefExplicitLod = 308,
1470
 
    SpvOpImageSparseSampleProjImplicitLod = 309,
1471
 
    SpvOpImageSparseSampleProjExplicitLod = 310,
1472
 
    SpvOpImageSparseSampleProjDrefImplicitLod = 311,
1473
 
    SpvOpImageSparseSampleProjDrefExplicitLod = 312,
1474
 
    SpvOpImageSparseFetch = 313,
1475
 
    SpvOpImageSparseGather = 314,
1476
 
    SpvOpImageSparseDrefGather = 315,
1477
 
    SpvOpImageSparseTexelsResident = 316,
1478
 
    SpvOpNoLine = 317,
1479
 
    SpvOpAtomicFlagTestAndSet = 318,
1480
 
    SpvOpAtomicFlagClear = 319,
1481
 
    SpvOpImageSparseRead = 320,
1482
 
    SpvOpSizeOf = 321,
1483
 
    SpvOpTypePipeStorage = 322,
1484
 
    SpvOpConstantPipeStorage = 323,
1485
 
    SpvOpCreatePipeFromPipeStorage = 324,
1486
 
    SpvOpGetKernelLocalSizeForSubgroupCount = 325,
1487
 
    SpvOpGetKernelMaxNumSubgroups = 326,
1488
 
    SpvOpTypeNamedBarrier = 327,
1489
 
    SpvOpNamedBarrierInitialize = 328,
1490
 
    SpvOpMemoryNamedBarrier = 329,
1491
 
    SpvOpModuleProcessed = 330,
1492
 
    SpvOpExecutionModeId = 331,
1493
 
    SpvOpDecorateId = 332,
1494
 
    SpvOpGroupNonUniformElect = 333,
1495
 
    SpvOpGroupNonUniformAll = 334,
1496
 
    SpvOpGroupNonUniformAny = 335,
1497
 
    SpvOpGroupNonUniformAllEqual = 336,
1498
 
    SpvOpGroupNonUniformBroadcast = 337,
1499
 
    SpvOpGroupNonUniformBroadcastFirst = 338,
1500
 
    SpvOpGroupNonUniformBallot = 339,
1501
 
    SpvOpGroupNonUniformInverseBallot = 340,
1502
 
    SpvOpGroupNonUniformBallotBitExtract = 341,
1503
 
    SpvOpGroupNonUniformBallotBitCount = 342,
1504
 
    SpvOpGroupNonUniformBallotFindLSB = 343,
1505
 
    SpvOpGroupNonUniformBallotFindMSB = 344,
1506
 
    SpvOpGroupNonUniformShuffle = 345,
1507
 
    SpvOpGroupNonUniformShuffleXor = 346,
1508
 
    SpvOpGroupNonUniformShuffleUp = 347,
1509
 
    SpvOpGroupNonUniformShuffleDown = 348,
1510
 
    SpvOpGroupNonUniformIAdd = 349,
1511
 
    SpvOpGroupNonUniformFAdd = 350,
1512
 
    SpvOpGroupNonUniformIMul = 351,
1513
 
    SpvOpGroupNonUniformFMul = 352,
1514
 
    SpvOpGroupNonUniformSMin = 353,
1515
 
    SpvOpGroupNonUniformUMin = 354,
1516
 
    SpvOpGroupNonUniformFMin = 355,
1517
 
    SpvOpGroupNonUniformSMax = 356,
1518
 
    SpvOpGroupNonUniformUMax = 357,
1519
 
    SpvOpGroupNonUniformFMax = 358,
1520
 
    SpvOpGroupNonUniformBitwiseAnd = 359,
1521
 
    SpvOpGroupNonUniformBitwiseOr = 360,
1522
 
    SpvOpGroupNonUniformBitwiseXor = 361,
1523
 
    SpvOpGroupNonUniformLogicalAnd = 362,
1524
 
    SpvOpGroupNonUniformLogicalOr = 363,
1525
 
    SpvOpGroupNonUniformLogicalXor = 364,
1526
 
    SpvOpGroupNonUniformQuadBroadcast = 365,
1527
 
    SpvOpGroupNonUniformQuadSwap = 366,
1528
 
    SpvOpCopyLogical = 400,
1529
 
    SpvOpPtrEqual = 401,
1530
 
    SpvOpPtrNotEqual = 402,
1531
 
    SpvOpPtrDiff = 403,
1532
 
    SpvOpTerminateInvocation = 4416,
1533
 
    SpvOpSubgroupBallotKHR = 4421,
1534
 
    SpvOpSubgroupFirstInvocationKHR = 4422,
1535
 
    SpvOpSubgroupAllKHR = 4428,
1536
 
    SpvOpSubgroupAnyKHR = 4429,
1537
 
    SpvOpSubgroupAllEqualKHR = 4430,
1538
 
    SpvOpSubgroupReadInvocationKHR = 4432,
1539
 
    SpvOpTraceRayKHR = 4445,
1540
 
    SpvOpExecuteCallableKHR = 4446,
1541
 
    SpvOpConvertUToAccelerationStructureKHR = 4447,
1542
 
    SpvOpIgnoreIntersectionKHR = 4448,
1543
 
    SpvOpTerminateRayKHR = 4449,
1544
 
    SpvOpSDot = 4450,
1545
 
    SpvOpSDotKHR = 4450,
1546
 
    SpvOpUDot = 4451,
1547
 
    SpvOpUDotKHR = 4451,
1548
 
    SpvOpSUDot = 4452,
1549
 
    SpvOpSUDotKHR = 4452,
1550
 
    SpvOpSDotAccSat = 4453,
1551
 
    SpvOpSDotAccSatKHR = 4453,
1552
 
    SpvOpUDotAccSat = 4454,
1553
 
    SpvOpUDotAccSatKHR = 4454,
1554
 
    SpvOpSUDotAccSat = 4455,
1555
 
    SpvOpSUDotAccSatKHR = 4455,
1556
 
    SpvOpTypeRayQueryKHR = 4472,
1557
 
    SpvOpRayQueryInitializeKHR = 4473,
1558
 
    SpvOpRayQueryTerminateKHR = 4474,
1559
 
    SpvOpRayQueryGenerateIntersectionKHR = 4475,
1560
 
    SpvOpRayQueryConfirmIntersectionKHR = 4476,
1561
 
    SpvOpRayQueryProceedKHR = 4477,
1562
 
    SpvOpRayQueryGetIntersectionTypeKHR = 4479,
1563
 
    SpvOpGroupIAddNonUniformAMD = 5000,
1564
 
    SpvOpGroupFAddNonUniformAMD = 5001,
1565
 
    SpvOpGroupFMinNonUniformAMD = 5002,
1566
 
    SpvOpGroupUMinNonUniformAMD = 5003,
1567
 
    SpvOpGroupSMinNonUniformAMD = 5004,
1568
 
    SpvOpGroupFMaxNonUniformAMD = 5005,
1569
 
    SpvOpGroupUMaxNonUniformAMD = 5006,
1570
 
    SpvOpGroupSMaxNonUniformAMD = 5007,
1571
 
    SpvOpFragmentMaskFetchAMD = 5011,
1572
 
    SpvOpFragmentFetchAMD = 5012,
1573
 
    SpvOpReadClockKHR = 5056,
1574
 
    SpvOpImageSampleFootprintNV = 5283,
1575
 
    SpvOpGroupNonUniformPartitionNV = 5296,
1576
 
    SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
1577
 
    SpvOpReportIntersectionKHR = 5334,
1578
 
    SpvOpReportIntersectionNV = 5334,
1579
 
    SpvOpIgnoreIntersectionNV = 5335,
1580
 
    SpvOpTerminateRayNV = 5336,
1581
 
    SpvOpTraceNV = 5337,
1582
 
    SpvOpTraceMotionNV = 5338,
1583
 
    SpvOpTraceRayMotionNV = 5339,
1584
 
    SpvOpTypeAccelerationStructureKHR = 5341,
1585
 
    SpvOpTypeAccelerationStructureNV = 5341,
1586
 
    SpvOpExecuteCallableNV = 5344,
1587
 
    SpvOpTypeCooperativeMatrixNV = 5358,
1588
 
    SpvOpCooperativeMatrixLoadNV = 5359,
1589
 
    SpvOpCooperativeMatrixStoreNV = 5360,
1590
 
    SpvOpCooperativeMatrixMulAddNV = 5361,
1591
 
    SpvOpCooperativeMatrixLengthNV = 5362,
1592
 
    SpvOpBeginInvocationInterlockEXT = 5364,
1593
 
    SpvOpEndInvocationInterlockEXT = 5365,
1594
 
    SpvOpDemoteToHelperInvocation = 5380,
1595
 
    SpvOpDemoteToHelperInvocationEXT = 5380,
1596
 
    SpvOpIsHelperInvocationEXT = 5381,
1597
 
    SpvOpConvertUToImageNV = 5391,
1598
 
    SpvOpConvertUToSamplerNV = 5392,
1599
 
    SpvOpConvertImageToUNV = 5393,
1600
 
    SpvOpConvertSamplerToUNV = 5394,
1601
 
    SpvOpConvertUToSampledImageNV = 5395,
1602
 
    SpvOpConvertSampledImageToUNV = 5396,
1603
 
    SpvOpSamplerImageAddressingModeNV = 5397,
1604
 
    SpvOpSubgroupShuffleINTEL = 5571,
1605
 
    SpvOpSubgroupShuffleDownINTEL = 5572,
1606
 
    SpvOpSubgroupShuffleUpINTEL = 5573,
1607
 
    SpvOpSubgroupShuffleXorINTEL = 5574,
1608
 
    SpvOpSubgroupBlockReadINTEL = 5575,
1609
 
    SpvOpSubgroupBlockWriteINTEL = 5576,
1610
 
    SpvOpSubgroupImageBlockReadINTEL = 5577,
1611
 
    SpvOpSubgroupImageBlockWriteINTEL = 5578,
1612
 
    SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
1613
 
    SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
1614
 
    SpvOpUCountLeadingZerosINTEL = 5585,
1615
 
    SpvOpUCountTrailingZerosINTEL = 5586,
1616
 
    SpvOpAbsISubINTEL = 5587,
1617
 
    SpvOpAbsUSubINTEL = 5588,
1618
 
    SpvOpIAddSatINTEL = 5589,
1619
 
    SpvOpUAddSatINTEL = 5590,
1620
 
    SpvOpIAverageINTEL = 5591,
1621
 
    SpvOpUAverageINTEL = 5592,
1622
 
    SpvOpIAverageRoundedINTEL = 5593,
1623
 
    SpvOpUAverageRoundedINTEL = 5594,
1624
 
    SpvOpISubSatINTEL = 5595,
1625
 
    SpvOpUSubSatINTEL = 5596,
1626
 
    SpvOpIMul32x16INTEL = 5597,
1627
 
    SpvOpUMul32x16INTEL = 5598,
1628
 
    SpvOpConstantFunctionPointerINTEL = 5600,
1629
 
    SpvOpFunctionPointerCallINTEL = 5601,
1630
 
    SpvOpAsmTargetINTEL = 5609,
1631
 
    SpvOpAsmINTEL = 5610,
1632
 
    SpvOpAsmCallINTEL = 5611,
1633
 
    SpvOpAtomicFMinEXT = 5614,
1634
 
    SpvOpAtomicFMaxEXT = 5615,
1635
 
    SpvOpAssumeTrueKHR = 5630,
1636
 
    SpvOpExpectKHR = 5631,
1637
 
    SpvOpDecorateString = 5632,
1638
 
    SpvOpDecorateStringGOOGLE = 5632,
1639
 
    SpvOpMemberDecorateString = 5633,
1640
 
    SpvOpMemberDecorateStringGOOGLE = 5633,
1641
 
    SpvOpVmeImageINTEL = 5699,
1642
 
    SpvOpTypeVmeImageINTEL = 5700,
1643
 
    SpvOpTypeAvcImePayloadINTEL = 5701,
1644
 
    SpvOpTypeAvcRefPayloadINTEL = 5702,
1645
 
    SpvOpTypeAvcSicPayloadINTEL = 5703,
1646
 
    SpvOpTypeAvcMcePayloadINTEL = 5704,
1647
 
    SpvOpTypeAvcMceResultINTEL = 5705,
1648
 
    SpvOpTypeAvcImeResultINTEL = 5706,
1649
 
    SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
1650
 
    SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
1651
 
    SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
1652
 
    SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
1653
 
    SpvOpTypeAvcRefResultINTEL = 5711,
1654
 
    SpvOpTypeAvcSicResultINTEL = 5712,
1655
 
    SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
1656
 
    SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
1657
 
    SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
1658
 
    SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
1659
 
    SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
1660
 
    SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
1661
 
    SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
1662
 
    SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
1663
 
    SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
1664
 
    SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
1665
 
    SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
1666
 
    SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
1667
 
    SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
1668
 
    SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
1669
 
    SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
1670
 
    SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
1671
 
    SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
1672
 
    SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
1673
 
    SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
1674
 
    SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
1675
 
    SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
1676
 
    SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
1677
 
    SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
1678
 
    SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
1679
 
    SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
1680
 
    SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
1681
 
    SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
1682
 
    SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
1683
 
    SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
1684
 
    SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
1685
 
    SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
1686
 
    SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
1687
 
    SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
1688
 
    SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
1689
 
    SpvOpSubgroupAvcImeInitializeINTEL = 5747,
1690
 
    SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
1691
 
    SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
1692
 
    SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
1693
 
    SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
1694
 
    SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
1695
 
    SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
1696
 
    SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
1697
 
    SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
1698
 
    SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
1699
 
    SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
1700
 
    SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
1701
 
    SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
1702
 
    SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
1703
 
    SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
1704
 
    SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
1705
 
    SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
1706
 
    SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
1707
 
    SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
1708
 
    SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
1709
 
    SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
1710
 
    SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
1711
 
    SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
1712
 
    SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
1713
 
    SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
1714
 
    SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
1715
 
    SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
1716
 
    SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
1717
 
    SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
1718
 
    SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
1719
 
    SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
1720
 
    SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
1721
 
    SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
1722
 
    SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
1723
 
    SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
1724
 
    SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
1725
 
    SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
1726
 
    SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
1727
 
    SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
1728
 
    SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
1729
 
    SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
1730
 
    SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
1731
 
    SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
1732
 
    SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
1733
 
    SpvOpSubgroupAvcSicInitializeINTEL = 5791,
1734
 
    SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
1735
 
    SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
1736
 
    SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
1737
 
    SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
1738
 
    SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
1739
 
    SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
1740
 
    SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
1741
 
    SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
1742
 
    SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
1743
 
    SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
1744
 
    SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
1745
 
    SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
1746
 
    SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
1747
 
    SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
1748
 
    SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
1749
 
    SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
1750
 
    SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
1751
 
    SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
1752
 
    SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
1753
 
    SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
1754
 
    SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
1755
 
    SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
1756
 
    SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
1757
 
    SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
1758
 
    SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
1759
 
    SpvOpVariableLengthArrayINTEL = 5818,
1760
 
    SpvOpSaveMemoryINTEL = 5819,
1761
 
    SpvOpRestoreMemoryINTEL = 5820,
1762
 
    SpvOpArbitraryFloatSinCosPiINTEL = 5840,
1763
 
    SpvOpArbitraryFloatCastINTEL = 5841,
1764
 
    SpvOpArbitraryFloatCastFromIntINTEL = 5842,
1765
 
    SpvOpArbitraryFloatCastToIntINTEL = 5843,
1766
 
    SpvOpArbitraryFloatAddINTEL = 5846,
1767
 
    SpvOpArbitraryFloatSubINTEL = 5847,
1768
 
    SpvOpArbitraryFloatMulINTEL = 5848,
1769
 
    SpvOpArbitraryFloatDivINTEL = 5849,
1770
 
    SpvOpArbitraryFloatGTINTEL = 5850,
1771
 
    SpvOpArbitraryFloatGEINTEL = 5851,
1772
 
    SpvOpArbitraryFloatLTINTEL = 5852,
1773
 
    SpvOpArbitraryFloatLEINTEL = 5853,
1774
 
    SpvOpArbitraryFloatEQINTEL = 5854,
1775
 
    SpvOpArbitraryFloatRecipINTEL = 5855,
1776
 
    SpvOpArbitraryFloatRSqrtINTEL = 5856,
1777
 
    SpvOpArbitraryFloatCbrtINTEL = 5857,
1778
 
    SpvOpArbitraryFloatHypotINTEL = 5858,
1779
 
    SpvOpArbitraryFloatSqrtINTEL = 5859,
1780
 
    SpvOpArbitraryFloatLogINTEL = 5860,
1781
 
    SpvOpArbitraryFloatLog2INTEL = 5861,
1782
 
    SpvOpArbitraryFloatLog10INTEL = 5862,
1783
 
    SpvOpArbitraryFloatLog1pINTEL = 5863,
1784
 
    SpvOpArbitraryFloatExpINTEL = 5864,
1785
 
    SpvOpArbitraryFloatExp2INTEL = 5865,
1786
 
    SpvOpArbitraryFloatExp10INTEL = 5866,
1787
 
    SpvOpArbitraryFloatExpm1INTEL = 5867,
1788
 
    SpvOpArbitraryFloatSinINTEL = 5868,
1789
 
    SpvOpArbitraryFloatCosINTEL = 5869,
1790
 
    SpvOpArbitraryFloatSinCosINTEL = 5870,
1791
 
    SpvOpArbitraryFloatSinPiINTEL = 5871,
1792
 
    SpvOpArbitraryFloatCosPiINTEL = 5872,
1793
 
    SpvOpArbitraryFloatASinINTEL = 5873,
1794
 
    SpvOpArbitraryFloatASinPiINTEL = 5874,
1795
 
    SpvOpArbitraryFloatACosINTEL = 5875,
1796
 
    SpvOpArbitraryFloatACosPiINTEL = 5876,
1797
 
    SpvOpArbitraryFloatATanINTEL = 5877,
1798
 
    SpvOpArbitraryFloatATanPiINTEL = 5878,
1799
 
    SpvOpArbitraryFloatATan2INTEL = 5879,
1800
 
    SpvOpArbitraryFloatPowINTEL = 5880,
1801
 
    SpvOpArbitraryFloatPowRINTEL = 5881,
1802
 
    SpvOpArbitraryFloatPowNINTEL = 5882,
1803
 
    SpvOpLoopControlINTEL = 5887,
1804
 
    SpvOpFixedSqrtINTEL = 5923,
1805
 
    SpvOpFixedRecipINTEL = 5924,
1806
 
    SpvOpFixedRsqrtINTEL = 5925,
1807
 
    SpvOpFixedSinINTEL = 5926,
1808
 
    SpvOpFixedCosINTEL = 5927,
1809
 
    SpvOpFixedSinCosINTEL = 5928,
1810
 
    SpvOpFixedSinPiINTEL = 5929,
1811
 
    SpvOpFixedCosPiINTEL = 5930,
1812
 
    SpvOpFixedSinCosPiINTEL = 5931,
1813
 
    SpvOpFixedLogINTEL = 5932,
1814
 
    SpvOpFixedExpINTEL = 5933,
1815
 
    SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
1816
 
    SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
1817
 
    SpvOpReadPipeBlockingINTEL = 5946,
1818
 
    SpvOpWritePipeBlockingINTEL = 5947,
1819
 
    SpvOpFPGARegINTEL = 5949,
1820
 
    SpvOpRayQueryGetRayTMinKHR = 6016,
1821
 
    SpvOpRayQueryGetRayFlagsKHR = 6017,
1822
 
    SpvOpRayQueryGetIntersectionTKHR = 6018,
1823
 
    SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
1824
 
    SpvOpRayQueryGetIntersectionInstanceIdKHR = 6020,
1825
 
    SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
1826
 
    SpvOpRayQueryGetIntersectionGeometryIndexKHR = 6022,
1827
 
    SpvOpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
1828
 
    SpvOpRayQueryGetIntersectionBarycentricsKHR = 6024,
1829
 
    SpvOpRayQueryGetIntersectionFrontFaceKHR = 6025,
1830
 
    SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
1831
 
    SpvOpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
1832
 
    SpvOpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
1833
 
    SpvOpRayQueryGetWorldRayDirectionKHR = 6029,
1834
 
    SpvOpRayQueryGetWorldRayOriginKHR = 6030,
1835
 
    SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
1836
 
    SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
1837
 
    SpvOpAtomicFAddEXT = 6035,
1838
 
    SpvOpTypeBufferSurfaceINTEL = 6086,
1839
 
    SpvOpTypeStructContinuedINTEL = 6090,
1840
 
    SpvOpConstantCompositeContinuedINTEL = 6091,
1841
 
    SpvOpSpecConstantCompositeContinuedINTEL = 6092,
1842
 
    SpvOpMax = 0x7fffffff,
1843
 
} SpvOp;
1844
 
 
1845
 
#ifdef SPV_ENABLE_UTILITY_CODE
1846
 
inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) {
1847
 
    *hasResult = *hasResultType = false;
1848
 
    switch (opcode) {
1849
 
    default: /* unknown opcode */ break;
1850
 
    case SpvOpNop: *hasResult = false; *hasResultType = false; break;
1851
 
    case SpvOpUndef: *hasResult = true; *hasResultType = true; break;
1852
 
    case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break;
1853
 
    case SpvOpSource: *hasResult = false; *hasResultType = false; break;
1854
 
    case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break;
1855
 
    case SpvOpName: *hasResult = false; *hasResultType = false; break;
1856
 
    case SpvOpMemberName: *hasResult = false; *hasResultType = false; break;
1857
 
    case SpvOpString: *hasResult = true; *hasResultType = false; break;
1858
 
    case SpvOpLine: *hasResult = false; *hasResultType = false; break;
1859
 
    case SpvOpExtension: *hasResult = false; *hasResultType = false; break;
1860
 
    case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break;
1861
 
    case SpvOpExtInst: *hasResult = true; *hasResultType = true; break;
1862
 
    case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break;
1863
 
    case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break;
1864
 
    case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break;
1865
 
    case SpvOpCapability: *hasResult = false; *hasResultType = false; break;
1866
 
    case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break;
1867
 
    case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break;
1868
 
    case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break;
1869
 
    case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break;
1870
 
    case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break;
1871
 
    case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break;
1872
 
    case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break;
1873
 
    case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break;
1874
 
    case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
1875
 
    case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break;
1876
 
    case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
1877
 
    case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break;
1878
 
    case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break;
1879
 
    case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break;
1880
 
    case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break;
1881
 
    case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break;
1882
 
    case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
1883
 
    case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break;
1884
 
    case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break;
1885
 
    case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break;
1886
 
    case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
1887
 
    case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break;
1888
 
    case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break;
1889
 
    case SpvOpConstant: *hasResult = true; *hasResultType = true; break;
1890
 
    case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break;
1891
 
    case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break;
1892
 
    case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break;
1893
 
    case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
1894
 
    case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
1895
 
    case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break;
1896
 
    case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
1897
 
    case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
1898
 
    case SpvOpFunction: *hasResult = true; *hasResultType = true; break;
1899
 
    case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break;
1900
 
    case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break;
1901
 
    case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break;
1902
 
    case SpvOpVariable: *hasResult = true; *hasResultType = true; break;
1903
 
    case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
1904
 
    case SpvOpLoad: *hasResult = true; *hasResultType = true; break;
1905
 
    case SpvOpStore: *hasResult = false; *hasResultType = false; break;
1906
 
    case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break;
1907
 
    case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
1908
 
    case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break;
1909
 
    case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
1910
 
    case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1911
 
    case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break;
1912
 
    case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
1913
 
    case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1914
 
    case SpvOpDecorate: *hasResult = false; *hasResultType = false; break;
1915
 
    case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break;
1916
 
    case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break;
1917
 
    case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break;
1918
 
    case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
1919
 
    case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
1920
 
    case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
1921
 
    case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break;
1922
 
    case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
1923
 
    case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break;
1924
 
    case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break;
1925
 
    case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break;
1926
 
    case SpvOpTranspose: *hasResult = true; *hasResultType = true; break;
1927
 
    case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break;
1928
 
    case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
1929
 
    case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
1930
 
    case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1931
 
    case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1932
 
    case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
1933
 
    case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
1934
 
    case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1935
 
    case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1936
 
    case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break;
1937
 
    case SpvOpImageGather: *hasResult = true; *hasResultType = true; break;
1938
 
    case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break;
1939
 
    case SpvOpImageRead: *hasResult = true; *hasResultType = true; break;
1940
 
    case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break;
1941
 
    case SpvOpImage: *hasResult = true; *hasResultType = true; break;
1942
 
    case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
1943
 
    case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
1944
 
    case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
1945
 
    case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break;
1946
 
    case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break;
1947
 
    case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
1948
 
    case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
1949
 
    case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break;
1950
 
    case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break;
1951
 
    case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break;
1952
 
    case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break;
1953
 
    case SpvOpUConvert: *hasResult = true; *hasResultType = true; break;
1954
 
    case SpvOpSConvert: *hasResult = true; *hasResultType = true; break;
1955
 
    case SpvOpFConvert: *hasResult = true; *hasResultType = true; break;
1956
 
    case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
1957
 
    case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
1958
 
    case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
1959
 
    case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
1960
 
    case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
1961
 
    case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
1962
 
    case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
1963
 
    case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
1964
 
    case SpvOpBitcast: *hasResult = true; *hasResultType = true; break;
1965
 
    case SpvOpSNegate: *hasResult = true; *hasResultType = true; break;
1966
 
    case SpvOpFNegate: *hasResult = true; *hasResultType = true; break;
1967
 
    case SpvOpIAdd: *hasResult = true; *hasResultType = true; break;
1968
 
    case SpvOpFAdd: *hasResult = true; *hasResultType = true; break;
1969
 
    case SpvOpISub: *hasResult = true; *hasResultType = true; break;
1970
 
    case SpvOpFSub: *hasResult = true; *hasResultType = true; break;
1971
 
    case SpvOpIMul: *hasResult = true; *hasResultType = true; break;
1972
 
    case SpvOpFMul: *hasResult = true; *hasResultType = true; break;
1973
 
    case SpvOpUDiv: *hasResult = true; *hasResultType = true; break;
1974
 
    case SpvOpSDiv: *hasResult = true; *hasResultType = true; break;
1975
 
    case SpvOpFDiv: *hasResult = true; *hasResultType = true; break;
1976
 
    case SpvOpUMod: *hasResult = true; *hasResultType = true; break;
1977
 
    case SpvOpSRem: *hasResult = true; *hasResultType = true; break;
1978
 
    case SpvOpSMod: *hasResult = true; *hasResultType = true; break;
1979
 
    case SpvOpFRem: *hasResult = true; *hasResultType = true; break;
1980
 
    case SpvOpFMod: *hasResult = true; *hasResultType = true; break;
1981
 
    case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
1982
 
    case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
1983
 
    case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
1984
 
    case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
1985
 
    case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
1986
 
    case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break;
1987
 
    case SpvOpDot: *hasResult = true; *hasResultType = true; break;
1988
 
    case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break;
1989
 
    case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break;
1990
 
    case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break;
1991
 
    case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break;
1992
 
    case SpvOpAny: *hasResult = true; *hasResultType = true; break;
1993
 
    case SpvOpAll: *hasResult = true; *hasResultType = true; break;
1994
 
    case SpvOpIsNan: *hasResult = true; *hasResultType = true; break;
1995
 
    case SpvOpIsInf: *hasResult = true; *hasResultType = true; break;
1996
 
    case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break;
1997
 
    case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break;
1998
 
    case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break;
1999
 
    case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break;
2000
 
    case SpvOpOrdered: *hasResult = true; *hasResultType = true; break;
2001
 
    case SpvOpUnordered: *hasResult = true; *hasResultType = true; break;
2002
 
    case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break;
2003
 
    case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
2004
 
    case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break;
2005
 
    case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break;
2006
 
    case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break;
2007
 
    case SpvOpSelect: *hasResult = true; *hasResultType = true; break;
2008
 
    case SpvOpIEqual: *hasResult = true; *hasResultType = true; break;
2009
 
    case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break;
2010
 
    case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break;
2011
 
    case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break;
2012
 
    case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2013
 
    case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2014
 
    case SpvOpULessThan: *hasResult = true; *hasResultType = true; break;
2015
 
    case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break;
2016
 
    case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break;
2017
 
    case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
2018
 
    case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break;
2019
 
    case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break;
2020
 
    case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
2021
 
    case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
2022
 
    case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
2023
 
    case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
2024
 
    case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
2025
 
    case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
2026
 
    case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
2027
 
    case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
2028
 
    case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2029
 
    case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2030
 
    case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
2031
 
    case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
2032
 
    case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
2033
 
    case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break;
2034
 
    case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break;
2035
 
    case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
2036
 
    case SpvOpNot: *hasResult = true; *hasResultType = true; break;
2037
 
    case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
2038
 
    case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
2039
 
    case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
2040
 
    case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break;
2041
 
    case SpvOpBitCount: *hasResult = true; *hasResultType = true; break;
2042
 
    case SpvOpDPdx: *hasResult = true; *hasResultType = true; break;
2043
 
    case SpvOpDPdy: *hasResult = true; *hasResultType = true; break;
2044
 
    case SpvOpFwidth: *hasResult = true; *hasResultType = true; break;
2045
 
    case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break;
2046
 
    case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break;
2047
 
    case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break;
2048
 
    case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
2049
 
    case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
2050
 
    case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
2051
 
    case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break;
2052
 
    case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break;
2053
 
    case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
2054
 
    case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
2055
 
    case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break;
2056
 
    case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
2057
 
    case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break;
2058
 
    case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break;
2059
 
    case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break;
2060
 
    case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
2061
 
    case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
2062
 
    case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
2063
 
    case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
2064
 
    case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
2065
 
    case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break;
2066
 
    case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break;
2067
 
    case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break;
2068
 
    case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break;
2069
 
    case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break;
2070
 
    case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break;
2071
 
    case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break;
2072
 
    case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break;
2073
 
    case SpvOpPhi: *hasResult = true; *hasResultType = true; break;
2074
 
    case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break;
2075
 
    case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break;
2076
 
    case SpvOpLabel: *hasResult = true; *hasResultType = false; break;
2077
 
    case SpvOpBranch: *hasResult = false; *hasResultType = false; break;
2078
 
    case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break;
2079
 
    case SpvOpSwitch: *hasResult = false; *hasResultType = false; break;
2080
 
    case SpvOpKill: *hasResult = false; *hasResultType = false; break;
2081
 
    case SpvOpReturn: *hasResult = false; *hasResultType = false; break;
2082
 
    case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break;
2083
 
    case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break;
2084
 
    case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break;
2085
 
    case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break;
2086
 
    case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
2087
 
    case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
2088
 
    case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break;
2089
 
    case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break;
2090
 
    case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
2091
 
    case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break;
2092
 
    case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break;
2093
 
    case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break;
2094
 
    case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break;
2095
 
    case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break;
2096
 
    case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break;
2097
 
    case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break;
2098
 
    case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break;
2099
 
    case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break;
2100
 
    case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break;
2101
 
    case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
2102
 
    case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
2103
 
    case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2104
 
    case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2105
 
    case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2106
 
    case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2107
 
    case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
2108
 
    case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
2109
 
    case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
2110
 
    case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2111
 
    case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2112
 
    case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2113
 
    case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2114
 
    case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
2115
 
    case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
2116
 
    case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
2117
 
    case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
2118
 
    case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
2119
 
    case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
2120
 
    case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break;
2121
 
    case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break;
2122
 
    case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
2123
 
    case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break;
2124
 
    case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
2125
 
    case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
2126
 
    case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
2127
 
    case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break;
2128
 
    case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
2129
 
    case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
2130
 
    case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2131
 
    case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2132
 
    case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
2133
 
    case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
2134
 
    case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2135
 
    case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2136
 
    case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
2137
 
    case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break;
2138
 
    case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
2139
 
    case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
2140
 
    case SpvOpNoLine: *hasResult = false; *hasResultType = false; break;
2141
 
    case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
2142
 
    case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
2143
 
    case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break;
2144
 
    case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break;
2145
 
    case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
2146
 
    case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
2147
 
    case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
2148
 
    case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
2149
 
    case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
2150
 
    case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
2151
 
    case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
2152
 
    case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
2153
 
    case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break;
2154
 
    case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break;
2155
 
    case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break;
2156
 
    case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
2157
 
    case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
2158
 
    case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
2159
 
    case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
2160
 
    case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
2161
 
    case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
2162
 
    case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
2163
 
    case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
2164
 
    case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
2165
 
    case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
2166
 
    case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
2167
 
    case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
2168
 
    case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
2169
 
    case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
2170
 
    case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
2171
 
    case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
2172
 
    case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
2173
 
    case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
2174
 
    case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
2175
 
    case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
2176
 
    case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
2177
 
    case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
2178
 
    case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
2179
 
    case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
2180
 
    case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
2181
 
    case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
2182
 
    case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
2183
 
    case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
2184
 
    case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
2185
 
    case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
2186
 
    case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
2187
 
    case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
2188
 
    case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
2189
 
    case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
2190
 
    case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break;
2191
 
    case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
2192
 
    case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
2193
 
    case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
2194
 
    case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
2195
 
    case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
2196
 
    case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
2197
 
    case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
2198
 
    case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
2199
 
    case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
2200
 
    case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
2201
 
    case SpvOpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
2202
 
    case SpvOpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
2203
 
    case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
2204
 
    case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2205
 
    case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
2206
 
    case SpvOpSDot: *hasResult = true; *hasResultType = true; break;
2207
 
    case SpvOpUDot: *hasResult = true; *hasResultType = true; break;
2208
 
    case SpvOpSUDot: *hasResult = true; *hasResultType = true; break;
2209
 
    case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
2210
 
    case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
2211
 
    case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
2212
 
    case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
2213
 
    case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
2214
 
    case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
2215
 
    case SpvOpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2216
 
    case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2217
 
    case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
2218
 
    case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
2219
 
    case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2220
 
    case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2221
 
    case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2222
 
    case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2223
 
    case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2224
 
    case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2225
 
    case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2226
 
    case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2227
 
    case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
2228
 
    case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
2229
 
    case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
2230
 
    case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
2231
 
    case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
2232
 
    case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
2233
 
    case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
2234
 
    case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
2235
 
    case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
2236
 
    case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
2237
 
    case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
2238
 
    case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
2239
 
    case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
2240
 
    case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
2241
 
    case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
2242
 
    case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
2243
 
    case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
2244
 
    case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
2245
 
    case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
2246
 
    case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2247
 
    case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2248
 
    case SpvOpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
2249
 
    case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
2250
 
    case SpvOpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
2251
 
    case SpvOpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
2252
 
    case SpvOpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
2253
 
    case SpvOpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
2254
 
    case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
2255
 
    case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
2256
 
    case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
2257
 
    case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
2258
 
    case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
2259
 
    case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
2260
 
    case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
2261
 
    case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2262
 
    case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2263
 
    case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2264
 
    case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2265
 
    case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2266
 
    case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2267
 
    case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2268
 
    case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2269
 
    case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
2270
 
    case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
2271
 
    case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2272
 
    case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2273
 
    case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
2274
 
    case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
2275
 
    case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2276
 
    case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2277
 
    case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
2278
 
    case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
2279
 
    case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2280
 
    case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2281
 
    case SpvOpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
2282
 
    case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
2283
 
    case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
2284
 
    case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break;
2285
 
    case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
2286
 
    case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
2287
 
    case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
2288
 
    case SpvOpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
2289
 
    case SpvOpExpectKHR: *hasResult = true; *hasResultType = true; break;
2290
 
    case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
2291
 
    case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
2292
 
    case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
2293
 
    case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
2294
 
    case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2295
 
    case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2296
 
    case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2297
 
    case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2298
 
    case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
2299
 
    case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
2300
 
    case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2301
 
    case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2302
 
    case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2303
 
    case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2304
 
    case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
2305
 
    case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
2306
 
    case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2307
 
    case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2308
 
    case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2309
 
    case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2310
 
    case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2311
 
    case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2312
 
    case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2313
 
    case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2314
 
    case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2315
 
    case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2316
 
    case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2317
 
    case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2318
 
    case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2319
 
    case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2320
 
    case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2321
 
    case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
2322
 
    case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2323
 
    case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2324
 
    case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2325
 
    case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2326
 
    case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
2327
 
    case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2328
 
    case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
2329
 
    case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2330
 
    case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
2331
 
    case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2332
 
    case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2333
 
    case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2334
 
    case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2335
 
    case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2336
 
    case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
2337
 
    case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2338
 
    case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2339
 
    case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2340
 
    case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2341
 
    case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2342
 
    case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2343
 
    case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
2344
 
    case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
2345
 
    case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2346
 
    case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2347
 
    case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2348
 
    case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2349
 
    case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
2350
 
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2351
 
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2352
 
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2353
 
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2354
 
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2355
 
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2356
 
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2357
 
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2358
 
    case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2359
 
    case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2360
 
    case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2361
 
    case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2362
 
    case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2363
 
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2364
 
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2365
 
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2366
 
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2367
 
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2368
 
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2369
 
    case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
2370
 
    case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
2371
 
    case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
2372
 
    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
2373
 
    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2374
 
    case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2375
 
    case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2376
 
    case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2377
 
    case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2378
 
    case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2379
 
    case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2380
 
    case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2381
 
    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2382
 
    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2383
 
    case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2384
 
    case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2385
 
    case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
2386
 
    case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
2387
 
    case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
2388
 
    case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
2389
 
    case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2390
 
    case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2391
 
    case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2392
 
    case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2393
 
    case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2394
 
    case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
2395
 
    case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
2396
 
    case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
2397
 
    case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2398
 
    case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2399
 
    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2400
 
    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2401
 
    case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2402
 
    case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
2403
 
    case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2404
 
    case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2405
 
    case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
2406
 
    case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
2407
 
    case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2408
 
    case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2409
 
    case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
2410
 
    case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
2411
 
    case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
2412
 
    case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
2413
 
    case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2414
 
    case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
2415
 
    case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
2416
 
    case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
2417
 
    case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
2418
 
    case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
2419
 
    case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
2420
 
    case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
2421
 
    case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
2422
 
    case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
2423
 
    case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
2424
 
    case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
2425
 
    case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
2426
 
    case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
2427
 
    case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2428
 
    case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
2429
 
    case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
2430
 
    case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2431
 
    case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
2432
 
    case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
2433
 
    case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
2434
 
    case SpvOpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
2435
 
    case SpvOpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
2436
 
    case SpvOpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
2437
 
    case SpvOpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
2438
 
    case SpvOpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
2439
 
    case SpvOpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
2440
 
    case SpvOpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
2441
 
    case SpvOpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
2442
 
    case SpvOpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
2443
 
    case SpvOpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2444
 
    case SpvOpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
2445
 
    case SpvOpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
2446
 
    case SpvOpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
2447
 
    case SpvOpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
2448
 
    case SpvOpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
2449
 
    case SpvOpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
2450
 
    case SpvOpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
2451
 
    case SpvOpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
2452
 
    case SpvOpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
2453
 
    case SpvOpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
2454
 
    case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
2455
 
    case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2456
 
    case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
2457
 
    case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
2458
 
    case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
2459
 
    case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
2460
 
    case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
2461
 
    case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
2462
 
    case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2463
 
    case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2464
 
    case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
2465
 
    case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
2466
 
    case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
2467
 
    case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
2468
 
    case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2469
 
    case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2470
 
    case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
2471
 
    case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
2472
 
    case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
2473
 
    case SpvOpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
2474
 
    case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
2475
 
    case SpvOpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
2476
 
    case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
2477
 
    case SpvOpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
2478
 
    case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
2479
 
    case SpvOpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
2480
 
    case SpvOpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
2481
 
    case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
2482
 
    case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
2483
 
    case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
2484
 
    case SpvOpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
2485
 
    case SpvOpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
2486
 
    case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
2487
 
    case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
2488
 
    case SpvOpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
2489
 
    case SpvOpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
2490
 
    case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2491
 
    case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2492
 
    case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2493
 
    }
2494
 
}
2495
 
#endif /* SPV_ENABLE_UTILITY_CODE */
2496
 
 
2497
 
#endif
2498