Chromium Code Reviews| Index: src/sksl/spirv.h |
| diff --git a/src/sksl/spirv.h b/src/sksl/spirv.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e4f5b5beebcf4bc225a1e7d5d6357cd8c21e5266 |
| --- /dev/null |
| +++ b/src/sksl/spirv.h |
| @@ -0,0 +1,870 @@ |
| +/* |
| +** Copyright (c) 2014-2016 The Khronos Group Inc. |
|
dogben
2016/06/23 17:43:12
IANAL, but we may need to add a section to LICENSE
|
| +** |
| +** 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 4 |
| + |
| +static const unsigned int SpvMagicNumber = 0x07230203; |
| +static const unsigned int SpvVersion = 0x00010000; |
| +static const unsigned int SpvRevision = 4; |
| +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, |
| + SpvOpImageSparseRead = 320, |
| +} SpvOp; |
| + |
| +#endif // #ifndef spirv_H |