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