# Copyright (c) 2014-2020 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 HO
LDERS 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#, D
# 
# - 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']
# - C# will use enum classes in the Specification class located in the "Spv" namespace,
#     e.g.: Spv.Specification.SourceLanguage.GLSL
# - D will have tokens under the "spv" module, 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.

spv = {
    'MagicNumber' : 0x07230203,
    'Version' : 0x00010600,
    'Revision' : 1,
    'OpCodeMask' : 0xffff,
    'WordCountShift' : 16,

    'SourceLanguage' : {
        'Unknown' : 0,
        'ESSL' : 1,
        'GLSL' : 2,
        'OpenCL_C' : 3,
        'OpenCL_CPP' : 4,
        'HLSL' : 5,
        'CPP_for_OpenCL' : 6,
    },

    'ExecutionModel' : {
        'Vertex' : 0,
        'TessellationControl' : 1,
        'TessellationEvaluation' : 2,
        'Geometry' : 3,
        'Fragment' : 4,
        'GLCompute' : 5,
        'Kernel' : 6,
        'TaskNV' : 5267,
        'MeshNV' : 5268,
        'RayGenerationKHR' : 5313,
        'RayGenerationNV' : 5313,
        'IntersectionKHR' : 5314,
        'IntersectionNV' : 5314,
        'AnyHitKHR' : 5315,
        'AnyHitNV' : 5315,
        'ClosestHitKHR' : 5316,
        'ClosestHitNV' : 5316,
        'MissKHR' : 5317,
        'MissNV' : 5317,
        'CallableKHR' : 5318,
        'CallableNV' : 5318,
    },

    'AddressingModel' : {
        'Logical' : 0,
        'Physical32' : 1,
        'Physical64' : 2,
        'PhysicalStorageBuffer64' : 5348,
        'PhysicalStorageBuffer64EXT' : 5348,
    },

    'MemoryModel' : {
        'Simple' : 0,
        'GLSL450' : 1,
        'OpenCL' : 2,
        'Vulkan' : 3,
        'VulkanKHR' : 3,
    },

    'ExecutionMode' : {
        'Invocations' : 0,
        'SpacingEqual' : 1,
        'SpacingFractionalEven' : 2,
        'SpacingFractionalOdd' : 3,
        'VertexOrderCw' : 4,
        'VertexOrderCcw' : 5,
        'PixelCenterInteger' : 6,
        'OriginUpperLeft' : 7,
        'OriginLowerLeft' : 8,
        'EarlyFragmentTests' : 9,
        'PointMode' : 10,
        'Xfb' : 11,
        'DepthReplacing' : 12,
        'DepthGreater' : 14,
        'DepthLess' : 15,
        'DepthUnchanged' : 16,
        'LocalSize' : 17,
        'LocalSizeHint' : 18,
        'InputPoints' : 19,
        'InputLines' : 20,
        'InputLinesAdjacency' : 21,
        'Triangles' : 22,
        'InputTrianglesAdjacency' : 23,
        'Quads' : 24,
        'Isolines' : 25,
        'OutputVertices' : 26,
        'OutputPoints' : 27,
        'OutputLineStrip' : 28,
        'OutputTriangleStrip' : 29,
        'VecTypeHint' : 30,
        'ContractionOff' : 31,
        'Initializer' : 33,
        'Finalizer' : 34,
        'SubgroupSize' : 35,
        'SubgroupsPerWorkgroup' : 36,
        'SubgroupsPerWorkgroupId' : 37,
        'LocalSizeId' : 38,
        'LocalSizeHintId' : 39,
        'SubgroupUniformControlFlowKHR' : 4421,
        'PostDepthCoverage' : 4446,
        'DenormPreserve' : 4459,
        'DenormFlushToZero' : 4460,
        'SignedZeroInfNanPreserve' : 4461,
        'RoundingModeRTE' : 4462,
        'RoundingModeRTZ' : 4463,
        'StencilRefReplacingEXT' : 5027,
        'OutputLinesNV' : 5269,
        'OutputPrimitivesNV' : 5270,
        'DerivativeGroupQuadsNV' : 5289,
        'DerivativeGroupLinearNV' : 5290,
        'OutputTrianglesNV' : 5298,
        'PixelInterlockOrderedEXT' : 5366,
        'PixelInterlockUnorderedEXT' : 5367,
        'SampleInterlockOrderedEXT' : 5368,
        'SampleInterlockUnorderedEXT' : 5369,
        'ShadingRateInterlockOrderedEXT' : 5370,
        'ShadingRateInterlockUnorderedEXT' : 5371,
        'SharedLocalMemorySizeINTEL' : 5618,
        'RoundingModeRTPINTEL' : 5620,
        'RoundingModeRTNINTEL' : 5621,
        'FloatingPointModeALTINTEL' : 5622,
        'FloatingPointModeIEEEINTEL' : 5623,
        'MaxWorkgroupSizeINTEL' : 5893,
        'MaxWorkDimINTEL' : 5894,
        'NoGlobalOffsetINTEL' : 5895,
        'NumSIMDWorkitemsINTEL' : 5896,
        'SchedulerTargetFmaxMhzINTEL' : 5903,
    },

    'StorageClass' : {
        'UniformConstant' : 0,
        'Input' : 1,
        'Uniform' : 2,
        'Output' : 3,
        'Workgroup' : 4,
        'CrossWorkgroup' : 5,
        'Private' : 6,
        'Function' : 7,
        'Generic' : 8,
        'PushConstant' : 9,
        'AtomicCounter' : 10,
        'Image' : 11,
        'StorageBuffer' : 12,
        'CallableDataKHR' : 5328,
        'CallableDataNV' : 5328,
        'IncomingCallableDataKHR' : 5329,
        'IncomingCallableDataNV' : 5329,
        'RayPayloadKHR' : 5338,
        'RayPayloadNV' : 5338,
        'HitAttributeKHR' : 5339,
        'HitAttributeNV' : 5339,
        'IncomingRayPayloadKHR' : 5342,
        'IncomingRayPayloadNV' : 5342,
        'ShaderRecordBufferKHR' : 5343,
        'ShaderRecordBufferNV' : 5343,
        'PhysicalStorageBuffer' : 5349,
        'PhysicalStorageBufferEXT' : 5349,
        'CodeSectionINTEL' : 5605,
        'DeviceOnlyINTEL' : 5936,
        'HostOnlyINTEL' : 5937,
    },

    'Dim' : {
        'Dim1D' : 0,
        'Dim2D' : 1,
        'Dim3D' : 2,
        'Cube' : 3,
        'Rect' : 4,
        'Buffer' : 5,
        'SubpassData' : 6,
    },

    'SamplerAddressingMode' : {
        'None' : 0,
        'ClampToEdge' : 1,
        'Clamp' : 2,
        'Repeat' : 3,
        'RepeatMirrored' : 4,
    },

    'SamplerFilterMode' : {
        'Nearest' : 0,
        'Linear' : 1,
    },

    'ImageFormat' : {
        'Unknown' : 0,
        'Rgba32f' : 1,
        'Rgba16f' : 2,
        'R32f' : 3,
        'Rgba8' : 4,
        'Rgba8Snorm' : 5,
        'Rg32f' : 6,
        'Rg16f' : 7,
        'R11fG11fB10f' : 8,
        'R16f' : 9,
        'Rgba16' : 10,
        'Rgb10A2' : 11,
        'Rg16' : 12,
        'Rg8' : 13,
        'R16' : 14,
        'R8' : 15,
        'Rgba16Snorm' : 16,
        'Rg16Snorm' : 17,
        'Rg8Snorm' : 18,
        'R16Snorm' : 19,
        'R8Snorm' : 20,
        'Rgba32i' : 21,
        'Rgba16i' : 22,
        'Rgba8i' : 23,
        'R32i' : 24,
        'Rg32i' : 25,
        'Rg16i' : 26,
        'Rg8i' : 27,
        'R16i' : 28,
        'R8i' : 29,
    