Add new SPIR-V 31 files.
authorJohn Kessenich <cepheus@frii.com>
Fri, 7 Aug 2015 04:59:24 +0000 (22:59 -0600)
committerJohn Kessenich <cepheus@frii.com>
Fri, 7 Aug 2015 04:59:24 +0000 (22:59 -0600)
SPIRV/GLSL.std.450.h [new file with mode: 0755]
SPIRV/spirv.hpp [new file with mode: 0755]

diff --git a/SPIRV/GLSL.std.450.h b/SPIRV/GLSL.std.450.h
new file mode 100755 (executable)
index 0000000..13bb8e3
--- /dev/null
@@ -0,0 +1,130 @@
+/*
+** 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.
+*/
+
+#ifndef GLSLstd450_H
+#define GLSLstd450_H
+
+const int GLSLstd450Version = 99;
+const int GLSLstd450Revision = 2;
+
+enum GLSLstd450 {
+    GLSLstd450Bad = 0,              // Don't use
+
+    GLSLstd450Round = 1,
+    GLSLstd450RoundEven = 2,
+    GLSLstd450Trunc = 3,
+    GLSLstd450FAbs = 4,
+    GLSLstd450SAbs = 5,
+    GLSLstd450FSign = 6,
+    GLSLstd450SSign = 7,
+    GLSLstd450Floor = 8,
+    GLSLstd450Ceil = 9,
+    GLSLstd450Fract = 10,
+
+    GLSLstd450Radians = 11,
+    GLSLstd450Degrees = 12,
+    GLSLstd450Sin = 13,
+    GLSLstd450Cos = 14,
+    GLSLstd450Tan = 15,
+    GLSLstd450Asin = 16,
+    GLSLstd450Acos = 17,
+    GLSLstd450Atan = 18,
+    GLSLstd450Sinh = 19,
+    GLSLstd450Cosh = 20,
+    GLSLstd450Tanh = 21,
+    GLSLstd450Asinh = 22,
+    GLSLstd450Acosh = 23,
+    GLSLstd450Atanh = 24,
+    GLSLstd450Atan2 = 25,
+
+    GLSLstd450Pow = 26,
+    GLSLstd450Exp = 27,
+    GLSLstd450Log = 28,
+    GLSLstd450Exp2 = 29,
+    GLSLstd450Log2 = 30,
+    GLSLstd450Sqrt = 31,
+    GLSLstd450InverseSqrt = 32,
+
+    GLSLstd450Determinant = 33,
+    GLSLstd450MatrixInverse = 34,
+
+    GLSLstd450Modf = 35,            // second operand needs an OpVariable to write to
+    GLSLstd450ModfStruct = 36,      // no OpVariable operand
+    GLSLstd450FMin = 37,
+    GLSLstd450UMin = 38,
+    GLSLstd450SMin = 39,
+    GLSLstd450FMax = 40,
+    GLSLstd450UMax = 41,
+    GLSLstd450SMax = 42,
+    GLSLstd450FClamp = 43,
+    GLSLstd450UClamp = 44,
+    GLSLstd450SClamp = 45,
+    GLSLstd450Mix = 46,
+    GLSLstd450Step = 47,
+    GLSLstd450SmoothStep = 48,
+
+    GLSLstd450Fma = 49,
+    GLSLstd450Frexp = 50,            // second operand needs an OpVariable to write to
+    GLSLstd450FrexpStruct = 51,      // no OpVariable operand
+    GLSLstd450Ldexp = 52,
+
+    GLSLstd450PackSnorm4x8 = 53,
+    GLSLstd450PackUnorm4x8 = 54,
+    GLSLstd450PackSnorm2x16 = 55,
+    GLSLstd450PackUnorm2x16 = 56,
+    GLSLstd450PackHalf2x16 = 57,
+    GLSLstd450PackDouble2x32 = 58,
+    GLSLstd450UnpackSnorm2x16 = 59,
+    GLSLstd450UnpackUnorm2x16 = 60,
+    GLSLstd450UnpackHalf2x16 = 61,
+    GLSLstd450UnpackSnorm4x8 = 62,
+    GLSLstd450UnpackUnorm4x8 = 63,
+    GLSLstd450UnpackDouble2x32 = 64,
+
+    GLSLstd450Length = 65,
+    GLSLstd450Distance = 66,
+    GLSLstd450Cross = 67,
+    GLSLstd450Normalize = 68,
+    GLSLstd450FaceForward = 69,
+    GLSLstd450Reflect = 70,
+    GLSLstd450Refract = 71,
+
+    GLSLstd450FindILSB = 72,
+    GLSLstd450FindSMSB = 73,
+    GLSLstd450FindUMSB = 74,
+
+    GLSLstd450InterpolateAtCentroid = 75,
+    GLSLstd450InterpolateAtSample = 76,
+    GLSLstd450InterpolateAtOffset = 77,
+
+    GLSLstd450AddCarry = 78,        // These three should move to the core instruction set
+    GLSLstd450SubBorrow = 79,
+    GLSLstd450MulExtended = 80,
+
+    GLSLstd450Count
+};
+
+#endif  // #ifndef GLSLstd450_H
diff --git a/SPIRV/spirv.hpp b/SPIRV/spirv.hpp
new file mode 100755 (executable)
index 0000000..829722e
--- /dev/null
@@ -0,0 +1,830 @@
+// Copyright (c) 2014-2015 The Khronos Group Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and/or associated documentation files (the "Materials"),\r
+// to deal in the Materials without restriction, including without limitation\r
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
+// and/or sell copies of the Materials, and to permit persons to whom the\r
+// Materials are furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Materials.\r
+// \r
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS\r
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND\r
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ \r
+// \r
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS\r
+// IN THE MATERIALS.\r
+\r
+// This header is automatically generated by the same tool that creates\r
+// the Binary Section of the SPIR-V specification.\r
+\r
+// Specification revision 31.\r
+// Enumeration tokens for SPIR-V, in various styles:\r
+//   C, C++, C++11, JSON, Lua, Python\r
+// \r
+// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL\r
+// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL\r
+// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL\r
+// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL\r
+// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']\r
+// \r
+// Some tokens act like mask values, which can be OR'd together,\r
+// while others are mutually exclusive.  The mask-like ones have\r
+// "Mask" in their name, and a parallel enum that has the shift\r
+// amount (1 << x) for each corresponding enumerant.\r
+\r
+#ifndef spirv_H\r
+#define spirv_H\r
+\r
+namespace spv {\r
+\r
+typedef unsigned int Id;\r
+\r
+static const unsigned int MagicNumber = 0x07230203;\r
+static const unsigned int Version = 99;\r
+static const unsigned int Revision = 31;\r
+static const unsigned int OpCodeMask = 0xffff;\r
+static const unsigned int WordCountShift = 16;\r
+\r
+enum SourceLanguage {\r
+    SourceLanguageUnknown = 0,\r
+    SourceLanguageESSL = 1,\r
+    SourceLanguageGLSL = 2,\r
+    SourceLanguageOpenCL = 3,\r
+};\r
+\r
+enum ExecutionModel {\r
+    ExecutionModelVertex = 0,\r
+    ExecutionModelTessellationControl = 1,\r
+    ExecutionModelTessellationEvaluation = 2,\r
+    ExecutionModelGeometry = 3,\r
+    ExecutionModelFragment = 4,\r
+    ExecutionModelGLCompute = 5,\r
+    ExecutionModelKernel = 6,\r
+};\r
+\r
+enum AddressingModel {\r
+    AddressingModelLogical = 0,\r
+    AddressingModelPhysical32 = 1,\r
+    AddressingModelPhysical64 = 2,\r
+};\r
+\r
+enum MemoryModel {\r
+    MemoryModelSimple = 0,\r
+    MemoryModelGLSL450 = 1,\r
+    MemoryModelOpenCL = 2,\r
+};\r
+\r
+enum ExecutionMode {\r
+    ExecutionModeInvocations = 0,\r
+    ExecutionModeSpacingEqual = 1,\r
+    ExecutionModeSpacingFractionalEven = 2,\r
+    ExecutionModeSpacingFractionalOdd = 3,\r
+    ExecutionModeVertexOrderCw = 4,\r
+    ExecutionModeVertexOrderCcw = 5,\r
+    ExecutionModePixelCenterInteger = 6,\r
+    ExecutionModeOriginUpperLeft = 7,\r
+    ExecutionModeOriginLowerLeft = 8,\r
+    ExecutionModeEarlyFragmentTests = 9,\r
+    ExecutionModePointMode = 10,\r
+    ExecutionModeXfb = 11,\r
+    ExecutionModeDepthReplacing = 12,\r
+    ExecutionModeDepthAny = 13,\r
+    ExecutionModeDepthGreater = 14,\r
+    ExecutionModeDepthLess = 15,\r
+    ExecutionModeDepthUnchanged = 16,\r
+    ExecutionModeLocalSize = 17,\r
+    ExecutionModeLocalSizeHint = 18,\r
+    ExecutionModeInputPoints = 19,\r
+    ExecutionModeInputLines = 20,\r
+    ExecutionModeInputLinesAdjacency = 21,\r
+    ExecutionModeInputTriangles = 22,\r
+    ExecutionModeInputTrianglesAdjacency = 23,\r
+    ExecutionModeInputQuads = 24,\r
+    ExecutionModeInputIsolines = 25,\r
+    ExecutionModeOutputVertices = 26,\r
+    ExecutionModeOutputPoints = 27,\r
+    ExecutionModeOutputLineStrip = 28,\r
+    ExecutionModeOutputTriangleStrip = 29,\r
+    ExecutionModeVecTypeHint = 30,\r
+    ExecutionModeContractionOff = 31,\r
+};\r
+\r
+enum StorageClass {\r
+    StorageClassUniformConstant = 0,\r
+    StorageClassInput = 1,\r
+    StorageClassUniform = 2,\r
+    StorageClassOutput = 3,\r
+    StorageClassWorkgroupLocal = 4,\r
+    StorageClassWorkgroupGlobal = 5,\r
+    StorageClassPrivateGlobal = 6,\r
+    StorageClassFunction = 7,\r
+    StorageClassGeneric = 8,\r
+    StorageClassAtomicCounter = 10,\r
+    StorageClassImage = 11,\r
+};\r
+\r
+enum Dim {\r
+    Dim1D = 0,\r
+    Dim2D = 1,\r
+    Dim3D = 2,\r
+    DimCube = 3,\r
+    DimRect = 4,\r
+    DimBuffer = 5,\r
+};\r
+\r
+enum SamplerAddressingMode {\r
+    SamplerAddressingModeNone = 0,\r
+    SamplerAddressingModeClampToEdge = 1,\r
+    SamplerAddressingModeClamp = 2,\r
+    SamplerAddressingModeRepeat = 3,\r
+    SamplerAddressingModeRepeatMirrored = 4,\r
+};\r
+\r
+enum SamplerFilterMode {\r
+    SamplerFilterModeNearest = 0,\r
+    SamplerFilterModeLinear = 1,\r
+};\r
+\r
+enum ImageFormat {\r
+    ImageFormatUnknown = 0,\r
+    ImageFormatRgba32f = 1,\r
+    ImageFormatRgba16f = 2,\r
+    ImageFormatR32f = 3,\r
+    ImageFormatRgba8 = 4,\r
+    ImageFormatRgba8Snorm = 5,\r
+    ImageFormatRg32f = 6,\r
+    ImageFormatRg16f = 7,\r
+    ImageFormatR11fG11fB10f = 8,\r
+    ImageFormatR16f = 9,\r
+    ImageFormatRgba16 = 10,\r
+    ImageFormatRgb10A2 = 11,\r
+    ImageFormatRg16 = 12,\r
+    ImageFormatRg8 = 13,\r
+    ImageFormatR16 = 14,\r
+    ImageFormatR8 = 15,\r
+    ImageFormatRgba16Snorm = 16,\r
+    ImageFormatRg16Snorm = 17,\r
+    ImageFormatRg8Snorm = 18,\r
+    ImageFormatR16Snorm = 19,\r
+    ImageFormatR8Snorm = 20,\r
+    ImageFormatRgba32i = 21,\r
+    ImageFormatRgba16i = 22,\r
+    ImageFormatRgba8i = 23,\r
+    ImageFormatR32i = 24,\r
+    ImageFormatRg32i = 25,\r
+    ImageFormatRg16i = 26,\r
+    ImageFormatRg8i = 27,\r
+    ImageFormatR16i = 28,\r
+    ImageFormatR8i = 29,\r
+    ImageFormatRgba32ui = 30,\r
+    ImageFormatRgba16ui = 31,\r
+    ImageFormatRgba8ui = 32,\r
+    ImageFormatR32ui = 33,\r
+    ImageFormatRgb10a2ui = 34,\r
+    ImageFormatRg32ui = 35,\r
+    ImageFormatRg16ui = 36,\r
+    ImageFormatRg8ui = 37,\r
+    ImageFormatR16ui = 38,\r
+    ImageFormatR8ui = 39,\r
+};\r
+\r
+enum ImageChannelOrder {\r
+    ImageChannelOrderR = 0,\r
+    ImageChannelOrderA = 1,\r
+    ImageChannelOrderRG = 2,\r
+    ImageChannelOrderRA = 3,\r
+    ImageChannelOrderRGB = 4,\r
+    ImageChannelOrderRGBA = 5,\r
+    ImageChannelOrderBGRA = 6,\r
+    ImageChannelOrderARGB = 7,\r
+    ImageChannelOrderIntensity = 8,\r
+    ImageChannelOrderLuminance = 9,\r
+    ImageChannelOrderRx = 10,\r
+    ImageChannelOrderRGx = 11,\r
+    ImageChannelOrderRGBx = 12,\r
+    ImageChannelOrderDepth = 13,\r
+    ImageChannelOrderDepthStencil = 14,\r
+    ImageChannelOrdersRGB = 15,\r
+    ImageChannelOrdersRGBx = 16,\r
+    ImageChannelOrdersRGBA = 17,\r
+    ImageChannelOrdersBGRA = 18,\r
+};\r
+\r
+enum ImageChannelDataType {\r
+    ImageChannelDataTypeSnormInt8 = 0,\r
+    ImageChannelDataTypeSnormInt16 = 1,\r
+    ImageChannelDataTypeUnormInt8 = 2,\r
+    ImageChannelDataTypeUnormInt16 = 3,\r
+    ImageChannelDataTypeUnormShort565 = 4,\r
+    ImageChannelDataTypeUnormShort555 = 5,\r
+    ImageChannelDataTypeUnormInt101010 = 6,\r
+    ImageChannelDataTypeSignedInt8 = 7,\r
+    ImageChannelDataTypeSignedInt16 = 8,\r
+    ImageChannelDataTypeSignedInt32 = 9,\r
+    ImageChannelDataTypeUnsignedInt8 = 10,\r
+    ImageChannelDataTypeUnsignedInt16 = 11,\r
+    ImageChannelDataTypeUnsignedInt32 = 12,\r
+    ImageChannelDataTypeHalfFloat = 13,\r
+    ImageChannelDataTypeFloat = 14,\r
+    ImageChannelDataTypeUnormInt24 = 15,\r
+};\r
+\r
+enum ImageOperandsShift {\r
+    ImageOperandsBiasShift = 0,\r
+    ImageOperandsLodShift = 1,\r
+    ImageOperandsGradShift = 2,\r
+    ImageOperandsConstOffsetShift = 3,\r
+    ImageOperandsOffsetShift = 4,\r
+    ImageOperandsConstOffsetsShift = 5,\r
+    ImageOperandsSampleShift = 6,\r
+};\r
+\r
+enum ImageOperandsMask {\r
+    ImageOperandsMaskNone = 0,\r
+    ImageOperandsBiasMask = 0x00000001,\r
+    ImageOperandsLodMask = 0x00000002,\r
+    ImageOperandsGradMask = 0x00000004,\r
+    ImageOperandsConstOffsetMask = 0x00000008,\r
+    ImageOperandsOffsetMask = 0x00000010,\r
+    ImageOperandsConstOffsetsMask = 0x00000020,\r
+    ImageOperandsSampleMask = 0x00000040,\r
+};\r
+\r
+enum FPFastMathModeShift {\r
+    FPFastMathModeNotNaNShift = 0,\r
+    FPFastMathModeNotInfShift = 1,\r
+    FPFastMathModeNSZShift = 2,\r
+    FPFastMathModeAllowRecipShift = 3,\r
+    FPFastMathModeFastShift = 4,\r
+};\r
+\r
+enum FPFastMathModeMask {\r
+    FPFastMathModeMaskNone = 0,\r
+    FPFastMathModeNotNaNMask = 0x00000001,\r
+    FPFastMathModeNotInfMask = 0x00000002,\r
+    FPFastMathModeNSZMask = 0x00000004,\r
+    FPFastMathModeAllowRecipMask = 0x00000008,\r
+    FPFastMathModeFastMask = 0x00000010,\r
+};\r
+\r
+enum FPRoundingMode {\r
+    FPRoundingModeRTE = 0,\r
+    FPRoundingModeRTZ = 1,\r
+    FPRoundingModeRTP = 2,\r
+    FPRoundingModeRTN = 3,\r
+};\r
+\r
+enum LinkageType {\r
+    LinkageTypeExport = 0,\r
+    LinkageTypeImport = 1,\r
+};\r
+\r
+enum AccessQualifier {\r
+    AccessQualifierReadOnly = 0,\r
+    AccessQualifierWriteOnly = 1,\r
+    AccessQualifierReadWrite = 2,\r
+};\r
+\r
+enum FunctionParameterAttribute {\r
+    FunctionParameterAttributeZext = 0,\r
+    FunctionParameterAttributeSext = 1,\r
+    FunctionParameterAttributeByVal = 2,\r
+    FunctionParameterAttributeSret = 3,\r
+    FunctionParameterAttributeNoAlias = 4,\r
+    FunctionParameterAttributeNoCapture = 5,\r
+    FunctionParameterAttributeNoWrite = 6,\r
+    FunctionParameterAttributeNoReadWrite = 7,\r
+};\r
+\r
+enum Decoration {\r
+    DecorationRelaxedPrecision = 0,\r
+    DecorationSpecId = 1,\r
+    DecorationBlock = 2,\r
+    DecorationBufferBlock = 3,\r
+    DecorationRowMajor = 4,\r
+    DecorationColMajor = 5,\r
+    DecorationArrayStride = 6,\r
+    DecorationMatrixStride = 7,\r
+    DecorationGLSLShared = 8,\r
+    DecorationGLSLPacked = 9,\r
+    DecorationCPacked = 10,\r
+    DecorationBuiltIn = 11,\r
+    DecorationSmooth = 12,\r
+    DecorationNoperspective = 13,\r
+    DecorationFlat = 14,\r
+    DecorationPatch = 15,\r
+    DecorationCentroid = 16,\r
+    DecorationSample = 17,\r
+    DecorationInvariant = 18,\r
+    DecorationRestrict = 19,\r
+    DecorationAliased = 20,\r
+    DecorationVolatile = 21,\r
+    DecorationConstant = 22,\r
+    DecorationCoherent = 23,\r
+    DecorationNonwritable = 24,\r
+    DecorationNonreadable = 25,\r
+    DecorationUniform = 26,\r
+    DecorationNoStaticUse = 27,\r
+    DecorationSaturatedConversion = 28,\r
+    DecorationStream = 29,\r
+    DecorationLocation = 30,\r
+    DecorationComponent = 31,\r
+    DecorationIndex = 32,\r
+    DecorationBinding = 33,\r
+    DecorationDescriptorSet = 34,\r
+    DecorationOffset = 35,\r
+    DecorationXfbBuffer = 36,\r
+    DecorationXfbStride = 37,\r
+    DecorationFuncParamAttr = 38,\r
+    DecorationFPRoundingMode = 39,\r
+    DecorationFPFastMathMode = 40,\r
+    DecorationLinkageAttributes = 41,\r
+};\r
+\r
+enum BuiltIn {\r
+    BuiltInPosition = 0,\r
+    BuiltInPointSize = 1,\r
+    BuiltInClipDistance = 3,\r
+    BuiltInCullDistance = 4,\r
+    BuiltInVertexId = 5,\r
+    BuiltInInstanceId = 6,\r
+    BuiltInPrimitiveId = 7,\r
+    BuiltInInvocationId = 8,\r
+    BuiltInLayer = 9,\r
+    BuiltInViewportIndex = 10,\r
+    BuiltInTessLevelOuter = 11,\r
+    BuiltInTessLevelInner = 12,\r
+    BuiltInTessCoord = 13,\r
+    BuiltInPatchVertices = 14,\r
+    BuiltInFragCoord = 15,\r
+    BuiltInPointCoord = 16,\r
+    BuiltInFrontFacing = 17,\r
+    BuiltInSampleId = 18,\r
+    BuiltInSamplePosition = 19,\r
+    BuiltInSampleMask = 20,\r
+    BuiltInFragColor = 21,\r
+    BuiltInFragDepth = 22,\r
+    BuiltInHelperInvocation = 23,\r
+    BuiltInNumWorkgroups = 24,\r
+    BuiltInWorkgroupSize = 25,\r
+    BuiltInWorkgroupId = 26,\r
+    BuiltInLocalInvocationId = 27,\r
+    BuiltInGlobalInvocationId = 28,\r
+    BuiltInLocalInvocationIndex = 29,\r
+    BuiltInWorkDim = 30,\r
+    BuiltInGlobalSize = 31,\r
+    BuiltInEnqueuedWorkgroupSize = 32,\r
+    BuiltInGlobalOffset = 33,\r
+    BuiltInGlobalLinearId = 34,\r
+    BuiltInWorkgroupLinearId = 35,\r
+    BuiltInSubgroupSize = 36,\r
+    BuiltInSubgroupMaxSize = 37,\r
+    BuiltInNumSubgroups = 38,\r
+    BuiltInNumEnqueuedSubgroups = 39,\r
+    BuiltInSubgroupId = 40,\r
+    BuiltInSubgroupLocalInvocationId = 41,\r
+};\r
+\r
+enum SelectionControlShift {\r
+    SelectionControlFlattenShift = 0,\r
+    SelectionControlDontFlattenShift = 1,\r
+};\r
+\r
+enum SelectionControlMask {\r
+    SelectionControlMaskNone = 0,\r
+    SelectionControlFlattenMask = 0x00000001,\r
+    SelectionControlDontFlattenMask = 0x00000002,\r
+};\r
+\r
+enum LoopControlShift {\r
+    LoopControlUnrollShift = 0,\r
+    LoopControlDontUnrollShift = 1,\r
+};\r
+\r
+enum LoopControlMask {\r
+    LoopControlMaskNone = 0,\r
+    LoopControlUnrollMask = 0x00000001,\r
+    LoopControlDontUnrollMask = 0x00000002,\r
+};\r
+\r
+enum FunctionControlShift {\r
+    FunctionControlInlineShift = 0,\r
+    FunctionControlDontInlineShift = 1,\r
+    FunctionControlPureShift = 2,\r
+    FunctionControlConstShift = 3,\r
+};\r
+\r
+enum FunctionControlMask {\r
+    FunctionControlMaskNone = 0,\r
+    FunctionControlInlineMask = 0x00000001,\r
+    FunctionControlDontInlineMask = 0x00000002,\r
+    FunctionControlPureMask = 0x00000004,\r
+    FunctionControlConstMask = 0x00000008,\r
+};\r
+\r
+enum MemorySemanticsShift {\r
+    MemorySemanticsRelaxedShift = 0,\r
+    MemorySemanticsSequentiallyConsistentShift = 1,\r
+    MemorySemanticsAcquireShift = 2,\r
+    MemorySemanticsReleaseShift = 3,\r
+    MemorySemanticsUniformMemoryShift = 4,\r
+    MemorySemanticsSubgroupMemoryShift = 5,\r
+    MemorySemanticsWorkgroupLocalMemoryShift = 6,\r
+    MemorySemanticsWorkgroupGlobalMemoryShift = 7,\r
+    MemorySemanticsAtomicCounterMemoryShift = 8,\r
+    MemorySemanticsImageMemoryShift = 9,\r
+};\r
+\r
+enum MemorySemanticsMask {\r
+    MemorySemanticsMaskNone = 0,\r
+    MemorySemanticsRelaxedMask = 0x00000001,\r
+    MemorySemanticsSequentiallyConsistentMask = 0x00000002,\r
+    MemorySemanticsAcquireMask = 0x00000004,\r
+    MemorySemanticsReleaseMask = 0x00000008,\r
+    MemorySemanticsUniformMemoryMask = 0x00000010,\r
+    MemorySemanticsSubgroupMemoryMask = 0x00000020,\r
+    MemorySemanticsWorkgroupLocalMemoryMask = 0x00000040,\r
+    MemorySemanticsWorkgroupGlobalMemoryMask = 0x00000080,\r
+    MemorySemanticsAtomicCounterMemoryMask = 0x00000100,\r
+    MemorySemanticsImageMemoryMask = 0x00000200,\r
+};\r
+\r
+enum MemoryAccessShift {\r
+    MemoryAccessVolatileShift = 0,\r
+    MemoryAccessAlignedShift = 1,\r
+};\r
+\r
+enum MemoryAccessMask {\r
+    MemoryAccessMaskNone = 0,\r
+    MemoryAccessVolatileMask = 0x00000001,\r
+    MemoryAccessAlignedMask = 0x00000002,\r
+};\r
+\r
+enum Scope {\r
+    ScopeCrossDevice = 0,\r
+    ScopeDevice = 1,\r
+    ScopeWorkgroup = 2,\r
+    ScopeSubgroup = 3,\r
+    ScopeInvocation = 4,\r
+};\r
+\r
+enum GroupOperation {\r
+    GroupOperationReduce = 0,\r
+    GroupOperationInclusiveScan = 1,\r
+    GroupOperationExclusiveScan = 2,\r
+};\r
+\r
+enum KernelEnqueueFlags {\r
+    KernelEnqueueFlagsNoWait = 0,\r
+    KernelEnqueueFlagsWaitKernel = 1,\r
+    KernelEnqueueFlagsWaitWorkGroup = 2,\r
+};\r
+\r
+enum KernelProfilingInfoShift {\r
+    KernelProfilingInfoCmdExecTimeShift = 0,\r
+};\r
+\r
+enum KernelProfilingInfoMask {\r
+    KernelProfilingInfoMaskNone = 0,\r
+    KernelProfilingInfoCmdExecTimeMask = 0x00000001,\r
+};\r
+\r
+enum Capability {\r
+    CapabilityMatrix = 0,\r
+    CapabilityShader = 1,\r
+    CapabilityGeometry = 2,\r
+    CapabilityTessellation = 3,\r
+    CapabilityAddresses = 4,\r
+    CapabilityLinkage = 5,\r
+    CapabilityKernel = 6,\r
+    CapabilityVector16 = 7,\r
+    CapabilityFloat16Buffer = 8,\r
+    CapabilityFloat16 = 9,\r
+    CapabilityFloat64 = 10,\r
+    CapabilityInt64 = 11,\r
+    CapabilityInt64Atomics = 12,\r
+    CapabilityImageBasic = 13,\r
+    CapabilityImageReadWrite = 14,\r
+    CapabilityImageMipmap = 15,\r
+    CapabilityImageSRGBWrite = 16,\r
+    CapabilityPipes = 17,\r
+    CapabilityGroups = 18,\r
+    CapabilityDeviceEnqueue = 19,\r
+    CapabilityLiteralSampler = 20,\r
+    CapabilityAtomicStorage = 21,\r
+    CapabilityInt16 = 22,\r
+    CapabilityTessellationPointSize = 23,\r
+    CapabilityGeometryPointSize = 24,\r
+    CapabilityImageGatherExtended = 25,\r
+    CapabilityStorageImageExtendedFormats = 26,\r
+    CapabilityStorageImageMultisample = 27,\r
+    CapabilityUniformBufferArrayDynamicIndexing = 28,\r
+    CapabilitySampledImageArrayDynamicIndexing = 29,\r
+    CapabilityStorageBufferArrayDynamicIndexing = 30,\r
+    CapabilityStorageImageArrayDynamicIndexing = 31,\r
+    CapabilityClipDistance = 32,\r
+    CapabilityCullDistance = 33,\r
+    CapabilityImageCubeArray = 34,\r
+    CapabilitySampleRateShading = 35,\r
+};\r
+\r
+enum Op {\r
+    OpNop = 0,\r
+    OpUndef = 1,\r
+    OpSource = 3,\r
+    OpSourceExtension = 4,\r
+    OpName = 5,\r
+    OpMemberName = 6,\r
+    OpString = 7,\r
+    OpLine = 8,\r
+    OpExtension = 10,\r
+    OpExtInstImport = 11,\r
+    OpExtInst = 12,\r
+    OpMemoryModel = 14,\r
+    OpEntryPoint = 15,\r
+    OpExecutionMode = 16,\r
+    OpCapability = 17,\r
+    OpTypeVoid = 19,\r
+    OpTypeBool = 20,\r
+    OpTypeInt = 21,\r
+    OpTypeFloat = 22,\r
+    OpTypeVector = 23,\r
+    OpTypeMatrix = 24,\r
+    OpTypeImage = 25,\r
+    OpTypeSampler = 26,\r
+    OpTypeSampledImage = 27,\r
+    OpTypeArray = 28,\r
+    OpTypeRuntimeArray = 29,\r
+    OpTypeStruct = 30,\r
+    OpTypeOpaque = 31,\r
+    OpTypePointer = 32,\r
+    OpTypeFunction = 33,\r
+    OpTypeEvent = 34,\r
+    OpTypeDeviceEvent = 35,\r
+    OpTypeReserveId = 36,\r
+    OpTypeQueue = 37,\r
+    OpTypePipe = 38,\r
+    OpConstantTrue = 41,\r
+    OpConstantFalse = 42,\r
+    OpConstant = 43,\r
+    OpConstantComposite = 44,\r
+    OpConstantSampler = 45,\r
+    OpConstantNull = 46,\r
+    OpSpecConstantTrue = 48,\r
+    OpSpecConstantFalse = 49,\r
+    OpSpecConstant = 50,\r
+    OpSpecConstantComposite = 51,\r
+    OpSpecConstantOp = 52,\r
+    OpFunction = 54,\r
+    OpFunctionParameter = 55,\r
+    OpFunctionEnd = 56,\r
+    OpFunctionCall = 57,\r
+    OpVariable = 59,\r
+    OpImageTexelPointer = 60,\r
+    OpLoad = 61,\r
+    OpStore = 62,\r
+    OpCopyMemory = 63,\r
+    OpCopyMemorySized = 64,\r
+    OpAccessChain = 65,\r
+    OpInBoundsAccessChain = 66,\r
+    OpPtrAccessChain = 67,\r
+    OpArrayLength = 68,\r
+    OpGenericPtrMemSemantics = 69,\r
+    OpDecorate = 71,\r
+    OpMemberDecorate = 72,\r
+    OpDecorationGroup = 73,\r
+    OpGroupDecorate = 74,\r
+    OpGroupMemberDecorate = 75,\r
+    OpVectorExtractDynamic = 77,\r
+    OpVectorInsertDynamic = 78,\r
+    OpVectorShuffle = 79,\r
+    OpCompositeConstruct = 80,\r
+    OpCompositeExtract = 81,\r
+    OpCompositeInsert = 82,\r
+    OpCopyObject = 83,\r
+    OpTranspose = 84,\r
+    OpSampledImage = 86,\r
+    OpImageSampleImplicitLod = 87,\r
+    OpImageSampleExplicitLod = 88,\r
+    OpImageSampleDrefImplicitLod = 89,\r
+    OpImageSampleDrefExplicitLod = 90,\r
+    OpImageSampleProjImplicitLod = 91,\r
+    OpImageSampleProjExplicitLod = 92,\r
+    OpImageSampleProjDrefImplicitLod = 93,\r
+    OpImageSampleProjDrefExplicitLod = 94,\r
+    OpImageFetch = 95,\r
+    OpImageGather = 96,\r
+    OpImageDrefGather = 97,\r
+    OpImageRead = 98,\r
+    OpImageWrite = 99,\r
+    OpImageQueryDim = 100,\r
+    OpImageQueryFormat = 101,\r
+    OpImageQueryOrder = 102,\r
+    OpImageQuerySizeLod = 103,\r
+    OpImageQuerySize = 104,\r
+    OpImageQueryLod = 105,\r
+    OpImageQueryLevels = 106,\r
+    OpImageQuerySamples = 107,\r
+    OpConvertFToU = 109,\r
+    OpConvertFToS = 110,\r
+    OpConvertSToF = 111,\r
+    OpConvertUToF = 112,\r
+    OpUConvert = 113,\r
+    OpSConvert = 114,\r
+    OpFConvert = 115,\r
+    OpQuantizeToF16 = 116,\r
+    OpConvertPtrToU = 117,\r
+    OpSatConvertSToU = 118,\r
+    OpSatConvertUToS = 119,\r
+    OpConvertUToPtr = 120,\r
+    OpPtrCastToGeneric = 121,\r
+    OpGenericCastToPtr = 122,\r
+    OpGenericCastToPtrExplicit = 123,\r
+    OpBitcast = 124,\r
+    OpSNegate = 126,\r
+    OpFNegate = 127,\r
+    OpIAdd = 128,\r
+    OpFAdd = 129,\r
+    OpISub = 130,\r
+    OpFSub = 131,\r
+    OpIMul = 132,\r
+    OpFMul = 133,\r
+    OpUDiv = 134,\r
+    OpSDiv = 135,\r
+    OpFDiv = 136,\r
+    OpUMod = 137,\r
+    OpSRem = 138,\r
+    OpSMod = 139,\r
+    OpFRem = 140,\r
+    OpFMod = 141,\r
+    OpVectorTimesScalar = 142,\r
+    OpMatrixTimesScalar = 143,\r
+    OpVectorTimesMatrix = 144,\r
+    OpMatrixTimesVector = 145,\r
+    OpMatrixTimesMatrix = 146,\r
+    OpOuterProduct = 147,\r
+    OpDot = 148,\r
+    OpIAddCarry = 149,\r
+    OpISubBorrow = 150,\r
+    OpIMulExtended = 151,\r
+    OpAny = 154,\r
+    OpAll = 155,\r
+    OpIsNan = 156,\r
+    OpIsInf = 157,\r
+    OpIsFinite = 158,\r
+    OpIsNormal = 159,\r
+    OpSignBitSet = 160,\r
+    OpLessOrGreater = 161,\r
+    OpOrdered = 162,\r
+    OpUnordered = 163,\r
+    OpLogicalEqual = 164,\r
+    OpLogicalNotEqual = 165,\r
+    OpLogicalOr = 166,\r
+    OpLogicalAnd = 167,\r
+    OpLogicalNot = 168,\r
+    OpSelect = 169,\r
+    OpIEqual = 170,\r
+    OpINotEqual = 171,\r
+    OpUGreaterThan = 172,\r
+    OpSGreaterThan = 173,\r
+    OpUGreaterThanEqual = 174,\r
+    OpSGreaterThanEqual = 175,\r
+    OpULessThan = 176,\r
+    OpSLessThan = 177,\r
+    OpULessThanEqual = 178,\r
+    OpSLessThanEqual = 179,\r
+    OpFOrdEqual = 180,\r
+    OpFUnordEqual = 181,\r
+    OpFOrdNotEqual = 182,\r
+    OpFUnordNotEqual = 183,\r
+    OpFOrdLessThan = 184,\r
+    OpFUnordLessThan = 185,\r
+    OpFOrdGreaterThan = 186,\r
+    OpFUnordGreaterThan = 187,\r
+    OpFOrdLessThanEqual = 188,\r
+    OpFUnordLessThanEqual = 189,\r
+    OpFOrdGreaterThanEqual = 190,\r
+    OpFUnordGreaterThanEqual = 191,\r
+    OpShiftRightLogical = 194,\r
+    OpShiftRightArithmetic = 195,\r
+    OpShiftLeftLogical = 196,\r
+    OpBitwiseOr = 197,\r
+    OpBitwiseXor = 198,\r
+    OpBitwiseAnd = 199,\r
+    OpNot = 200,\r
+    OpBitFieldInsert = 201,\r
+    OpBitFieldSExtract = 202,\r
+    OpBitFieldUExtract = 203,\r
+    OpBitReverse = 204,\r
+    OpBitCount = 205,\r
+    OpDPdx = 207,\r
+    OpDPdy = 208,\r
+    OpFwidth = 209,\r
+    OpDPdxFine = 210,\r
+    OpDPdyFine = 211,\r
+    OpFwidthFine = 212,\r
+    OpDPdxCoarse = 213,\r
+    OpDPdyCoarse = 214,\r
+    OpFwidthCoarse = 215,\r
+    OpEmitVertex = 218,\r
+    OpEndPrimitive = 219,\r
+    OpEmitStreamVertex = 220,\r
+    OpEndStreamPrimitive = 221,\r
+    OpControlBarrier = 224,\r
+    OpMemoryBarrier = 225,\r
+    OpAtomicLoad = 227,\r
+    OpAtomicStore = 228,\r
+    OpAtomicExchange = 229,\r
+    OpAtomicCompareExchange = 230,\r
+    OpAtomicCompareExchangeWeak = 231,\r
+    OpAtomicIIncrement = 232,\r
+    OpAtomicIDecrement = 233,\r
+    OpAtomicIAdd = 234,\r
+    OpAtomicISub = 235,\r
+    OpAtomicSMin = 236,\r
+    OpAtomicUMin = 237,\r
+    OpAtomicSMax = 238,\r
+    OpAtomicUMax = 239,\r
+    OpAtomicAnd = 240,\r
+    OpAtomicOr = 241,\r
+    OpAtomicXor = 242,\r
+    OpPhi = 245,\r
+    OpLoopMerge = 246,\r
+    OpSelectionMerge = 247,\r
+    OpLabel = 248,\r
+    OpBranch = 249,\r
+    OpBranchConditional = 250,\r
+    OpSwitch = 251,\r
+    OpKill = 252,\r
+    OpReturn = 253,\r
+    OpReturnValue = 254,\r
+    OpUnreachable = 255,\r
+    OpLifetimeStart = 256,\r
+    OpLifetimeStop = 257,\r
+    OpAsyncGroupCopy = 259,\r
+    OpWaitGroupEvents = 260,\r
+    OpGroupAll = 261,\r
+    OpGroupAny = 262,\r
+    OpGroupBroadcast = 263,\r
+    OpGroupIAdd = 264,\r
+    OpGroupFAdd = 265,\r
+    OpGroupFMin = 266,\r
+    OpGroupUMin = 267,\r
+    OpGroupSMin = 268,\r
+    OpGroupFMax = 269,\r
+    OpGroupUMax = 270,\r
+    OpGroupSMax = 271,\r
+    OpReadPipe = 274,\r
+    OpWritePipe = 275,\r
+    OpReservedReadPipe = 276,\r
+    OpReservedWritePipe = 277,\r
+    OpReserveReadPipePackets = 278,\r
+    OpReserveWritePipePackets = 279,\r
+    OpCommitReadPipe = 280,\r
+    OpCommitWritePipe = 281,\r
+    OpIsValidReserveId = 282,\r
+    OpGetNumPipePackets = 283,\r
+    OpGetMaxPipePackets = 284,\r
+    OpGroupReserveReadPipePackets = 285,\r
+    OpGroupReserveWritePipePackets = 286,\r
+    OpGroupCommitReadPipe = 287,\r
+    OpGroupCommitWritePipe = 288,\r
+    OpEnqueueMarker = 291,\r
+    OpEnqueueKernel = 292,\r
+    OpGetKernelNDrangeSubGroupCount = 293,\r
+    OpGetKernelNDrangeMaxSubGroupSize = 294,\r
+    OpGetKernelWorkGroupSize = 295,\r
+    OpGetKernelPreferredWorkGroupSizeMultiple = 296,\r
+    OpRetainEvent = 297,\r
+    OpReleaseEvent = 298,\r
+    OpCreateUserEvent = 299,\r
+    OpIsValidEvent = 300,\r
+    OpSetUserEventStatus = 301,\r
+    OpCaptureEventProfilingInfo = 302,\r
+    OpGetDefaultQueue = 303,\r
+    OpBuildNDRange = 304,\r
+};\r
+\r
+// Overload operator| for mask bit combining\r
+\r
+inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }\r
+inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }\r
+inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }\r
+inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }\r
+inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }\r
+inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }\r
+inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }\r
+inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }\r
+\r
+}  // end namespace spv\r
+\r
+#endif  // #ifndef spirv_H\r
+\r