| 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.
|
| +**
|
| +** 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
|
|
|