| /* |
| ** Copyright (c) 2014-2015 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 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'] |
| ** |
| ** 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 0x10000 |
| #define SPV_REVISION 2 |
| |
| static const unsigned int SpvMagicNumber = 0x07230203; |
| static const unsigned int SpvVersion = 0x00010000; |
| static const unsigned int SpvRevision = 2; |
| 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, |
| } SpvSourceLanguage; |
| |
| typedef enum SpvExecutionModel_ { |
| SpvExecutionModelVertex = 0, |
| SpvExecutionModelTessellationControl = 1, |
| SpvExecutionModelTessellationEvaluation = 2, |
| SpvExecutionModelGeometry = 3, |
| SpvExecutionModelFragment = 4, |
| SpvExecutionModelGLCompute = 5, |
| SpvExecutionModelKernel = 6, |
| } SpvExecutionModel; |
| |
| typedef enum SpvAddressingModel_ { |
| SpvAddressingModelLogical = 0, |
| SpvAddressingModelPhysical32 = 1, |
| SpvAddressingModelPhysical64 = 2, |
| } SpvAddressingModel; |
| |
| typedef enum SpvMemoryModel_ { |
| SpvMemoryModelSimple = 0, |
| SpvMemoryModelGLSL450 = 1, |
| SpvMemoryModelOpenCL = 2, |
| } 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, |
| } 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, |
| } SpvStorageClass; |
| |
| typedef enum SpvDim_ { |
| SpvDim1D = 0, |
| SpvDim2D = 1, |
| SpvDim3D = 2, |
| SpvDimCube = 3, |
| SpvDimRect = 4, |
| SpvDimBuffer = 5, |
| SpvDimSubpassData = 6, |
| } SpvDim; |
| |
| typedef enum SpvSamplerAddressingMode_ { |
| SpvSamplerAddressingModeNone = 0, |
| SpvSamplerAddressingModeClampToEdge = 1, |
| SpvSamplerAddressingModeClamp = 2, |
| SpvSamplerAddressingModeRepeat = 3, |
| SpvSamplerAddressingModeRepeatMirrored = 4, |
| } SpvSamplerAddressingMode; |
| |
| typedef enum SpvSamplerFilterMode_ { |
| SpvSamplerFilterModeNearest = 0, |
| SpvSamplerFilterModeLinear = 1, |
| } 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, |
| } 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, |
| } 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, |
| } SpvImageChannelDataType; |
| |
| typedef enum SpvImageOperandsShift_ { |
| SpvImageOperandsBiasShift = 0, |
| SpvImageOperandsLodShift = 1, |
| SpvImageOperandsGradShift = 2, |
| SpvImageOperandsConstOffsetShift = 3, |
| SpvImageOperandsOffsetShift = 4, |
| SpvImageOperandsConstOffsetsShift = 5, |
| SpvImageOperandsSampleShift = 6, |
| SpvImageOperandsMinLodShift = 7, |
| } SpvImageOperandsShift; |
| |
| typedef enum SpvImageOperandsMask_ { |
| SpvImageOperandsMaskNone = 0, |
| SpvImageOperandsBiasMask = 0x00000001, |
| SpvImageOperandsLodMask = 0x00000002, |
| SpvImageOperandsGradMask = 0x00000004, |
| SpvImageOperandsConstOffsetMask = 0x00000008, |
| SpvImageOperandsOffsetMask = 0x00000010, |
| SpvImageOperandsConstOffsetsMask = 0x00000020, |
| SpvImageOperandsSampleMask = 0x00000040, |
| SpvImageOperandsMinLodMask = 0x00000080, |
| } SpvImageOperandsMask; |
| |
| typedef enum SpvFPFastMathModeShift_ { |
| SpvFPFastMathModeNotNaNShift = 0, |
| SpvFPFastMathModeNotInfShift = 1, |
| SpvFPFastMathModeNSZShift = 2, |
| SpvFPFastMathModeAllowRecipShift = 3, |
| SpvFPFastMathModeFastShift = 4, |
| } 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, |
| } SpvFPRoundingMode; |
| |
| typedef enum SpvLinkageType_ { |
| SpvLinkageTypeExport = 0, |
| SpvLinkageTypeImport = 1, |
| } SpvLinkageType; |
| |
| typedef enum SpvAccessQualifier_ { |
| SpvAccessQualifierReadOnly = 0, |
| SpvAccessQualifierWriteOnly = 1, |
| SpvAccessQualifierReadWrite = 2, |
| } SpvAccessQualifier; |
| |
| typedef enum SpvFunctionParameterAttribute_ { |
| SpvFunctionParameterAttributeZext = 0, |
| SpvFunctionParameterAttributeSext = 1, |
| SpvFunctionParameterAttributeByVal = 2, |
| SpvFunctionParameterAttributeSret = 3, |
| SpvFunctionParameterAttributeNoAlias = 4, |
| SpvFunctionParameterAttributeNoCapture = 5, |
| SpvFunctionParameterAttributeNoWrite = 6, |
| SpvFunctionParameterAttributeNoReadWrite = 7, |
| } 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, |
| 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, |
| } 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, |
| } SpvBuiltIn; |
| |
| typedef enum SpvSelectionControlShift_ { |
| SpvSelectionControlFlattenShift = 0, |
| SpvSelectionControlDontFlattenShift = 1, |
| } SpvSelectionControlShift; |
| |
| typedef enum SpvSelectionControlMask_ { |
| SpvSelectionControlMaskNone = 0, |
| SpvSelectionControlFlattenMask = 0x00000001, |
| SpvSelectionControlDontFlattenMask = 0x00000002, |
| } SpvSelectionControlMask; |
| |
| typedef enum SpvLoopControlShift_ { |
| SpvLoopControlUnrollShift = 0, |
| SpvLoopControlDontUnrollShift = 1, |
| } SpvLoopControlShift; |
| |
| typedef enum SpvLoopControlMask_ { |
| SpvLoopControlMaskNone = 0, |
| SpvLoopControlUnrollMask = 0x00000001, |
| SpvLoopControlDontUnrollMask = 0x00000002, |
| } SpvLoopControlMask; |
| |
| typedef enum SpvFunctionControlShift_ { |
| SpvFunctionControlInlineShift = 0, |
| SpvFunctionControlDontInlineShift = 1, |
| SpvFunctionControlPureShift = 2, |
| SpvFunctionControlConstShift = 3, |
| } 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, |
| } 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, |
| } SpvMemorySemanticsMask; |
| |
| typedef enum SpvMemoryAccessShift_ { |
| SpvMemoryAccessVolatileShift = 0, |
| SpvMemoryAccessAlignedShift = 1, |
| SpvMemoryAccessNontemporalShift = 2, |
| } SpvMemoryAccessShift; |
| |
| typedef enum SpvMemoryAccessMask_ { |
| SpvMemoryAccessMaskNone = 0, |
| SpvMemoryAccessVolatileMask = 0x00000001, |
| SpvMemoryAccessAlignedMask = 0x00000002, |
| SpvMemoryAccessNontemporalMask = 0x00000004, |
| } SpvMemoryAccessMask; |
| |
| typedef enum SpvScope_ { |
| SpvScopeCrossDevice = 0, |
| SpvScopeDevice = 1, |
| SpvScopeWorkgroup = 2, |
| SpvScopeSubgroup = 3, |
| SpvScopeInvocation = 4, |
| } SpvScope; |
| |
| typedef enum SpvGroupOperation_ { |
| SpvGroupOperationReduce = 0, |
| SpvGroupOperationInclusiveScan = 1, |
| SpvGroupOperationExclusiveScan = 2, |
| } SpvGroupOperation; |
| |
| typedef enum SpvKernelEnqueueFlags_ { |
| SpvKernelEnqueueFlagsNoWait = 0, |
| SpvKernelEnqueueFlagsWaitKernel = 1, |
| SpvKernelEnqueueFlagsWaitWorkGroup = 2, |
| } SpvKernelEnqueueFlags; |
| |
| typedef enum SpvKernelProfilingInfoShift_ { |
| SpvKernelProfilingInfoCmdExecTimeShift = 0, |
| } 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, |
| } 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, |
| } SpvOp; |
| |
| #endif // #ifndef spirv_H |
| |