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 |