FastEngine 0.9.3
A multiplayer oriented 2D engine made with Vulkan.
Loading...
Searching...
No Matches
spirv.h
1/*
2** Copyright (c) 2014-2020 The Khronos Group Inc.
3**
4** Permission is hereby granted, free of charge, to any person obtaining a copy
5** of this software and/or associated documentation files (the "Materials"),
6** to deal in the Materials without restriction, including without limitation
7** the rights to use, copy, modify, merge, publish, distribute, sublicense,
8** and/or sell copies of the Materials, and to permit persons to whom the
9** Materials are furnished to do so, subject to the following conditions:
10**
11** The above copyright notice and this permission notice shall be included in
12** all copies or substantial portions of the Materials.
13**
14** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
15** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
16** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
17**
18** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
24** IN THE MATERIALS.
25*/
26
27/*
28** This header is automatically generated by the same tool that creates
29** the Binary Section of the SPIR-V specification.
30*/
31
32/*
33** Enumeration tokens for SPIR-V, in various styles:
34** C, C++, C++11, JSON, Lua, Python, C#, D, Beef
35**
36** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
37** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
38** - C++11 will use enum classes in the spv namespace, e.g.:
39*spv::SourceLanguage::GLSL
40** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
41** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
42** - C# will use enum classes in the Specification class located in the "Spv"
43*namespace,
44** e.g.: Spv.Specification.SourceLanguage.GLSL
45** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
46** - Beef will use enum classes in the Specification class located in the "Spv"
47*namespace,
48** e.g.: Spv.Specification.SourceLanguage.GLSL
49**
50** Some tokens act like mask values, which can be OR'd together,
51** while others are mutually exclusive. The mask-like ones have
52** "Mask" in their name, and a parallel enum that has the shift
53** amount (1 << x) for each corresponding enumerant.
54*/
55
56#ifndef spirv_H
57#define spirv_H
58
59typedef unsigned int SpvId;
60
61#define SPV_VERSION 0x10600
62#define SPV_REVISION 1
63
64static const unsigned int SpvMagicNumber = 0x07230203;
65static const unsigned int SpvVersion = 0x00010600;
66static const unsigned int SpvRevision = 1;
67static const unsigned int SpvOpCodeMask = 0xffff;
68static const unsigned int SpvWordCountShift = 16;
69
70typedef enum SpvSourceLanguage_ {
71 SpvSourceLanguageUnknown = 0,
72 SpvSourceLanguageESSL = 1,
73 SpvSourceLanguageGLSL = 2,
74 SpvSourceLanguageOpenCL_C = 3,
75 SpvSourceLanguageOpenCL_CPP = 4,
76 SpvSourceLanguageHLSL = 5,
77 SpvSourceLanguageCPP_for_OpenCL = 6,
78 SpvSourceLanguageSYCL = 7,
79 SpvSourceLanguageHERO_C = 8,
80 SpvSourceLanguageNZSL = 9,
81 SpvSourceLanguageMax = 0x7fffffff,
82} SpvSourceLanguage;
83
84typedef enum SpvExecutionModel_ {
85 SpvExecutionModelVertex = 0,
86 SpvExecutionModelTessellationControl = 1,
87 SpvExecutionModelTessellationEvaluation = 2,
88 SpvExecutionModelGeometry = 3,
89 SpvExecutionModelFragment = 4,
90 SpvExecutionModelGLCompute = 5,
91 SpvExecutionModelKernel = 6,
92 SpvExecutionModelTaskNV = 5267,
93 SpvExecutionModelMeshNV = 5268,
94 SpvExecutionModelRayGenerationKHR = 5313,
95 SpvExecutionModelRayGenerationNV = 5313,
96 SpvExecutionModelIntersectionKHR = 5314,
97 SpvExecutionModelIntersectionNV = 5314,
98 SpvExecutionModelAnyHitKHR = 5315,
99 SpvExecutionModelAnyHitNV = 5315,
100 SpvExecutionModelClosestHitKHR = 5316,
101 SpvExecutionModelClosestHitNV = 5316,
102 SpvExecutionModelMissKHR = 5317,
103 SpvExecutionModelMissNV = 5317,
104 SpvExecutionModelCallableKHR = 5318,
105 SpvExecutionModelCallableNV = 5318,
106 SpvExecutionModelTaskEXT = 5364,
107 SpvExecutionModelMeshEXT = 5365,
108 SpvExecutionModelMax = 0x7fffffff,
109} SpvExecutionModel;
110
111typedef enum SpvAddressingModel_ {
112 SpvAddressingModelLogical = 0,
113 SpvAddressingModelPhysical32 = 1,
114 SpvAddressingModelPhysical64 = 2,
115 SpvAddressingModelPhysicalStorageBuffer64 = 5348,
116 SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
117 SpvAddressingModelMax = 0x7fffffff,
118} SpvAddressingModel;
119
120typedef enum SpvMemoryModel_ {
121 SpvMemoryModelSimple = 0,
122 SpvMemoryModelGLSL450 = 1,
123 SpvMemoryModelOpenCL = 2,
124 SpvMemoryModelVulkan = 3,
125 SpvMemoryModelVulkanKHR = 3,
126 SpvMemoryModelMax = 0x7fffffff,
127} SpvMemoryModel;
128
129typedef enum SpvExecutionMode_ {
130 SpvExecutionModeInvocations = 0,
131 SpvExecutionModeSpacingEqual = 1,
132 SpvExecutionModeSpacingFractionalEven = 2,
133 SpvExecutionModeSpacingFractionalOdd = 3,
134 SpvExecutionModeVertexOrderCw = 4,
135 SpvExecutionModeVertexOrderCcw = 5,
136 SpvExecutionModePixelCenterInteger = 6,
137 SpvExecutionModeOriginUpperLeft = 7,
138 SpvExecutionModeOriginLowerLeft = 8,
139 SpvExecutionModeEarlyFragmentTests = 9,
140 SpvExecutionModePointMode = 10,
141 SpvExecutionModeXfb = 11,
142 SpvExecutionModeDepthReplacing = 12,
143 SpvExecutionModeDepthGreater = 14,
144 SpvExecutionModeDepthLess = 15,
145 SpvExecutionModeDepthUnchanged = 16,
146 SpvExecutionModeLocalSize = 17,
147 SpvExecutionModeLocalSizeHint = 18,
148 SpvExecutionModeInputPoints = 19,
149 SpvExecutionModeInputLines = 20,
150 SpvExecutionModeInputLinesAdjacency = 21,
151 SpvExecutionModeTriangles = 22,
152 SpvExecutionModeInputTrianglesAdjacency = 23,
153 SpvExecutionModeQuads = 24,
154 SpvExecutionModeIsolines = 25,
155 SpvExecutionModeOutputVertices = 26,
156 SpvExecutionModeOutputPoints = 27,
157 SpvExecutionModeOutputLineStrip = 28,
158 SpvExecutionModeOutputTriangleStrip = 29,
159 SpvExecutionModeVecTypeHint = 30,
160 SpvExecutionModeContractionOff = 31,
161 SpvExecutionModeInitializer = 33,
162 SpvExecutionModeFinalizer = 34,
163 SpvExecutionModeSubgroupSize = 35,
164 SpvExecutionModeSubgroupsPerWorkgroup = 36,
165 SpvExecutionModeSubgroupsPerWorkgroupId = 37,
166 SpvExecutionModeLocalSizeId = 38,
167 SpvExecutionModeLocalSizeHintId = 39,
168 SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
169 SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
170 SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
171 SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
172 SpvExecutionModePostDepthCoverage = 4446,
173 SpvExecutionModeDenormPreserve = 4459,
174 SpvExecutionModeDenormFlushToZero = 4460,
175 SpvExecutionModeSignedZeroInfNanPreserve = 4461,
176 SpvExecutionModeRoundingModeRTE = 4462,
177 SpvExecutionModeRoundingModeRTZ = 4463,
178 SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
179 SpvExecutionModeStencilRefReplacingEXT = 5027,
180 SpvExecutionModeStencilRefUnchangedFrontAMD = 5079,
181 SpvExecutionModeStencilRefGreaterFrontAMD = 5080,
182 SpvExecutionModeStencilRefLessFrontAMD = 5081,
183 SpvExecutionModeStencilRefUnchangedBackAMD = 5082,
184 SpvExecutionModeStencilRefGreaterBackAMD = 5083,
185 SpvExecutionModeStencilRefLessBackAMD = 5084,
186 SpvExecutionModeOutputLinesEXT = 5269,
187 SpvExecutionModeOutputLinesNV = 5269,
188 SpvExecutionModeOutputPrimitivesEXT = 5270,
189 SpvExecutionModeOutputPrimitivesNV = 5270,
190 SpvExecutionModeDerivativeGroupQuadsNV = 5289,
191 SpvExecutionModeDerivativeGroupLinearNV = 5290,
192 SpvExecutionModeOutputTrianglesEXT = 5298,
193 SpvExecutionModeOutputTrianglesNV = 5298,
194 SpvExecutionModePixelInterlockOrderedEXT = 5366,
195 SpvExecutionModePixelInterlockUnorderedEXT = 5367,
196 SpvExecutionModeSampleInterlockOrderedEXT = 5368,
197 SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
198 SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
199 SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
200 SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
201 SpvExecutionModeRoundingModeRTPINTEL = 5620,
202 SpvExecutionModeRoundingModeRTNINTEL = 5621,
203 SpvExecutionModeFloatingPointModeALTINTEL = 5622,
204 SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
205 SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
206 SpvExecutionModeMaxWorkDimINTEL = 5894,
207 SpvExecutionModeNoGlobalOffsetINTEL = 5895,
208 SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
209 SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
210 SpvExecutionModeStreamingInterfaceINTEL = 6154,
211 SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
212 SpvExecutionModeNamedBarrierCountINTEL = 6417,
213 SpvExecutionModeMax = 0x7fffffff,
214} SpvExecutionMode;
215
216typedef enum SpvStorageClass_ {
217 SpvStorageClassUniformConstant = 0,
218 SpvStorageClassInput = 1,
219 SpvStorageClassUniform = 2,
220 SpvStorageClassOutput = 3,
221 SpvStorageClassWorkgroup = 4,
222 SpvStorageClassCrossWorkgroup = 5,
223 SpvStorageClassPrivate = 6,
224 SpvStorageClassFunction = 7,
225 SpvStorageClassGeneric = 8,
226 SpvStorageClassPushConstant = 9,
227 SpvStorageClassAtomicCounter = 10,
228 SpvStorageClassImage = 11,
229 SpvStorageClassStorageBuffer = 12,
230 SpvStorageClassTileImageEXT = 4172,
231 SpvStorageClassCallableDataKHR = 5328,
232 SpvStorageClassCallableDataNV = 5328,
233 SpvStorageClassIncomingCallableDataKHR = 5329,
234 SpvStorageClassIncomingCallableDataNV = 5329,
235 SpvStorageClassRayPayloadKHR = 5338,
236 SpvStorageClassRayPayloadNV = 5338,
237 SpvStorageClassHitAttributeKHR = 5339,
238 SpvStorageClassHitAttributeNV = 5339,
239 SpvStorageClassIncomingRayPayloadKHR = 5342,
240 SpvStorageClassIncomingRayPayloadNV = 5342,
241 SpvStorageClassShaderRecordBufferKHR = 5343,
242 SpvStorageClassShaderRecordBufferNV = 5343,
243 SpvStorageClassPhysicalStorageBuffer = 5349,
244 SpvStorageClassPhysicalStorageBufferEXT = 5349,
245 SpvStorageClassHitObjectAttributeNV = 5385,
246 SpvStorageClassTaskPayloadWorkgroupEXT = 5402,
247 SpvStorageClassCodeSectionINTEL = 5605,
248 SpvStorageClassDeviceOnlyINTEL = 5936,
249 SpvStorageClassHostOnlyINTEL = 5937,
250 SpvStorageClassMax = 0x7fffffff,
251} SpvStorageClass;
252
253typedef enum SpvDim_ {
254 SpvDim1D = 0,
255 SpvDim2D = 1,
256 SpvDim3D = 2,
257 SpvDimCube = 3,
258 SpvDimRect = 4,
259 SpvDimBuffer = 5,
260 SpvDimSubpassData = 6,
261 SpvDimTileImageDataEXT = 4173,
262 SpvDimMax = 0x7fffffff,
263} SpvDim;
264
265typedef enum SpvSamplerAddressingMode_ {
266 SpvSamplerAddressingModeNone = 0,
267 SpvSamplerAddressingModeClampToEdge = 1,
268 SpvSamplerAddressingModeClamp = 2,
269 SpvSamplerAddressingModeRepeat = 3,
270 SpvSamplerAddressingModeRepeatMirrored = 4,
271 SpvSamplerAddressingModeMax = 0x7fffffff,
272} SpvSamplerAddressingMode;
273
274typedef enum SpvSamplerFilterMode_ {
275 SpvSamplerFilterModeNearest = 0,
276 SpvSamplerFilterModeLinear = 1,
277 SpvSamplerFilterModeMax = 0x7fffffff,
278} SpvSamplerFilterMode;
279
280typedef enum SpvImageFormat_ {
281 SpvImageFormatUnknown = 0,
282 SpvImageFormatRgba32f = 1,
283 SpvImageFormatRgba16f = 2,
284 SpvImageFormatR32f = 3,
285 SpvImageFormatRgba8 = 4,
286 SpvImageFormatRgba8Snorm = 5,
287 SpvImageFormatRg32f = 6,
288 SpvImageFormatRg16f = 7,
289 SpvImageFormatR11fG11fB10f = 8,
290 SpvImageFormatR16f = 9,
291 SpvImageFormatRgba16 = 10,
292 SpvImageFormatRgb10A2 = 11,
293 SpvImageFormatRg16 = 12,
294 SpvImageFormatRg8 = 13,
295 SpvImageFormatR16 = 14,
296 SpvImageFormatR8 = 15,
297 SpvImageFormatRgba16Snorm = 16,
298 SpvImageFormatRg16Snorm = 17,
299 SpvImageFormatRg8Snorm = 18,
300 SpvImageFormatR16Snorm = 19,
301 SpvImageFormatR8Snorm = 20,
302 SpvImageFormatRgba32i = 21,
303 SpvImageFormatRgba16i = 22,
304 SpvImageFormatRgba8i = 23,
305 SpvImageFormatR32i = 24,
306 SpvImageFormatRg32i = 25,
307 SpvImageFormatRg16i = 26,
308 SpvImageFormatRg8i = 27,
309 SpvImageFormatR16i = 28,
310 SpvImageFormatR8i = 29,
311 SpvImageFormatRgba32ui = 30,
312 SpvImageFormatRgba16ui = 31,
313 SpvImageFormatRgba8ui = 32,
314 SpvImageFormatR32ui = 33,
315 SpvImageFormatRgb10a2ui = 34,
316 SpvImageFormatRg32ui = 35,
317 SpvImageFormatRg16ui = 36,
318 SpvImageFormatRg8ui = 37,
319 SpvImageFormatR16ui = 38,
320 SpvImageFormatR8ui = 39,
321 SpvImageFormatR64ui = 40,
322 SpvImageFormatR64i = 41,
323 SpvImageFormatMax = 0x7fffffff,
324} SpvImageFormat;
325
326typedef enum SpvImageChannelOrder_ {
327 SpvImageChannelOrderR = 0,
328 SpvImageChannelOrderA = 1,
329 SpvImageChannelOrderRG = 2,
330 SpvImageChannelOrderRA = 3,
331 SpvImageChannelOrderRGB = 4,
332 SpvImageChannelOrderRGBA = 5,
333 SpvImageChannelOrderBGRA = 6,
334 SpvImageChannelOrderARGB = 7,
335 SpvImageChannelOrderIntensity = 8,
336 SpvImageChannelOrderLuminance = 9,
337 SpvImageChannelOrderRx = 10,
338 SpvImageChannelOrderRGx = 11,
339 SpvImageChannelOrderRGBx = 12,
340 SpvImageChannelOrderDepth = 13,
341 SpvImageChannelOrderDepthStencil = 14,
342 SpvImageChannelOrdersRGB = 15,
343 SpvImageChannelOrdersRGBx = 16,
344 SpvImageChannelOrdersRGBA = 17,
345 SpvImageChannelOrdersBGRA = 18,
346 SpvImageChannelOrderABGR = 19,
347 SpvImageChannelOrderMax = 0x7fffffff,
348} SpvImageChannelOrder;
349
350typedef enum SpvImageChannelDataType_ {
351 SpvImageChannelDataTypeSnormInt8 = 0,
352 SpvImageChannelDataTypeSnormInt16 = 1,
353 SpvImageChannelDataTypeUnormInt8 = 2,
354 SpvImageChannelDataTypeUnormInt16 = 3,
355 SpvImageChannelDataTypeUnormShort565 = 4,
356 SpvImageChannelDataTypeUnormShort555 = 5,
357 SpvImageChannelDataTypeUnormInt101010 = 6,
358 SpvImageChannelDataTypeSignedInt8 = 7,
359 SpvImageChannelDataTypeSignedInt16 = 8,
360 SpvImageChannelDataTypeSignedInt32 = 9,
361 SpvImageChannelDataTypeUnsignedInt8 = 10,
362 SpvImageChannelDataTypeUnsignedInt16 = 11,
363 SpvImageChannelDataTypeUnsignedInt32 = 12,
364 SpvImageChannelDataTypeHalfFloat = 13,
365 SpvImageChannelDataTypeFloat = 14,
366 SpvImageChannelDataTypeUnormInt24 = 15,
367 SpvImageChannelDataTypeUnormInt101010_2 = 16,
368 SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19,
369 SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20,
370 SpvImageChannelDataTypeMax = 0x7fffffff,
371} SpvImageChannelDataType;
372
373typedef enum SpvImageOperandsShift_ {
374 SpvImageOperandsBiasShift = 0,
375 SpvImageOperandsLodShift = 1,
376 SpvImageOperandsGradShift = 2,
377 SpvImageOperandsConstOffsetShift = 3,
378 SpvImageOperandsOffsetShift = 4,
379 SpvImageOperandsConstOffsetsShift = 5,
380 SpvImageOperandsSampleShift = 6,
381 SpvImageOperandsMinLodShift = 7,
382 SpvImageOperandsMakeTexelAvailableShift = 8,
383 SpvImageOperandsMakeTexelAvailableKHRShift = 8,
384 SpvImageOperandsMakeTexelVisibleShift = 9,
385 SpvImageOperandsMakeTexelVisibleKHRShift = 9,
386 SpvImageOperandsNonPrivateTexelShift = 10,
387 SpvImageOperandsNonPrivateTexelKHRShift = 10,
388 SpvImageOperandsVolatileTexelShift = 11,
389 SpvImageOperandsVolatileTexelKHRShift = 11,
390 SpvImageOperandsSignExtendShift = 12,
391 SpvImageOperandsZeroExtendShift = 13,
392 SpvImageOperandsNontemporalShift = 14,
393 SpvImageOperandsOffsetsShift = 16,
394 SpvImageOperandsMax = 0x7fffffff,
395} SpvImageOperandsShift;
396
397typedef enum SpvImageOperandsMask_ {
398 SpvImageOperandsMaskNone = 0,
399 SpvImageOperandsBiasMask = 0x00000001,
400 SpvImageOperandsLodMask = 0x00000002,
401 SpvImageOperandsGradMask = 0x00000004,
402 SpvImageOperandsConstOffsetMask = 0x00000008,
403 SpvImageOperandsOffsetMask = 0x00000010,
404 SpvImageOperandsConstOffsetsMask = 0x00000020,
405 SpvImageOperandsSampleMask = 0x00000040,
406 SpvImageOperandsMinLodMask = 0x00000080,
407 SpvImageOperandsMakeTexelAvailableMask = 0x00000100,
408 SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
409 SpvImageOperandsMakeTexelVisibleMask = 0x00000200,
410 SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
411 SpvImageOperandsNonPrivateTexelMask = 0x00000400,
412 SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
413 SpvImageOperandsVolatileTexelMask = 0x00000800,
414 SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
415 SpvImageOperandsSignExtendMask = 0x00001000,
416 SpvImageOperandsZeroExtendMask = 0x00002000,
417 SpvImageOperandsNontemporalMask = 0x00004000,
418 SpvImageOperandsOffsetsMask = 0x00010000,
419} SpvImageOperandsMask;
420
421typedef enum SpvFPFastMathModeShift_ {
422 SpvFPFastMathModeNotNaNShift = 0,
423 SpvFPFastMathModeNotInfShift = 1,
424 SpvFPFastMathModeNSZShift = 2,
425 SpvFPFastMathModeAllowRecipShift = 3,
426 SpvFPFastMathModeFastShift = 4,
427 SpvFPFastMathModeAllowContractFastINTELShift = 16,
428 SpvFPFastMathModeAllowReassocINTELShift = 17,
429 SpvFPFastMathModeMax = 0x7fffffff,
430} SpvFPFastMathModeShift;
431
432typedef enum SpvFPFastMathModeMask_ {
433 SpvFPFastMathModeMaskNone = 0,
434 SpvFPFastMathModeNotNaNMask = 0x00000001,
435 SpvFPFastMathModeNotInfMask = 0x00000002,
436 SpvFPFastMathModeNSZMask = 0x00000004,
437 SpvFPFastMathModeAllowRecipMask = 0x00000008,
438 SpvFPFastMathModeFastMask = 0x00000010,
439 SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
440 SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
441} SpvFPFastMathModeMask;
442
443typedef enum SpvFPRoundingMode_ {
444 SpvFPRoundingModeRTE = 0,
445 SpvFPRoundingModeRTZ = 1,
446 SpvFPRoundingModeRTP = 2,
447 SpvFPRoundingModeRTN = 3,
448 SpvFPRoundingModeMax = 0x7fffffff,
449} SpvFPRoundingMode;
450
451typedef enum SpvLinkageType_ {
452 SpvLinkageTypeExport = 0,
453 SpvLinkageTypeImport = 1,
454 SpvLinkageTypeLinkOnceODR = 2,
455 SpvLinkageTypeMax = 0x7fffffff,
456} SpvLinkageType;
457
458typedef enum SpvAccessQualifier_ {
459 SpvAccessQualifierReadOnly = 0,
460 SpvAccessQualifierWriteOnly = 1,
461 SpvAccessQualifierReadWrite = 2,
462 SpvAccessQualifierMax = 0x7fffffff,
463} SpvAccessQualifier;
464
465typedef enum SpvFunctionParameterAttribute_ {
466 SpvFunctionParameterAttributeZext = 0,
467 SpvFunctionParameterAttributeSext = 1,
468 SpvFunctionParameterAttributeByVal = 2,
469 SpvFunctionParameterAttributeSret = 3,
470 SpvFunctionParameterAttributeNoAlias = 4,
471 SpvFunctionParameterAttributeNoCapture = 5,
472 SpvFunctionParameterAttributeNoWrite = 6,
473 SpvFunctionParameterAttributeNoReadWrite = 7,
474 SpvFunctionParameterAttributeRuntimeAlignedINTEL = 5940,
475 SpvFunctionParameterAttributeMax = 0x7fffffff,
476} SpvFunctionParameterAttribute;
477
478typedef enum SpvDecoration_ {
479 SpvDecorationRelaxedPrecision = 0,
480 SpvDecorationSpecId = 1,
481 SpvDecorationBlock = 2,
482 SpvDecorationBufferBlock = 3,
483 SpvDecorationRowMajor = 4,
484 SpvDecorationColMajor = 5,
485 SpvDecorationArrayStride = 6,
486 SpvDecorationMatrixStride = 7,
487 SpvDecorationGLSLShared = 8,
488 SpvDecorationGLSLPacked = 9,
489 SpvDecorationCPacked = 10,
490 SpvDecorationBuiltIn = 11,
491 SpvDecorationNoPerspective = 13,
492 SpvDecorationFlat = 14,
493 SpvDecorationPatch = 15,
494 SpvDecorationCentroid = 16,
495 SpvDecorationSample = 17,
496 SpvDecorationInvariant = 18,
497 SpvDecorationRestrict = 19,
498 SpvDecorationAliased = 20,
499 SpvDecorationVolatile = 21,
500 SpvDecorationConstant = 22,
501 SpvDecorationCoherent = 23,
502 SpvDecorationNonWritable = 24,
503 SpvDecorationNonReadable = 25,
504 SpvDecorationUniform = 26,
505 SpvDecorationUniformId = 27,
506 SpvDecorationSaturatedConversion = 28,
507 SpvDecorationStream = 29,
508 SpvDecorationLocation = 30,
509 SpvDecorationComponent = 31,
510 SpvDecorationIndex = 32,
511 SpvDecorationBinding = 33,
512 SpvDecorationDescriptorSet = 34,
513 SpvDecorationOffset = 35,
514 SpvDecorationXfbBuffer = 36,
515 SpvDecorationXfbStride = 37,
516 SpvDecorationFuncParamAttr = 38,
517 SpvDecorationFPRoundingMode = 39,
518 SpvDecorationFPFastMathMode = 40,
519 SpvDecorationLinkageAttributes = 41,
520 SpvDecorationNoContraction = 42,
521 SpvDecorationInputAttachmentIndex = 43,
522 SpvDecorationAlignment = 44,
523 SpvDecorationMaxByteOffset = 45,
524 SpvDecorationAlignmentId = 46,
525 SpvDecorationMaxByteOffsetId = 47,
526 SpvDecorationNoSignedWrap = 4469,
527 SpvDecorationNoUnsignedWrap = 4470,
528 SpvDecorationWeightTextureQCOM = 4487,
529 SpvDecorationBlockMatchTextureQCOM = 4488,
530 SpvDecorationExplicitInterpAMD = 4999,
531 SpvDecorationOverrideCoverageNV = 5248,
532 SpvDecorationPassthroughNV = 5250,
533 SpvDecorationViewportRelativeNV = 5252,
534 SpvDecorationSecondaryViewportRelativeNV = 5256,
535 SpvDecorationPerPrimitiveEXT = 5271,
536 SpvDecorationPerPrimitiveNV = 5271,
537 SpvDecorationPerViewNV = 5272,
538 SpvDecorationPerTaskNV = 5273,
539 SpvDecorationPerVertexKHR = 5285,
540 SpvDecorationPerVertexNV = 5285,
541 SpvDecorationNonUniform = 5300,
542 SpvDecorationNonUniformEXT = 5300,
543 SpvDecorationRestrictPointer = 5355,
544 SpvDecorationRestrictPointerEXT = 5355,
545 SpvDecorationAliasedPointer = 5356,
546 SpvDecorationAliasedPointerEXT = 5356,
547 SpvDecorationHitObjectShaderRecordBufferNV = 5386,
548 SpvDecorationBindlessSamplerNV = 5398,
549 SpvDecorationBindlessImageNV = 5399,
550 SpvDecorationBoundSamplerNV = 5400,
551 SpvDecorationBoundImageNV = 5401,
552 SpvDecorationSIMTCallINTEL = 5599,
553 SpvDecorationReferencedIndirectlyINTEL = 5602,
554 SpvDecorationClobberINTEL = 5607,
555 SpvDecorationSideEffectsINTEL = 5608,
556 SpvDecorationVectorComputeVariableINTEL = 5624,
557 SpvDecorationFuncParamIOKindINTEL = 5625,
558 SpvDecorationVectorComputeFunctionINTEL = 5626,
559 SpvDecorationStackCallINTEL = 5627,
560 SpvDecorationGlobalVariableOffsetINTEL = 5628,
561 SpvDecorationCounterBuffer = 5634,
562 SpvDecorationHlslCounterBufferGOOGLE = 5634,
563 SpvDecorationHlslSemanticGOOGLE = 5635,
564 SpvDecorationUserSemantic = 5635,
565 SpvDecorationUserTypeGOOGLE = 5636,
566 SpvDecorationFunctionRoundingModeINTEL = 5822,
567 SpvDecorationFunctionDenormModeINTEL = 5823,
568 SpvDecorationRegisterINTEL = 5825,
569 SpvDecorationMemoryINTEL = 5826,
570 SpvDecorationNumbanksINTEL = 5827,
571 SpvDecorationBankwidthINTEL = 5828,
572 SpvDecorationMaxPrivateCopiesINTEL = 5829,
573 SpvDecorationSinglepumpINTEL = 5830,
574 SpvDecorationDoublepumpINTEL = 5831,
575 SpvDecorationMaxReplicatesINTEL = 5832,
576 SpvDecorationSimpleDualPortINTEL = 5833,
577 SpvDecorationMergeINTEL = 5834,
578 SpvDecorationBankBitsINTEL = 5835,
579 SpvDecorationForcePow2DepthINTEL = 5836,
580 SpvDecorationBurstCoalesceINTEL = 5899,
581 SpvDecorationCacheSizeINTEL = 5900,
582 SpvDecorationDontStaticallyCoalesceINTEL = 5901,
583 SpvDecorationPrefetchINTEL = 5902,
584 SpvDecorationStallEnableINTEL = 5905,
585 SpvDecorationFuseLoopsInFunctionINTEL = 5907,
586 SpvDecorationMathOpDSPModeINTEL = 5909,
587 SpvDecorationAliasScopeINTEL = 5914,
588 SpvDecorationNoAliasINTEL = 5915,
589 SpvDecorationInitiationIntervalINTEL = 5917,
590 SpvDecorationMaxConcurrencyINTEL = 5918,
591 SpvDecorationPipelineEnableINTEL = 5919,
592 SpvDecorationBufferLocationINTEL = 5921,
593 SpvDecorationIOPipeStorageINTEL = 5944,
594 SpvDecorationFunctionFloatingPointModeINTEL = 6080,
595 SpvDecorationSingleElementVectorINTEL = 6085,
596 SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
597 SpvDecorationMediaBlockIOINTEL = 6140,
598 SpvDecorationLatencyControlLabelINTEL = 6172,
599 SpvDecorationLatencyControlConstraintINTEL = 6173,
600 SpvDecorationConduitKernelArgumentINTEL = 6175,
601 SpvDecorationRegisterMapKernelArgumentINTEL = 6176,
602 SpvDecorationMMHostInterfaceAddressWidthINTEL = 6177,
603 SpvDecorationMMHostInterfaceDataWidthINTEL = 6178,
604 SpvDecorationMMHostInterfaceLatencyINTEL = 6179,
605 SpvDecorationMMHostInterfaceReadWriteModeINTEL = 6180,
606 SpvDecorationMMHostInterfaceMaxBurstINTEL = 6181,
607 SpvDecorationMMHostInterfaceWaitRequestINTEL = 6182,
608 SpvDecorationStableKernelArgumentINTEL = 6183,
609 SpvDecorationMax = 0x7fffffff,
610} SpvDecoration;
611
612typedef enum SpvBuiltIn_ {
613 SpvBuiltInPosition = 0,
614 SpvBuiltInPointSize = 1,
615 SpvBuiltInClipDistance = 3,
616 SpvBuiltInCullDistance = 4,
617 SpvBuiltInVertexId = 5,
618 SpvBuiltInInstanceId = 6,
619 SpvBuiltInPrimitiveId = 7,
620 SpvBuiltInInvocationId = 8,
621 SpvBuiltInLayer = 9,
622 SpvBuiltInViewportIndex = 10,
623 SpvBuiltInTessLevelOuter = 11,
624 SpvBuiltInTessLevelInner = 12,
625 SpvBuiltInTessCoord = 13,
626 SpvBuiltInPatchVertices = 14,
627 SpvBuiltInFragCoord = 15,
628 SpvBuiltInPointCoord = 16,
629 SpvBuiltInFrontFacing = 17,
630 SpvBuiltInSampleId = 18,
631 SpvBuiltInSamplePosition = 19,
632 SpvBuiltInSampleMask = 20,
633 SpvBuiltInFragDepth = 22,
634 SpvBuiltInHelperInvocation = 23,
635 SpvBuiltInNumWorkgroups = 24,
636 SpvBuiltInWorkgroupSize = 25,
637 SpvBuiltInWorkgroupId = 26,
638 SpvBuiltInLocalInvocationId = 27,
639 SpvBuiltInGlobalInvocationId = 28,
640 SpvBuiltInLocalInvocationIndex = 29,
641 SpvBuiltInWorkDim = 30,
642 SpvBuiltInGlobalSize = 31,
643 SpvBuiltInEnqueuedWorkgroupSize = 32,
644 SpvBuiltInGlobalOffset = 33,
645 SpvBuiltInGlobalLinearId = 34,
646 SpvBuiltInSubgroupSize = 36,
647 SpvBuiltInSubgroupMaxSize = 37,
648 SpvBuiltInNumSubgroups = 38,
649 SpvBuiltInNumEnqueuedSubgroups = 39,
650 SpvBuiltInSubgroupId = 40,
651 SpvBuiltInSubgroupLocalInvocationId = 41,
652 SpvBuiltInVertexIndex = 42,
653 SpvBuiltInInstanceIndex = 43,
654 SpvBuiltInCoreIDARM = 4160,
655 SpvBuiltInCoreCountARM = 4161,
656 SpvBuiltInCoreMaxIDARM = 4162,
657 SpvBuiltInWarpIDARM = 4163,
658 SpvBuiltInWarpMaxIDARM = 4164,
659 SpvBuiltInSubgroupEqMask = 4416,
660 SpvBuiltInSubgroupEqMaskKHR = 4416,
661 SpvBuiltInSubgroupGeMask = 4417,
662 SpvBuiltInSubgroupGeMaskKHR = 4417,
663 SpvBuiltInSubgroupGtMask = 4418,
664 SpvBuiltInSubgroupGtMaskKHR = 4418,
665 SpvBuiltInSubgroupLeMask = 4419,
666 SpvBuiltInSubgroupLeMaskKHR = 4419,
667 SpvBuiltInSubgroupLtMask = 4420,
668 SpvBuiltInSubgroupLtMaskKHR = 4420,
669 SpvBuiltInBaseVertex = 4424,
670 SpvBuiltInBaseInstance = 4425,
671 SpvBuiltInDrawIndex = 4426,
672 SpvBuiltInPrimitiveShadingRateKHR = 4432,
673 SpvBuiltInDeviceIndex = 4438,
674 SpvBuiltInViewIndex = 4440,
675 SpvBuiltInShadingRateKHR = 4444,
676 SpvBuiltInBaryCoordNoPerspAMD = 4992,
677 SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
678 SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
679 SpvBuiltInBaryCoordSmoothAMD = 4995,
680 SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
681 SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
682 SpvBuiltInBaryCoordPullModelAMD = 4998,
683 SpvBuiltInFragStencilRefEXT = 5014,
684 SpvBuiltInViewportMaskNV = 5253,
685 SpvBuiltInSecondaryPositionNV = 5257,
686 SpvBuiltInSecondaryViewportMaskNV = 5258,
687 SpvBuiltInPositionPerViewNV = 5261,
688 SpvBuiltInViewportMaskPerViewNV = 5262,
689 SpvBuiltInFullyCoveredEXT = 5264,
690 SpvBuiltInTaskCountNV = 5274,
691 SpvBuiltInPrimitiveCountNV = 5275,
692 SpvBuiltInPrimitiveIndicesNV = 5276,
693 SpvBuiltInClipDistancePerViewNV = 5277,
694 SpvBuiltInCullDistancePerViewNV = 5278,
695 SpvBuiltInLayerPerViewNV = 5279,
696 SpvBuiltInMeshViewCountNV = 5280,
697 SpvBuiltInMeshViewIndicesNV = 5281,
698 SpvBuiltInBaryCoordKHR = 5286,
699 SpvBuiltInBaryCoordNV = 5286,
700 SpvBuiltInBaryCoordNoPerspKHR = 5287,
701 SpvBuiltInBaryCoordNoPerspNV = 5287,
702 SpvBuiltInFragSizeEXT = 5292,
703 SpvBuiltInFragmentSizeNV = 5292,
704 SpvBuiltInFragInvocationCountEXT = 5293,
705 SpvBuiltInInvocationsPerPixelNV = 5293,
706 SpvBuiltInPrimitivePointIndicesEXT = 5294,
707 SpvBuiltInPrimitiveLineIndicesEXT = 5295,
708 SpvBuiltInPrimitiveTriangleIndicesEXT = 5296,
709 SpvBuiltInCullPrimitiveEXT = 5299,
710 SpvBuiltInLaunchIdKHR = 5319,
711 SpvBuiltInLaunchIdNV = 5319,
712 SpvBuiltInLaunchSizeKHR = 5320,
713 SpvBuiltInLaunchSizeNV = 5320,
714 SpvBuiltInWorldRayOriginKHR = 5321,
715 SpvBuiltInWorldRayOriginNV = 5321,
716 SpvBuiltInWorldRayDirectionKHR = 5322,
717 SpvBuiltInWorldRayDirectionNV = 5322,
718 SpvBuiltInObjectRayOriginKHR = 5323,
719 SpvBuiltInObjectRayOriginNV = 5323,
720 SpvBuiltInObjectRayDirectionKHR = 5324,
721 SpvBuiltInObjectRayDirectionNV = 5324,
722 SpvBuiltInRayTminKHR = 5325,
723 SpvBuiltInRayTminNV = 5325,
724 SpvBuiltInRayTmaxKHR = 5326,
725 SpvBuiltInRayTmaxNV = 5326,
726 SpvBuiltInInstanceCustomIndexKHR = 5327,
727 SpvBuiltInInstanceCustomIndexNV = 5327,
728 SpvBuiltInObjectToWorldKHR = 5330,
729 SpvBuiltInObjectToWorldNV = 5330,
730 SpvBuiltInWorldToObjectKHR = 5331,
731 SpvBuiltInWorldToObjectNV = 5331,
732 SpvBuiltInHitTNV = 5332,
733 SpvBuiltInHitKindKHR = 5333,
734 SpvBuiltInHitKindNV = 5333,
735 SpvBuiltInCurrentRayTimeNV = 5334,
736 SpvBuiltInHitTriangleVertexPositionsKHR = 5335,
737 SpvBuiltInIncomingRayFlagsKHR = 5351,
738 SpvBuiltInIncomingRayFlagsNV = 5351,
739 SpvBuiltInRayGeometryIndexKHR = 5352,
740 SpvBuiltInWarpsPerSMNV = 5374,
741 SpvBuiltInSMCountNV = 5375,
742 SpvBuiltInWarpIDNV = 5376,
743 SpvBuiltInSMIDNV = 5377,
744 SpvBuiltInCullMaskKHR = 6021,
745 SpvBuiltInMax = 0x7fffffff,
746} SpvBuiltIn;
747
748typedef enum SpvSelectionControlShift_ {
749 SpvSelectionControlFlattenShift = 0,
750 SpvSelectionControlDontFlattenShift = 1,
751 SpvSelectionControlMax = 0x7fffffff,
752} SpvSelectionControlShift;
753
754typedef enum SpvSelectionControlMask_ {
755 SpvSelectionControlMaskNone = 0,
756 SpvSelectionControlFlattenMask = 0x00000001,
757 SpvSelectionControlDontFlattenMask = 0x00000002,
758} SpvSelectionControlMask;
759
760typedef enum SpvLoopControlShift_ {
761 SpvLoopControlUnrollShift = 0,
762 SpvLoopControlDontUnrollShift = 1,
763 SpvLoopControlDependencyInfiniteShift = 2,
764 SpvLoopControlDependencyLengthShift = 3,
765 SpvLoopControlMinIterationsShift = 4,
766 SpvLoopControlMaxIterationsShift = 5,
767 SpvLoopControlIterationMultipleShift = 6,
768 SpvLoopControlPeelCountShift = 7,
769 SpvLoopControlPartialCountShift = 8,
770 SpvLoopControlInitiationIntervalINTELShift = 16,
771 SpvLoopControlMaxConcurrencyINTELShift = 17,
772 SpvLoopControlDependencyArrayINTELShift = 18,
773 SpvLoopControlPipelineEnableINTELShift = 19,
774 SpvLoopControlLoopCoalesceINTELShift = 20,
775 SpvLoopControlMaxInterleavingINTELShift = 21,
776 SpvLoopControlSpeculatedIterationsINTELShift = 22,
777 SpvLoopControlNoFusionINTELShift = 23,
778 SpvLoopControlLoopCountINTELShift = 24,
779 SpvLoopControlMaxReinvocationDelayINTELShift = 25,
780 SpvLoopControlMax = 0x7fffffff,
781} SpvLoopControlShift;
782
783typedef enum SpvLoopControlMask_ {
784 SpvLoopControlMaskNone = 0,
785 SpvLoopControlUnrollMask = 0x00000001,
786 SpvLoopControlDontUnrollMask = 0x00000002,
787 SpvLoopControlDependencyInfiniteMask = 0x00000004,
788 SpvLoopControlDependencyLengthMask = 0x00000008,
789 SpvLoopControlMinIterationsMask = 0x00000010,
790 SpvLoopControlMaxIterationsMask = 0x00000020,
791 SpvLoopControlIterationMultipleMask = 0x00000040,
792 SpvLoopControlPeelCountMask = 0x00000080,
793 SpvLoopControlPartialCountMask = 0x00000100,
794 SpvLoopControlInitiationIntervalINTELMask = 0x00010000,
795 SpvLoopControlMaxConcurrencyINTELMask = 0x00020000,
796 SpvLoopControlDependencyArrayINTELMask = 0x00040000,
797 SpvLoopControlPipelineEnableINTELMask = 0x00080000,
798 SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
799 SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
800 SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
801 SpvLoopControlNoFusionINTELMask = 0x00800000,
802 SpvLoopControlLoopCountINTELMask = 0x01000000,
803 SpvLoopControlMaxReinvocationDelayINTELMask = 0x02000000,
804} SpvLoopControlMask;
805
806typedef enum SpvFunctionControlShift_ {
807 SpvFunctionControlInlineShift = 0,
808 SpvFunctionControlDontInlineShift = 1,
809 SpvFunctionControlPureShift = 2,
810 SpvFunctionControlConstShift = 3,
811 SpvFunctionControlOptNoneINTELShift = 16,
812 SpvFunctionControlMax = 0x7fffffff,
813} SpvFunctionControlShift;
814
815typedef enum SpvFunctionControlMask_ {
816 SpvFunctionControlMaskNone = 0,
817 SpvFunctionControlInlineMask = 0x00000001,
818 SpvFunctionControlDontInlineMask = 0x00000002,
819 SpvFunctionControlPureMask = 0x00000004,
820 SpvFunctionControlConstMask = 0x00000008,
821 SpvFunctionControlOptNoneINTELMask = 0x00010000,
822} SpvFunctionControlMask;
823
824typedef enum SpvMemorySemanticsShift_ {
825 SpvMemorySemanticsAcquireShift = 1,
826 SpvMemorySemanticsReleaseShift = 2,
827 SpvMemorySemanticsAcquireReleaseShift = 3,
828 SpvMemorySemanticsSequentiallyConsistentShift = 4,
829 SpvMemorySemanticsUniformMemoryShift = 6,
830 SpvMemorySemanticsSubgroupMemoryShift = 7,
831 SpvMemorySemanticsWorkgroupMemoryShift = 8,
832 SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
833 SpvMemorySemanticsAtomicCounterMemoryShift = 10,
834 SpvMemorySemanticsImageMemoryShift = 11,
835 SpvMemorySemanticsOutputMemoryShift = 12,
836 SpvMemorySemanticsOutputMemoryKHRShift = 12,
837 SpvMemorySemanticsMakeAvailableShift = 13,
838 SpvMemorySemanticsMakeAvailableKHRShift = 13,
839 SpvMemorySemanticsMakeVisibleShift = 14,
840 SpvMemorySemanticsMakeVisibleKHRShift = 14,
841 SpvMemorySemanticsVolatileShift = 15,
842 SpvMemorySemanticsMax = 0x7fffffff,
843} SpvMemorySemanticsShift;
844
845typedef enum SpvMemorySemanticsMask_ {
846 SpvMemorySemanticsMaskNone = 0,
847 SpvMemorySemanticsAcquireMask = 0x00000002,
848 SpvMemorySemanticsReleaseMask = 0x00000004,
849 SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
850 SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
851 SpvMemorySemanticsUniformMemoryMask = 0x00000040,
852 SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
853 SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
854 SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
855 SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
856 SpvMemorySemanticsImageMemoryMask = 0x00000800,
857 SpvMemorySemanticsOutputMemoryMask = 0x00001000,
858 SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
859 SpvMemorySemanticsMakeAvailableMask = 0x00002000,
860 SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
861 SpvMemorySemanticsMakeVisibleMask = 0x00004000,
862 SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
863 SpvMemorySemanticsVolatileMask = 0x00008000,
864} SpvMemorySemanticsMask;
865
866typedef enum SpvMemoryAccessShift_ {
867 SpvMemoryAccessVolatileShift = 0,
868 SpvMemoryAccessAlignedShift = 1,
869 SpvMemoryAccessNontemporalShift = 2,
870 SpvMemoryAccessMakePointerAvailableShift = 3,
871 SpvMemoryAccessMakePointerAvailableKHRShift = 3,
872 SpvMemoryAccessMakePointerVisibleShift = 4,
873 SpvMemoryAccessMakePointerVisibleKHRShift = 4,
874 SpvMemoryAccessNonPrivatePointerShift = 5,
875 SpvMemoryAccessNonPrivatePointerKHRShift = 5,
876 SpvMemoryAccessAliasScopeINTELMaskShift = 16,
877 SpvMemoryAccessNoAliasINTELMaskShift = 17,
878 SpvMemoryAccessMax = 0x7fffffff,
879} SpvMemoryAccessShift;
880
881typedef enum SpvMemoryAccessMask_ {
882 SpvMemoryAccessMaskNone = 0,
883 SpvMemoryAccessVolatileMask = 0x00000001,
884 SpvMemoryAccessAlignedMask = 0x00000002,
885 SpvMemoryAccessNontemporalMask = 0x00000004,
886 SpvMemoryAccessMakePointerAvailableMask = 0x00000008,
887 SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
888 SpvMemoryAccessMakePointerVisibleMask = 0x00000010,
889 SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
890 SpvMemoryAccessNonPrivatePointerMask = 0x00000020,
891 SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
892 SpvMemoryAccessAliasScopeINTELMaskMask = 0x00010000,
893 SpvMemoryAccessNoAliasINTELMaskMask = 0x00020000,
894} SpvMemoryAccessMask;
895
896typedef enum SpvScope_ {
897 SpvScopeCrossDevice = 0,
898 SpvScopeDevice = 1,
899 SpvScopeWorkgroup = 2,
900 SpvScopeSubgroup = 3,
901 SpvScopeInvocation = 4,
902 SpvScopeQueueFamily = 5,
903 SpvScopeQueueFamilyKHR = 5,
904 SpvScopeShaderCallKHR = 6,
905 SpvScopeMax = 0x7fffffff,
906} SpvScope;
907
908typedef enum SpvGroupOperation_ {
909 SpvGroupOperationReduce = 0,
910 SpvGroupOperationInclusiveScan = 1,
911 SpvGroupOperationExclusiveScan = 2,
912 SpvGroupOperationClusteredReduce = 3,
913 SpvGroupOperationPartitionedReduceNV = 6,
914 SpvGroupOperationPartitionedInclusiveScanNV = 7,
915 SpvGroupOperationPartitionedExclusiveScanNV = 8,
916 SpvGroupOperationMax = 0x7fffffff,
917} SpvGroupOperation;
918
919typedef enum SpvKernelEnqueueFlags_ {
920 SpvKernelEnqueueFlagsNoWait = 0,
921 SpvKernelEnqueueFlagsWaitKernel = 1,
922 SpvKernelEnqueueFlagsWaitWorkGroup = 2,
923 SpvKernelEnqueueFlagsMax = 0x7fffffff,
924} SpvKernelEnqueueFlags;
925
926typedef enum SpvKernelProfilingInfoShift_ {
927 SpvKernelProfilingInfoCmdExecTimeShift = 0,
928 SpvKernelProfilingInfoMax = 0x7fffffff,
929} SpvKernelProfilingInfoShift;
930
931typedef enum SpvKernelProfilingInfoMask_ {
932 SpvKernelProfilingInfoMaskNone = 0,
933 SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
934} SpvKernelProfilingInfoMask;
935
936typedef enum SpvCapability_ {
937 SpvCapabilityMatrix = 0,
938 SpvCapabilityShader = 1,
939 SpvCapabilityGeometry = 2,
940 SpvCapabilityTessellation = 3,
941 SpvCapabilityAddresses = 4,
942 SpvCapabilityLinkage = 5,
943 SpvCapabilityKernel = 6,
944 SpvCapabilityVector16 = 7,
945 SpvCapabilityFloat16Buffer = 8,
946 SpvCapabilityFloat16 = 9,
947 SpvCapabilityFloat64 = 10,
948 SpvCapabilityInt64 = 11,
949 SpvCapabilityInt64Atomics = 12,
950 SpvCapabilityImageBasic = 13,
951 SpvCapabilityImageReadWrite = 14,
952 SpvCapabilityImageMipmap = 15,
953 SpvCapabilityPipes = 17,
954 SpvCapabilityGroups = 18,
955 SpvCapabilityDeviceEnqueue = 19,
956 SpvCapabilityLiteralSampler = 20,
957 SpvCapabilityAtomicStorage = 21,
958 SpvCapabilityInt16 = 22,
959 SpvCapabilityTessellationPointSize = 23,
960 SpvCapabilityGeometryPointSize = 24,
961 SpvCapabilityImageGatherExtended = 25,
962 SpvCapabilityStorageImageMultisample = 27,
963 SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
964 SpvCapabilitySampledImageArrayDynamicIndexing = 29,
965 SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
966 SpvCapabilityStorageImageArrayDynamicIndexing = 31,
967 SpvCapabilityClipDistance = 32,
968 SpvCapabilityCullDistance = 33,
969 SpvCapabilityImageCubeArray = 34,
970 SpvCapabilitySampleRateShading = 35,
971 SpvCapabilityImageRect = 36,
972 SpvCapabilitySampledRect = 37,
973 SpvCapabilityGenericPointer = 38,
974 SpvCapabilityInt8 = 39,
975 SpvCapabilityInputAttachment = 40,
976 SpvCapabilitySparseResidency = 41,
977 SpvCapabilityMinLod = 42,
978 SpvCapabilitySampled1D = 43,
979 SpvCapabilityImage1D = 44,
980 SpvCapabilitySampledCubeArray = 45,
981 SpvCapabilitySampledBuffer = 46,
982 SpvCapabilityImageBuffer = 47,
983 SpvCapabilityImageMSArray = 48,
984 SpvCapabilityStorageImageExtendedFormats = 49,
985 SpvCapabilityImageQuery = 50,
986 SpvCapabilityDerivativeControl = 51,
987 SpvCapabilityInterpolationFunction = 52,
988 SpvCapabilityTransformFeedback = 53,
989 SpvCapabilityGeometryStreams = 54,
990 SpvCapabilityStorageImageReadWithoutFormat = 55,
991 SpvCapabilityStorageImageWriteWithoutFormat = 56,
992 SpvCapabilityMultiViewport = 57,
993 SpvCapabilitySubgroupDispatch = 58,
994 SpvCapabilityNamedBarrier = 59,
995 SpvCapabilityPipeStorage = 60,
996 SpvCapabilityGroupNonUniform = 61,
997 SpvCapabilityGroupNonUniformVote = 62,
998 SpvCapabilityGroupNonUniformArithmetic = 63,
999 SpvCapabilityGroupNonUniformBallot = 64,
1000 SpvCapabilityGroupNonUniformShuffle = 65,
1001 SpvCapabilityGroupNonUniformShuffleRelative = 66,
1002 SpvCapabilityGroupNonUniformClustered = 67,
1003 SpvCapabilityGroupNonUniformQuad = 68,
1004 SpvCapabilityShaderLayer = 69,
1005 SpvCapabilityShaderViewportIndex = 70,
1006 SpvCapabilityUniformDecoration = 71,
1007 SpvCapabilityCoreBuiltinsARM = 4165,
1008 SpvCapabilityTileImageColorReadAccessEXT = 4166,
1009 SpvCapabilityTileImageDepthReadAccessEXT = 4167,
1010 SpvCapabilityTileImageStencilReadAccessEXT = 4168,
1011 SpvCapabilityFragmentShadingRateKHR = 4422,
1012 SpvCapabilitySubgroupBallotKHR = 4423,
1013 SpvCapabilityDrawParameters = 4427,
1014 SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
1015 SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
1016 SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
1017 SpvCapabilitySubgroupVoteKHR = 4431,
1018 SpvCapabilityStorageBuffer16BitAccess = 4433,
1019 SpvCapabilityStorageUniformBufferBlock16 = 4433,
1020 SpvCapabilityStorageUniform16 = 4434,
1021 SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
1022 SpvCapabilityStoragePushConstant16 = 4435,
1023 SpvCapabilityStorageInputOutput16 = 4436,
1024 SpvCapabilityDeviceGroup = 4437,
1025 SpvCapabilityMultiView = 4439,
1026 SpvCapabilityVariablePointersStorageBuffer = 4441,
1027 SpvCapabilityVariablePointers = 4442,
1028 SpvCapabilityAtomicStorageOps = 4445,
1029 SpvCapabilitySampleMaskPostDepthCoverage = 4447,
1030 SpvCapabilityStorageBuffer8BitAccess = 4448,
1031 SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
1032 SpvCapabilityStoragePushConstant8 = 4450,
1033 SpvCapabilityDenormPreserve = 4464,
1034 SpvCapabilityDenormFlushToZero = 4465,
1035 SpvCapabilitySignedZeroInfNanPreserve = 4466,
1036 SpvCapabilityRoundingModeRTE = 4467,
1037 SpvCapabilityRoundingModeRTZ = 4468,
1038 SpvCapabilityRayQueryProvisionalKHR = 4471,
1039 SpvCapabilityRayQueryKHR = 4472,
1040 SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
1041 SpvCapabilityRayTracingKHR = 4479,
1042 SpvCapabilityTextureSampleWeightedQCOM = 4484,
1043 SpvCapabilityTextureBoxFilterQCOM = 4485,
1044 SpvCapabilityTextureBlockMatchQCOM = 4486,
1045 SpvCapabilityFloat16ImageAMD = 5008,
1046 SpvCapabilityImageGatherBiasLodAMD = 5009,
1047 SpvCapabilityFragmentMaskAMD = 5010,
1048 SpvCapabilityStencilExportEXT = 5013,
1049 SpvCapabilityImageReadWriteLodAMD = 5015,
1050 SpvCapabilityInt64ImageEXT = 5016,
1051 SpvCapabilityShaderClockKHR = 5055,
1052 SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
1053 SpvCapabilityGeometryShaderPassthroughNV = 5251,
1054 SpvCapabilityShaderViewportIndexLayerEXT = 5254,
1055 SpvCapabilityShaderViewportIndexLayerNV = 5254,
1056 SpvCapabilityShaderViewportMaskNV = 5255,
1057 SpvCapabilityShaderStereoViewNV = 5259,
1058 SpvCapabilityPerViewAttributesNV = 5260,
1059 SpvCapabilityFragmentFullyCoveredEXT = 5265,
1060 SpvCapabilityMeshShadingNV = 5266,
1061 SpvCapabilityImageFootprintNV = 5282,
1062 SpvCapabilityMeshShadingEXT = 5283,
1063 SpvCapabilityFragmentBarycentricKHR = 5284,
1064 SpvCapabilityFragmentBarycentricNV = 5284,
1065 SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
1066 SpvCapabilityFragmentDensityEXT = 5291,
1067 SpvCapabilityShadingRateNV = 5291,
1068 SpvCapabilityGroupNonUniformPartitionedNV = 5297,
1069 SpvCapabilityShaderNonUniform = 5301,
1070 SpvCapabilityShaderNonUniformEXT = 5301,
1071 SpvCapabilityRuntimeDescriptorArray = 5302,
1072 SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
1073 SpvCapabilityInputAttachmentArrayDynamicIndexing = 5303,
1074 SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
1075 SpvCapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
1076 SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
1077 SpvCapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
1078 SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
1079 SpvCapabilityUniformBufferArrayNonUniformIndexing = 5306,
1080 SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
1081 SpvCapabilitySampledImageArrayNonUniformIndexing = 5307,
1082 SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
1083 SpvCapabilityStorageBufferArrayNonUniformIndexing = 5308,
1084 SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
1085 SpvCapabilityStorageImageArrayNonUniformIndexing = 5309,
1086 SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
1087 SpvCapabilityInputAttachmentArrayNonUniformIndexing = 5310,
1088 SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
1089 SpvCapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
1090 SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
1091 SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
1092 SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1093 SpvCapabilityRayTracingPositionFetchKHR = 5336,
1094 SpvCapabilityRayTracingNV = 5340,
1095 SpvCapabilityRayTracingMotionBlurNV = 5341,
1096 SpvCapabilityVulkanMemoryModel = 5345,
1097 SpvCapabilityVulkanMemoryModelKHR = 5345,
1098 SpvCapabilityVulkanMemoryModelDeviceScope = 5346,
1099 SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
1100 SpvCapabilityPhysicalStorageBufferAddresses = 5347,
1101 SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
1102 SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
1103 SpvCapabilityRayTracingProvisionalKHR = 5353,
1104 SpvCapabilityCooperativeMatrixNV = 5357,
1105 SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
1106 SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
1107 SpvCapabilityShaderSMBuiltinsNV = 5373,
1108 SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
1109 SpvCapabilityDemoteToHelperInvocation = 5379,
1110 SpvCapabilityDemoteToHelperInvocationEXT = 5379,
1111 SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
1112 SpvCapabilityShaderInvocationReorderNV = 5383,
1113 SpvCapabilityBindlessTextureNV = 5390,
1114 SpvCapabilityRayQueryPositionFetchKHR = 5391,
1115 SpvCapabilitySubgroupShuffleINTEL = 5568,
1116 SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
1117 SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
1118 SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
1119 SpvCapabilityRoundToInfinityINTEL = 5582,
1120 SpvCapabilityFloatingPointModeINTEL = 5583,
1121 SpvCapabilityIntegerFunctions2INTEL = 5584,
1122 SpvCapabilityFunctionPointersINTEL = 5603,
1123 SpvCapabilityIndirectReferencesINTEL = 5604,
1124 SpvCapabilityAsmINTEL = 5606,
1125 SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
1126 SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
1127 SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
1128 SpvCapabilityVectorComputeINTEL = 5617,
1129 SpvCapabilityVectorAnyINTEL = 5619,
1130 SpvCapabilityExpectAssumeKHR = 5629,
1131 SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
1132 SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
1133 SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
1134 SpvCapabilityVariableLengthArrayINTEL = 5817,
1135 SpvCapabilityFunctionFloatControlINTEL = 5821,
1136 SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
1137 SpvCapabilityFPFastMathModeINTEL = 5837,
1138 SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
1139 SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
1140 SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
1141 SpvCapabilityFPGALoopControlsINTEL = 5888,
1142 SpvCapabilityKernelAttributesINTEL = 5892,
1143 SpvCapabilityFPGAKernelAttributesINTEL = 5897,
1144 SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
1145 SpvCapabilityFPGAClusterAttributesINTEL = 5904,
1146 SpvCapabilityLoopFuseINTEL = 5906,
1147 SpvCapabilityFPGADSPControlINTEL = 5908,
1148 SpvCapabilityMemoryAccessAliasingINTEL = 5910,
1149 SpvCapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
1150 SpvCapabilityFPGABufferLocationINTEL = 5920,
1151 SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
1152 SpvCapabilityUSMStorageClassesINTEL = 5935,
1153 SpvCapabilityRuntimeAlignedAttributeINTEL = 5939,
1154 SpvCapabilityIOPipesINTEL = 5943,
1155 SpvCapabilityBlockingPipesINTEL = 5945,
1156 SpvCapabilityFPGARegINTEL = 5948,
1157 SpvCapabilityDotProductInputAll = 6016,
1158 SpvCapabilityDotProductInputAllKHR = 6016,
1159 SpvCapabilityDotProductInput4x8Bit = 6017,
1160 SpvCapabilityDotProductInput4x8BitKHR = 6017,
1161 SpvCapabilityDotProductInput4x8BitPacked = 6018,
1162 SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
1163 SpvCapabilityDotProduct = 6019,
1164 SpvCapabilityDotProductKHR = 6019,
1165 SpvCapabilityRayCullMaskKHR = 6020,
1166 SpvCapabilityCooperativeMatrixKHR = 6022,
1167 SpvCapabilityBitInstructions = 6025,
1168 SpvCapabilityGroupNonUniformRotateKHR = 6026,
1169 SpvCapabilityAtomicFloat32AddEXT = 6033,
1170 SpvCapabilityAtomicFloat64AddEXT = 6034,
1171 SpvCapabilityLongConstantCompositeINTEL = 6089,
1172 SpvCapabilityOptNoneINTEL = 6094,
1173 SpvCapabilityAtomicFloat16AddEXT = 6095,
1174 SpvCapabilityDebugInfoModuleINTEL = 6114,
1175 SpvCapabilityBFloat16ConversionINTEL = 6115,
1176 SpvCapabilitySplitBarrierINTEL = 6141,
1177 SpvCapabilityFPGAKernelAttributesv2INTEL = 6161,
1178 SpvCapabilityFPGALatencyControlINTEL = 6171,
1179 SpvCapabilityFPGAArgumentInterfacesINTEL = 6174,
1180 SpvCapabilityGroupUniformArithmeticKHR = 6400,
1181 SpvCapabilityMax = 0x7fffffff,
1182} SpvCapability;
1183
1184typedef enum SpvRayFlagsShift_ {
1185 SpvRayFlagsOpaqueKHRShift = 0,
1186 SpvRayFlagsNoOpaqueKHRShift = 1,
1187 SpvRayFlagsTerminateOnFirstHitKHRShift = 2,
1188 SpvRayFlagsSkipClosestHitShaderKHRShift = 3,
1189 SpvRayFlagsCullBackFacingTrianglesKHRShift = 4,
1190 SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5,
1191 SpvRayFlagsCullOpaqueKHRShift = 6,
1192 SpvRayFlagsCullNoOpaqueKHRShift = 7,
1193 SpvRayFlagsSkipTrianglesKHRShift = 8,
1194 SpvRayFlagsSkipAABBsKHRShift = 9,
1195 SpvRayFlagsForceOpacityMicromap2StateEXTShift = 10,
1196 SpvRayFlagsMax = 0x7fffffff,
1197} SpvRayFlagsShift;
1198
1199typedef enum SpvRayFlagsMask_ {
1200 SpvRayFlagsMaskNone = 0,
1201 SpvRayFlagsOpaqueKHRMask = 0x00000001,
1202 SpvRayFlagsNoOpaqueKHRMask = 0x00000002,
1203 SpvRayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
1204 SpvRayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
1205 SpvRayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
1206 SpvRayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
1207 SpvRayFlagsCullOpaqueKHRMask = 0x00000040,
1208 SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080,
1209 SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
1210 SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
1211 SpvRayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
1212} SpvRayFlagsMask;
1213
1214typedef enum SpvRayQueryIntersection_ {
1215 SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
1216 SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
1217 SpvRayQueryIntersectionMax = 0x7fffffff,
1218} SpvRayQueryIntersection;
1219
1220typedef enum SpvRayQueryCommittedIntersectionType_ {
1221 SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
1222 SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR =
1223 1,
1224 SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR =
1225 2,
1226 SpvRayQueryCommittedIntersectionTypeMax = 0x7fffffff,
1227} SpvRayQueryCommittedIntersectionType;
1228
1229typedef enum SpvRayQueryCandidateIntersectionType_ {
1230 SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR =
1231 0,
1232 SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
1233 SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
1234} SpvRayQueryCandidateIntersectionType;
1235
1236typedef enum SpvFragmentShadingRateShift_ {
1237 SpvFragmentShadingRateVertical2PixelsShift = 0,
1238 SpvFragmentShadingRateVertical4PixelsShift = 1,
1239 SpvFragmentShadingRateHorizontal2PixelsShift = 2,
1240 SpvFragmentShadingRateHorizontal4PixelsShift = 3,
1241 SpvFragmentShadingRateMax = 0x7fffffff,
1242} SpvFragmentShadingRateShift;
1243
1244typedef enum SpvFragmentShadingRateMask_ {
1245 SpvFragmentShadingRateMaskNone = 0,
1246 SpvFragmentShadingRateVertical2PixelsMask = 0x00000001,
1247 SpvFragmentShadingRateVertical4PixelsMask = 0x00000002,
1248 SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004,
1249 SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
1250} SpvFragmentShadingRateMask;
1251
1252typedef enum SpvFPDenormMode_ {
1253 SpvFPDenormModePreserve = 0,
1254 SpvFPDenormModeFlushToZero = 1,
1255 SpvFPDenormModeMax = 0x7fffffff,
1256} SpvFPDenormMode;
1257
1258typedef enum SpvFPOperationMode_ {
1259 SpvFPOperationModeIEEE = 0,
1260 SpvFPOperationModeALT = 1,
1261 SpvFPOperationModeMax = 0x7fffffff,
1262} SpvFPOperationMode;
1263
1264typedef enum SpvQuantizationModes_ {
1265 SpvQuantizationModesTRN = 0,
1266 SpvQuantizationModesTRN_ZERO = 1,
1267 SpvQuantizationModesRND = 2,
1268 SpvQuantizationModesRND_ZERO = 3,
1269 SpvQuantizationModesRND_INF = 4,
1270 SpvQuantizationModesRND_MIN_INF = 5,
1271 SpvQuantizationModesRND_CONV = 6,
1272 SpvQuantizationModesRND_CONV_ODD = 7,
1273 SpvQuantizationModesMax = 0x7fffffff,
1274} SpvQuantizationModes;
1275
1276typedef enum SpvOverflowModes_ {
1277 SpvOverflowModesWRAP = 0,
1278 SpvOverflowModesSAT = 1,
1279 SpvOverflowModesSAT_ZERO = 2,
1280 SpvOverflowModesSAT_SYM = 3,
1281 SpvOverflowModesMax = 0x7fffffff,
1282} SpvOverflowModes;
1283
1284typedef enum SpvPackedVectorFormat_ {
1285 SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0,
1286 SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
1287 SpvPackedVectorFormatMax = 0x7fffffff,
1288} SpvPackedVectorFormat;
1289
1290typedef enum SpvCooperativeMatrixOperandsShift_ {
1291 SpvCooperativeMatrixOperandsMatrixASignedComponentsShift = 0,
1292 SpvCooperativeMatrixOperandsMatrixBSignedComponentsShift = 1,
1293 SpvCooperativeMatrixOperandsMatrixCSignedComponentsShift = 2,
1294 SpvCooperativeMatrixOperandsMatrixResultSignedComponentsShift = 3,
1295 SpvCooperativeMatrixOperandsSaturatingAccumulationShift = 4,
1296 SpvCooperativeMatrixOperandsMax = 0x7fffffff,
1297} SpvCooperativeMatrixOperandsShift;
1298
1299typedef enum SpvCooperativeMatrixOperandsMask_ {
1300 SpvCooperativeMatrixOperandsMaskNone = 0,
1301 SpvCooperativeMatrixOperandsMatrixASignedComponentsMask = 0x00000001,
1302 SpvCooperativeMatrixOperandsMatrixBSignedComponentsMask = 0x00000002,
1303 SpvCooperativeMatrixOperandsMatrixCSignedComponentsMask = 0x00000004,
1304 SpvCooperativeMatrixOperandsMatrixResultSignedComponentsMask = 0x00000008,
1305 SpvCooperativeMatrixOperandsSaturatingAccumulationMask = 0x00000010,
1306} SpvCooperativeMatrixOperandsMask;
1307
1308typedef enum SpvCooperativeMatrixLayout_ {
1309 SpvCooperativeMatrixLayoutRowMajorKHR = 0,
1310 SpvCooperativeMatrixLayoutColumnMajorKHR = 1,
1311 SpvCooperativeMatrixLayoutMax = 0x7fffffff,
1312} SpvCooperativeMatrixLayout;
1313
1314typedef enum SpvCooperativeMatrixUse_ {
1315 SpvCooperativeMatrixUseMatrixAKHR = 0,
1316 SpvCooperativeMatrixUseMatrixBKHR = 1,
1317 SpvCooperativeMatrixUseMatrixAccumulatorKHR = 2,
1318 SpvCooperativeMatrixUseMax = 0x7fffffff,
1319} SpvCooperativeMatrixUse;
1320
1321typedef enum SpvOp_ {
1322 SpvOpNop = 0,
1323 SpvOpUndef = 1,
1324 SpvOpSourceContinued = 2,
1325 SpvOpSource = 3,
1326 SpvOpSourceExtension = 4,
1327 SpvOpName = 5,
1328 SpvOpMemberName = 6,
1329 SpvOpString = 7,
1330 SpvOpLine = 8,
1331 SpvOpExtension = 10,
1332 SpvOpExtInstImport = 11,
1333 SpvOpExtInst = 12,
1334 SpvOpMemoryModel = 14,
1335 SpvOpEntryPoint = 15,
1336 SpvOpExecutionMode = 16,
1337 SpvOpCapability = 17,
1338 SpvOpTypeVoid = 19,
1339 SpvOpTypeBool = 20,
1340 SpvOpTypeInt = 21,
1341 SpvOpTypeFloat = 22,
1342 SpvOpTypeVector = 23,
1343 SpvOpTypeMatrix = 24,
1344 SpvOpTypeImage = 25,
1345 SpvOpTypeSampler = 26,
1346 SpvOpTypeSampledImage = 27,
1347 SpvOpTypeArray = 28,
1348 SpvOpTypeRuntimeArray = 29,
1349 SpvOpTypeStruct = 30,
1350 SpvOpTypeOpaque = 31,
1351 SpvOpTypePointer = 32,
1352 SpvOpTypeFunction = 33,
1353 SpvOpTypeEvent = 34,
1354 SpvOpTypeDeviceEvent = 35,
1355 SpvOpTypeReserveId = 36,
1356 SpvOpTypeQueue = 37,
1357 SpvOpTypePipe = 38,
1358 SpvOpTypeForwardPointer = 39,
1359 SpvOpConstantTrue = 41,
1360 SpvOpConstantFalse = 42,
1361 SpvOpConstant = 43,
1362 SpvOpConstantComposite = 44,
1363 SpvOpConstantSampler = 45,
1364 SpvOpConstantNull = 46,
1365 SpvOpSpecConstantTrue = 48,
1366 SpvOpSpecConstantFalse = 49,
1367 SpvOpSpecConstant = 50,
1368 SpvOpSpecConstantComposite = 51,
1369 SpvOpSpecConstantOp = 52,
1370 SpvOpFunction = 54,
1371 SpvOpFunctionParameter = 55,
1372 SpvOpFunctionEnd = 56,
1373 SpvOpFunctionCall = 57,
1374 SpvOpVariable = 59,
1375 SpvOpImageTexelPointer = 60,
1376 SpvOpLoad = 61,
1377 SpvOpStore = 62,
1378 SpvOpCopyMemory = 63,
1379 SpvOpCopyMemorySized = 64,
1380 SpvOpAccessChain = 65,
1381 SpvOpInBoundsAccessChain = 66,
1382 SpvOpPtrAccessChain = 67,
1383 SpvOpArrayLength = 68,
1384 SpvOpGenericPtrMemSemantics = 69,
1385 SpvOpInBoundsPtrAccessChain = 70,
1386 SpvOpDecorate = 71,
1387 SpvOpMemberDecorate = 72,
1388 SpvOpDecorationGroup = 73,
1389 SpvOpGroupDecorate = 74,
1390 SpvOpGroupMemberDecorate = 75,
1391 SpvOpVectorExtractDynamic = 77,
1392 SpvOpVectorInsertDynamic = 78,
1393 SpvOpVectorShuffle = 79,
1394 SpvOpCompositeConstruct = 80,
1395 SpvOpCompositeExtract = 81,
1396 SpvOpCompositeInsert = 82,
1397 SpvOpCopyObject = 83,
1398 SpvOpTranspose = 84,
1399 SpvOpSampledImage = 86,
1400 SpvOpImageSampleImplicitLod = 87,
1401 SpvOpImageSampleExplicitLod = 88,
1402 SpvOpImageSampleDrefImplicitLod = 89,
1403 SpvOpImageSampleDrefExplicitLod = 90,
1404 SpvOpImageSampleProjImplicitLod = 91,
1405 SpvOpImageSampleProjExplicitLod = 92,
1406 SpvOpImageSampleProjDrefImplicitLod = 93,
1407 SpvOpImageSampleProjDrefExplicitLod = 94,
1408 SpvOpImageFetch = 95,
1409 SpvOpImageGather = 96,
1410 SpvOpImageDrefGather = 97,
1411 SpvOpImageRead = 98,
1412 SpvOpImageWrite = 99,
1413 SpvOpImage = 100,
1414 SpvOpImageQueryFormat = 101,
1415 SpvOpImageQueryOrder = 102,
1416 SpvOpImageQuerySizeLod = 103,
1417 SpvOpImageQuerySize = 104,
1418 SpvOpImageQueryLod = 105,
1419 SpvOpImageQueryLevels = 106,
1420 SpvOpImageQuerySamples = 107,
1421 SpvOpConvertFToU = 109,
1422 SpvOpConvertFToS = 110,
1423 SpvOpConvertSToF = 111,
1424 SpvOpConvertUToF = 112,
1425 SpvOpUConvert = 113,
1426 SpvOpSConvert = 114,
1427 SpvOpFConvert = 115,
1428 SpvOpQuantizeToF16 = 116,
1429 SpvOpConvertPtrToU = 117,
1430 SpvOpSatConvertSToU = 118,
1431 SpvOpSatConvertUToS = 119,
1432 SpvOpConvertUToPtr = 120,
1433 SpvOpPtrCastToGeneric = 121,
1434 SpvOpGenericCastToPtr = 122,
1435 SpvOpGenericCastToPtrExplicit = 123,
1436 SpvOpBitcast = 124,
1437 SpvOpSNegate = 126,
1438 SpvOpFNegate = 127,
1439 SpvOpIAdd = 128,
1440 SpvOpFAdd = 129,
1441 SpvOpISub = 130,
1442 SpvOpFSub = 131,
1443 SpvOpIMul = 132,
1444 SpvOpFMul = 133,
1445 SpvOpUDiv = 134,
1446 SpvOpSDiv = 135,
1447 SpvOpFDiv = 136,
1448 SpvOpUMod = 137,
1449 SpvOpSRem = 138,
1450 SpvOpSMod = 139,
1451 SpvOpFRem = 140,
1452 SpvOpFMod = 141,
1453 SpvOpVectorTimesScalar = 142,
1454 SpvOpMatrixTimesScalar = 143,
1455 SpvOpVectorTimesMatrix = 144,
1456 SpvOpMatrixTimesVector = 145,
1457 SpvOpMatrixTimesMatrix = 146,
1458 SpvOpOuterProduct = 147,
1459 SpvOpDot = 148,
1460 SpvOpIAddCarry = 149,
1461 SpvOpISubBorrow = 150,
1462 SpvOpUMulExtended = 151,
1463 SpvOpSMulExtended = 152,
1464 SpvOpAny = 154,
1465 SpvOpAll = 155,
1466 SpvOpIsNan = 156,
1467 SpvOpIsInf = 157,
1468 SpvOpIsFinite = 158,
1469 SpvOpIsNormal = 159,
1470 SpvOpSignBitSet = 160,
1471 SpvOpLessOrGreater = 161,
1472 SpvOpOrdered = 162,
1473 SpvOpUnordered = 163,
1474 SpvOpLogicalEqual = 164,
1475 SpvOpLogicalNotEqual = 165,
1476 SpvOpLogicalOr = 166,
1477 SpvOpLogicalAnd = 167,
1478 SpvOpLogicalNot = 168,
1479 SpvOpSelect = 169,
1480 SpvOpIEqual = 170,
1481 SpvOpINotEqual = 171,
1482 SpvOpUGreaterThan = 172,
1483 SpvOpSGreaterThan = 173,
1484 SpvOpUGreaterThanEqual = 174,
1485 SpvOpSGreaterThanEqual = 175,
1486 SpvOpULessThan = 176,
1487 SpvOpSLessThan = 177,
1488 SpvOpULessThanEqual = 178,
1489 SpvOpSLessThanEqual = 179,
1490 SpvOpFOrdEqual = 180,
1491 SpvOpFUnordEqual = 181,
1492 SpvOpFOrdNotEqual = 182,
1493 SpvOpFUnordNotEqual = 183,
1494 SpvOpFOrdLessThan = 184,
1495 SpvOpFUnordLessThan = 185,
1496 SpvOpFOrdGreaterThan = 186,
1497 SpvOpFUnordGreaterThan = 187,
1498 SpvOpFOrdLessThanEqual = 188,
1499 SpvOpFUnordLessThanEqual = 189,
1500 SpvOpFOrdGreaterThanEqual = 190,
1501 SpvOpFUnordGreaterThanEqual = 191,
1502 SpvOpShiftRightLogical = 194,
1503 SpvOpShiftRightArithmetic = 195,
1504 SpvOpShiftLeftLogical = 196,
1505 SpvOpBitwiseOr = 197,
1506 SpvOpBitwiseXor = 198,
1507 SpvOpBitwiseAnd = 199,
1508 SpvOpNot = 200,
1509 SpvOpBitFieldInsert = 201,
1510 SpvOpBitFieldSExtract = 202,
1511 SpvOpBitFieldUExtract = 203,
1512 SpvOpBitReverse = 204,
1513 SpvOpBitCount = 205,
1514 SpvOpDPdx = 207,
1515 SpvOpDPdy = 208,
1516 SpvOpFwidth = 209,
1517 SpvOpDPdxFine = 210,
1518 SpvOpDPdyFine = 211,
1519 SpvOpFwidthFine = 212,
1520 SpvOpDPdxCoarse = 213,
1521 SpvOpDPdyCoarse = 214,
1522 SpvOpFwidthCoarse = 215,
1523 SpvOpEmitVertex = 218,
1524 SpvOpEndPrimitive = 219,
1525 SpvOpEmitStreamVertex = 220,
1526 SpvOpEndStreamPrimitive = 221,
1527 SpvOpControlBarrier = 224,
1528 SpvOpMemoryBarrier = 225,
1529 SpvOpAtomicLoad = 227,
1530 SpvOpAtomicStore = 228,
1531 SpvOpAtomicExchange = 229,
1532 SpvOpAtomicCompareExchange = 230,
1533 SpvOpAtomicCompareExchangeWeak = 231,
1534 SpvOpAtomicIIncrement = 232,
1535 SpvOpAtomicIDecrement = 233,
1536 SpvOpAtomicIAdd = 234,
1537 SpvOpAtomicISub = 235,
1538 SpvOpAtomicSMin = 236,
1539 SpvOpAtomicUMin = 237,
1540 SpvOpAtomicSMax = 238,
1541 SpvOpAtomicUMax = 239,
1542 SpvOpAtomicAnd = 240,
1543 SpvOpAtomicOr = 241,
1544 SpvOpAtomicXor = 242,
1545 SpvOpPhi = 245,
1546 SpvOpLoopMerge = 246,
1547 SpvOpSelectionMerge = 247,
1548 SpvOpLabel = 248,
1549 SpvOpBranch = 249,
1550 SpvOpBranchConditional = 250,
1551 SpvOpSwitch = 251,
1552 SpvOpKill = 252,
1553 SpvOpReturn = 253,
1554 SpvOpReturnValue = 254,
1555 SpvOpUnreachable = 255,
1556 SpvOpLifetimeStart = 256,
1557 SpvOpLifetimeStop = 257,
1558 SpvOpGroupAsyncCopy = 259,
1559 SpvOpGroupWaitEvents = 260,
1560 SpvOpGroupAll = 261,
1561 SpvOpGroupAny = 262,
1562 SpvOpGroupBroadcast = 263,
1563 SpvOpGroupIAdd = 264,
1564 SpvOpGroupFAdd = 265,
1565 SpvOpGroupFMin = 266,
1566 SpvOpGroupUMin = 267,
1567 SpvOpGroupSMin = 268,
1568 SpvOpGroupFMax = 269,
1569 SpvOpGroupUMax = 270,
1570 SpvOpGroupSMax = 271,
1571 SpvOpReadPipe = 274,
1572 SpvOpWritePipe = 275,
1573 SpvOpReservedReadPipe = 276,
1574 SpvOpReservedWritePipe = 277,
1575 SpvOpReserveReadPipePackets = 278,
1576 SpvOpReserveWritePipePackets = 279,
1577 SpvOpCommitReadPipe = 280,
1578 SpvOpCommitWritePipe = 281,
1579 SpvOpIsValidReserveId = 282,
1580 SpvOpGetNumPipePackets = 283,
1581 SpvOpGetMaxPipePackets = 284,
1582 SpvOpGroupReserveReadPipePackets = 285,
1583 SpvOpGroupReserveWritePipePackets = 286,
1584 SpvOpGroupCommitReadPipe = 287,
1585 SpvOpGroupCommitWritePipe = 288,
1586 SpvOpEnqueueMarker = 291,
1587 SpvOpEnqueueKernel = 292,
1588 SpvOpGetKernelNDrangeSubGroupCount = 293,
1589 SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
1590 SpvOpGetKernelWorkGroupSize = 295,
1591 SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
1592 SpvOpRetainEvent = 297,
1593 SpvOpReleaseEvent = 298,
1594 SpvOpCreateUserEvent = 299,
1595 SpvOpIsValidEvent = 300,
1596 SpvOpSetUserEventStatus = 301,
1597 SpvOpCaptureEventProfilingInfo = 302,
1598 SpvOpGetDefaultQueue = 303,
1599 SpvOpBuildNDRange = 304,
1600 SpvOpImageSparseSampleImplicitLod = 305,
1601 SpvOpImageSparseSampleExplicitLod = 306,
1602 SpvOpImageSparseSampleDrefImplicitLod = 307,
1603 SpvOpImageSparseSampleDrefExplicitLod = 308,
1604 SpvOpImageSparseSampleProjImplicitLod = 309,
1605 SpvOpImageSparseSampleProjExplicitLod = 310,
1606 SpvOpImageSparseSampleProjDrefImplicitLod = 311,
1607 SpvOpImageSparseSampleProjDrefExplicitLod = 312,
1608 SpvOpImageSparseFetch = 313,
1609 SpvOpImageSparseGather = 314,
1610 SpvOpImageSparseDrefGather = 315,
1611 SpvOpImageSparseTexelsResident = 316,
1612 SpvOpNoLine = 317,
1613 SpvOpAtomicFlagTestAndSet = 318,
1614 SpvOpAtomicFlagClear = 319,
1615 SpvOpImageSparseRead = 320,
1616 SpvOpSizeOf = 321,
1617 SpvOpTypePipeStorage = 322,
1618 SpvOpConstantPipeStorage = 323,
1619 SpvOpCreatePipeFromPipeStorage = 324,
1620 SpvOpGetKernelLocalSizeForSubgroupCount = 325,
1621 SpvOpGetKernelMaxNumSubgroups = 326,
1622 SpvOpTypeNamedBarrier = 327,
1623 SpvOpNamedBarrierInitialize = 328,
1624 SpvOpMemoryNamedBarrier = 329,
1625 SpvOpModuleProcessed = 330,
1626 SpvOpExecutionModeId = 331,
1627 SpvOpDecorateId = 332,
1628 SpvOpGroupNonUniformElect = 333,
1629 SpvOpGroupNonUniformAll = 334,
1630 SpvOpGroupNonUniformAny = 335,
1631 SpvOpGroupNonUniformAllEqual = 336,
1632 SpvOpGroupNonUniformBroadcast = 337,
1633 SpvOpGroupNonUniformBroadcastFirst = 338,
1634 SpvOpGroupNonUniformBallot = 339,
1635 SpvOpGroupNonUniformInverseBallot = 340,
1636 SpvOpGroupNonUniformBallotBitExtract = 341,
1637 SpvOpGroupNonUniformBallotBitCount = 342,
1638 SpvOpGroupNonUniformBallotFindLSB = 343,
1639 SpvOpGroupNonUniformBallotFindMSB = 344,
1640 SpvOpGroupNonUniformShuffle = 345,
1641 SpvOpGroupNonUniformShuffleXor = 346,
1642 SpvOpGroupNonUniformShuffleUp = 347,
1643 SpvOpGroupNonUniformShuffleDown = 348,
1644 SpvOpGroupNonUniformIAdd = 349,
1645 SpvOpGroupNonUniformFAdd = 350,
1646 SpvOpGroupNonUniformIMul = 351,
1647 SpvOpGroupNonUniformFMul = 352,
1648 SpvOpGroupNonUniformSMin = 353,
1649 SpvOpGroupNonUniformUMin = 354,
1650 SpvOpGroupNonUniformFMin = 355,
1651 SpvOpGroupNonUniformSMax = 356,
1652 SpvOpGroupNonUniformUMax = 357,
1653 SpvOpGroupNonUniformFMax = 358,
1654 SpvOpGroupNonUniformBitwiseAnd = 359,
1655 SpvOpGroupNonUniformBitwiseOr = 360,
1656 SpvOpGroupNonUniformBitwiseXor = 361,
1657 SpvOpGroupNonUniformLogicalAnd = 362,
1658 SpvOpGroupNonUniformLogicalOr = 363,
1659 SpvOpGroupNonUniformLogicalXor = 364,
1660 SpvOpGroupNonUniformQuadBroadcast = 365,
1661 SpvOpGroupNonUniformQuadSwap = 366,
1662 SpvOpCopyLogical = 400,
1663 SpvOpPtrEqual = 401,
1664 SpvOpPtrNotEqual = 402,
1665 SpvOpPtrDiff = 403,
1666 SpvOpColorAttachmentReadEXT = 4160,
1667 SpvOpDepthAttachmentReadEXT = 4161,
1668 SpvOpStencilAttachmentReadEXT = 4162,
1669 SpvOpTerminateInvocation = 4416,
1670 SpvOpSubgroupBallotKHR = 4421,
1671 SpvOpSubgroupFirstInvocationKHR = 4422,
1672 SpvOpSubgroupAllKHR = 4428,
1673 SpvOpSubgroupAnyKHR = 4429,
1674 SpvOpSubgroupAllEqualKHR = 4430,
1675 SpvOpGroupNonUniformRotateKHR = 4431,
1676 SpvOpSubgroupReadInvocationKHR = 4432,
1677 SpvOpTraceRayKHR = 4445,
1678 SpvOpExecuteCallableKHR = 4446,
1679 SpvOpConvertUToAccelerationStructureKHR = 4447,
1680 SpvOpIgnoreIntersectionKHR = 4448,
1681 SpvOpTerminateRayKHR = 4449,
1682 SpvOpSDot = 4450,
1683 SpvOpSDotKHR = 4450,
1684 SpvOpUDot = 4451,
1685 SpvOpUDotKHR = 4451,
1686 SpvOpSUDot = 4452,
1687 SpvOpSUDotKHR = 4452,
1688 SpvOpSDotAccSat = 4453,
1689 SpvOpSDotAccSatKHR = 4453,
1690 SpvOpUDotAccSat = 4454,
1691 SpvOpUDotAccSatKHR = 4454,
1692 SpvOpSUDotAccSat = 4455,
1693 SpvOpSUDotAccSatKHR = 4455,
1694 SpvOpTypeCooperativeMatrixKHR = 4456,
1695 SpvOpCooperativeMatrixLoadKHR = 4457,
1696 SpvOpCooperativeMatrixStoreKHR = 4458,
1697 SpvOpCooperativeMatrixMulAddKHR = 4459,
1698 SpvOpCooperativeMatrixLengthKHR = 4460,
1699 SpvOpTypeRayQueryKHR = 4472,
1700 SpvOpRayQueryInitializeKHR = 4473,
1701 SpvOpRayQueryTerminateKHR = 4474,
1702 SpvOpRayQueryGenerateIntersectionKHR = 4475,
1703 SpvOpRayQueryConfirmIntersectionKHR = 4476,
1704 SpvOpRayQueryProceedKHR = 4477,
1705 SpvOpRayQueryGetIntersectionTypeKHR = 4479,
1706 SpvOpImageSampleWeightedQCOM = 4480,
1707 SpvOpImageBoxFilterQCOM = 4481,
1708 SpvOpImageBlockMatchSSDQCOM = 4482,
1709 SpvOpImageBlockMatchSADQCOM = 4483,
1710 SpvOpGroupIAddNonUniformAMD = 5000,
1711 SpvOpGroupFAddNonUniformAMD = 5001,
1712 SpvOpGroupFMinNonUniformAMD = 5002,
1713 SpvOpGroupUMinNonUniformAMD = 5003,
1714 SpvOpGroupSMinNonUniformAMD = 5004,
1715 SpvOpGroupFMaxNonUniformAMD = 5005,
1716 SpvOpGroupUMaxNonUniformAMD = 5006,
1717 SpvOpGroupSMaxNonUniformAMD = 5007,
1718 SpvOpFragmentMaskFetchAMD = 5011,
1719 SpvOpFragmentFetchAMD = 5012,
1720 SpvOpReadClockKHR = 5056,
1721 SpvOpHitObjectRecordHitMotionNV = 5249,
1722 SpvOpHitObjectRecordHitWithIndexMotionNV = 5250,
1723 SpvOpHitObjectRecordMissMotionNV = 5251,
1724 SpvOpHitObjectGetWorldToObjectNV = 5252,
1725 SpvOpHitObjectGetObjectToWorldNV = 5253,
1726 SpvOpHitObjectGetObjectRayDirectionNV = 5254,
1727 SpvOpHitObjectGetObjectRayOriginNV = 5255,
1728 SpvOpHitObjectTraceRayMotionNV = 5256,
1729 SpvOpHitObjectGetShaderRecordBufferHandleNV = 5257,
1730 SpvOpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
1731 SpvOpHitObjectRecordEmptyNV = 5259,
1732 SpvOpHitObjectTraceRayNV = 5260,
1733 SpvOpHitObjectRecordHitNV = 5261,
1734 SpvOpHitObjectRecordHitWithIndexNV = 5262,
1735 SpvOpHitObjectRecordMissNV = 5263,
1736 SpvOpHitObjectExecuteShaderNV = 5264,
1737 SpvOpHitObjectGetCurrentTimeNV = 5265,
1738 SpvOpHitObjectGetAttributesNV = 5266,
1739 SpvOpHitObjectGetHitKindNV = 5267,
1740 SpvOpHitObjectGetPrimitiveIndexNV = 5268,
1741 SpvOpHitObjectGetGeometryIndexNV = 5269,
1742 SpvOpHitObjectGetInstanceIdNV = 5270,
1743 SpvOpHitObjectGetInstanceCustomIndexNV = 5271,
1744 SpvOpHitObjectGetWorldRayDirectionNV = 5272,
1745 SpvOpHitObjectGetWorldRayOriginNV = 5273,
1746 SpvOpHitObjectGetRayTMaxNV = 5274,
1747 SpvOpHitObjectGetRayTMinNV = 5275,
1748 SpvOpHitObjectIsEmptyNV = 5276,
1749 SpvOpHitObjectIsHitNV = 5277,
1750 SpvOpHitObjectIsMissNV = 5278,
1751 SpvOpReorderThreadWithHitObjectNV = 5279,
1752 SpvOpReorderThreadWithHintNV = 5280,
1753 SpvOpTypeHitObjectNV = 5281,
1754 SpvOpImageSampleFootprintNV = 5283,
1755 SpvOpEmitMeshTasksEXT = 5294,
1756 SpvOpSetMeshOutputsEXT = 5295,
1757 SpvOpGroupNonUniformPartitionNV = 5296,
1758 SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
1759 SpvOpReportIntersectionKHR = 5334,
1760 SpvOpReportIntersectionNV = 5334,
1761 SpvOpIgnoreIntersectionNV = 5335,
1762 SpvOpTerminateRayNV = 5336,
1763 SpvOpTraceNV = 5337,
1764 SpvOpTraceMotionNV = 5338,
1765 SpvOpTraceRayMotionNV = 5339,
1766 SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
1767 SpvOpTypeAccelerationStructureKHR = 5341,
1768 SpvOpTypeAccelerationStructureNV = 5341,
1769 SpvOpExecuteCallableNV = 5344,
1770 SpvOpTypeCooperativeMatrixNV = 5358,
1771 SpvOpCooperativeMatrixLoadNV = 5359,
1772 SpvOpCooperativeMatrixStoreNV = 5360,
1773 SpvOpCooperativeMatrixMulAddNV = 5361,
1774 SpvOpCooperativeMatrixLengthNV = 5362,
1775 SpvOpBeginInvocationInterlockEXT = 5364,
1776 SpvOpEndInvocationInterlockEXT = 5365,
1777 SpvOpDemoteToHelperInvocation = 5380,
1778 SpvOpDemoteToHelperInvocationEXT = 5380,
1779 SpvOpIsHelperInvocationEXT = 5381,
1780 SpvOpConvertUToImageNV = 5391,
1781 SpvOpConvertUToSamplerNV = 5392,
1782 SpvOpConvertImageToUNV = 5393,
1783 SpvOpConvertSamplerToUNV = 5394,
1784 SpvOpConvertUToSampledImageNV = 5395,
1785 SpvOpConvertSampledImageToUNV = 5396,
1786 SpvOpSamplerImageAddressingModeNV = 5397,
1787 SpvOpSubgroupShuffleINTEL = 5571,
1788 SpvOpSubgroupShuffleDownINTEL = 5572,
1789 SpvOpSubgroupShuffleUpINTEL = 5573,
1790 SpvOpSubgroupShuffleXorINTEL = 5574,
1791 SpvOpSubgroupBlockReadINTEL = 5575,
1792 SpvOpSubgroupBlockWriteINTEL = 5576,
1793 SpvOpSubgroupImageBlockReadINTEL = 5577,
1794 SpvOpSubgroupImageBlockWriteINTEL = 5578,
1795 SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
1796 SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
1797 SpvOpUCountLeadingZerosINTEL = 5585,
1798 SpvOpUCountTrailingZerosINTEL = 5586,
1799 SpvOpAbsISubINTEL = 5587,
1800 SpvOpAbsUSubINTEL = 5588,
1801 SpvOpIAddSatINTEL = 5589,
1802 SpvOpUAddSatINTEL = 5590,
1803 SpvOpIAverageINTEL = 5591,
1804 SpvOpUAverageINTEL = 5592,
1805 SpvOpIAverageRoundedINTEL = 5593,
1806 SpvOpUAverageRoundedINTEL = 5594,
1807 SpvOpISubSatINTEL = 5595,
1808 SpvOpUSubSatINTEL = 5596,
1809 SpvOpIMul32x16INTEL = 5597,
1810 SpvOpUMul32x16INTEL = 5598,
1811 SpvOpConstantFunctionPointerINTEL = 5600,
1812 SpvOpFunctionPointerCallINTEL = 5601,
1813 SpvOpAsmTargetINTEL = 5609,
1814 SpvOpAsmINTEL = 5610,
1815 SpvOpAsmCallINTEL = 5611,
1816 SpvOpAtomicFMinEXT = 5614,
1817 SpvOpAtomicFMaxEXT = 5615,
1818 SpvOpAssumeTrueKHR = 5630,
1819 SpvOpExpectKHR = 5631,
1820 SpvOpDecorateString = 5632,
1821 SpvOpDecorateStringGOOGLE = 5632,
1822 SpvOpMemberDecorateString = 5633,
1823 SpvOpMemberDecorateStringGOOGLE = 5633,
1824 SpvOpVmeImageINTEL = 5699,
1825 SpvOpTypeVmeImageINTEL = 5700,
1826 SpvOpTypeAvcImePayloadINTEL = 5701,
1827 SpvOpTypeAvcRefPayloadINTEL = 5702,
1828 SpvOpTypeAvcSicPayloadINTEL = 5703,
1829 SpvOpTypeAvcMcePayloadINTEL = 5704,
1830 SpvOpTypeAvcMceResultINTEL = 5705,
1831 SpvOpTypeAvcImeResultINTEL = 5706,
1832 SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
1833 SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
1834 SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
1835 SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
1836 SpvOpTypeAvcRefResultINTEL = 5711,
1837 SpvOpTypeAvcSicResultINTEL = 5712,
1838 SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
1839 SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
1840 SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
1841 SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
1842 SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
1843 SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
1844 SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
1845 SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
1846 SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
1847 SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
1848 SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
1849 SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
1850 SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
1851 SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
1852 SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
1853 SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
1854 SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
1855 SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
1856 SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
1857 SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
1858 SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
1859 SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
1860 SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
1861 SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
1862 SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
1863 SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
1864 SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
1865 SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
1866 SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
1867 SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
1868 SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
1869 SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
1870 SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
1871 SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
1872 SpvOpSubgroupAvcImeInitializeINTEL = 5747,
1873 SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
1874 SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
1875 SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
1876 SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
1877 SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
1878 SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
1879 SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
1880 SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
1881 SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
1882 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
1883 SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
1884 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
1885 SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
1886 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
1887 SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
1888 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
1889 SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
1890 SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
1891 SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
1892 SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
1893 SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
1894 SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
1895 SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL =
1896 5770,
1897 SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL =
1898 5771,
1899 SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL =
1900 5772,
1901 SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL =
1902 5773,
1903 SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
1904 SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL =
1905 5775,
1906 SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
1907 SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
1908 SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
1909 SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
1910 SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
1911 SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
1912 SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
1913 SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
1914 SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
1915 SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
1916 SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
1917 SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
1918 SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
1919 SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
1920 SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
1921 SpvOpSubgroupAvcSicInitializeINTEL = 5791,
1922 SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
1923 SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
1924 SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
1925 SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
1926 SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
1927 SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
1928 SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
1929 SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
1930 SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
1931 SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
1932 SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
1933 SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
1934 SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
1935 SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
1936 SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
1937 SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
1938 SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
1939 SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
1940 SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
1941 SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
1942 SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
1943 SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
1944 SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
1945 SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
1946 SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
1947 SpvOpVariableLengthArrayINTEL = 5818,
1948 SpvOpSaveMemoryINTEL = 5819,
1949 SpvOpRestoreMemoryINTEL = 5820,
1950 SpvOpArbitraryFloatSinCosPiINTEL = 5840,
1951 SpvOpArbitraryFloatCastINTEL = 5841,
1952 SpvOpArbitraryFloatCastFromIntINTEL = 5842,
1953 SpvOpArbitraryFloatCastToIntINTEL = 5843,
1954 SpvOpArbitraryFloatAddINTEL = 5846,
1955 SpvOpArbitraryFloatSubINTEL = 5847,
1956 SpvOpArbitraryFloatMulINTEL = 5848,
1957 SpvOpArbitraryFloatDivINTEL = 5849,
1958 SpvOpArbitraryFloatGTINTEL = 5850,
1959 SpvOpArbitraryFloatGEINTEL = 5851,
1960 SpvOpArbitraryFloatLTINTEL = 5852,
1961 SpvOpArbitraryFloatLEINTEL = 5853,
1962 SpvOpArbitraryFloatEQINTEL = 5854,
1963 SpvOpArbitraryFloatRecipINTEL = 5855,
1964 SpvOpArbitraryFloatRSqrtINTEL = 5856,
1965 SpvOpArbitraryFloatCbrtINTEL = 5857,
1966 SpvOpArbitraryFloatHypotINTEL = 5858,
1967 SpvOpArbitraryFloatSqrtINTEL = 5859,
1968 SpvOpArbitraryFloatLogINTEL = 5860,
1969 SpvOpArbitraryFloatLog2INTEL = 5861,
1970 SpvOpArbitraryFloatLog10INTEL = 5862,
1971 SpvOpArbitraryFloatLog1pINTEL = 5863,
1972 SpvOpArbitraryFloatExpINTEL = 5864,
1973 SpvOpArbitraryFloatExp2INTEL = 5865,
1974 SpvOpArbitraryFloatExp10INTEL = 5866,
1975 SpvOpArbitraryFloatExpm1INTEL = 5867,
1976 SpvOpArbitraryFloatSinINTEL = 5868,
1977 SpvOpArbitraryFloatCosINTEL = 5869,
1978 SpvOpArbitraryFloatSinCosINTEL = 5870,
1979 SpvOpArbitraryFloatSinPiINTEL = 5871,
1980 SpvOpArbitraryFloatCosPiINTEL = 5872,
1981 SpvOpArbitraryFloatASinINTEL = 5873,
1982 SpvOpArbitraryFloatASinPiINTEL = 5874,
1983 SpvOpArbitraryFloatACosINTEL = 5875,
1984 SpvOpArbitraryFloatACosPiINTEL = 5876,
1985 SpvOpArbitraryFloatATanINTEL = 5877,
1986 SpvOpArbitraryFloatATanPiINTEL = 5878,
1987 SpvOpArbitraryFloatATan2INTEL = 5879,
1988 SpvOpArbitraryFloatPowINTEL = 5880,
1989 SpvOpArbitraryFloatPowRINTEL = 5881,
1990 SpvOpArbitraryFloatPowNINTEL = 5882,
1991 SpvOpLoopControlINTEL = 5887,
1992 SpvOpAliasDomainDeclINTEL = 5911,
1993 SpvOpAliasScopeDeclINTEL = 5912,
1994 SpvOpAliasScopeListDeclINTEL = 5913,
1995 SpvOpFixedSqrtINTEL = 5923,
1996 SpvOpFixedRecipINTEL = 5924,
1997 SpvOpFixedRsqrtINTEL = 5925,
1998 SpvOpFixedSinINTEL = 5926,
1999 SpvOpFixedCosINTEL = 5927,
2000 SpvOpFixedSinCosINTEL = 5928,
2001 SpvOpFixedSinPiINTEL = 5929,
2002 SpvOpFixedCosPiINTEL = 5930,
2003 SpvOpFixedSinCosPiINTEL = 5931,
2004 SpvOpFixedLogINTEL = 5932,
2005 SpvOpFixedExpINTEL = 5933,
2006 SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
2007 SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
2008 SpvOpReadPipeBlockingINTEL = 5946,
2009 SpvOpWritePipeBlockingINTEL = 5947,
2010 SpvOpFPGARegINTEL = 5949,
2011 SpvOpRayQueryGetRayTMinKHR = 6016,
2012 SpvOpRayQueryGetRayFlagsKHR = 6017,
2013 SpvOpRayQueryGetIntersectionTKHR = 6018,
2014 SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
2015 SpvOpRayQueryGetIntersectionInstanceIdKHR = 6020,
2016 SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
2017 SpvOpRayQueryGetIntersectionGeometryIndexKHR = 6022,
2018 SpvOpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
2019 SpvOpRayQueryGetIntersectionBarycentricsKHR = 6024,
2020 SpvOpRayQueryGetIntersectionFrontFaceKHR = 6025,
2021 SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
2022 SpvOpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
2023 SpvOpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
2024 SpvOpRayQueryGetWorldRayDirectionKHR = 6029,
2025 SpvOpRayQueryGetWorldRayOriginKHR = 6030,
2026 SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
2027 SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
2028 SpvOpAtomicFAddEXT = 6035,
2029 SpvOpTypeBufferSurfaceINTEL = 6086,
2030 SpvOpTypeStructContinuedINTEL = 6090,
2031 SpvOpConstantCompositeContinuedINTEL = 6091,
2032 SpvOpSpecConstantCompositeContinuedINTEL = 6092,
2033 SpvOpConvertFToBF16INTEL = 6116,
2034 SpvOpConvertBF16ToFINTEL = 6117,
2035 SpvOpControlBarrierArriveINTEL = 6142,
2036 SpvOpControlBarrierWaitINTEL = 6143,
2037 SpvOpGroupIMulKHR = 6401,
2038 SpvOpGroupFMulKHR = 6402,
2039 SpvOpGroupBitwiseAndKHR = 6403,
2040 SpvOpGroupBitwiseOrKHR = 6404,
2041 SpvOpGroupBitwiseXorKHR = 6405,
2042 SpvOpGroupLogicalAndKHR = 6406,
2043 SpvOpGroupLogicalOrKHR = 6407,
2044 SpvOpGroupLogicalXorKHR = 6408,
2045 SpvOpMax = 0x7fffffff,
2046} SpvOp;
2047
2048#ifdef SPV_ENABLE_UTILITY_CODE
2049#ifndef __cplusplus
2050#include <stdbool.h>
2051#endif
2052inline void SpvHasResultAndType(SpvOp opcode, bool* hasResult,
2053 bool* hasResultType) {
2054 *hasResult = *hasResultType = false;
2055 switch (opcode) {
2056 default: /* unknown opcode */
2057 break;
2058 case SpvOpNop:
2059 *hasResult = false;
2060 *hasResultType = false;
2061 break;
2062 case SpvOpUndef:
2063 *hasResult = true;
2064 *hasResultType = true;
2065 break;
2066 case SpvOpSourceContinued:
2067 *hasResult = false;
2068 *hasResultType = false;
2069 break;
2070 case SpvOpSource:
2071 *hasResult = false;
2072 *hasResultType = false;
2073 break;
2074 case SpvOpSourceExtension:
2075 *hasResult = false;
2076 *hasResultType = false;
2077 break;
2078 case SpvOpName:
2079 *hasResult = false;
2080 *hasResultType = false;
2081 break;
2082 case SpvOpMemberName:
2083 *hasResult = false;
2084 *hasResultType = false;
2085 break;
2086 case SpvOpString:
2087 *hasResult = true;
2088 *hasResultType = false;
2089 break;
2090 case SpvOpLine:
2091 *hasResult = false;
2092 *hasResultType = false;
2093 break;
2094 case SpvOpExtension:
2095 *hasResult = false;
2096 *hasResultType = false;
2097 break;
2098 case SpvOpExtInstImport:
2099 *hasResult = true;
2100 *hasResultType = false;
2101 break;
2102 case SpvOpExtInst:
2103 *hasResult = true;
2104 *hasResultType = true;
2105 break;
2106 case SpvOpMemoryModel:
2107 *hasResult = false;
2108 *hasResultType = false;
2109 break;
2110 case SpvOpEntryPoint:
2111 *hasResult = false;
2112 *hasResultType = false;
2113 break;
2114 case SpvOpExecutionMode:
2115 *hasResult = false;
2116 *hasResultType = false;
2117 break;
2118 case SpvOpCapability:
2119 *hasResult = false;
2120 *hasResultType = false;
2121 break;
2122 case SpvOpTypeVoid:
2123 *hasResult = true;
2124 *hasResultType = false;
2125 break;
2126 case SpvOpTypeBool:
2127 *hasResult = true;
2128 *hasResultType = false;
2129 break;
2130 case SpvOpTypeInt:
2131 *hasResult = true;
2132 *hasResultType = false;
2133 break;
2134 case SpvOpTypeFloat:
2135 *hasResult = true;
2136 *hasResultType = false;
2137 break;
2138 case SpvOpTypeVector:
2139 *hasResult = true;
2140 *hasResultType = false;
2141 break;
2142 case SpvOpTypeMatrix:
2143 *hasResult = true;
2144 *hasResultType = false;
2145 break;
2146 case SpvOpTypeImage:
2147 *hasResult = true;
2148 *hasResultType = false;
2149 break;
2150 case SpvOpTypeSampler:
2151 *hasResult = true;
2152 *hasResultType = false;
2153 break;
2154 case SpvOpTypeSampledImage:
2155 *hasResult = true;
2156 *hasResultType = false;
2157 break;
2158 case SpvOpTypeArray:
2159 *hasResult = true;
2160 *hasResultType = false;
2161 break;
2162 case SpvOpTypeRuntimeArray:
2163 *hasResult = true;
2164 *hasResultType = false;
2165 break;
2166 case SpvOpTypeStruct:
2167 *hasResult = true;
2168 *hasResultType = false;
2169 break;
2170 case SpvOpTypeOpaque:
2171 *hasResult = true;
2172 *hasResultType = false;
2173 break;
2174 case SpvOpTypePointer:
2175 *hasResult = true;
2176 *hasResultType = false;
2177 break;
2178 case SpvOpTypeFunction:
2179 *hasResult = true;
2180 *hasResultType = false;
2181 break;
2182 case SpvOpTypeEvent:
2183 *hasResult = true;
2184 *hasResultType = false;
2185 break;
2186 case SpvOpTypeDeviceEvent:
2187 *hasResult = true;
2188 *hasResultType = false;
2189 break;
2190 case SpvOpTypeReserveId:
2191 *hasResult = true;
2192 *hasResultType = false;
2193 break;
2194 case SpvOpTypeQueue:
2195 *hasResult = true;
2196 *hasResultType = false;
2197 break;
2198 case SpvOpTypePipe:
2199 *hasResult = true;
2200 *hasResultType = false;
2201 break;
2202 case SpvOpTypeForwardPointer:
2203 *hasResult = false;
2204 *hasResultType = false;
2205 break;
2206 case SpvOpConstantTrue:
2207 *hasResult = true;
2208 *hasResultType = true;
2209 break;
2210 case SpvOpConstantFalse:
2211 *hasResult = true;
2212 *hasResultType = true;
2213 break;
2214 case SpvOpConstant:
2215 *hasResult = true;
2216 *hasResultType = true;
2217 break;
2218 case SpvOpConstantComposite:
2219 *hasResult = true;
2220 *hasResultType = true;
2221 break;
2222 case SpvOpConstantSampler:
2223 *hasResult = true;
2224 *hasResultType = true;
2225 break;
2226 case SpvOpConstantNull:
2227 *hasResult = true;
2228 *hasResultType = true;
2229 break;
2230 case SpvOpSpecConstantTrue:
2231 *hasResult = true;
2232 *hasResultType = true;
2233 break;
2234 case SpvOpSpecConstantFalse:
2235 *hasResult = true;
2236 *hasResultType = true;
2237 break;
2238 case SpvOpSpecConstant:
2239 *hasResult = true;
2240 *hasResultType = true;
2241 break;
2242 case SpvOpSpecConstantComposite:
2243 *hasResult = true;
2244 *hasResultType = true;
2245 break;
2246 case SpvOpSpecConstantOp:
2247 *hasResult = true;
2248 *hasResultType = true;
2249 break;
2250 case SpvOpFunction:
2251 *hasResult = true;
2252 *hasResultType = true;
2253 break;
2254 case SpvOpFunctionParameter:
2255 *hasResult = true;
2256 *hasResultType = true;
2257 break;
2258 case SpvOpFunctionEnd:
2259 *hasResult = false;
2260 *hasResultType = false;
2261 break;
2262 case SpvOpFunctionCall:
2263 *hasResult = true;
2264 *hasResultType = true;
2265 break;
2266 case SpvOpVariable:
2267 *hasResult = true;
2268 *hasResultType = true;
2269 break;
2270 case SpvOpImageTexelPointer:
2271 *hasResult = true;
2272 *hasResultType = true;
2273 break;
2274 case SpvOpLoad:
2275 *hasResult = true;
2276 *hasResultType = true;
2277 break;
2278 case SpvOpStore:
2279 *hasResult = false;
2280 *hasResultType = false;
2281 break;
2282 case SpvOpCopyMemory:
2283 *hasResult = false;
2284 *hasResultType = false;
2285 break;
2286 case SpvOpCopyMemorySized:
2287 *hasResult = false;
2288 *hasResultType = false;
2289 break;
2290 case SpvOpAccessChain:
2291 *hasResult = true;
2292 *hasResultType = true;
2293 break;
2294 case SpvOpInBoundsAccessChain:
2295 *hasResult = true;
2296 *hasResultType = true;
2297 break;
2298 case SpvOpPtrAccessChain:
2299 *hasResult = true;
2300 *hasResultType = true;
2301 break;
2302 case SpvOpArrayLength:
2303 *hasResult = true;
2304 *hasResultType = true;
2305 break;
2306 case SpvOpGenericPtrMemSemantics:
2307 *hasResult = true;
2308 *hasResultType = true;
2309 break;
2310 case SpvOpInBoundsPtrAccessChain:
2311 *hasResult = true;
2312 *hasResultType = true;
2313 break;
2314 case SpvOpDecorate:
2315 *hasResult = false;
2316 *hasResultType = false;
2317 break;
2318 case SpvOpMemberDecorate:
2319 *hasResult = false;
2320 *hasResultType = false;
2321 break;
2322 case SpvOpDecorationGroup:
2323 *hasResult = true;
2324 *hasResultType = false;
2325 break;
2326 case SpvOpGroupDecorate:
2327 *hasResult = false;
2328 *hasResultType = false;
2329 break;
2330 case SpvOpGroupMemberDecorate:
2331 *hasResult = false;
2332 *hasResultType = false;
2333 break;
2334 case SpvOpVectorExtractDynamic:
2335 *hasResult = true;
2336 *hasResultType = true;
2337 break;
2338 case SpvOpVectorInsertDynamic:
2339 *hasResult = true;
2340 *hasResultType = true;
2341 break;
2342 case SpvOpVectorShuffle:
2343 *hasResult = true;
2344 *hasResultType = true;
2345 break;
2346 case SpvOpCompositeConstruct:
2347 *hasResult = true;
2348 *hasResultType = true;
2349 break;
2350 case SpvOpCompositeExtract:
2351 *hasResult = true;
2352 *hasResultType = true;
2353 break;
2354 case SpvOpCompositeInsert:
2355 *hasResult = true;
2356 *hasResultType = true;
2357 break;
2358 case SpvOpCopyObject:
2359 *hasResult = true;
2360 *hasResultType = true;
2361 break;
2362 case SpvOpTranspose:
2363 *hasResult = true;
2364 *hasResultType = true;
2365 break;
2366 case SpvOpSampledImage:
2367 *hasResult = true;
2368 *hasResultType = true;
2369 break;
2370 case SpvOpImageSampleImplicitLod:
2371 *hasResult = true;
2372 *hasResultType = true;
2373 break;
2374 case SpvOpImageSampleExplicitLod:
2375 *hasResult = true;
2376 *hasResultType = true;
2377 break;
2378 case SpvOpImageSampleDrefImplicitLod:
2379 *hasResult = true;
2380 *hasResultType = true;
2381 break;
2382 case SpvOpImageSampleDrefExplicitLod:
2383 *hasResult = true;
2384 *hasResultType = true;
2385 break;
2386 case SpvOpImageSampleProjImplicitLod:
2387 *hasResult = true;
2388 *hasResultType = true;
2389 break;
2390 case SpvOpImageSampleProjExplicitLod:
2391 *hasResult = true;
2392 *hasResultType = true;
2393 break;
2394 case SpvOpImageSampleProjDrefImplicitLod:
2395 *hasResult = true;
2396 *hasResultType = true;
2397 break;
2398 case SpvOpImageSampleProjDrefExplicitLod:
2399 *hasResult = true;
2400 *hasResultType = true;
2401 break;
2402 case SpvOpImageFetch:
2403 *hasResult = true;
2404 *hasResultType = true;
2405 break;
2406 case SpvOpImageGather:
2407 *hasResult = true;
2408 *hasResultType = true;
2409 break;
2410 case SpvOpImageDrefGather:
2411 *hasResult = true;
2412 *hasResultType = true;
2413 break;
2414 case SpvOpImageRead:
2415 *hasResult = true;
2416 *hasResultType = true;
2417 break;
2418 case SpvOpImageWrite:
2419 *hasResult = false;
2420 *hasResultType = false;
2421 break;
2422 case SpvOpImage:
2423 *hasResult = true;
2424 *hasResultType = true;
2425 break;
2426 case SpvOpImageQueryFormat:
2427 *hasResult = true;
2428 *hasResultType = true;
2429 break;
2430 case SpvOpImageQueryOrder:
2431 *hasResult = true;
2432 *hasResultType = true;
2433 break;
2434 case SpvOpImageQuerySizeLod:
2435 *hasResult = true;
2436 *hasResultType = true;
2437 break;
2438 case SpvOpImageQuerySize:
2439 *hasResult = true;
2440 *hasResultType = true;
2441 break;
2442 case SpvOpImageQueryLod:
2443 *hasResult = true;
2444 *hasResultType = true;
2445 break;
2446 case SpvOpImageQueryLevels:
2447 *hasResult = true;
2448 *hasResultType = true;
2449 break;
2450 case SpvOpImageQuerySamples:
2451 *hasResult = true;
2452 *hasResultType = true;
2453 break;
2454 case SpvOpConvertFToU:
2455 *hasResult = true;
2456 *hasResultType = true;
2457 break;
2458 case SpvOpConvertFToS:
2459 *hasResult = true;
2460 *hasResultType = true;
2461 break;
2462 case SpvOpConvertSToF:
2463 *hasResult = true;
2464 *hasResultType = true;
2465 break;
2466 case SpvOpConvertUToF:
2467 *hasResult = true;
2468 *hasResultType = true;
2469 break;
2470 case SpvOpUConvert:
2471 *hasResult = true;
2472 *hasResultType = true;
2473 break;
2474 case SpvOpSConvert:
2475 *hasResult = true;
2476 *hasResultType = true;
2477 break;
2478 case SpvOpFConvert:
2479 *hasResult = true;
2480 *hasResultType = true;
2481 break;
2482 case SpvOpQuantizeToF16:
2483 *hasResult = true;
2484 *hasResultType = true;
2485 break;
2486 case SpvOpConvertPtrToU:
2487 *hasResult = true;
2488 *hasResultType = true;
2489 break;
2490 case SpvOpSatConvertSToU:
2491 *hasResult = true;
2492 *hasResultType = true;
2493 break;
2494 case SpvOpSatConvertUToS:
2495 *hasResult = true;
2496 *hasResultType = true;
2497 break;
2498 case SpvOpConvertUToPtr:
2499 *hasResult = true;
2500 *hasResultType = true;
2501 break;
2502 case SpvOpPtrCastToGeneric:
2503 *hasResult = true;
2504 *hasResultType = true;
2505 break;
2506 case SpvOpGenericCastToPtr:
2507 *hasResult = true;
2508 *hasResultType = true;
2509 break;
2510 case SpvOpGenericCastToPtrExplicit:
2511 *hasResult = true;
2512 *hasResultType = true;
2513 break;
2514 case SpvOpBitcast:
2515 *hasResult = true;
2516 *hasResultType = true;
2517 break;
2518 case SpvOpSNegate:
2519 *hasResult = true;
2520 *hasResultType = true;
2521 break;
2522 case SpvOpFNegate:
2523 *hasResult = true;
2524 *hasResultType = true;
2525 break;
2526 case SpvOpIAdd:
2527 *hasResult = true;
2528 *hasResultType = true;
2529 break;
2530 case SpvOpFAdd:
2531 *hasResult = true;
2532 *hasResultType = true;
2533 break;
2534 case SpvOpISub:
2535 *hasResult = true;
2536 *hasResultType = true;
2537 break;
2538 case SpvOpFSub:
2539 *hasResult = true;
2540 *hasResultType = true;
2541 break;
2542 case SpvOpIMul:
2543 *hasResult = true;
2544 *hasResultType = true;
2545 break;
2546 case SpvOpFMul:
2547 *hasResult = true;
2548 *hasResultType = true;
2549 break;
2550 case SpvOpUDiv:
2551 *hasResult = true;
2552 *hasResultType = true;
2553 break;
2554 case SpvOpSDiv:
2555 *hasResult = true;
2556 *hasResultType = true;
2557 break;
2558 case SpvOpFDiv:
2559 *hasResult = true;
2560 *hasResultType = true;
2561 break;
2562 case SpvOpUMod:
2563 *hasResult = true;
2564 *hasResultType = true;
2565 break;
2566 case SpvOpSRem:
2567 *hasResult = true;
2568 *hasResultType = true;
2569 break;
2570 case SpvOpSMod:
2571 *hasResult = true;
2572 *hasResultType = true;
2573 break;
2574 case SpvOpFRem:
2575 *hasResult = true;
2576 *hasResultType = true;
2577 break;
2578 case SpvOpFMod:
2579 *hasResult = true;
2580 *hasResultType = true;
2581 break;
2582 case SpvOpVectorTimesScalar:
2583 *hasResult = true;
2584 *hasResultType = true;
2585 break;
2586 case SpvOpMatrixTimesScalar:
2587 *hasResult = true;
2588 *hasResultType = true;
2589 break;
2590 case SpvOpVectorTimesMatrix:
2591 *hasResult = true;
2592 *hasResultType = true;
2593 break;
2594 case SpvOpMatrixTimesVector:
2595 *hasResult = true;
2596 *hasResultType = true;
2597 break;
2598 case SpvOpMatrixTimesMatrix:
2599 *hasResult = true;
2600 *hasResultType = true;
2601 break;
2602 case SpvOpOuterProduct:
2603 *hasResult = true;
2604 *hasResultType = true;
2605 break;
2606 case SpvOpDot:
2607 *hasResult = true;
2608 *hasResultType = true;
2609 break;
2610 case SpvOpIAddCarry:
2611 *hasResult = true;
2612 *hasResultType = true;
2613 break;
2614 case SpvOpISubBorrow:
2615 *hasResult = true;
2616 *hasResultType = true;
2617 break;
2618 case SpvOpUMulExtended:
2619 *hasResult = true;
2620 *hasResultType = true;
2621 break;
2622 case SpvOpSMulExtended:
2623 *hasResult = true;
2624 *hasResultType = true;
2625 break;
2626 case SpvOpAny:
2627 *hasResult = true;
2628 *hasResultType = true;
2629 break;
2630 case SpvOpAll:
2631 *hasResult = true;
2632 *hasResultType = true;
2633 break;
2634 case SpvOpIsNan:
2635 *hasResult = true;
2636 *hasResultType = true;
2637 break;
2638 case SpvOpIsInf:
2639 *hasResult = true;
2640 *hasResultType = true;
2641 break;
2642 case SpvOpIsFinite:
2643 *hasResult = true;
2644 *hasResultType = true;
2645 break;
2646 case SpvOpIsNormal:
2647 *hasResult = true;
2648 *hasResultType = true;
2649 break;
2650 case SpvOpSignBitSet:
2651 *hasResult = true;
2652 *hasResultType = true;
2653 break;
2654 case SpvOpLessOrGreater:
2655 *hasResult = true;
2656 *hasResultType = true;
2657 break;
2658 case SpvOpOrdered:
2659 *hasResult = true;
2660 *hasResultType = true;
2661 break;
2662 case SpvOpUnordered:
2663 *hasResult = true;
2664 *hasResultType = true;
2665 break;
2666 case SpvOpLogicalEqual:
2667 *hasResult = true;
2668 *hasResultType = true;
2669 break;
2670 case SpvOpLogicalNotEqual:
2671 *hasResult = true;
2672 *hasResultType = true;
2673 break;
2674 case SpvOpLogicalOr:
2675 *hasResult = true;
2676 *hasResultType = true;
2677 break;
2678 case SpvOpLogicalAnd:
2679 *hasResult = true;
2680 *hasResultType = true;
2681 break;
2682 case SpvOpLogicalNot:
2683 *hasResult = true;
2684 *hasResultType = true;
2685 break;
2686 case SpvOpSelect:
2687 *hasResult = true;
2688 *hasResultType = true;
2689 break;
2690 case SpvOpIEqual:
2691 *hasResult = true;
2692 *hasResultType = true;
2693 break;
2694 case SpvOpINotEqual:
2695 *hasResult = true;
2696 *hasResultType = true;
2697 break;
2698 case SpvOpUGreaterThan:
2699 *hasResult = true;
2700 *hasResultType = true;
2701 break;
2702 case SpvOpSGreaterThan:
2703 *hasResult = true;
2704 *hasResultType = true;
2705 break;
2706 case SpvOpUGreaterThanEqual:
2707 *hasResult = true;
2708 *hasResultType = true;
2709 break;
2710 case SpvOpSGreaterThanEqual:
2711 *hasResult = true;
2712 *hasResultType = true;
2713 break;
2714 case SpvOpULessThan:
2715 *hasResult = true;
2716 *hasResultType = true;
2717 break;
2718 case SpvOpSLessThan:
2719 *hasResult = true;
2720 *hasResultType = true;
2721 break;
2722 case SpvOpULessThanEqual:
2723 *hasResult = true;
2724 *hasResultType = true;
2725 break;
2726 case SpvOpSLessThanEqual:
2727 *hasResult = true;
2728 *hasResultType = true;
2729 break;
2730 case SpvOpFOrdEqual:
2731 *hasResult = true;
2732 *hasResultType = true;
2733 break;
2734 case SpvOpFUnordEqual:
2735 *hasResult = true;
2736 *hasResultType = true;
2737 break;
2738 case SpvOpFOrdNotEqual:
2739 *hasResult = true;
2740 *hasResultType = true;
2741 break;
2742 case SpvOpFUnordNotEqual:
2743 *hasResult = true;
2744 *hasResultType = true;
2745 break;
2746 case SpvOpFOrdLessThan:
2747 *hasResult = true;
2748 *hasResultType = true;
2749 break;
2750 case SpvOpFUnordLessThan:
2751 *hasResult = true;
2752 *hasResultType = true;
2753 break;
2754 case SpvOpFOrdGreaterThan:
2755 *hasResult = true;
2756 *hasResultType = true;
2757 break;
2758 case SpvOpFUnordGreaterThan:
2759 *hasResult = true;
2760 *hasResultType = true;
2761 break;
2762 case SpvOpFOrdLessThanEqual:
2763 *hasResult = true;
2764 *hasResultType = true;
2765 break;
2766 case SpvOpFUnordLessThanEqual:
2767 *hasResult = true;
2768 *hasResultType = true;
2769 break;
2770 case SpvOpFOrdGreaterThanEqual:
2771 *hasResult = true;
2772 *hasResultType = true;
2773 break;
2774 case SpvOpFUnordGreaterThanEqual:
2775 *hasResult = true;
2776 *hasResultType = true;
2777 break;
2778 case SpvOpShiftRightLogical:
2779 *hasResult = true;
2780 *hasResultType = true;
2781 break;
2782 case SpvOpShiftRightArithmetic:
2783 *hasResult = true;
2784 *hasResultType = true;
2785 break;
2786 case SpvOpShiftLeftLogical:
2787 *hasResult = true;
2788 *hasResultType = true;
2789 break;
2790 case SpvOpBitwiseOr:
2791 *hasResult = true;
2792 *hasResultType = true;
2793 break;
2794 case SpvOpBitwiseXor:
2795 *hasResult = true;
2796 *hasResultType = true;
2797 break;
2798 case SpvOpBitwiseAnd:
2799 *hasResult = true;
2800 *hasResultType = true;
2801 break;
2802 case SpvOpNot:
2803 *hasResult = true;
2804 *hasResultType = true;
2805 break;
2806 case SpvOpBitFieldInsert:
2807 *hasResult = true;
2808 *hasResultType = true;
2809 break;
2810 case SpvOpBitFieldSExtract:
2811 *hasResult = true;
2812 *hasResultType = true;
2813 break;
2814 case SpvOpBitFieldUExtract:
2815 *hasResult = true;
2816 *hasResultType = true;
2817 break;
2818 case SpvOpBitReverse:
2819 *hasResult = true;
2820 *hasResultType = true;
2821 break;
2822 case SpvOpBitCount:
2823 *hasResult = true;
2824 *hasResultType = true;
2825 break;
2826 case SpvOpDPdx:
2827 *hasResult = true;
2828 *hasResultType = true;
2829 break;
2830 case SpvOpDPdy:
2831 *hasResult = true;
2832 *hasResultType = true;
2833 break;
2834 case SpvOpFwidth:
2835 *hasResult = true;
2836 *hasResultType = true;
2837 break;
2838 case SpvOpDPdxFine:
2839 *hasResult = true;
2840 *hasResultType = true;
2841 break;
2842 case SpvOpDPdyFine:
2843 *hasResult = true;
2844 *hasResultType = true;
2845 break;
2846 case SpvOpFwidthFine:
2847 *hasResult = true;
2848 *hasResultType = true;
2849 break;
2850 case SpvOpDPdxCoarse:
2851 *hasResult = true;
2852 *hasResultType = true;
2853 break;
2854 case SpvOpDPdyCoarse:
2855 *hasResult = true;
2856 *hasResultType = true;
2857 break;
2858 case SpvOpFwidthCoarse:
2859 *hasResult = true;
2860 *hasResultType = true;
2861 break;
2862 case SpvOpEmitVertex:
2863 *hasResult = false;
2864 *hasResultType = false;
2865 break;
2866 case SpvOpEndPrimitive:
2867 *hasResult = false;
2868 *hasResultType = false;
2869 break;
2870 case SpvOpEmitStreamVertex:
2871 *hasResult = false;
2872 *hasResultType = false;
2873 break;
2874 case SpvOpEndStreamPrimitive:
2875 *hasResult = false;
2876 *hasResultType = false;
2877 break;
2878 case SpvOpControlBarrier:
2879 *hasResult = false;
2880 *hasResultType = false;
2881 break;
2882 case SpvOpMemoryBarrier:
2883 *hasResult = false;
2884 *hasResultType = false;
2885 break;
2886 case SpvOpAtomicLoad:
2887 *hasResult = true;
2888 *hasResultType = true;
2889 break;
2890 case SpvOpAtomicStore:
2891 *hasResult = false;
2892 *hasResultType = false;
2893 break;
2894 case SpvOpAtomicExchange:
2895 *hasResult = true;
2896 *hasResultType = true;
2897 break;
2898 case SpvOpAtomicCompareExchange:
2899 *hasResult = true;
2900 *hasResultType = true;
2901 break;
2902 case SpvOpAtomicCompareExchangeWeak:
2903 *hasResult = true;
2904 *hasResultType = true;
2905 break;
2906 case SpvOpAtomicIIncrement:
2907 *hasResult = true;
2908 *hasResultType = true;
2909 break;
2910 case SpvOpAtomicIDecrement:
2911 *hasResult = true;
2912 *hasResultType = true;
2913 break;
2914 case SpvOpAtomicIAdd:
2915 *hasResult = true;
2916 *hasResultType = true;
2917 break;
2918 case SpvOpAtomicISub:
2919 *hasResult = true;
2920 *hasResultType = true;
2921 break;
2922 case SpvOpAtomicSMin:
2923 *hasResult = true;
2924 *hasResultType = true;
2925 break;
2926 case SpvOpAtomicUMin:
2927 *hasResult = true;
2928 *hasResultType = true;
2929 break;
2930 case SpvOpAtomicSMax:
2931 *hasResult = true;
2932 *hasResultType = true;
2933 break;
2934 case SpvOpAtomicUMax:
2935 *hasResult = true;
2936 *hasResultType = true;
2937 break;
2938 case SpvOpAtomicAnd:
2939 *hasResult = true;
2940 *hasResultType = true;
2941 break;
2942 case SpvOpAtomicOr:
2943 *hasResult = true;
2944 *hasResultType = true;
2945 break;
2946 case SpvOpAtomicXor:
2947 *hasResult = true;
2948 *hasResultType = true;
2949 break;
2950 case SpvOpPhi:
2951 *hasResult = true;
2952 *hasResultType = true;
2953 break;
2954 case SpvOpLoopMerge:
2955 *hasResult = false;
2956 *hasResultType = false;
2957 break;
2958 case SpvOpSelectionMerge:
2959 *hasResult = false;
2960 *hasResultType = false;
2961 break;
2962 case SpvOpLabel:
2963 *hasResult = true;
2964 *hasResultType = false;
2965 break;
2966 case SpvOpBranch:
2967 *hasResult = false;
2968 *hasResultType = false;
2969 break;
2970 case SpvOpBranchConditional:
2971 *hasResult = false;
2972 *hasResultType = false;
2973 break;
2974 case SpvOpSwitch:
2975 *hasResult = false;
2976 *hasResultType = false;
2977 break;
2978 case SpvOpKill:
2979 *hasResult = false;
2980 *hasResultType = false;
2981 break;
2982 case SpvOpReturn:
2983 *hasResult = false;
2984 *hasResultType = false;
2985 break;
2986 case SpvOpReturnValue:
2987 *hasResult = false;
2988 *hasResultType = false;
2989 break;
2990 case SpvOpUnreachable:
2991 *hasResult = false;
2992 *hasResultType = false;
2993 break;
2994 case SpvOpLifetimeStart:
2995 *hasResult = false;
2996 *hasResultType = false;
2997 break;
2998 case SpvOpLifetimeStop:
2999 *hasResult = false;
3000 *hasResultType = false;
3001 break;
3002 case SpvOpGroupAsyncCopy:
3003 *hasResult = true;
3004 *hasResultType = true;
3005 break;
3006 case SpvOpGroupWaitEvents:
3007 *hasResult = false;
3008 *hasResultType = false;
3009 break;
3010 case SpvOpGroupAll:
3011 *hasResult = true;
3012 *hasResultType = true;
3013 break;
3014 case SpvOpGroupAny:
3015 *hasResult = true;
3016 *hasResultType = true;
3017 break;
3018 case SpvOpGroupBroadcast:
3019 *hasResult = true;
3020 *hasResultType = true;
3021 break;
3022 case SpvOpGroupIAdd:
3023 *hasResult = true;
3024 *hasResultType = true;
3025 break;
3026 case SpvOpGroupFAdd:
3027 *hasResult = true;
3028 *hasResultType = true;
3029 break;
3030 case SpvOpGroupFMin:
3031 *hasResult = true;
3032 *hasResultType = true;
3033 break;
3034 case SpvOpGroupUMin:
3035 *hasResult = true;
3036 *hasResultType = true;
3037 break;
3038 case SpvOpGroupSMin:
3039 *hasResult = true;
3040 *hasResultType = true;
3041 break;
3042 case SpvOpGroupFMax:
3043 *hasResult = true;
3044 *hasResultType = true;
3045 break;
3046 case SpvOpGroupUMax:
3047 *hasResult = true;
3048 *hasResultType = true;
3049 break;
3050 case SpvOpGroupSMax:
3051 *hasResult = true;
3052 *hasResultType = true;
3053 break;
3054 case SpvOpReadPipe:
3055 *hasResult = true;
3056 *hasResultType = true;
3057 break;
3058 case SpvOpWritePipe:
3059 *hasResult = true;
3060 *hasResultType = true;
3061 break;
3062 case SpvOpReservedReadPipe:
3063 *hasResult = true;
3064 *hasResultType = true;
3065 break;
3066 case SpvOpReservedWritePipe:
3067 *hasResult = true;
3068 *hasResultType = true;
3069 break;
3070 case SpvOpReserveReadPipePackets:
3071 *hasResult = true;
3072 *hasResultType = true;
3073 break;
3074 case SpvOpReserveWritePipePackets:
3075 *hasResult = true;
3076 *hasResultType = true;
3077 break;
3078 case SpvOpCommitReadPipe:
3079 *hasResult = false;
3080 *hasResultType = false;
3081 break;
3082 case SpvOpCommitWritePipe:
3083 *hasResult = false;
3084 *hasResultType = false;
3085 break;
3086 case SpvOpIsValidReserveId:
3087 *hasResult = true;
3088 *hasResultType = true;
3089 break;
3090 case SpvOpGetNumPipePackets:
3091 *hasResult = true;
3092 *hasResultType = true;
3093 break;
3094 case SpvOpGetMaxPipePackets:
3095 *hasResult = true;
3096 *hasResultType = true;
3097 break;
3098 case SpvOpGroupReserveReadPipePackets:
3099 *hasResult = true;
3100 *hasResultType = true;
3101 break;
3102 case SpvOpGroupReserveWritePipePackets:
3103 *hasResult = true;
3104 *hasResultType = true;
3105 break;
3106 case SpvOpGroupCommitReadPipe:
3107 *hasResult = false;
3108 *hasResultType = false;
3109 break;
3110 case SpvOpGroupCommitWritePipe:
3111 *hasResult = false;
3112 *hasResultType = false;
3113 break;
3114 case SpvOpEnqueueMarker:
3115 *hasResult = true;
3116 *hasResultType = true;
3117 break;
3118 case SpvOpEnqueueKernel:
3119 *hasResult = true;
3120 *hasResultType = true;
3121 break;
3122 case SpvOpGetKernelNDrangeSubGroupCount:
3123 *hasResult = true;
3124 *hasResultType = true;
3125 break;
3126 case SpvOpGetKernelNDrangeMaxSubGroupSize:
3127 *hasResult = true;
3128 *hasResultType = true;
3129 break;
3130 case SpvOpGetKernelWorkGroupSize:
3131 *hasResult = true;
3132 *hasResultType = true;
3133 break;
3134 case SpvOpGetKernelPreferredWorkGroupSizeMultiple:
3135 *hasResult = true;
3136 *hasResultType = true;
3137 break;
3138 case SpvOpRetainEvent:
3139 *hasResult = false;
3140 *hasResultType = false;
3141 break;
3142 case SpvOpReleaseEvent:
3143 *hasResult = false;
3144 *hasResultType = false;
3145 break;
3146 case SpvOpCreateUserEvent:
3147 *hasResult = true;
3148 *hasResultType = true;
3149 break;
3150 case SpvOpIsValidEvent:
3151 *hasResult = true;
3152 *hasResultType = true;
3153 break;
3154 case SpvOpSetUserEventStatus:
3155 *hasResult = false;
3156 *hasResultType = false;
3157 break;
3158 case SpvOpCaptureEventProfilingInfo:
3159 *hasResult = false;
3160 *hasResultType = false;
3161 break;
3162 case SpvOpGetDefaultQueue:
3163 *hasResult = true;
3164 *hasResultType = true;
3165 break;
3166 case SpvOpBuildNDRange:
3167 *hasResult = true;
3168 *hasResultType = true;
3169 break;
3170 case SpvOpImageSparseSampleImplicitLod:
3171 *hasResult = true;
3172 *hasResultType = true;
3173 break;
3174 case SpvOpImageSparseSampleExplicitLod:
3175 *hasResult = true;
3176 *hasResultType = true;
3177 break;
3178 case SpvOpImageSparseSampleDrefImplicitLod:
3179 *hasResult = true;
3180 *hasResultType = true;
3181 break;
3182 case SpvOpImageSparseSampleDrefExplicitLod:
3183 *hasResult = true;
3184 *hasResultType = true;
3185 break;
3186 case SpvOpImageSparseSampleProjImplicitLod:
3187 *hasResult = true;
3188 *hasResultType = true;
3189 break;
3190 case SpvOpImageSparseSampleProjExplicitLod:
3191 *hasResult = true;
3192 *hasResultType = true;
3193 break;
3194 case SpvOpImageSparseSampleProjDrefImplicitLod:
3195 *hasResult = true;
3196 *hasResultType = true;
3197 break;
3198 case SpvOpImageSparseSampleProjDrefExplicitLod:
3199 *hasResult = true;
3200 *hasResultType = true;
3201 break;
3202 case SpvOpImageSparseFetch:
3203 *hasResult = true;
3204 *hasResultType = true;
3205 break;
3206 case SpvOpImageSparseGather:
3207 *hasResult = true;
3208 *hasResultType = true;
3209 break;
3210 case SpvOpImageSparseDrefGather:
3211 *hasResult = true;
3212 *hasResultType = true;
3213 break;
3214 case SpvOpImageSparseTexelsResident:
3215 *hasResult = true;
3216 *hasResultType = true;
3217 break;
3218 case SpvOpNoLine:
3219 *hasResult = false;
3220 *hasResultType = false;
3221 break;
3222 case SpvOpAtomicFlagTestAndSet:
3223 *hasResult = true;
3224 *hasResultType = true;
3225 break;
3226 case SpvOpAtomicFlagClear:
3227 *hasResult = false;
3228 *hasResultType = false;
3229 break;
3230 case SpvOpImageSparseRead:
3231 *hasResult = true;
3232 *hasResultType = true;
3233 break;
3234 case SpvOpSizeOf:
3235 *hasResult = true;
3236 *hasResultType = true;
3237 break;
3238 case SpvOpTypePipeStorage:
3239 *hasResult = true;
3240 *hasResultType = false;
3241 break;
3242 case SpvOpConstantPipeStorage:
3243 *hasResult = true;
3244 *hasResultType = true;
3245 break;
3246 case SpvOpCreatePipeFromPipeStorage:
3247 *hasResult = true;
3248 *hasResultType = true;
3249 break;
3250 case SpvOpGetKernelLocalSizeForSubgroupCount:
3251 *hasResult = true;
3252 *hasResultType = true;
3253 break;
3254 case SpvOpGetKernelMaxNumSubgroups:
3255 *hasResult = true;
3256 *hasResultType = true;
3257 break;
3258 case SpvOpTypeNamedBarrier:
3259 *hasResult = true;
3260 *hasResultType = false;
3261 break;
3262 case SpvOpNamedBarrierInitialize:
3263 *hasResult = true;
3264 *hasResultType = true;
3265 break;
3266 case SpvOpMemoryNamedBarrier:
3267 *hasResult = false;
3268 *hasResultType = false;
3269 break;
3270 case SpvOpModuleProcessed:
3271 *hasResult = false;
3272 *hasResultType = false;
3273 break;
3274 case SpvOpExecutionModeId:
3275 *hasResult = false;
3276 *hasResultType = false;
3277 break;
3278 case SpvOpDecorateId:
3279 *hasResult = false;
3280 *hasResultType = false;
3281 break;
3282 case SpvOpGroupNonUniformElect:
3283 *hasResult = true;
3284 *hasResultType = true;
3285 break;
3286 case SpvOpGroupNonUniformAll:
3287 *hasResult = true;
3288 *hasResultType = true;
3289 break;
3290 case SpvOpGroupNonUniformAny:
3291 *hasResult = true;
3292 *hasResultType = true;
3293 break;
3294 case SpvOpGroupNonUniformAllEqual:
3295 *hasResult = true;
3296 *hasResultType = true;
3297 break;
3298 case SpvOpGroupNonUniformBroadcast:
3299 *hasResult = true;
3300 *hasResultType = true;
3301 break;
3302 case SpvOpGroupNonUniformBroadcastFirst:
3303 *hasResult = true;
3304 *hasResultType = true;
3305 break;
3306 case SpvOpGroupNonUniformBallot:
3307 *hasResult = true;
3308 *hasResultType = true;
3309 break;
3310 case SpvOpGroupNonUniformInverseBallot:
3311 *hasResult = true;
3312 *hasResultType = true;
3313 break;
3314 case SpvOpGroupNonUniformBallotBitExtract:
3315 *hasResult = true;
3316 *hasResultType = true;
3317 break;
3318 case SpvOpGroupNonUniformBallotBitCount:
3319 *hasResult = true;
3320 *hasResultType = true;
3321 break;
3322 case SpvOpGroupNonUniformBallotFindLSB:
3323 *hasResult = true;
3324 *hasResultType = true;
3325 break;
3326 case SpvOpGroupNonUniformBallotFindMSB:
3327 *hasResult = true;
3328 *hasResultType = true;
3329 break;
3330 case SpvOpGroupNonUniformShuffle:
3331 *hasResult = true;
3332 *hasResultType = true;
3333 break;
3334 case SpvOpGroupNonUniformShuffleXor:
3335 *hasResult = true;
3336 *hasResultType = true;
3337 break;
3338 case SpvOpGroupNonUniformShuffleUp:
3339 *hasResult = true;
3340 *hasResultType = true;
3341 break;
3342 case SpvOpGroupNonUniformShuffleDown:
3343 *hasResult = true;
3344 *hasResultType = true;
3345 break;
3346 case SpvOpGroupNonUniformIAdd:
3347 *hasResult = true;
3348 *hasResultType = true;
3349 break;
3350 case SpvOpGroupNonUniformFAdd:
3351 *hasResult = true;
3352 *hasResultType = true;
3353 break;
3354 case SpvOpGroupNonUniformIMul:
3355 *hasResult = true;
3356 *hasResultType = true;
3357 break;
3358 case SpvOpGroupNonUniformFMul:
3359 *hasResult = true;
3360 *hasResultType = true;
3361 break;
3362 case SpvOpGroupNonUniformSMin:
3363 *hasResult = true;
3364 *hasResultType = true;
3365 break;
3366 case SpvOpGroupNonUniformUMin:
3367 *hasResult = true;
3368 *hasResultType = true;
3369 break;
3370 case SpvOpGroupNonUniformFMin:
3371 *hasResult = true;
3372 *hasResultType = true;
3373 break;
3374 case SpvOpGroupNonUniformSMax:
3375 *hasResult = true;
3376 *hasResultType = true;
3377 break;
3378 case SpvOpGroupNonUniformUMax:
3379 *hasResult = true;
3380 *hasResultType = true;
3381 break;
3382 case SpvOpGroupNonUniformFMax:
3383 *hasResult = true;
3384 *hasResultType = true;
3385 break;
3386 case SpvOpGroupNonUniformBitwiseAnd:
3387 *hasResult = true;
3388 *hasResultType = true;
3389 break;
3390 case SpvOpGroupNonUniformBitwiseOr:
3391 *hasResult = true;
3392 *hasResultType = true;
3393 break;
3394 case SpvOpGroupNonUniformBitwiseXor:
3395 *hasResult = true;
3396 *hasResultType = true;
3397 break;
3398 case SpvOpGroupNonUniformLogicalAnd:
3399 *hasResult = true;
3400 *hasResultType = true;
3401 break;
3402 case SpvOpGroupNonUniformLogicalOr:
3403 *hasResult = true;
3404 *hasResultType = true;
3405 break;
3406 case SpvOpGroupNonUniformLogicalXor:
3407 *hasResult = true;
3408 *hasResultType = true;
3409 break;
3410 case SpvOpGroupNonUniformQuadBroadcast:
3411 *hasResult = true;
3412 *hasResultType = true;
3413 break;
3414 case SpvOpGroupNonUniformQuadSwap:
3415 *hasResult = true;
3416 *hasResultType = true;
3417 break;
3418 case SpvOpCopyLogical:
3419 *hasResult = true;
3420 *hasResultType = true;
3421 break;
3422 case SpvOpPtrEqual:
3423 *hasResult = true;
3424 *hasResultType = true;
3425 break;
3426 case SpvOpPtrNotEqual:
3427 *hasResult = true;
3428 *hasResultType = true;
3429 break;
3430 case SpvOpPtrDiff:
3431 *hasResult = true;
3432 *hasResultType = true;
3433 break;
3434 case SpvOpColorAttachmentReadEXT:
3435 *hasResult = true;
3436 *hasResultType = true;
3437 break;
3438 case SpvOpDepthAttachmentReadEXT:
3439 *hasResult = true;
3440 *hasResultType = true;
3441 break;
3442 case SpvOpStencilAttachmentReadEXT:
3443 *hasResult = true;
3444 *hasResultType = true;
3445 break;
3446 case SpvOpTerminateInvocation:
3447 *hasResult = false;
3448 *hasResultType = false;
3449 break;
3450 case SpvOpSubgroupBallotKHR:
3451 *hasResult = true;
3452 *hasResultType = true;
3453 break;
3454 case SpvOpSubgroupFirstInvocationKHR:
3455 *hasResult = true;
3456 *hasResultType = true;
3457 break;
3458 case SpvOpSubgroupAllKHR:
3459 *hasResult = true;
3460 *hasResultType = true;
3461 break;
3462 case SpvOpSubgroupAnyKHR:
3463 *hasResult = true;
3464 *hasResultType = true;
3465 break;
3466 case SpvOpSubgroupAllEqualKHR:
3467 *hasResult = true;
3468 *hasResultType = true;
3469 break;
3470 case SpvOpGroupNonUniformRotateKHR:
3471 *hasResult = true;
3472 *hasResultType = true;
3473 break;
3474 case SpvOpSubgroupReadInvocationKHR:
3475 *hasResult = true;
3476 *hasResultType = true;
3477 break;
3478 case SpvOpTraceRayKHR:
3479 *hasResult = false;
3480 *hasResultType = false;
3481 break;
3482 case SpvOpExecuteCallableKHR:
3483 *hasResult = false;
3484 *hasResultType = false;
3485 break;
3486 case SpvOpConvertUToAccelerationStructureKHR:
3487 *hasResult = true;
3488 *hasResultType = true;
3489 break;
3490 case SpvOpIgnoreIntersectionKHR:
3491 *hasResult = false;
3492 *hasResultType = false;
3493 break;
3494 case SpvOpTerminateRayKHR:
3495 *hasResult = false;
3496 *hasResultType = false;
3497 break;
3498 case SpvOpSDot:
3499 *hasResult = true;
3500 *hasResultType = true;
3501 break;
3502 case SpvOpUDot:
3503 *hasResult = true;
3504 *hasResultType = true;
3505 break;
3506 case SpvOpSUDot:
3507 *hasResult = true;
3508 *hasResultType = true;
3509 break;
3510 case SpvOpSDotAccSat:
3511 *hasResult = true;
3512 *hasResultType = true;
3513 break;
3514 case SpvOpUDotAccSat:
3515 *hasResult = true;
3516 *hasResultType = true;
3517 break;
3518 case SpvOpSUDotAccSat:
3519 *hasResult = true;
3520 *hasResultType = true;
3521 break;
3522 case SpvOpTypeCooperativeMatrixKHR:
3523 *hasResult = true;
3524 *hasResultType = false;
3525 break;
3526 case SpvOpCooperativeMatrixLoadKHR:
3527 *hasResult = true;
3528 *hasResultType = true;
3529 break;
3530 case SpvOpCooperativeMatrixStoreKHR:
3531 *hasResult = false;
3532 *hasResultType = false;
3533 break;
3534 case SpvOpCooperativeMatrixMulAddKHR:
3535 *hasResult = true;
3536 *hasResultType = true;
3537 break;
3538 case SpvOpCooperativeMatrixLengthKHR:
3539 *hasResult = true;
3540 *hasResultType = true;
3541 break;
3542 case SpvOpTypeRayQueryKHR:
3543 *hasResult = true;
3544 *hasResultType = false;
3545 break;
3546 case SpvOpRayQueryInitializeKHR:
3547 *hasResult = false;
3548 *hasResultType = false;
3549 break;
3550 case SpvOpRayQueryTerminateKHR:
3551 *hasResult = false;
3552 *hasResultType = false;
3553 break;
3554 case SpvOpRayQueryGenerateIntersectionKHR:
3555 *hasResult = false;
3556 *hasResultType = false;
3557 break;
3558 case SpvOpRayQueryConfirmIntersectionKHR:
3559 *hasResult = false;
3560 *hasResultType = false;
3561 break;
3562 case SpvOpRayQueryProceedKHR:
3563 *hasResult = true;
3564 *hasResultType = true;
3565 break;
3566 case SpvOpRayQueryGetIntersectionTypeKHR:
3567 *hasResult = true;
3568 *hasResultType = true;
3569 break;
3570 case SpvOpImageSampleWeightedQCOM:
3571 *hasResult = true;
3572 *hasResultType = true;
3573 break;
3574 case SpvOpImageBoxFilterQCOM:
3575 *hasResult = true;
3576 *hasResultType = true;
3577 break;
3578 case SpvOpImageBlockMatchSSDQCOM:
3579 *hasResult = true;
3580 *hasResultType = true;
3581 break;
3582 case SpvOpImageBlockMatchSADQCOM:
3583 *hasResult = true;
3584 *hasResultType = true;
3585 break;
3586 case SpvOpGroupIAddNonUniformAMD:
3587 *hasResult = true;
3588 *hasResultType = true;
3589 break;
3590 case SpvOpGroupFAddNonUniformAMD:
3591 *hasResult = true;
3592 *hasResultType = true;
3593 break;
3594 case SpvOpGroupFMinNonUniformAMD:
3595 *hasResult = true;
3596 *hasResultType = true;
3597 break;
3598 case SpvOpGroupUMinNonUniformAMD:
3599 *hasResult = true;
3600 *hasResultType = true;
3601 break;
3602 case SpvOpGroupSMinNonUniformAMD:
3603 *hasResult = true;
3604 *hasResultType = true;
3605 break;
3606 case SpvOpGroupFMaxNonUniformAMD:
3607 *hasResult = true;
3608 *hasResultType = true;
3609 break;
3610 case SpvOpGroupUMaxNonUniformAMD:
3611 *hasResult = true;
3612 *hasResultType = true;
3613 break;
3614 case SpvOpGroupSMaxNonUniformAMD:
3615 *hasResult = true;
3616 *hasResultType = true;
3617 break;
3618 case SpvOpFragmentMaskFetchAMD:
3619 *hasResult = true;
3620 *hasResultType = true;
3621 break;
3622 case SpvOpFragmentFetchAMD:
3623 *hasResult = true;
3624 *hasResultType = true;
3625 break;
3626 case SpvOpReadClockKHR:
3627 *hasResult = true;
3628 *hasResultType = true;
3629 break;
3630 case SpvOpHitObjectRecordHitMotionNV:
3631 *hasResult = false;
3632 *hasResultType = false;
3633 break;
3634 case SpvOpHitObjectRecordHitWithIndexMotionNV:
3635 *hasResult = false;
3636 *hasResultType = false;
3637 break;
3638 case SpvOpHitObjectRecordMissMotionNV:
3639 *hasResult = false;
3640 *hasResultType = false;
3641 break;
3642 case SpvOpHitObjectGetWorldToObjectNV:
3643 *hasResult = true;
3644 *hasResultType = true;
3645 break;
3646 case SpvOpHitObjectGetObjectToWorldNV:
3647 *hasResult = true;
3648 *hasResultType = true;
3649 break;
3650 case SpvOpHitObjectGetObjectRayDirectionNV:
3651 *hasResult = true;
3652 *hasResultType = true;
3653 break;
3654 case SpvOpHitObjectGetObjectRayOriginNV:
3655 *hasResult = true;
3656 *hasResultType = true;
3657 break;
3658 case SpvOpHitObjectTraceRayMotionNV:
3659 *hasResult = false;
3660 *hasResultType = false;
3661 break;
3662 case SpvOpHitObjectGetShaderRecordBufferHandleNV:
3663 *hasResult = true;
3664 *hasResultType = true;
3665 break;
3666 case SpvOpHitObjectGetShaderBindingTableRecordIndexNV:
3667 *hasResult = true;
3668 *hasResultType = true;
3669 break;
3670 case SpvOpHitObjectRecordEmptyNV:
3671 *hasResult = false;
3672 *hasResultType = false;
3673 break;
3674 case SpvOpHitObjectTraceRayNV:
3675 *hasResult = false;
3676 *hasResultType = false;
3677 break;
3678 case SpvOpHitObjectRecordHitNV:
3679 *hasResult = false;
3680 *hasResultType = false;
3681 break;
3682 case SpvOpHitObjectRecordHitWithIndexNV:
3683 *hasResult = false;
3684 *hasResultType = false;
3685 break;
3686 case SpvOpHitObjectRecordMissNV:
3687 *hasResult = false;
3688 *hasResultType = false;
3689 break;
3690 case SpvOpHitObjectExecuteShaderNV:
3691 *hasResult = false;
3692 *hasResultType = false;
3693 break;
3694 case SpvOpHitObjectGetCurrentTimeNV:
3695 *hasResult = true;
3696 *hasResultType = true;
3697 break;
3698 case SpvOpHitObjectGetAttributesNV:
3699 *hasResult = false;
3700 *hasResultType = false;
3701 break;
3702 case SpvOpHitObjectGetHitKindNV:
3703 *hasResult = true;
3704 *hasResultType = true;
3705 break;
3706 case SpvOpHitObjectGetPrimitiveIndexNV:
3707 *hasResult = true;
3708 *hasResultType = true;
3709 break;
3710 case SpvOpHitObjectGetGeometryIndexNV:
3711 *hasResult = true;
3712 *hasResultType = true;
3713 break;
3714 case SpvOpHitObjectGetInstanceIdNV:
3715 *hasResult = true;
3716 *hasResultType = true;
3717 break;
3718 case SpvOpHitObjectGetInstanceCustomIndexNV:
3719 *hasResult = true;
3720 *hasResultType = true;
3721 break;
3722 case SpvOpHitObjectGetWorldRayDirectionNV:
3723 *hasResult = true;
3724 *hasResultType = true;
3725 break;
3726 case SpvOpHitObjectGetWorldRayOriginNV:
3727 *hasResult = true;
3728 *hasResultType = true;
3729 break;
3730 case SpvOpHitObjectGetRayTMaxNV:
3731 *hasResult = true;
3732 *hasResultType = true;
3733 break;
3734 case SpvOpHitObjectGetRayTMinNV:
3735 *hasResult = true;
3736 *hasResultType = true;
3737 break;
3738 case SpvOpHitObjectIsEmptyNV:
3739 *hasResult = true;
3740 *hasResultType = true;
3741 break;
3742 case SpvOpHitObjectIsHitNV:
3743 *hasResult = true;
3744 *hasResultType = true;
3745 break;
3746 case SpvOpHitObjectIsMissNV:
3747 *hasResult = true;
3748 *hasResultType = true;
3749 break;
3750 case SpvOpReorderThreadWithHitObjectNV:
3751 *hasResult = false;
3752 *hasResultType = false;
3753 break;
3754 case SpvOpReorderThreadWithHintNV:
3755 *hasResult = false;
3756 *hasResultType = false;
3757 break;
3758 case SpvOpTypeHitObjectNV:
3759 *hasResult = true;
3760 *hasResultType = false;
3761 break;
3762 case SpvOpImageSampleFootprintNV:
3763 *hasResult = true;
3764 *hasResultType = true;
3765 break;
3766 case SpvOpEmitMeshTasksEXT:
3767 *hasResult = false;
3768 *hasResultType = false;
3769 break;
3770 case SpvOpSetMeshOutputsEXT:
3771 *hasResult = false;
3772 *hasResultType = false;
3773 break;
3774 case SpvOpGroupNonUniformPartitionNV:
3775 *hasResult = true;
3776 *hasResultType = true;
3777 break;
3778 case SpvOpWritePackedPrimitiveIndices4x8NV:
3779 *hasResult = false;
3780 *hasResultType = false;
3781 break;
3782 case SpvOpReportIntersectionNV:
3783 *hasResult = true;
3784 *hasResultType = true;
3785 break;
3786 case SpvOpIgnoreIntersectionNV:
3787 *hasResult = false;
3788 *hasResultType = false;
3789 break;
3790 case SpvOpTerminateRayNV:
3791 *hasResult = false;
3792 *hasResultType = false;
3793 break;
3794 case SpvOpTraceNV:
3795 *hasResult = false;
3796 *hasResultType = false;
3797 break;
3798 case SpvOpTraceMotionNV:
3799 *hasResult = false;
3800 *hasResultType = false;
3801 break;
3802 case SpvOpTraceRayMotionNV:
3803 *hasResult = false;
3804 *hasResultType = false;
3805 break;
3806 case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR:
3807 *hasResult = true;
3808 *hasResultType = true;
3809 break;
3810 case SpvOpTypeAccelerationStructureNV:
3811 *hasResult = true;
3812 *hasResultType = false;
3813 break;
3814 case SpvOpExecuteCallableNV:
3815 *hasResult = false;
3816 *hasResultType = false;
3817 break;
3818 case SpvOpTypeCooperativeMatrixNV:
3819 *hasResult = true;
3820 *hasResultType = false;
3821 break;
3822 case SpvOpCooperativeMatrixLoadNV:
3823 *hasResult = true;
3824 *hasResultType = true;
3825 break;
3826 case SpvOpCooperativeMatrixStoreNV:
3827 *hasResult = false;
3828 *hasResultType = false;
3829 break;
3830 case SpvOpCooperativeMatrixMulAddNV:
3831 *hasResult = true;
3832 *hasResultType = true;
3833 break;
3834 case SpvOpCooperativeMatrixLengthNV:
3835 *hasResult = true;
3836 *hasResultType = true;
3837 break;
3838 case SpvOpBeginInvocationInterlockEXT:
3839 *hasResult = false;
3840 *hasResultType = false;
3841 break;
3842 case SpvOpEndInvocationInterlockEXT:
3843 *hasResult = false;
3844 *hasResultType = false;
3845 break;
3846 case SpvOpDemoteToHelperInvocation:
3847 *hasResult = false;
3848 *hasResultType = false;
3849 break;
3850 case SpvOpIsHelperInvocationEXT:
3851 *hasResult = true;
3852 *hasResultType = true;
3853 break;
3854 case SpvOpConvertUToImageNV:
3855 *hasResult = true;
3856 *hasResultType = true;
3857 break;
3858 case SpvOpConvertUToSamplerNV:
3859 *hasResult = true;
3860 *hasResultType = true;
3861 break;
3862 case SpvOpConvertImageToUNV:
3863 *hasResult = true;
3864 *hasResultType = true;
3865 break;
3866 case SpvOpConvertSamplerToUNV:
3867 *hasResult = true;
3868 *hasResultType = true;
3869 break;
3870 case SpvOpConvertUToSampledImageNV:
3871 *hasResult = true;
3872 *hasResultType = true;
3873 break;
3874 case SpvOpConvertSampledImageToUNV:
3875 *hasResult = true;
3876 *hasResultType = true;
3877 break;
3878 case SpvOpSamplerImageAddressingModeNV:
3879 *hasResult = false;
3880 *hasResultType = false;
3881 break;
3882 case SpvOpSubgroupShuffleINTEL:
3883 *hasResult = true;
3884 *hasResultType = true;
3885 break;
3886 case SpvOpSubgroupShuffleDownINTEL:
3887 *hasResult = true;
3888 *hasResultType = true;
3889 break;
3890 case SpvOpSubgroupShuffleUpINTEL:
3891 *hasResult = true;
3892 *hasResultType = true;
3893 break;
3894 case SpvOpSubgroupShuffleXorINTEL:
3895 *hasResult = true;
3896 *hasResultType = true;
3897 break;
3898 case SpvOpSubgroupBlockReadINTEL:
3899 *hasResult = true;
3900 *hasResultType = true;
3901 break;
3902 case SpvOpSubgroupBlockWriteINTEL:
3903 *hasResult = false;
3904 *hasResultType = false;
3905 break;
3906 case SpvOpSubgroupImageBlockReadINTEL:
3907 *hasResult = true;
3908 *hasResultType = true;
3909 break;
3910 case SpvOpSubgroupImageBlockWriteINTEL:
3911 *hasResult = false;
3912 *hasResultType = false;
3913 break;
3914 case SpvOpSubgroupImageMediaBlockReadINTEL:
3915 *hasResult = true;
3916 *hasResultType = true;
3917 break;
3918 case SpvOpSubgroupImageMediaBlockWriteINTEL:
3919 *hasResult = false;
3920 *hasResultType = false;
3921 break;
3922 case SpvOpUCountLeadingZerosINTEL:
3923 *hasResult = true;
3924 *hasResultType = true;
3925 break;
3926 case SpvOpUCountTrailingZerosINTEL:
3927 *hasResult = true;
3928 *hasResultType = true;
3929 break;
3930 case SpvOpAbsISubINTEL:
3931 *hasResult = true;
3932 *hasResultType = true;
3933 break;
3934 case SpvOpAbsUSubINTEL:
3935 *hasResult = true;
3936 *hasResultType = true;
3937 break;
3938 case SpvOpIAddSatINTEL:
3939 *hasResult = true;
3940 *hasResultType = true;
3941 break;
3942 case SpvOpUAddSatINTEL:
3943 *hasResult = true;
3944 *hasResultType = true;
3945 break;
3946 case SpvOpIAverageINTEL:
3947 *hasResult = true;
3948 *hasResultType = true;
3949 break;
3950 case SpvOpUAverageINTEL:
3951 *hasResult = true;
3952 *hasResultType = true;
3953 break;
3954 case SpvOpIAverageRoundedINTEL:
3955 *hasResult = true;
3956 *hasResultType = true;
3957 break;
3958 case SpvOpUAverageRoundedINTEL:
3959 *hasResult = true;
3960 *hasResultType = true;
3961 break;
3962 case SpvOpISubSatINTEL:
3963 *hasResult = true;
3964 *hasResultType = true;
3965 break;
3966 case SpvOpUSubSatINTEL:
3967 *hasResult = true;
3968 *hasResultType = true;
3969 break;
3970 case SpvOpIMul32x16INTEL:
3971 *hasResult = true;
3972 *hasResultType = true;
3973 break;
3974 case SpvOpUMul32x16INTEL:
3975 *hasResult = true;
3976 *hasResultType = true;
3977 break;
3978 case SpvOpConstantFunctionPointerINTEL:
3979 *hasResult = true;
3980 *hasResultType = true;
3981 break;
3982 case SpvOpFunctionPointerCallINTEL:
3983 *hasResult = true;
3984 *hasResultType = true;
3985 break;
3986 case SpvOpAsmTargetINTEL:
3987 *hasResult = true;
3988 *hasResultType = true;
3989 break;
3990 case SpvOpAsmINTEL:
3991 *hasResult = true;
3992 *hasResultType = true;
3993 break;
3994 case SpvOpAsmCallINTEL:
3995 *hasResult = true;
3996 *hasResultType = true;
3997 break;
3998 case SpvOpAtomicFMinEXT:
3999 *hasResult = true;
4000 *hasResultType = true;
4001 break;
4002 case SpvOpAtomicFMaxEXT:
4003 *hasResult = true;
4004 *hasResultType = true;
4005 break;
4006 case SpvOpAssumeTrueKHR:
4007 *hasResult = false;
4008 *hasResultType = false;
4009 break;
4010 case SpvOpExpectKHR:
4011 *hasResult = true;
4012 *hasResultType = true;
4013 break;
4014 case SpvOpDecorateString:
4015 *hasResult = false;
4016 *hasResultType = false;
4017 break;
4018 case SpvOpMemberDecorateString:
4019 *hasResult = false;
4020 *hasResultType = false;
4021 break;
4022 case SpvOpVmeImageINTEL:
4023 *hasResult = true;
4024 *hasResultType = true;
4025 break;
4026 case SpvOpTypeVmeImageINTEL:
4027 *hasResult = true;
4028 *hasResultType = false;
4029 break;
4030 case SpvOpTypeAvcImePayloadINTEL:
4031 *hasResult = true;
4032 *hasResultType = false;
4033 break;
4034 case SpvOpTypeAvcRefPayloadINTEL:
4035 *hasResult = true;
4036 *hasResultType = false;
4037 break;
4038 case SpvOpTypeAvcSicPayloadINTEL:
4039 *hasResult = true;
4040 *hasResultType = false;
4041 break;
4042 case SpvOpTypeAvcMcePayloadINTEL:
4043 *hasResult = true;
4044 *hasResultType = false;
4045 break;
4046 case SpvOpTypeAvcMceResultINTEL:
4047 *hasResult = true;
4048 *hasResultType = false;
4049 break;
4050 case SpvOpTypeAvcImeResultINTEL:
4051 *hasResult = true;
4052 *hasResultType = false;
4053 break;
4054 case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL:
4055 *hasResult = true;
4056 *hasResultType = false;
4057 break;
4058 case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL:
4059 *hasResult = true;
4060 *hasResultType = false;
4061 break;
4062 case SpvOpTypeAvcImeSingleReferenceStreaminINTEL:
4063 *hasResult = true;
4064 *hasResultType = false;
4065 break;
4066 case SpvOpTypeAvcImeDualReferenceStreaminINTEL:
4067 *hasResult = true;
4068 *hasResultType = false;
4069 break;
4070 case SpvOpTypeAvcRefResultINTEL:
4071 *hasResult = true;
4072 *hasResultType = false;
4073 break;
4074 case SpvOpTypeAvcSicResultINTEL:
4075 *hasResult = true;
4076 *hasResultType = false;
4077 break;
4078 case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL:
4079 *hasResult = true;
4080 *hasResultType = true;
4081 break;
4082 case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL:
4083 *hasResult = true;
4084 *hasResultType = true;
4085 break;
4086 case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL:
4087 *hasResult = true;
4088 *hasResultType = true;
4089 break;
4090 case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL:
4091 *hasResult = true;
4092 *hasResultType = true;
4093 break;
4094 case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL:
4095 *hasResult = true;
4096 *hasResultType = true;
4097 break;
4098 case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL:
4099 *hasResult = true;
4100 *hasResultType = true;
4101 break;
4102 case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL:
4103 *hasResult = true;
4104 *hasResultType = true;
4105 break;
4106 case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL:
4107 *hasResult = true;
4108 *hasResultType = true;
4109 break;
4110 case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL:
4111 *hasResult = true;
4112 *hasResultType = true;
4113 break;
4114 case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL:
4115 *hasResult = true;
4116 *hasResultType = true;
4117 break;
4118 case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL:
4119 *hasResult = true;
4120 *hasResultType = true;
4121 break;
4122 case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL:
4123 *hasResult = true;
4124 *hasResultType = true;
4125 break;
4126 case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL:
4127 *hasResult = true;
4128 *hasResultType = true;
4129 break;
4130 case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL:
4131 *hasResult = true;
4132 *hasResultType = true;
4133 break;
4134 case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL:
4135 *hasResult = true;
4136 *hasResultType = true;
4137 break;
4138 case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL:
4139 *hasResult = true;
4140 *hasResultType = true;
4141 break;
4142 case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL:
4143 *hasResult = true;
4144 *hasResultType = true;
4145 break;
4146 case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL:
4147 *hasResult = true;
4148 *hasResultType = true;
4149 break;
4150 case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL:
4151 *hasResult = true;
4152 *hasResultType = true;
4153 break;
4154 case SpvOpSubgroupAvcMceConvertToImePayloadINTEL:
4155 *hasResult = true;
4156 *hasResultType = true;
4157 break;
4158 case SpvOpSubgroupAvcMceConvertToImeResultINTEL:
4159 *hasResult = true;
4160 *hasResultType = true;
4161 break;
4162 case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL:
4163 *hasResult = true;
4164 *hasResultType = true;
4165 break;
4166 case SpvOpSubgroupAvcMceConvertToRefResultINTEL:
4167 *hasResult = true;
4168 *hasResultType = true;
4169 break;
4170 case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL:
4171 *hasResult = true;
4172 *hasResultType = true;
4173 break;
4174 case SpvOpSubgroupAvcMceConvertToSicResultINTEL:
4175 *hasResult = true;
4176 *hasResultType = true;
4177 break;
4178 case SpvOpSubgroupAvcMceGetMotionVectorsINTEL:
4179 *hasResult = true;
4180 *hasResultType = true;
4181 break;
4182 case SpvOpSubgroupAvcMceGetInterDistortionsINTEL:
4183 *hasResult = true;
4184 *hasResultType = true;
4185 break;
4186 case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL:
4187 *hasResult = true;
4188 *hasResultType = true;
4189 break;
4190 case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL:
4191 *hasResult = true;
4192 *hasResultType = true;
4193 break;
4194 case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL:
4195 *hasResult = true;
4196 *hasResultType = true;
4197 break;
4198 case SpvOpSubgroupAvcMceGetInterDirectionsINTEL:
4199 *hasResult = true;
4200 *hasResultType = true;
4201 break;
4202 case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL:
4203 *hasResult = true;
4204 *hasResultType = true;
4205 break;
4206 case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL:
4207 *hasResult = true;
4208 *hasResultType = true;
4209 break;
4210 case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL:
4211 *hasResult = true;
4212 *hasResultType = true;
4213 break;
4214 case SpvOpSubgroupAvcImeInitializeINTEL:
4215 *hasResult = true;
4216 *hasResultType = true;
4217 break;
4218 case SpvOpSubgroupAvcImeSetSingleReferenceINTEL:
4219 *hasResult = true;
4220 *hasResultType = true;
4221 break;
4222 case SpvOpSubgroupAvcImeSetDualReferenceINTEL:
4223 *hasResult = true;
4224 *hasResultType = true;
4225 break;
4226 case SpvOpSubgroupAvcImeRefWindowSizeINTEL:
4227 *hasResult = true;
4228 *hasResultType = true;
4229 break;
4230 case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL:
4231 *hasResult = true;
4232 *hasResultType = true;
4233 break;
4234 case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL:
4235 *hasResult = true;
4236 *hasResultType = true;
4237 break;
4238 case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL:
4239 *hasResult = true;
4240 *hasResultType = true;
4241 break;
4242 case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL:
4243 *hasResult = true;
4244 *hasResultType = true;
4245 break;
4246 case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL:
4247 *hasResult = true;
4248 *hasResultType = true;
4249 break;
4250 case SpvOpSubgroupAvcImeSetWeightedSadINTEL:
4251 *hasResult = true;
4252 *hasResultType = true;
4253 break;
4254 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL:
4255 *hasResult = true;
4256 *hasResultType = true;
4257 break;
4258 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL:
4259 *hasResult = true;
4260 *hasResultType = true;
4261 break;
4262 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL:
4263 *hasResult = true;
4264 *hasResultType = true;
4265 break;
4266 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL:
4267 *hasResult = true;
4268 *hasResultType = true;
4269 break;
4270 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL:
4271 *hasResult = true;
4272 *hasResultType = true;
4273 break;
4274 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL:
4275 *hasResult = true;
4276 *hasResultType = true;
4277 break;
4278 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL:
4279 *hasResult = true;
4280 *hasResultType = true;
4281 break;
4282 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL:
4283 *hasResult = true;
4284 *hasResultType = true;
4285 break;
4286 case SpvOpSubgroupAvcImeConvertToMceResultINTEL:
4287 *hasResult = true;
4288 *hasResultType = true;
4289 break;
4290 case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL:
4291 *hasResult = true;
4292 *hasResultType = true;
4293 break;
4294 case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL:
4295 *hasResult = true;
4296 *hasResultType = true;
4297 break;
4298 case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL:
4299 *hasResult = true;
4300 *hasResultType = true;
4301 break;
4302 case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL:
4303 *hasResult = true;
4304 *hasResultType = true;
4305 break;
4306 case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL:
4307 *hasResult = true;
4308 *hasResultType = true;
4309 break;
4310 case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL:
4311 *hasResult = true;
4312 *hasResultType = true;
4313 break;
4314 case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL:
4315 *hasResult = true;
4316 *hasResultType = true;
4317 break;
4318 case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL:
4319 *hasResult = true;
4320 *hasResultType = true;
4321 break;
4322 case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL:
4323 *hasResult = true;
4324 *hasResultType = true;
4325 break;
4326 case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL:
4327 *hasResult = true;
4328 *hasResultType = true;
4329 break;
4330 case SpvOpSubgroupAvcImeGetBorderReachedINTEL:
4331 *hasResult = true;
4332 *hasResultType = true;
4333 break;
4334 case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL:
4335 *hasResult = true;
4336 *hasResultType = true;
4337 break;
4338 case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL:
4339 *hasResult = true;
4340 *hasResultType = true;
4341 break;
4342 case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL:
4343 *hasResult = true;
4344 *hasResultType = true;
4345 break;
4346 case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL:
4347 *hasResult = true;
4348 *hasResultType = true;
4349 break;
4350 case SpvOpSubgroupAvcFmeInitializeINTEL:
4351 *hasResult = true;
4352 *hasResultType = true;
4353 break;
4354 case SpvOpSubgroupAvcBmeInitializeINTEL:
4355 *hasResult = true;
4356 *hasResultType = true;
4357 break;
4358 case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL:
4359 *hasResult = true;
4360 *hasResultType = true;
4361 break;
4362 case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL:
4363 *hasResult = true;
4364 *hasResultType = true;
4365 break;
4366 case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL:
4367 *hasResult = true;
4368 *hasResultType = true;
4369 break;
4370 case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL:
4371 *hasResult = true;
4372 *hasResultType = true;
4373 break;
4374 case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL:
4375 *hasResult = true;
4376 *hasResultType = true;
4377 break;
4378 case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL:
4379 *hasResult = true;
4380 *hasResultType = true;
4381 break;
4382 case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL:
4383 *hasResult = true;
4384 *hasResultType = true;
4385 break;
4386 case SpvOpSubgroupAvcRefConvertToMceResultINTEL:
4387 *hasResult = true;
4388 *hasResultType = true;
4389 break;
4390 case SpvOpSubgroupAvcSicInitializeINTEL:
4391 *hasResult = true;
4392 *hasResultType = true;
4393 break;
4394 case SpvOpSubgroupAvcSicConfigureSkcINTEL:
4395 *hasResult = true;
4396 *hasResultType = true;
4397 break;
4398 case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL:
4399 *hasResult = true;
4400 *hasResultType = true;
4401 break;
4402 case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL:
4403 *hasResult = true;
4404 *hasResultType = true;
4405 break;
4406 case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL:
4407 *hasResult = true;
4408 *hasResultType = true;
4409 break;
4410 case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL:
4411 *hasResult = true;
4412 *hasResultType = true;
4413 break;
4414 case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL:
4415 *hasResult = true;
4416 *hasResultType = true;
4417 break;
4418 case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL:
4419 *hasResult = true;
4420 *hasResultType = true;
4421 break;
4422 case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL:
4423 *hasResult = true;
4424 *hasResultType = true;
4425 break;
4426 case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL:
4427 *hasResult = true;
4428 *hasResultType = true;
4429 break;
4430 case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL:
4431 *hasResult = true;
4432 *hasResultType = true;
4433 break;
4434 case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL:
4435 *hasResult = true;
4436 *hasResultType = true;
4437 break;
4438 case SpvOpSubgroupAvcSicEvaluateIpeINTEL:
4439 *hasResult = true;
4440 *hasResultType = true;
4441 break;
4442 case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL:
4443 *hasResult = true;
4444 *hasResultType = true;
4445 break;
4446 case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL:
4447 *hasResult = true;
4448 *hasResultType = true;
4449 break;
4450 case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL:
4451 *hasResult = true;
4452 *hasResultType = true;
4453 break;
4454 case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL:
4455 *hasResult = true;
4456 *hasResultType = true;
4457 break;
4458 case SpvOpSubgroupAvcSicConvertToMceResultINTEL:
4459 *hasResult = true;
4460 *hasResultType = true;
4461 break;
4462 case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL:
4463 *hasResult = true;
4464 *hasResultType = true;
4465 break;
4466 case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL:
4467 *hasResult = true;
4468 *hasResultType = true;
4469 break;
4470 case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL:
4471 *hasResult = true;
4472 *hasResultType = true;
4473 break;
4474 case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL:
4475 *hasResult = true;
4476 *hasResultType = true;
4477 break;
4478 case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL:
4479 *hasResult = true;
4480 *hasResultType = true;
4481 break;
4482 case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL:
4483 *hasResult = true;
4484 *hasResultType = true;
4485 break;
4486 case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL:
4487 *hasResult = true;
4488 *hasResultType = true;
4489 break;
4490 case SpvOpSubgroupAvcSicGetInterRawSadsINTEL:
4491 *hasResult = true;
4492 *hasResultType = true;
4493 break;
4494 case SpvOpVariableLengthArrayINTEL:
4495 *hasResult = true;
4496 *hasResultType = true;
4497 break;
4498 case SpvOpSaveMemoryINTEL:
4499 *hasResult = true;
4500 *hasResultType = true;
4501 break;
4502 case SpvOpRestoreMemoryINTEL:
4503 *hasResult = false;
4504 *hasResultType = false;
4505 break;
4506 case SpvOpArbitraryFloatSinCosPiINTEL:
4507 *hasResult = true;
4508 *hasResultType = true;
4509 break;
4510 case SpvOpArbitraryFloatCastINTEL:
4511 *hasResult = true;
4512 *hasResultType = true;
4513 break;
4514 case SpvOpArbitraryFloatCastFromIntINTEL:
4515 *hasResult = true;
4516 *hasResultType = true;
4517 break;
4518 case SpvOpArbitraryFloatCastToIntINTEL:
4519 *hasResult = true;
4520 *hasResultType = true;
4521 break;
4522 case SpvOpArbitraryFloatAddINTEL:
4523 *hasResult = true;
4524 *hasResultType = true;
4525 break;
4526 case SpvOpArbitraryFloatSubINTEL:
4527 *hasResult = true;
4528 *hasResultType = true;
4529 break;
4530 case SpvOpArbitraryFloatMulINTEL:
4531 *hasResult = true;
4532 *hasResultType = true;
4533 break;
4534 case SpvOpArbitraryFloatDivINTEL:
4535 *hasResult = true;
4536 *hasResultType = true;
4537 break;
4538 case SpvOpArbitraryFloatGTINTEL:
4539 *hasResult = true;
4540 *hasResultType = true;
4541 break;
4542 case SpvOpArbitraryFloatGEINTEL:
4543 *hasResult = true;
4544 *hasResultType = true;
4545 break;
4546 case SpvOpArbitraryFloatLTINTEL:
4547 *hasResult = true;
4548 *hasResultType = true;
4549 break;
4550 case SpvOpArbitraryFloatLEINTEL:
4551 *hasResult = true;
4552 *hasResultType = true;
4553 break;
4554 case SpvOpArbitraryFloatEQINTEL:
4555 *hasResult = true;
4556 *hasResultType = true;
4557 break;
4558 case SpvOpArbitraryFloatRecipINTEL:
4559 *hasResult = true;
4560 *hasResultType = true;
4561 break;
4562 case SpvOpArbitraryFloatRSqrtINTEL:
4563 *hasResult = true;
4564 *hasResultType = true;
4565 break;
4566 case SpvOpArbitraryFloatCbrtINTEL:
4567 *hasResult = true;
4568 *hasResultType = true;
4569 break;
4570 case SpvOpArbitraryFloatHypotINTEL:
4571 *hasResult = true;
4572 *hasResultType = true;
4573 break;
4574 case SpvOpArbitraryFloatSqrtINTEL:
4575 *hasResult = true;
4576 *hasResultType = true;
4577 break;
4578 case SpvOpArbitraryFloatLogINTEL:
4579 *hasResult = true;
4580 *hasResultType = true;
4581 break;
4582 case SpvOpArbitraryFloatLog2INTEL:
4583 *hasResult = true;
4584 *hasResultType = true;
4585 break;
4586 case SpvOpArbitraryFloatLog10INTEL:
4587 *hasResult = true;
4588 *hasResultType = true;
4589 break;
4590 case SpvOpArbitraryFloatLog1pINTEL:
4591 *hasResult = true;
4592 *hasResultType = true;
4593 break;
4594 case SpvOpArbitraryFloatExpINTEL:
4595 *hasResult = true;
4596 *hasResultType = true;
4597 break;
4598 case SpvOpArbitraryFloatExp2INTEL:
4599 *hasResult = true;
4600 *hasResultType = true;
4601 break;
4602 case SpvOpArbitraryFloatExp10INTEL:
4603 *hasResult = true;
4604 *hasResultType = true;
4605 break;
4606 case SpvOpArbitraryFloatExpm1INTEL:
4607 *hasResult = true;
4608 *hasResultType = true;
4609 break;
4610 case SpvOpArbitraryFloatSinINTEL:
4611 *hasResult = true;
4612 *hasResultType = true;
4613 break;
4614 case SpvOpArbitraryFloatCosINTEL:
4615 *hasResult = true;
4616 *hasResultType = true;
4617 break;
4618 case SpvOpArbitraryFloatSinCosINTEL:
4619 *hasResult = true;
4620 *hasResultType = true;
4621 break;
4622 case SpvOpArbitraryFloatSinPiINTEL:
4623 *hasResult = true;
4624 *hasResultType = true;
4625 break;
4626 case SpvOpArbitraryFloatCosPiINTEL:
4627 *hasResult = true;
4628 *hasResultType = true;
4629 break;
4630 case SpvOpArbitraryFloatASinINTEL:
4631 *hasResult = true;
4632 *hasResultType = true;
4633 break;
4634 case SpvOpArbitraryFloatASinPiINTEL:
4635 *hasResult = true;
4636 *hasResultType = true;
4637 break;
4638 case SpvOpArbitraryFloatACosINTEL:
4639 *hasResult = true;
4640 *hasResultType = true;
4641 break;
4642 case SpvOpArbitraryFloatACosPiINTEL:
4643 *hasResult = true;
4644 *hasResultType = true;
4645 break;
4646 case SpvOpArbitraryFloatATanINTEL:
4647 *hasResult = true;
4648 *hasResultType = true;
4649 break;
4650 case SpvOpArbitraryFloatATanPiINTEL:
4651 *hasResult = true;
4652 *hasResultType = true;
4653 break;
4654 case SpvOpArbitraryFloatATan2INTEL:
4655 *hasResult = true;
4656 *hasResultType = true;
4657 break;
4658 case SpvOpArbitraryFloatPowINTEL:
4659 *hasResult = true;
4660 *hasResultType = true;
4661 break;
4662 case SpvOpArbitraryFloatPowRINTEL:
4663 *hasResult = true;
4664 *hasResultType = true;
4665 break;
4666 case SpvOpArbitraryFloatPowNINTEL:
4667 *hasResult = true;
4668 *hasResultType = true;
4669 break;
4670 case SpvOpLoopControlINTEL:
4671 *hasResult = false;
4672 *hasResultType = false;
4673 break;
4674 case SpvOpAliasDomainDeclINTEL:
4675 *hasResult = true;
4676 *hasResultType = false;
4677 break;
4678 case SpvOpAliasScopeDeclINTEL:
4679 *hasResult = true;
4680 *hasResultType = false;
4681 break;
4682 case SpvOpAliasScopeListDeclINTEL:
4683 *hasResult = true;
4684 *hasResultType = false;
4685 break;
4686 case SpvOpFixedSqrtINTEL:
4687 *hasResult = true;
4688 *hasResultType = true;
4689 break;
4690 case SpvOpFixedRecipINTEL:
4691 *hasResult = true;
4692 *hasResultType = true;
4693 break;
4694 case SpvOpFixedRsqrtINTEL:
4695 *hasResult = true;
4696 *hasResultType = true;
4697 break;
4698 case SpvOpFixedSinINTEL:
4699 *hasResult = true;
4700 *hasResultType = true;
4701 break;
4702 case SpvOpFixedCosINTEL:
4703 *hasResult = true;
4704 *hasResultType = true;
4705 break;
4706 case SpvOpFixedSinCosINTEL:
4707 *hasResult = true;
4708 *hasResultType = true;
4709 break;
4710 case SpvOpFixedSinPiINTEL:
4711 *hasResult = true;
4712 *hasResultType = true;
4713 break;
4714 case SpvOpFixedCosPiINTEL:
4715 *hasResult = true;
4716 *hasResultType = true;
4717 break;
4718 case SpvOpFixedSinCosPiINTEL:
4719 *hasResult = true;
4720 *hasResultType = true;
4721 break;
4722 case SpvOpFixedLogINTEL:
4723 *hasResult = true;
4724 *hasResultType = true;
4725 break;
4726 case SpvOpFixedExpINTEL:
4727 *hasResult = true;
4728 *hasResultType = true;
4729 break;
4730 case SpvOpPtrCastToCrossWorkgroupINTEL:
4731 *hasResult = true;
4732 *hasResultType = true;
4733 break;
4734 case SpvOpCrossWorkgroupCastToPtrINTEL:
4735 *hasResult = true;
4736 *hasResultType = true;
4737 break;
4738 case SpvOpReadPipeBlockingINTEL:
4739 *hasResult = true;
4740 *hasResultType = true;
4741 break;
4742 case SpvOpWritePipeBlockingINTEL:
4743 *hasResult = true;
4744 *hasResultType = true;
4745 break;
4746 case SpvOpFPGARegINTEL:
4747 *hasResult = true;
4748 *hasResultType = true;
4749 break;
4750 case SpvOpRayQueryGetRayTMinKHR:
4751 *hasResult = true;
4752 *hasResultType = true;
4753 break;
4754 case SpvOpRayQueryGetRayFlagsKHR:
4755 *hasResult = true;
4756 *hasResultType = true;
4757 break;
4758 case SpvOpRayQueryGetIntersectionTKHR:
4759 *hasResult = true;
4760 *hasResultType = true;
4761 break;
4762 case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR:
4763 *hasResult = true;
4764 *hasResultType = true;
4765 break;
4766 case SpvOpRayQueryGetIntersectionInstanceIdKHR:
4767 *hasResult = true;
4768 *hasResultType = true;
4769 break;
4770 case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR:
4771 *hasResult = true;
4772 *hasResultType = true;
4773 break;
4774 case SpvOpRayQueryGetIntersectionGeometryIndexKHR:
4775 *hasResult = true;
4776 *hasResultType = true;
4777 break;
4778 case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR:
4779 *hasResult = true;
4780 *hasResultType = true;
4781 break;
4782 case SpvOpRayQueryGetIntersectionBarycentricsKHR:
4783 *hasResult = true;
4784 *hasResultType = true;
4785 break;
4786 case SpvOpRayQueryGetIntersectionFrontFaceKHR:
4787 *hasResult = true;
4788 *hasResultType = true;
4789 break;
4790 case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR:
4791 *hasResult = true;
4792 *hasResultType = true;
4793 break;
4794 case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR:
4795 *hasResult = true;
4796 *hasResultType = true;
4797 break;
4798 case SpvOpRayQueryGetIntersectionObjectRayOriginKHR:
4799 *hasResult = true;
4800 *hasResultType = true;
4801 break;
4802 case SpvOpRayQueryGetWorldRayDirectionKHR:
4803 *hasResult = true;
4804 *hasResultType = true;
4805 break;
4806 case SpvOpRayQueryGetWorldRayOriginKHR:
4807 *hasResult = true;
4808 *hasResultType = true;
4809 break;
4810 case SpvOpRayQueryGetIntersectionObjectToWorldKHR:
4811 *hasResult = true;
4812 *hasResultType = true;
4813 break;
4814 case SpvOpRayQueryGetIntersectionWorldToObjectKHR:
4815 *hasResult = true;
4816 *hasResultType = true;
4817 break;
4818 case SpvOpAtomicFAddEXT:
4819 *hasResult = true;
4820 *hasResultType = true;
4821 break;
4822 case SpvOpTypeBufferSurfaceINTEL:
4823 *hasResult = true;
4824 *hasResultType = false;
4825 break;
4826 case SpvOpTypeStructContinuedINTEL:
4827 *hasResult = false;
4828 *hasResultType = false;
4829 break;
4830 case SpvOpConstantCompositeContinuedINTEL:
4831 *hasResult = false;
4832 *hasResultType = false;
4833 break;
4834 case SpvOpSpecConstantCompositeContinuedINTEL:
4835 *hasResult = false;
4836 *hasResultType = false;
4837 break;
4838 case SpvOpConvertFToBF16INTEL:
4839 *hasResult = true;
4840 *hasResultType = true;
4841 break;
4842 case SpvOpConvertBF16ToFINTEL:
4843 *hasResult = true;
4844 *hasResultType = true;
4845 break;
4846 case SpvOpControlBarrierArriveINTEL:
4847 *hasResult = false;
4848 *hasResultType = false;
4849 break;
4850 case SpvOpControlBarrierWaitINTEL:
4851 *hasResult = false;
4852 *hasResultType = false;
4853 break;
4854 case SpvOpGroupIMulKHR:
4855 *hasResult = true;
4856 *hasResultType = true;
4857 break;
4858 case SpvOpGroupFMulKHR:
4859 *hasResult = true;
4860 *hasResultType = true;
4861 break;
4862 case SpvOpGroupBitwiseAndKHR:
4863 *hasResult = true;
4864 *hasResultType = true;
4865 break;
4866 case SpvOpGroupBitwiseOrKHR:
4867 *hasResult = true;
4868 *hasResultType = true;
4869 break;
4870 case SpvOpGroupBitwiseXorKHR:
4871 *hasResult = true;
4872 *hasResultType = true;
4873 break;
4874 case SpvOpGroupLogicalAndKHR:
4875 *hasResult = true;
4876 *hasResultType = true;
4877 break;
4878 case SpvOpGroupLogicalOrKHR:
4879 *hasResult = true;
4880 *hasResultType = true;
4881 break;
4882 case SpvOpGroupLogicalXorKHR:
4883 *hasResult = true;
4884 *hasResultType = true;
4885 break;
4886 }
4887}
4888#endif /* SPV_ENABLE_UTILITY_CODE */
4889
4890#endif