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