/* ** Copyright (c) 2014-2019 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ /* ** This header is automatically generated by the same tool that creates ** the Binary Section of the SPIR-V specification. */ /* ** Enumeration tokens for SPIR-V, in various styles: ** C, C++, C++11, JSON, Lua, Python, C#, D ** ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] ** - C# will use enum classes in the Specification class located in the "Spv" namespace, ** e.g.: Spv.Specification.SourceLanguage.GLSL ** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL ** ** Some tokens act like mask values, which can be OR'd together, ** while others are mutually exclusive. The mask-like ones have ** "Mask" in their name, and a parallel enum that has the shift ** amount (1 << x) for each corresponding enumerant. */ #ifndef spirv_H #define spirv_H typedef unsigned int SpvId; #define SPV_VERSION 0x10400 #define SPV_REVISION 1 static const unsigned int SpvMagicNumber = 0x07230203; static const unsigned int SpvVersion = 0x00010400; static const unsigned int SpvRevision = 1; static const unsigned int SpvOpCodeMask = 0xffff; static const unsigned int SpvWordCountShift = 16; typedef enum SpvSourceLanguage_ { SpvSourceLanguageUnknown = 0, SpvSourceLanguageESSL = 1, SpvSourceLanguageGLSL = 2, SpvSourceLanguageOpenCL_C = 3, SpvSourceLanguageOpenCL_CPP = 4, SpvSourceLanguageHLSL = 5, SpvSourceLanguageMax = 0x7fffffff, } SpvSourceLanguage; typedef enum SpvExecutionModel_ { SpvExecutionModelVertex = 0, SpvExecutionModelTessellationControl = 1, SpvExecutionModelTessellationEvaluation = 2, SpvExecutionModelGeometry = 3, SpvExecutionModelFragment = 4, SpvExecutionModelGLCompute = 5, SpvExecutionModelKernel = 6, SpvExecutionModelTaskNV = 5267, SpvExecutionModelMeshNV = 5268, SpvExecutionModelRayGenerationNV = 5313, SpvExecutionModelIntersectionNV = 5314, SpvExecutionModelAnyHitNV = 5315, SpvExecutionModelClosestHitNV = 5316, SpvExecutionModelMissNV = 5317, SpvExecutionModelCallableNV = 5318, SpvExecutionModelMax = 0x7fffffff, } SpvExecutionModel; typedef enum SpvAddressingModel_ { SpvAddressingModelLogical = 0, SpvAddressingModelPhysical32 = 1, SpvAddressingModelPhysical64 = 2, SpvAddressingModelPhysicalStorageBuffer64EXT = 5348, SpvAddressingModelMax = 0x7fffffff, } SpvAddressingModel; typedef enum SpvMemoryModel_ { SpvMemoryModelSimple = 0, SpvMemoryModelGLSL450 = 1, SpvMemoryModelOpenCL = 2, SpvMemoryModelVulkanKHR = 3, SpvMemoryModelMax = 0x7fffffff, } SpvMemoryModel; typedef enum SpvExecutionMode_ { SpvExecutionModeInvocations = 0, SpvExecutionModeSpacingEqual = 1, SpvExecutionModeSpacingFractionalEven = 2, SpvExecutionModeSpacingFractionalOdd = 3, SpvExecutionModeVertexOrderCw = 4, SpvExecutionModeVertexOrderCcw = 5, SpvExecutionModePixelCenterInteger = 6, SpvExecutionModeOriginUpperLeft = 7, SpvExecutionModeOriginLowerLeft = 8, SpvExecutionModeEarlyFragmentTests = 9, SpvExecutionModePointMode = 10, SpvExecutionModeXfb = 11, SpvExecutionModeDepthReplacing = 12, SpvExecutionModeDepthGreater = 14, SpvExecutionModeDepthLess = 15, SpvExecutionModeDepthUnchanged = 16, SpvExecutionModeLocalSize = 17, SpvExecutionModeLocalSizeHint = 18, SpvExecutionModeInputPoints = 19, SpvExecutionModeInputLines = 20, SpvExecutionModeInputLinesAdjacency = 21, SpvExecutionModeTriangles = 22, SpvExecutionModeInputTrianglesAdjacency = 23, SpvExecutionModeQuads = 24, SpvExecutionModeIsolines = 25, SpvExecutionModeOutputVertices = 26, SpvExecutionModeOutputPoints = 27, SpvExecutionModeOutputLineStrip = 28, SpvExecutionModeOutputTriangleStrip = 29, SpvExecutionModeVecTypeHint = 30, SpvExecutionModeContractionOff = 31, SpvExecutionModeInitializer = 33, SpvExecutionModeFinalizer = 34, SpvExecutionModeSubgroupSize = 35, SpvExecutionModeSubgroupsPerWorkgroup = 36, SpvExecutionModeSubgroupsPerWorkgroupId = 37, SpvExecutionModeLocalSizeId = 38, SpvExecutionModeLocalSizeHintId = 39, SpvExecutionModePostDepthCoverage = 4446, SpvExecutionModeDenormPreserve = 4459, SpvExecutionModeDenormFlushToZero = 4460, SpvExecutionModeSignedZeroInfNanPreserve = 4461, SpvExecutionModeRoundingModeRTE = 4462, SpvExecutionModeRoundingModeRTZ = 4463, SpvExecutionModeStencilRefReplacingEXT = 5027, SpvExecutionModeOutputLinesNV = 5269, SpvExecutionModeOutputPrimitivesNV = 5270, SpvExecutionModeDerivativeGroupQuadsNV = 5289, SpvExecutionModeDerivativeGroupLinearNV = 5290, SpvExecutionModeOutputTrianglesNV = 5298, SpvExecutionModePixelInterlockOrderedEXT = 5366, SpvExecutionModePixelInterlockUnorderedEXT = 5367, SpvExecutionModeSampleInterlockOrderedEXT = 5368, SpvExecutionModeSampleInterlockUnorderedEXT = 5369, SpvExecutionModeShadingRateInterlockOrderedEXT = 5370, SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371, SpvExecutionModeMax = 0x7fffffff, } SpvExecutionMode; typedef enum SpvStorageClass_ { SpvStorageClassUniformConstant = 0, SpvStorageClassInput = 1, SpvStorageClassUniform = 2, SpvStorageClassOutput = 3, SpvStorageClassWorkgroup = 4, SpvStorageClassCrossWorkgroup = 5, SpvStorageClassPrivate = 6, SpvStorageClassFunction = 7, SpvStorageClassGeneric = 8, SpvStorageClassPushConstant = 9, SpvStorageClassAtomicCounter = 10, SpvStorageClassImage = 11, SpvStorageClassStorageBuffer = 12, SpvStorageClassCallableDataNV = 5328, SpvStorageClassIncomingCallableDataNV = 5329, SpvStorageClassRayPayloadNV = 5338, SpvStorageClassHitAttributeNV = 5339, SpvStorageClassIncomingRayPayloadNV = 5342, SpvStorageClassShaderRecordBufferNV = 5343, SpvStorageClassPhysicalStorageBufferEXT = 5349, SpvStorageClassMax = 0x7fffffff, } SpvStorageClass; typedef enum SpvDim_ { SpvDim1D = 0, SpvDim2D = 1, SpvDim3D = 2, SpvDimCube = 3, SpvDimRect = 4, SpvDimBuffer = 5, SpvDimSubpassData = 6, SpvDimMax = 0x7fffffff, } SpvDim; typedef enum SpvSamplerAddressingMode_ { SpvSamplerAddressingModeNone = 0, SpvSamplerAddressingModeClampToEdge = 1, SpvSamplerAddressingModeClamp = 2, SpvSamplerAddressingModeRepeat = 3, SpvSamplerAddressingModeRepeatMirrored = 4, SpvSamplerAddressingModeMax = 0x7fffffff, } SpvSamplerAddressingMode; typedef enum SpvSamplerFilterMode_ { SpvSamplerFilterModeNearest = 0, SpvSamplerFilterModeLinear = 1, SpvSamplerFilterModeMax = 0x7fffffff, } SpvSamplerFilterMode; typedef enum SpvImageFormat_ { SpvImageFormatUnknown = 0, SpvImageFormatRgba32f = 1, SpvImageFormatRgba16f = 2, SpvImageFormatR32f = 3, SpvImageFormatRgba8 = 4, SpvImageFormatRgba8Snorm = 5, SpvImageFormatRg32f = 6, SpvImageFormatRg16f = 7, SpvImageFormatR11fG11fB10f = 8, SpvImageFormatR16f = 9, SpvImageFormatRgba16 = 10, SpvImageFormatRgb10A2 = 11, SpvImageFormatRg16 = 12, SpvImageFormatRg8 = 13, SpvImageFormatR16 = 14, SpvImageFormatR8 = 15, SpvImageFormatRgba16Snorm = 16, SpvImageFormatRg16Snorm = 17, SpvImageFormatRg8Snorm = 18, SpvImageFormatR16Snorm = 19, SpvImageFormatR8Snorm = 20, SpvImageFormatRgba32i = 21, SpvImageFormatRgba16i = 22, SpvImageFormatRgba8i = 23, SpvImageFormatR32i = 24, SpvImageFormatRg32i = 25, SpvImageFormatRg16i = 26, SpvImageFormatRg8i = 27, SpvImageFormatR16i = 28, SpvImageFormatR8i = 29, SpvImageFormatRgba32ui = 30, SpvImageFormatRgba16ui = 31, SpvImageFormatRgba8ui = 32, SpvImageFormatR32ui = 33, SpvImageFormatRgb10a2ui = 34, SpvImageFormatRg32ui = 35, SpvImageFormatRg16ui = 36, SpvImageFormatRg8ui = 37, SpvImageFormatR16ui = 38, SpvImageFormatR8ui = 39, SpvImageFormatMax = 0x7fffffff, } SpvImageFormat; typedef enum SpvImageChannelOrder_ { SpvImageChannelOrderR = 0, SpvImageChannelOrderA = 1, SpvImageChannelOrderRG = 2, SpvImageChannelOrderRA = 3, SpvImageChannelOrderRGB = 4, SpvImageChannelOrderRGBA = 5, SpvImageChannelOrderBGRA = 6, SpvImageChannelOrderARGB = 7, SpvImageChannelOrderIntensity = 8, SpvImageChannelOrderLuminance = 9, SpvImageChannelOrderRx = 10, SpvImageChannelOrderRGx = 11, SpvImageChannelOrderRGBx = 12, SpvImageChannelOrderDepth = 13, SpvImageChannelOrderDepthStencil = 14, SpvImageChannelOrdersRGB = 15, SpvImageChannelOrdersRGBx = 16, SpvImageChannelOrdersRGBA = 17, SpvImageChannelOrdersBGRA = 18, SpvImageChannelOrderABGR = 19, SpvImageChannelOrderMax = 0x7fffffff, } SpvImageChannelOrder; typedef enum SpvImageChannelDataType_ { SpvImageChannelDataTypeSnormInt8 = 0, SpvImageChannelDataTypeSnormInt16 = 1, SpvImageChannelDataTypeUnormInt8 = 2, SpvImageChannelDataTypeUnormInt16 = 3, SpvImageChannelDataTypeUnormShort565 = 4, SpvImageChannelDataTypeUnormShort555 = 5, SpvImageChannelDataTypeUnormInt101010 = 6, SpvImageChannelDataTypeSignedInt8 = 7, SpvImageChannelDataTypeSignedInt16 = 8, SpvImageChannelDataTypeSignedInt32 = 9, SpvImageChannelDataTypeUnsignedInt8 = 10, SpvImageChannelDataTypeUnsignedInt16 = 11, SpvImageChannelDataTypeUnsignedInt32 = 12, SpvImageChannelDataTypeHalfFloat = 13, SpvImageChannelDataTypeFloat = 14, SpvImageChannelDataTypeUnormInt24 = 15, SpvImageChannelDataTypeUnormInt101010_2 = 16, SpvImageChannelDataTypeMax = 0x7fffffff, } SpvImageChannelDataType; typedef enum SpvImageOperandsShift_ { SpvImageOperandsBiasShift = 0, SpvImageOperandsLodShift = 1, SpvImageOperandsGradShift = 2, SpvImageOperandsConstOffsetShift = 3, SpvImageOperandsOffsetShift = 4, SpvImageOperandsConstOffsetsShift = 5, SpvImageOperandsSampleShift = 6, SpvImageOperandsMinLodShift = 7, SpvImageOperandsMakeTexelAvailableKHRShift = 8, SpvImageOperandsMakeTexelVisibleKHRShift = 9, SpvImageOperandsNonPrivateTexelKHRShift = 10, SpvImageOperandsVolatileTexelKHRShift = 11, SpvImageOperandsSignExtendShift = 12, SpvImageOperandsZeroExtendShift = 13, SpvImageOperandsMax = 0x7fffffff, } SpvImageOperandsShift; typedef enum SpvImageOperandsMask_ { SpvImageOperandsMaskNone = 0, SpvImageOperandsBiasMask = 0x00000001, SpvImageOperandsLodMask = 0x00000002, SpvImageOperandsGradMask = 0x00000004, SpvImageOperandsConstOffsetMask = 0x00000008, SpvImageOperandsOffsetMask = 0x00000010, SpvImageOperandsConstOffsetsMask = 0x00000020, SpvImageOperandsSampleMask = 0x00000040, SpvImageOperandsMinLodMask = 0x00000080, SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100, SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200, SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400, SpvImageOperandsVolatileTexelKHRMask = 0x00000800, SpvImageOperandsSignExtendMask = 0x00001000, SpvImageOperandsZeroExtendMask = 0x00002000, } SpvImageOperandsMask; typedef enum SpvFPFastMathModeShift_ { SpvFPFastMathModeNotNaNShift = 0, SpvFPFastMathModeNotInfShift = 1, SpvFPFastMathModeNSZShift = 2, SpvFPFastMathModeAllowRecipShift = 3, SpvFPFastMathModeFastShift = 4, SpvFPFastMathModeMax = 0x7fffffff, } SpvFPFastMathModeShift; typedef enum SpvFPFastMathModeMask_ { SpvFPFastMathModeMaskNone = 0, SpvFPFastMathModeNotNaNMask = 0x00000001, SpvFPFastMathModeNotInfMask = 0x00000002, SpvFPFastMathModeNSZMask = 0x00000004, SpvFPFastMathModeAllowRecipMask = 0x00000008, SpvFPFastMathModeFastMask = 0x00000010, } SpvFPFastMathModeMask; typedef enum SpvFPRoundingMode_ { SpvFPRoundingModeRTE = 0, SpvFPRoundingModeRTZ = 1, SpvFPRoundingModeRTP = 2, SpvFPRoundingModeRTN = 3, SpvFPRoundingModeMax = 0x7fffffff, } SpvFPRoundingMode; typedef enum SpvLinkageType_ { SpvLinkageTypeExport = 0, SpvLinkageTypeImport = 1, SpvLinkageTypeMax = 0x7fffffff, } SpvLinkageType; typedef enum SpvAccessQualifier_ { SpvAccessQualifierReadOnly = 0, SpvAccessQualifierWriteOnly = 1, SpvAccessQualifierReadWrite = 2, SpvAccessQualifierMax = 0x7fffffff, } SpvAccessQualifier; typedef enum SpvFunctionParameterAttribute_ { SpvFunctionParameterAttributeZext = 0, SpvFunctionParameterAttributeSext = 1, SpvFunctionParameterAttributeByVal = 2, SpvFunctionParameterAttributeSret = 3, SpvFunctionParameterAttributeNoAlias = 4, SpvFunctionParameterAttributeNoCapture = 5, SpvFunctionParameterAttributeNoWrite = 6, SpvFunctionParameterAttributeNoReadWrite = 7, SpvFunctionParameterAttributeMax = 0x7fffffff, } SpvFunctionParameterAttribute; typedef enum SpvDecoration_ { SpvDecorationRelaxedPrecision = 0, SpvDecorationSpecId = 1, SpvDecorationBlock = 2, SpvDecorationBufferBlock = 3, SpvDecorationRowMajor = 4, SpvDecorationColMajor = 5, SpvDecorationArrayStride = 6, SpvDecorationMatrixStride = 7, SpvDecorationGLSLShared = 8, SpvDecorationGLSLPacked = 9, SpvDecorationCPacked = 10, SpvDecorationBuiltIn = 11, SpvDecorationNoPerspective = 13, SpvDecorationFlat = 14, SpvDecorationPatch = 15, SpvDecorationCentroid = 16, SpvDecorationSample = 17, SpvDecorationInvariant = 18, SpvDecorationRestrict = 19, SpvDecorationAliased = 20, SpvDecorationVolatile = 21, SpvDecorationConstant = 22, SpvDecorationCoherent = 23, SpvDecorationNonWritable = 24, SpvDecorationNonReadable = 25, SpvDecorationUniform = 26, SpvDecorationUniformId = 27, SpvDecorationSaturatedConversion = 28, SpvDecorationStream = 29, SpvDecorationLocation = 30, SpvDecorationComponent = 31, SpvDecorationIndex = 32, SpvDecorationBinding = 33, SpvDecorationDescriptorSet = 34, SpvDecorationOffset = 35, SpvDecorationXfbBuffer = 36, SpvDecorationXfbStride = 37, SpvDecorationFuncParamAttr = 38, SpvDecorationFPRoundingMode = 39, SpvDecorationFPFastMathMode = 40, SpvDecorationLinkageAttributes = 41, SpvDecorationNoContraction = 42, SpvDecorationInputAttachmentIndex = 43, SpvDecorationAlignment = 44, SpvDecorationMaxByteOffset = 45, SpvDecorationAlignmentId = 46, SpvDecorationMaxByteOffsetId = 47, SpvDecorationNoSignedWrap = 4469, SpvDecorationNoUnsignedWrap = 4470, SpvDecorationExplicitInterpAMD = 4999, SpvDecorationOverrideCoverageNV = 5248, SpvDecorationPassthroughNV = 5250, SpvDecorationViewportRelativeNV = 5252, SpvDecorationSecondaryViewportRelativeNV = 5256, SpvDecorationPerPrimitiveNV = 5271, SpvDecorationPerViewNV = 5272, SpvDecorationPerTaskNV = 5273, SpvDecorationPerVertexNV = 5285, SpvDecorationNonUniformEXT = 5300, SpvDecorationRestrictPointerEXT = 5355, SpvDecorationAliasedPointerEXT = 5356, SpvDecorationCounterBuffer = 5634, SpvDecorationHlslCounterBufferGOOGLE = 5634, SpvDecorationHlslSemanticGOOGLE = 5635, SpvDecorationUserSemantic = 5635, SpvDecorationMax = 0x7fffffff, } SpvDecoration; typedef enum SpvBuiltIn_ { SpvBuiltInPosition = 0, SpvBuiltInPointSize = 1, SpvBuiltInClipDistance = 3, SpvBuiltInCullDistance = 4, SpvBuiltInVertexId = 5, SpvBuiltInInstanceId = 6, SpvBuiltInPrimitiveId = 7, SpvBuiltInInvocationId = 8, SpvBuiltInLayer = 9, SpvBuiltInViewportIndex = 10, SpvBuiltInTessLevelOuter = 11, SpvBuiltInTessLevelInner = 12, SpvBuiltInTessCoord = 13, SpvBuiltInPatchVertices = 14, SpvBuiltInFragCoord = 15, SpvBuiltInPointCoord = 16, SpvBuiltInFrontFacing = 17, SpvBuiltInSampleId = 18, SpvBuiltInSamplePosition = 19, SpvBuiltInSampleMask = 20, SpvBuiltInFragDepth = 22, SpvBuiltInHelperInvocation = 23, SpvBuiltInNumWorkgroups = 24, SpvBuiltInWorkgroupSize = 25, SpvBuiltInWorkgroupId = 26, SpvBuiltInLocalInvocationId = 27, SpvBuiltInGlobalInvocationId = 28, SpvBuiltInLocalInvocationIndex = 29, SpvBuiltInWorkDim = 30, SpvBuiltInGlobalSize = 31, SpvBuiltInEnqueuedWorkgroupSize = 32, SpvBuiltInGlobalOffset = 33, SpvBuiltInGlobalLinearId = 34, SpvBuiltInSubgroupSize = 36, SpvBuiltInSubgroupMaxSize = 37, SpvBuiltInNumSubgroups = 38, SpvBuiltInNumEnqueuedSubgroups = 39, SpvBuiltInSubgroupId = 40, SpvBuiltInSubgroupLocalInvocationId = 41, SpvBuiltInVertexIndex = 42, SpvBuiltInInstanceIndex = 43, SpvBuiltInSubgroupEqMask = 4416, SpvBuiltInSubgroupEqMaskKHR = 4416, SpvBuiltInSubgroupGeMask = 4417, SpvBuiltInSubgroupGeMaskKHR = 4417, SpvBuiltInSubgroupGtMask = 4418, SpvBuiltInSubgroupGtMaskKHR = 4418, SpvBuiltInSubgroupLeMask = 4419, SpvBuiltInSubgroupLeMaskKHR = 4419, SpvBuiltInSubgroupLtMask = 4420, SpvBuiltInSubgroupLtMaskKHR = 4420, SpvBuiltInBaseVertex = 4424, SpvBuiltInBaseInstance = 4425, SpvBuiltInDrawIndex = 4426, SpvBuiltInDeviceIndex = 4438, SpvBuiltInViewIndex = 4440, SpvBuiltInBaryCoordNoPerspAMD = 4992, SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993, SpvBuiltInBaryCoordNoPerspSampleAMD = 4994, SpvBuiltInBaryCoordSmoothAMD = 4995, SpvBuiltInBaryCoordSmoothCentroidAMD = 4996, SpvBuiltInBaryCoordSmoothSampleAMD = 4997, SpvBuiltInBaryCoordPullModelAMD = 4998, SpvBuiltInFragStencilRefEXT = 5014, SpvBuiltInViewportMaskNV = 5253, SpvBuiltInSecondaryPositionNV = 5257, SpvBuiltInSecondaryViewportMaskNV = 5258, SpvBuiltInPositionPerViewNV = 5261, SpvBuiltInViewportMaskPerViewNV = 5262, SpvBuiltInFullyCoveredEXT = 5264, SpvBuiltInTaskCountNV = 5274, SpvBuiltInPrimitiveCountNV = 5275, SpvBuiltInPrimitiveIndicesNV = 5276, SpvBuiltInClipDistancePerViewNV = 5277, SpvBuiltInCullDistancePerViewNV = 5278, SpvBuiltInLayerPerViewNV = 5279, SpvBuiltInMeshViewCountNV = 5280, SpvBuiltInMeshViewIndicesNV = 5281, SpvBuiltInBaryCoordNV = 5286, SpvBuiltInBaryCoordNoPerspNV = 5287, SpvBuiltInFragSizeEXT = 5292, SpvBuiltInFragmentSizeNV = 5292, SpvBuiltInFragInvocationCountEXT = 5293, SpvBuiltInInvocationsPerPixelNV = 5293, SpvBuiltInLaunchIdNV = 5319, SpvBuiltInLaunchSizeNV = 5320, SpvBuiltInWorldRayOriginNV = 5321, SpvBuiltInWorldRayDirectionNV = 5322, SpvBuiltInObjectRayOriginNV = 5323, SpvBuiltInObjectRayDirectionNV = 5324, SpvBuiltInRayTminNV = 5325, SpvBuiltInRayTmaxNV = 5326, SpvBuiltInInstanceCustomIndexNV = 5327, SpvBuiltInObjectToWorldNV = 5330, SpvBuiltInWorldToObjectNV = 5331, SpvBuiltInHitTNV = 5332, SpvBuiltInHitKindNV = 5333, SpvBuiltInIncomingRayFlagsNV = 5351, SpvBuiltInWarpsPerSMNV = 5374, SpvBuiltInSMCountNV = 5375, SpvBuiltInWarpIDNV = 5376, SpvBuiltInSMIDNV = 5377, SpvBuiltInMax = 0x7fffffff, } SpvBuiltIn; typedef enum SpvSelectionControlShift_ { SpvSelectionControlFlattenShift = 0, SpvSelectionControlDontFlattenShift = 1, SpvSelectionControlMax = 0x7fffffff, } SpvSelectionControlShift; typedef enum SpvSelectionControlMask_ { SpvSelectionControlMaskNone = 0, SpvSelectionControlFlattenMask = 0x00000001, SpvSelectionControlDontFlattenMask = 0x00000002, } SpvSelectionControlMask; typedef enum SpvLoopControlShift_ { SpvLoopControlUnrollShift = 0, SpvLoopControlDontUnrollShift = 1, SpvLoopControlDependencyInfiniteShift = 2, SpvLoopControlDependencyLengthShift = 3, SpvLoopControlMinIterationsShift = 4, SpvLoopControlMaxIterationsShift = 5, SpvLoopControlIterationMultipleShift = 6, SpvLoopControlPeelCountShift = 7, SpvLoopControlPartialCountShift = 8, SpvLoopControlMax = 0x7fffffff, } SpvLoopControlShift; typedef enum SpvLoopControlMask_ { SpvLoopControlMaskNone = 0, SpvLoopControlUnrollMask = 0x00000001, SpvLoopControlDontUnrollMask = 0x00000002, SpvLoopControlDependencyInfiniteMask = 0x00000004, SpvLoopControlDependencyLengthMask = 0x00000008, SpvLoopControlMinIterationsMask = 0x00000010, SpvLoopControlMaxIterationsMask = 0x00000020, SpvLoopControlIterationMultipleMask = 0x00000040, SpvLoopControlPeelCountMask = 0x00000080, SpvLoopControlPartialCountMask = 0x00000100, } SpvLoopControlMask; typedef enum SpvFunctionControlShift_ { SpvFunctionControlInlineShift = 0, SpvFunctionControlDontInlineShift = 1, SpvFunctionControlPureShift = 2, SpvFunctionControlConstShift = 3, SpvFunctionControlMax = 0x7fffffff, } SpvFunctionControlShift; typedef enum SpvFunctionControlMask_ { SpvFunctionControlMaskNone = 0, SpvFunctionControlInlineMask = 0x00000001, SpvFunctionControlDontInlineMask = 0x00000002, SpvFunctionControlPureMask = 0x00000004, SpvFunctionControlConstMask = 0x00000008, } SpvFunctionControlMask; typedef enum SpvMemorySemanticsShift_ { SpvMemorySemanticsAcquireShift = 1, SpvMemorySemanticsReleaseShift = 2, SpvMemorySemanticsAcquireReleaseShift = 3, SpvMemorySemanticsSequentiallyConsistentShift = 4, SpvMemorySemanticsUniformMemoryShift = 6, SpvMemorySemanticsSubgroupMemoryShift = 7, SpvMemorySemanticsWorkgroupMemoryShift = 8, SpvMemorySemanticsCrossWorkgroupMemoryShift = 9, SpvMemorySemanticsAtomicCounterMemoryShift = 10, SpvMemorySemanticsImageMemoryShift = 11, SpvMemorySemanticsOutputMemoryKHRShift = 12, SpvMemorySemanticsMakeAvailableKHRShift = 13, SpvMemorySemanticsMakeVisibleKHRShift = 14, SpvMemorySemanticsMax = 0x7fffffff, } SpvMemorySemanticsShift; typedef enum SpvMemorySemanticsMask_ { SpvMemorySemanticsMaskNone = 0, SpvMemorySemanticsAcquireMask = 0x00000002, SpvMemorySemanticsReleaseMask = 0x00000004, SpvMemorySemanticsAcquireReleaseMask = 0x00000008, SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010, SpvMemorySemanticsUniformMemoryMask = 0x00000040, SpvMemorySemanticsSubgroupMemoryMask = 0x00000080, SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100, SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400, SpvMemorySemanticsImageMemoryMask = 0x00000800, SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000, SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000, SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000, } SpvMemorySemanticsMask; typedef enum SpvMemoryAccessShift_ { SpvMemoryAccessVolatileShift = 0, SpvMemoryAccessAlignedShift = 1, SpvMemoryAccessNontemporalShift = 2, SpvMemoryAccessMakePointerAvailableKHRShift = 3, SpvMemoryAccessMakePointerVisibleKHRShift = 4, SpvMemoryAccessNonPrivatePointerKHRShift = 5, SpvMemoryAccessMax = 0x7fffffff, } SpvMemoryAccessShift; typedef enum SpvMemoryAccessMask_ { SpvMemoryAccessMaskNone = 0, SpvMemoryAccessVolatileMask = 0x00000001, SpvMemoryAccessAlignedMask = 0x00000002, SpvMemoryAccessNontemporalMask = 0x00000004, SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008, SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010, SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020, } SpvMemoryAccessMask; typedef enum SpvScope_ { SpvScopeCrossDevice = 0, SpvScopeDevice = 1, SpvScopeWorkgroup = 2, SpvScopeSubgroup = 3, SpvScopeInvocation = 4, SpvScopeQueueFamilyKHR = 5, SpvScopeMax = 0x7fffffff, } SpvScope; typedef enum SpvGroupOperation_ { SpvGroupOperationReduce = 0, SpvGroupOperationInclusiveScan = 1, SpvGroupOperationExclusiveScan = 2, SpvGroupOperationClusteredReduce = 3, SpvGroupOperationPartitionedReduceNV = 6, SpvGroupOperationPartitionedInclusiveScanNV = 7, SpvGroupOperationPartitionedExclusiveScanNV = 8, SpvGroupOperationMax = 0x7fffffff, } SpvGroupOperation; typedef enum SpvKernelEnqueueFlags_ { SpvKernelEnqueueFlagsNoWait = 0, SpvKernelEnqueueFlagsWaitKernel = 1, SpvKernelEnqueueFlagsWaitWorkGroup = 2, SpvKernelEnqueueFlagsMax = 0x7fffffff, } SpvKernelEnqueueFlags; typedef enum SpvKernelProfilingInfoShift_ { SpvKernelProfilingInfoCmdExecTimeShift = 0, SpvKernelProfilingInfoMax = 0x7fffffff, } SpvKernelProfilingInfoShift; typedef enum SpvKernelProfilingInfoMask_ { SpvKernelProfilingInfoMaskNone = 0, SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001, } SpvKernelProfilingInfoMask; typedef enum SpvCapability_ { SpvCapabilityMatrix = 0, SpvCapabilityShader = 1, SpvCapabilityGeometry = 2, SpvCapabilityTessellation = 3, SpvCapabilityAddresses = 4, SpvCapabilityLinkage = 5, SpvCapabilityKernel = 6, SpvCapabilityVector16 = 7, SpvCapabilityFloat16Buffer = 8, SpvCapabilityFloat16 = 9, SpvCapabilityFloat64 = 10, SpvCapabilityInt64 = 11, SpvCapabilityInt64Atomics = 12, SpvCapabilityImageBasic = 13, SpvCapabilityImageReadWrite = 14, SpvCapabilityImageMipmap = 15, SpvCapabilityPipes = 17, SpvCapabilityGroups = 18, SpvCapabilityDeviceEnqueue = 19, SpvCapabilityLiteralSampler = 20, SpvCapabilityAtomicStorage = 21, SpvCapabilityInt16 = 22, SpvCapabilityTessellationPointSize = 23, SpvCapabilityGeometryPointSize = 24, SpvCapabilityImageGatherExtended = 25, SpvCapabilityStorageImageMultisample = 27, SpvCapabilityUniformBufferArrayDynamicIndexing = 28, SpvCapabilitySampledImageArrayDynamicIndexing = 29, SpvCapabilityStorageBufferArrayDynamicIndexing = 30, SpvCapabilityStorageImageArrayDynamicIndexing = 31, SpvCapabilityClipDistance = 32, SpvCapabilityCullDistance = 33, SpvCapabilityImageCubeArray = 34, SpvCapabilitySampleRateShading = 35, SpvCapabilityImageRect = 36, SpvCapabilitySampledRect = 37, SpvCapabilityGenericPointer = 38, SpvCapabilityInt8 = 39, SpvCapabilityInputAttachment = 40, SpvCapabilitySparseResidency = 41, SpvCapabilityMinLod = 42, SpvCapabilitySampled1D = 43, SpvCapabilityImage1D = 44, SpvCapabilitySampledCubeArray = 45, SpvCapabilitySampledBuffer = 46, SpvCapabilityImageBuffer = 47, SpvCapabilityImageMSArray = 48, SpvCapabilityStorageImageExtendedFormats = 49, SpvCapabilityImageQuery = 50, SpvCapabilityDerivativeControl = 51, SpvCapabilityInterpolationFunction = 52, SpvCapabilityTransformFeedback = 53, SpvCapabilityGeometryStreams = 54, SpvCapabilityStorageImageReadWithoutFormat = 55, SpvCapabilityStorageImageWriteWithoutFormat = 56, SpvCapabilityMultiViewport = 57, SpvCapabilitySubgroupDispatch = 58, SpvCapabilityNamedBarrier = 59, SpvCapabilityPipeStorage = 60, SpvCapabilityGroupNonUniform = 61, SpvCapabilityGroupNonUniformVote = 62, SpvCapabilityGroupNonUniformArithmetic = 63, SpvCapabilityGroupNonUniformBallot = 64, SpvCapabilityGroupNonUniformShuffle = 65, SpvCapabilityGroupNonUniformShuffleRelative = 66, SpvCapabilityGroupNonUniformClustered = 67, SpvCapabilityGroupNonUniformQuad = 68, SpvCapabilitySubgroupBallotKHR = 4423, SpvCapabilityDrawParameters = 4427, SpvCapabilitySubgroupVoteKHR = 4431, SpvCapabilityStorageBuffer16BitAccess = 4433, SpvCapabilityStorageUniformBufferBlock16 = 4433, SpvCapabilityStorageUniform16 = 4434, SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434, SpvCapabilityStoragePushConstant16 = 4435, SpvCapabilityStorageInputOutput16 = 4436, SpvCapabilityDeviceGroup = 4437, SpvCapabilityMultiView = 4439, SpvCapabilityVariablePointersStorageBuffer = 4441, SpvCapabilityVariablePointers = 4442, SpvCapabilityAtomicStorageOps = 4445, SpvCapabilitySampleMaskPostDepthCoverage = 4447, SpvCapabilityStorageBuffer8BitAccess = 4448, SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449, SpvCapabilityStoragePushConstant8 = 4450, SpvCapabilityDenormPreserve = 4464, SpvCapabilityDenormFlushToZero = 4465, SpvCapabilitySignedZeroInfNanPreserve = 4466, SpvCapabilityRoundingModeRTE = 4467, SpvCapabilityRoundingModeRTZ = 4468, SpvCapabilityFloat16ImageAMD = 5008, SpvCapabilityImageGatherBiasLodAMD = 5009, SpvCapabilityFragmentMaskAMD = 5010, SpvCapabilityStencilExportEXT = 5013, SpvCapabilityImageReadWriteLodAMD = 5015, SpvCapabilitySampleMaskOverrideCoverageNV = 5249, SpvCapabilityGeometryShaderPassthroughNV = 5251, SpvCapabilityShaderViewportIndexLayerEXT = 5254, SpvCapabilityShaderViewportIndexLayerNV = 5254, SpvCapabilityShaderViewportMaskNV = 5255, SpvCapabilityShaderStereoViewNV = 5259, SpvCapabilityPerViewAttributesNV = 5260, SpvCapabilityFragmentFullyCoveredEXT = 5265, SpvCapabilityMeshShadingNV = 5266, SpvCapabilityImageFootprintNV = 5282, SpvCapabilityFragmentBarycentricNV = 5284, SpvCapabilityComputeDerivativeGroupQuadsNV = 5288, SpvCapabilityFragmentDensityEXT = 5291, SpvCapabilityShadingRateNV = 5291, SpvCapabilityGroupNonUniformPartitionedNV = 5297, SpvCapabilityShaderNonUniformEXT = 5301, SpvCapabilityRuntimeDescriptorArrayEXT = 5302, SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303, SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304, SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305, SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306, SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307, SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308, SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309, SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310, SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, SpvCapabilityRayTracingNV = 5340, SpvCapabilityVulkanMemoryModelKHR = 5345, SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346, SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347, SpvCapabilityComputeDerivativeGroupLinearNV = 5350, SpvCapabilityCooperativeMatrixNV = 5357, SpvCapabilityFragmentShaderSampleInterlockEXT = 5363, SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372, SpvCapabilityShaderSMBuiltinsNV = 5373, SpvCapabilityFragmentShaderPixelInterlockEXT = 5378, SpvCapabilitySubgroupShuffleINTEL = 5568, SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, SpvCapabilitySubgroupImageBlockIOINTEL = 5570, SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579, SpvCapabilityIntegerFunctions2INTEL = 5584, SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696, SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, SpvCapabilityMax = 0x7fffffff, } SpvCapability; typedef enum SpvOp_ { SpvOpNop = 0, SpvOpUndef = 1, SpvOpSourceContinued = 2, SpvOpSource = 3, SpvOpSourceExtension = 4, SpvOpName = 5, SpvOpMemberName = 6, SpvOpString = 7, SpvOpLine = 8, SpvOpExtension = 10, SpvOpExtInstImport = 11, SpvOpExtInst = 12, SpvOpMemoryModel = 14, SpvOpEntryPoint = 15, SpvOpExecutionMode = 16, SpvOpCapability = 17, SpvOpTypeVoid = 19, SpvOpTypeBool = 20, SpvOpTypeInt = 21, SpvOpTypeFloat = 22, SpvOpTypeVector = 23, SpvOpTypeMatrix = 24, SpvOpTypeImage = 25, SpvOpTypeSampler = 26, SpvOpTypeSampledImage = 27, SpvOpTypeArray = 28, SpvOpTypeRuntimeArray = 29, SpvOpTypeStruct = 30, SpvOpTypeOpaque = 31, SpvOpTypePointer = 32, SpvOpTypeFunction = 33, SpvOpTypeEvent = 34, SpvOpTypeDeviceEvent = 35, SpvOpTypeReserveId = 36, SpvOpTypeQueue = 37, SpvOpTypePipe = 38, SpvOpTypeForwardPointer = 39, SpvOpConstantTrue = 41, SpvOpConstantFalse = 42, SpvOpConstant = 43, SpvOpConstantComposite = 44, SpvOpConstantSampler = 45, SpvOpConstantNull = 46, SpvOpSpecConstantTrue = 48, SpvOpSpecConstantFalse = 49, SpvOpSpecConstant = 50, SpvOpSpecConstantComposite = 51, SpvOpSpecConstantOp = 52, SpvOpFunction = 54, SpvOpFunctionParameter = 55, SpvOpFunctionEnd = 56, SpvOpFunctionCall = 57, SpvOpVariable = 59, SpvOpImageTexelPointer = 60, SpvOpLoad = 61, SpvOpStore = 62, SpvOpCopyMemory = 63, SpvOpCopyMemorySized = 64, SpvOpAccessChain = 65, SpvOpInBoundsAccessChain = 66, SpvOpPtrAccessChain = 67, SpvOpArrayLength = 68, SpvOpGenericPtrMemSemantics = 69, SpvOpInBoundsPtrAccessChain = 70, SpvOpDecorate = 71, SpvOpMemberDecorate = 72, SpvOpDecorationGroup = 73, SpvOpGroupDecorate = 74, SpvOpGroupMemberDecorate = 75, SpvOpVectorExtractDynamic = 77, SpvOpVectorInsertDynamic = 78, SpvOpVectorShuffle = 79, SpvOpCompositeConstruct = 80, SpvOpCompositeExtract = 81, SpvOpCompositeInsert = 82, SpvOpCopyObject = 83, SpvOpTranspose = 84, SpvOpSampledImage = 86, SpvOpImageSampleImplicitLod = 87, SpvOpImageSampleExplicitLod = 88, SpvOpImageSampleDrefImplicitLod = 89, SpvOpImageSampleDrefExplicitLod = 90, SpvOpImageSampleProjImplicitLod = 91, SpvOpImageSampleProjExplicitLod = 92, SpvOpImageSampleProjDrefImplicitLod = 93, SpvOpImageSampleProjDrefExplicitLod = 94, SpvOpImageFetch = 95, SpvOpImageGather = 96, SpvOpImageDrefGather = 97, SpvOpImageRead = 98, SpvOpImageWrite = 99, SpvOpImage = 100, SpvOpImageQueryFormat = 101, SpvOpImageQueryOrder = 102, SpvOpImageQuerySizeLod = 103, SpvOpImageQuerySize = 104, SpvOpImageQueryLod = 105, SpvOpImageQueryLevels = 106, SpvOpImageQuerySamples = 107, SpvOpConvertFToU = 109, SpvOpConvertFToS = 110, SpvOpConvertSToF = 111, SpvOpConvertUToF = 112, SpvOpUConvert = 113, SpvOpSConvert = 114, SpvOpFConvert = 115, SpvOpQuantizeToF16 = 116, SpvOpConvertPtrToU = 117, SpvOpSatConvertSToU = 118, SpvOpSatConvertUToS = 119, SpvOpConvertUToPtr = 120, SpvOpPtrCastToGeneric = 121, SpvOpGenericCastToPtr = 122, SpvOpGenericCastToPtrExplicit = 123, SpvOpBitcast = 124, SpvOpSNegate = 126, SpvOpFNegate = 127, SpvOpIAdd = 128, SpvOpFAdd = 129, SpvOpISub = 130, SpvOpFSub = 131, SpvOpIMul = 132, SpvOpFMul = 133, SpvOpUDiv = 134, SpvOpSDiv = 135, SpvOpFDiv = 136, SpvOpUMod = 137, SpvOpSRem = 138, SpvOpSMod = 139, SpvOpFRem = 140, SpvOpFMod = 141, SpvOpVectorTimesScalar = 142, SpvOpMatrixTimesScalar = 143, SpvOpVectorTimesMatrix = 144, SpvOpMatrixTimesVector = 145, SpvOpMatrixTimesMatrix = 146, SpvOpOuterProduct = 147, SpvOpDot = 148, SpvOpIAddCarry = 149, SpvOpISubBorrow = 150, SpvOpUMulExtended = 151, SpvOpSMulExtended = 152, SpvOpAny = 154, SpvOpAll = 155, SpvOpIsNan = 156, SpvOpIsInf = 157, SpvOpIsFinite = 158, SpvOpIsNormal = 159, SpvOpSignBitSet = 160, SpvOpLessOrGreater = 161, SpvOpOrdered = 162, SpvOpUnordered = 163, SpvOpLogicalEqual = 164, SpvOpLogicalNotEqual = 165, SpvOpLogicalOr = 166, SpvOpLogicalAnd = 167, SpvOpLogicalNot = 168, SpvOpSelect = 169, SpvOpIEqual = 170, SpvOpINotEqual = 171, SpvOpUGreaterThan = 172, SpvOpSGreaterThan = 173, SpvOpUGreaterThanEqual = 174, SpvOpSGreaterThanEqual = 175, SpvOpULessThan = 176, SpvOpSLessThan = 177, SpvOpULessThanEqual = 178, SpvOpSLessThanEqual = 179, SpvOpFOrdEqual = 180, SpvOpFUnordEqual = 181, SpvOpFOrdNotEqual = 182, SpvOpFUnordNotEqual = 183, SpvOpFOrdLessThan = 184, SpvOpFUnordLessThan = 185, SpvOpFOrdGreaterThan = 186, SpvOpFUnordGreaterThan = 187, SpvOpFOrdLessThanEqual = 188, SpvOpFUnordLessThanEqual = 189, SpvOpFOrdGreaterThanEqual = 190, SpvOpFUnordGreaterThanEqual = 191, SpvOpShiftRightLogical = 194, SpvOpShiftRightArithmetic = 195, SpvOpShiftLeftLogical = 196, SpvOpBitwiseOr = 197, SpvOpBitwiseXor = 198, SpvOpBitwiseAnd = 199, SpvOpNot = 200, SpvOpBitFieldInsert = 201, SpvOpBitFieldSExtract = 202, SpvOpBitFieldUExtract = 203, SpvOpBitReverse = 204, SpvOpBitCount = 205, SpvOpDPdx = 207, SpvOpDPdy = 208, SpvOpFwidth = 209, SpvOpDPdxFine = 210, SpvOpDPdyFine = 211, SpvOpFwidthFine = 212, SpvOpDPdxCoarse = 213, SpvOpDPdyCoarse = 214, SpvOpFwidthCoarse = 215, SpvOpEmitVertex = 218, SpvOpEndPrimitive = 219, SpvOpEmitStreamVertex = 220, SpvOpEndStreamPrimitive = 221, SpvOpControlBarrier = 224, SpvOpMemoryBarrier = 225, SpvOpAtomicLoad = 227, SpvOpAtomicStore = 228, SpvOpAtomicExchange = 229, SpvOpAtomicCompareExchange = 230, SpvOpAtomicCompareExchangeWeak = 231, SpvOpAtomicIIncrement = 232, SpvOpAtomicIDecrement = 233, SpvOpAtomicIAdd = 234, SpvOpAtomicISub = 235, SpvOpAtomicSMin = 236, SpvOpAtomicUMin = 237, SpvOpAtomicSMax = 238, SpvOpAtomicUMax = 239, SpvOpAtomicAnd = 240, SpvOpAtomicOr = 241, SpvOpAtomicXor = 242, SpvOpPhi = 245, SpvOpLoopMerge = 246, SpvOpSelectionMerge = 247, SpvOpLabel = 248, SpvOpBranch = 249, SpvOpBranchConditional = 250, SpvOpSwitch = 251, SpvOpKill = 252, SpvOpReturn = 253, SpvOpReturnValue = 254, SpvOpUnreachable = 255, SpvOpLifetimeStart = 256, SpvOpLifetimeStop = 257, SpvOpGroupAsyncCopy = 259, SpvOpGroupWaitEvents = 260, SpvOpGroupAll = 261, SpvOpGroupAny = 262, SpvOpGroupBroadcast = 263, SpvOpGroupIAdd = 264, SpvOpGroupFAdd = 265, SpvOpGroupFMin = 266, SpvOpGroupUMin = 267, SpvOpGroupSMin = 268, SpvOpGroupFMax = 269, SpvOpGroupUMax = 270, SpvOpGroupSMax = 271, SpvOpReadPipe = 274, SpvOpWritePipe = 275, SpvOpReservedReadPipe = 276, SpvOpReservedWritePipe = 277, SpvOpReserveReadPipePackets = 278, SpvOpReserveWritePipePackets = 279, SpvOpCommitReadPipe = 280, SpvOpCommitWritePipe = 281, SpvOpIsValidReserveId = 282, SpvOpGetNumPipePackets = 283, SpvOpGetMaxPipePackets = 284, SpvOpGroupReserveReadPipePackets = 285, SpvOpGroupReserveWritePipePackets = 286, SpvOpGroupCommitReadPipe = 287, SpvOpGroupCommitWritePipe = 288, SpvOpEnqueueMarker = 291, SpvOpEnqueueKernel = 292, SpvOpGetKernelNDrangeSubGroupCount = 293, SpvOpGetKernelNDrangeMaxSubGroupSize = 294, SpvOpGetKernelWorkGroupSize = 295, SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296, SpvOpRetainEvent = 297, SpvOpReleaseEvent = 298, SpvOpCreateUserEvent = 299, SpvOpIsValidEvent = 300, SpvOpSetUserEventStatus = 301, SpvOpCaptureEventProfilingInfo = 302, SpvOpGetDefaultQueue = 303, SpvOpBuildNDRange = 304, SpvOpImageSparseSampleImplicitLod = 305, SpvOpImageSparseSampleExplicitLod = 306, SpvOpImageSparseSampleDrefImplicitLod = 307, SpvOpImageSparseSampleDrefExplicitLod = 308, SpvOpImageSparseSampleProjImplicitLod = 309, SpvOpImageSparseSampleProjExplicitLod = 310, SpvOpImageSparseSampleProjDrefImplicitLod = 311, SpvOpImageSparseSampleProjDrefExplicitLod = 312, SpvOpImageSparseFetch = 313, SpvOpImageSparseGather = 314, SpvOpImageSparseDrefGather = 315, SpvOpImageSparseTexelsResident = 316, SpvOpNoLine = 317, SpvOpAtomicFlagTestAndSet = 318, SpvOpAtomicFlagClear = 319, SpvOpImageSparseRead = 320, SpvOpSizeOf = 321, SpvOpTypePipeStorage = 322, SpvOpConstantPipeStorage = 323, SpvOpCreatePipeFromPipeStorage = 324, SpvOpGetKernelLocalSizeForSubgroupCount = 325, SpvOpGetKernelMaxNumSubgroups = 326, SpvOpTypeNamedBarrier = 327, SpvOpNamedBarrierInitialize = 328, SpvOpMemoryNamedBarrier = 329, SpvOpModuleProcessed = 330, SpvOpExecutionModeId = 331, SpvOpDecorateId = 332, SpvOpGroupNonUniformElect = 333, SpvOpGroupNonUniformAll = 334, SpvOpGroupNonUniformAny = 335, SpvOpGroupNonUniformAllEqual = 336, SpvOpGroupNonUniformBroadcast = 337, SpvOpGroupNonUniformBroadcastFirst = 338, SpvOpGroupNonUniformBallot = 339, SpvOpGroupNonUniformInverseBallot = 340, SpvOpGroupNonUniformBallotBitExtract = 341, SpvOpGroupNonUniformBallotBitCount = 342, SpvOpGroupNonUniformBallotFindLSB = 343, SpvOpGroupNonUniformBallotFindMSB = 344, SpvOpGroupNonUniformShuffle = 345, SpvOpGroupNonUniformShuffleXor = 346, SpvOpGroupNonUniformShuffleUp = 347, SpvOpGroupNonUniformShuffleDown = 348, SpvOpGroupNonUniformIAdd = 349, SpvOpGroupNonUniformFAdd = 350, SpvOpGroupNonUniformIMul = 351, SpvOpGroupNonUniformFMul = 352, SpvOpGroupNonUniformSMin = 353, SpvOpGroupNonUniformUMin = 354, SpvOpGroupNonUniformFMin = 355, SpvOpGroupNonUniformSMax = 356, SpvOpGroupNonUniformUMax = 357, SpvOpGroupNonUniformFMax = 358, SpvOpGroupNonUniformBitwiseAnd = 359, SpvOpGroupNonUniformBitwiseOr = 360, SpvOpGroupNonUniformBitwiseXor = 361, SpvOpGroupNonUniformLogicalAnd = 362, SpvOpGroupNonUniformLogicalOr = 363, SpvOpGroupNonUniformLogicalXor = 364, SpvOpGroupNonUniformQuadBroadcast = 365, SpvOpGroupNonUniformQuadSwap = 366, SpvOpCopyLogical = 400, SpvOpPtrEqual = 401, SpvOpPtrNotEqual = 402, SpvOpPtrDiff = 403, SpvOpSubgroupBallotKHR = 4421, SpvOpSubgroupFirstInvocationKHR = 4422, SpvOpSubgroupAllKHR = 4428, SpvOpSubgroupAnyKHR = 4429, SpvOpSubgroupAllEqualKHR = 4430, SpvOpSubgroupReadInvocationKHR = 4432, SpvOpGroupIAddNonUniformAMD = 5000, SpvOpGroupFAddNonUniformAMD = 5001, SpvOpGroupFMinNonUniformAMD = 5002, SpvOpGroupUMinNonUniformAMD = 5003, SpvOpGroupSMinNonUniformAMD = 5004, SpvOpGroupFMaxNonUniformAMD = 5005, SpvOpGroupUMaxNonUniformAMD = 5006, SpvOpGroupSMaxNonUniformAMD = 5007, SpvOpFragmentMaskFetchAMD = 5011, SpvOpFragmentFetchAMD = 5012, SpvOpImageSampleFootprintNV = 5283, SpvOpGroupNonUniformPartitionNV = 5296, SpvOpWritePackedPrimitiveIndices4x8NV = 5299, SpvOpReportIntersectionNV = 5334, SpvOpIgnoreIntersectionNV = 5335, SpvOpTerminateRayNV = 5336, SpvOpTraceNV = 5337, SpvOpTypeAccelerationStructureNV = 5341, SpvOpExecuteCallableNV = 5344, SpvOpTypeCooperativeMatrixNV = 5358, SpvOpCooperativeMatrixLoadNV = 5359, SpvOpCooperativeMatrixStoreNV = 5360, SpvOpCooperativeMatrixMulAddNV = 5361, SpvOpCooperativeMatrixLengthNV = 5362, SpvOpBeginInvocationInterlockEXT = 5364, SpvOpEndInvocationInterlockEXT = 5365, SpvOpSubgroupShuffleINTEL = 5571, SpvOpSubgroupShuffleDownINTEL = 5572, SpvOpSubgroupShuffleUpINTEL = 5573, SpvOpSubgroupShuffleXorINTEL = 5574, SpvOpSubgroupBlockReadINTEL = 5575, SpvOpSubgroupBlockWriteINTEL = 5576, SpvOpSubgroupImageBlockReadINTEL = 5577, SpvOpSubgroupImageBlockWriteINTEL = 5578, SpvOpSubgroupImageMediaBlockReadINTEL = 5580, SpvOpSubgroupImageMediaBlockWriteINTEL = 5581, SpvOpUCountLeadingZerosINTEL = 5585, SpvOpUCountTrailingZerosINTEL = 5586, SpvOpAbsISubINTEL = 5587, SpvOpAbsUSubINTEL = 5588, SpvOpIAddSatINTEL = 5589, SpvOpUAddSatINTEL = 5590, SpvOpIAverageINTEL = 5591, SpvOpUAverageINTEL = 5592, SpvOpIAverageRoundedINTEL = 5593, SpvOpUAverageRoundedINTEL = 5594, SpvOpISubSatINTEL = 5595, SpvOpUSubSatINTEL = 5596, SpvOpIMul32x16INTEL = 5597, SpvOpUMul32x16INTEL = 5598, SpvOpDecorateString = 5632, SpvOpDecorateStringGOOGLE = 5632, SpvOpMemberDecorateString = 5633, SpvOpMemberDecorateStringGOOGLE = 5633, SpvOpVmeImageINTEL = 5699, SpvOpTypeVmeImageINTEL = 5700, SpvOpTypeAvcImePayloadINTEL = 5701, SpvOpTypeAvcRefPayloadINTEL = 5702, SpvOpTypeAvcSicPayloadINTEL = 5703, SpvOpTypeAvcMcePayloadINTEL = 5704, SpvOpTypeAvcMceResultINTEL = 5705, SpvOpTypeAvcImeResultINTEL = 5706, SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709, SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710, SpvOpTypeAvcRefResultINTEL = 5711, SpvOpTypeAvcSicResultINTEL = 5712, SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732, SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733, SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735, SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737, SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738, SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739, SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743, SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, SpvOpSubgroupAvcImeInitializeINTEL = 5747, SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748, SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749, SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750, SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756, SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765, SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776, SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, SpvOpSubgroupAvcFmeInitializeINTEL = 5781, SpvOpSubgroupAvcBmeInitializeINTEL = 5782, SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790, SpvOpSubgroupAvcSicInitializeINTEL = 5791, SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792, SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803, SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808, SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816, SpvOpMax = 0x7fffffff, } SpvOp; #ifdef SPV_ENABLE_UTILITY_CODE inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) { *hasResult = *hasResultType = false; switch (opcode) { default: /* unknown opcode */ break; case SpvOpNop: *hasResult = false; *hasResultType = false; break; case SpvOpUndef: *hasResult = true; *hasResultType = true; break; case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break; case SpvOpSource: *hasResult = false; *hasResultType = false; break; case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break; case SpvOpName: *hasResult = false; *hasResultType = false; break; case SpvOpMemberName: *hasResult = false; *hasResultType = false; break; case SpvOpString: *hasResult = true; *hasResultType = false; break; case SpvOpLine: *hasResult = false; *hasResultType = false; break; case SpvOpExtension: *hasResult = false; *hasResultType = false; break; case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break; case SpvOpExtInst: *hasResult = true; *hasResultType = true; break; case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break; case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break; case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break; case SpvOpCapability: *hasResult = false; *hasResultType = false; break; case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break; case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break; case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break; case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break; case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break; case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break; case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break; case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break; case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break; case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break; case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break; case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break; case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break; case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break; case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break; case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break; case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break; case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break; case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break; case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break; case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break; case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break; case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break; case SpvOpConstant: *hasResult = true; *hasResultType = true; break; case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break; case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break; case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break; case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break; case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break; case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break; case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break; case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break; case SpvOpFunction: *hasResult = true; *hasResultType = true; break; case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break; case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break; case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break; case SpvOpVariable: *hasResult = true; *hasResultType = true; break; case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break; case SpvOpLoad: *hasResult = true; *hasResultType = true; break; case SpvOpStore: *hasResult = false; *hasResultType = false; break; case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break; case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break; case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break; case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break; case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break; case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break; case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break; case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break; case SpvOpDecorate: *hasResult = false; *hasResultType = false; break; case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break; case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break; case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break; case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break; case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break; case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break; case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break; case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break; case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break; case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break; case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break; case SpvOpTranspose: *hasResult = true; *hasResultType = true; break; case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break; case SpvOpImageGather: *hasResult = true; *hasResultType = true; break; case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break; case SpvOpImageRead: *hasResult = true; *hasResultType = true; break; case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break; case SpvOpImage: *hasResult = true; *hasResultType = true; break; case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break; case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break; case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break; case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break; case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break; case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break; case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break; case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break; case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break; case SpvOpUConvert: *hasResult = true; *hasResultType = true; break; case SpvOpSConvert: *hasResult = true; *hasResultType = true; break; case SpvOpFConvert: *hasResult = true; *hasResultType = true; break; case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break; case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break; case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break; case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break; case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break; case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break; case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break; case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break; case SpvOpBitcast: *hasResult = true; *hasResultType = true; break; case SpvOpSNegate: *hasResult = true; *hasResultType = true; break; case SpvOpFNegate: *hasResult = true; *hasResultType = true; break; case SpvOpIAdd: *hasResult = true; *hasResultType = true; break; case SpvOpFAdd: *hasResult = true; *hasResultType = true; break; case SpvOpISub: *hasResult = true; *hasResultType = true; break; case SpvOpFSub: *hasResult = true; *hasResultType = true; break; case SpvOpIMul: *hasResult = true; *hasResultType = true; break; case SpvOpFMul: *hasResult = true; *hasResultType = true; break; case SpvOpUDiv: *hasResult = true; *hasResultType = true; break; case SpvOpSDiv: *hasResult = true; *hasResultType = true; break; case SpvOpFDiv: *hasResult = true; *hasResultType = true; break; case SpvOpUMod: *hasResult = true; *hasResultType = true; break; case SpvOpSRem: *hasResult = true; *hasResultType = true; break; case SpvOpSMod: *hasResult = true; *hasResultType = true; break; case SpvOpFRem: *hasResult = true; *hasResultType = true; break; case SpvOpFMod: *hasResult = true; *hasResultType = true; break; case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break; case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break; case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break; case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break; case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break; case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break; case SpvOpDot: *hasResult = true; *hasResultType = true; break; case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break; case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break; case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break; case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break; case SpvOpAny: *hasResult = true; *hasResultType = true; break; case SpvOpAll: *hasResult = true; *hasResultType = true; break; case SpvOpIsNan: *hasResult = true; *hasResultType = true; break; case SpvOpIsInf: *hasResult = true; *hasResultType = true; break; case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break; case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break; case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break; case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break; case SpvOpOrdered: *hasResult = true; *hasResultType = true; break; case SpvOpUnordered: *hasResult = true; *hasResultType = true; break; case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break; case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break; case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break; case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break; case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break; case SpvOpSelect: *hasResult = true; *hasResultType = true; break; case SpvOpIEqual: *hasResult = true; *hasResultType = true; break; case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break; case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break; case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break; case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpULessThan: *hasResult = true; *hasResultType = true; break; case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break; case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break; case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break; case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break; case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break; case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break; case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break; case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break; case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break; case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break; case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break; case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break; case SpvOpNot: *hasResult = true; *hasResultType = true; break; case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break; case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break; case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break; case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break; case SpvOpBitCount: *hasResult = true; *hasResultType = true; break; case SpvOpDPdx: *hasResult = true; *hasResultType = true; break; case SpvOpDPdy: *hasResult = true; *hasResultType = true; break; case SpvOpFwidth: *hasResult = true; *hasResultType = true; break; case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break; case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break; case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break; case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break; case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break; case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break; case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break; case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break; case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break; case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break; case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break; case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break; case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break; case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break; case SpvOpPhi: *hasResult = true; *hasResultType = true; break; case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break; case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break; case SpvOpLabel: *hasResult = true; *hasResultType = false; break; case SpvOpBranch: *hasResult = false; *hasResultType = false; break; case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break; case SpvOpSwitch: *hasResult = false; *hasResultType = false; break; case SpvOpKill: *hasResult = false; *hasResultType = false; break; case SpvOpReturn: *hasResult = false; *hasResultType = false; break; case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break; case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break; case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break; case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break; case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break; case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break; case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break; case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break; case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break; case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break; case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break; case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break; case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break; case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break; case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break; case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break; case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break; case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break; case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break; case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break; case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break; case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break; case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break; case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break; case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break; case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break; case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break; case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break; case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break; case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break; case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break; case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break; case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break; case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break; case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break; case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break; case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break; case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break; case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break; case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break; case SpvOpNoLine: *hasResult = false; *hasResultType = false; break; case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break; case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break; case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break; case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break; case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break; case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break; case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break; case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break; case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break; case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break; case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break; case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break; case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break; case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break; case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break; case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break; case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break; case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break; case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break; case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break; case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break; case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break; case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break; case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; } } #endif /* SPV_ENABLE_UTILITY_CODE */ #endif