1 -- Copyright (c) 2014-2018 The Khronos Group Inc.
3 -- Permission is hereby granted, free of charge, to any person obtaining a copy
4 -- of this software and/or associated documentation files (the "Materials"),
5 -- to deal in the Materials without restriction, including without limitation
6 -- the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 -- and/or sell copies of the Materials, and to permit persons to whom the
8 -- Materials are furnished to do so, subject to the following conditions:
10 -- The above copyright notice and this permission notice shall be included in
11 -- all copies or substantial portions of the Materials.
13 -- MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
14 -- STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
15 -- HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
17 -- THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 -- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 -- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 -- FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
25 -- This header is automatically generated by the same tool that creates
26 -- the Binary Section of the SPIR-V specification.
28 -- Enumeration tokens for SPIR-V, in various styles:
29 -- C, C++, C++11, JSON, Lua, Python
31 -- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
32 -- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
33 -- - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
34 -- - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
35 -- - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
37 -- Some tokens act like mask values, which can be OR'd together,
38 -- while others are mutually exclusive. The mask-like ones have
39 -- "Mask" in their name, and a parallel enum that has the shift
40 -- amount (1 << x) for each corresponding enumerant.
43 MagicNumber = 0x07230203,
60 TessellationControl = 1,
61 TessellationEvaluation = 2,
83 SpacingFractionalEven = 2,
84 SpacingFractionalOdd = 3,
87 PixelCenterInteger = 6,
90 EarlyFragmentTests = 9,
101 InputLinesAdjacency = 21,
103 InputTrianglesAdjacency = 23,
108 OutputLineStrip = 28,
109 OutputTriangleStrip = 29,
115 SubgroupsPerWorkgroup = 36,
116 PostDepthCoverage = 4446,
117 StencilRefReplacingEXT = 5027,
146 SamplerAddressingMode = {
154 SamplerFilterMode = {
202 ImageChannelOrder = {
225 ImageChannelDataType = {
242 UnormInt101010_2 = 16,
245 ImageOperandsShift = {
256 ImageOperandsMask = {
261 ConstOffset = 0x00000008,
263 ConstOffsets = 0x00000020,
268 FPFastMathModeShift = {
276 FPFastMathModeMask = {
281 AllowRecip = 0x00000008,
303 FunctionParameterAttribute = {
315 RelaxedPrecision = 0,
341 SaturatedConversion = 28,
354 LinkageAttributes = 41,
356 InputAttachmentIndex = 43,
359 ExplicitInterpAMD = 4999,
360 OverrideCoverageNV = 5248,
361 PassthroughNV = 5250,
362 ViewportRelativeNV = 5252,
363 SecondaryViewportRelativeNV = 5256,
364 HlslCounterBufferGOOGLE = 5634,
365 HlslSemanticGOOGLE = 5635,
390 HelperInvocation = 23,
394 LocalInvocationId = 27,
395 GlobalInvocationId = 28,
396 LocalInvocationIndex = 29,
399 EnqueuedWorkgroupSize = 32,
403 SubgroupMaxSize = 37,
405 NumEnqueuedSubgroups = 39,
407 SubgroupLocalInvocationId = 41,
410 SubgroupEqMaskKHR = 4416,
411 SubgroupGeMaskKHR = 4417,
412 SubgroupGtMaskKHR = 4418,
413 SubgroupLeMaskKHR = 4419,
414 SubgroupLtMaskKHR = 4420,
420 BaryCoordNoPerspAMD = 4992,
421 BaryCoordNoPerspCentroidAMD = 4993,
422 BaryCoordNoPerspSampleAMD = 4994,
423 BaryCoordSmoothAMD = 4995,
424 BaryCoordSmoothCentroidAMD = 4996,
425 BaryCoordSmoothSampleAMD = 4997,
426 BaryCoordPullModelAMD = 4998,
427 FragStencilRefEXT = 5014,
428 ViewportMaskNV = 5253,
429 SecondaryPositionNV = 5257,
430 SecondaryViewportMaskNV = 5258,
431 PositionPerViewNV = 5261,
432 ViewportMaskPerViewNV = 5262,
435 SelectionControlShift = {
440 SelectionControlMask = {
442 Flatten = 0x00000001,
443 DontFlatten = 0x00000002,
449 DependencyInfinite = 2,
450 DependencyLength = 3,
456 DontUnroll = 0x00000002,
457 DependencyInfinite = 0x00000004,
458 DependencyLength = 0x00000008,
461 FunctionControlShift = {
468 FunctionControlMask = {
471 DontInline = 0x00000002,
476 MemorySemanticsShift = {
480 SequentiallyConsistent = 4,
484 CrossWorkgroupMemory = 9,
485 AtomicCounterMemory = 10,
489 MemorySemanticsMask = {
491 Acquire = 0x00000002,
492 Release = 0x00000004,
493 AcquireRelease = 0x00000008,
494 SequentiallyConsistent = 0x00000010,
495 UniformMemory = 0x00000040,
496 SubgroupMemory = 0x00000080,
497 WorkgroupMemory = 0x00000100,
498 CrossWorkgroupMemory = 0x00000200,
499 AtomicCounterMemory = 0x00000400,
500 ImageMemory = 0x00000800,
503 MemoryAccessShift = {
511 Volatile = 0x00000001,
512 Aligned = 0x00000002,
513 Nontemporal = 0x00000004,
530 KernelEnqueueFlags = {
536 KernelProfilingInfoShift = {
540 KernelProfilingInfoMask = {
542 CmdExecTime = 0x00000001,
568 TessellationPointSize = 23,
569 GeometryPointSize = 24,
570 ImageGatherExtended = 25,
571 StorageImageMultisample = 27,
572 UniformBufferArrayDynamicIndexing = 28,
573 SampledImageArrayDynamicIndexing = 29,
574 StorageBufferArrayDynamicIndexing = 30,
575 StorageImageArrayDynamicIndexing = 31,
579 SampleRateShading = 35,
584 InputAttachment = 40,
585 SparseResidency = 41,
589 SampledCubeArray = 45,
593 StorageImageExtendedFormats = 49,
595 DerivativeControl = 51,
596 InterpolationFunction = 52,
597 TransformFeedback = 53,
598 GeometryStreams = 54,
599 StorageImageReadWithoutFormat = 55,
600 StorageImageWriteWithoutFormat = 56,
602 SubgroupDispatch = 58,
605 SubgroupBallotKHR = 4423,
606 DrawParameters = 4427,
607 SubgroupVoteKHR = 4431,
608 StorageBuffer16BitAccess = 4433,
609 StorageUniformBufferBlock16 = 4433,
610 StorageUniform16 = 4434,
611 UniformAndStorageBuffer16BitAccess = 4434,
612 StoragePushConstant16 = 4435,
613 StorageInputOutput16 = 4436,
616 VariablePointersStorageBuffer = 4441,
617 VariablePointers = 4442,
618 AtomicStorageOps = 4445,
619 SampleMaskPostDepthCoverage = 4447,
620 ImageGatherBiasLodAMD = 5009,
621 FragmentMaskAMD = 5010,
622 StencilExportEXT = 5013,
623 ImageReadWriteLodAMD = 5015,
624 SampleMaskOverrideCoverageNV = 5249,
625 GeometryShaderPassthroughNV = 5251,
626 ShaderViewportIndexLayerEXT = 5254,
627 ShaderViewportIndexLayerNV = 5254,
628 ShaderViewportMaskNV = 5255,
629 ShaderStereoViewNV = 5259,
630 PerViewAttributesNV = 5260,
631 SubgroupShuffleINTEL = 5568,
632 SubgroupBufferBlockIOINTEL = 5569,
633 SubgroupImageBlockIOINTEL = 5570,
639 OpSourceContinued = 2,
641 OpSourceExtension = 4,
647 OpExtInstImport = 11,
651 OpExecutionMode = 16,
661 OpTypeSampledImage = 27,
663 OpTypeRuntimeArray = 29,
669 OpTypeDeviceEvent = 35,
670 OpTypeReserveId = 36,
673 OpTypeForwardPointer = 39,
675 OpConstantFalse = 42,
677 OpConstantComposite = 44,
678 OpConstantSampler = 45,
680 OpSpecConstantTrue = 48,
681 OpSpecConstantFalse = 49,
683 OpSpecConstantComposite = 51,
684 OpSpecConstantOp = 52,
686 OpFunctionParameter = 55,
690 OpImageTexelPointer = 60,
694 OpCopyMemorySized = 64,
696 OpInBoundsAccessChain = 66,
697 OpPtrAccessChain = 67,
699 OpGenericPtrMemSemantics = 69,
700 OpInBoundsPtrAccessChain = 70,
702 OpMemberDecorate = 72,
703 OpDecorationGroup = 73,
704 OpGroupDecorate = 74,
705 OpGroupMemberDecorate = 75,
706 OpVectorExtractDynamic = 77,
707 OpVectorInsertDynamic = 78,
708 OpVectorShuffle = 79,
709 OpCompositeConstruct = 80,
710 OpCompositeExtract = 81,
711 OpCompositeInsert = 82,
715 OpImageSampleImplicitLod = 87,
716 OpImageSampleExplicitLod = 88,
717 OpImageSampleDrefImplicitLod = 89,
718 OpImageSampleDrefExplicitLod = 90,
719 OpImageSampleProjImplicitLod = 91,
720 OpImageSampleProjExplicitLod = 92,
721 OpImageSampleProjDrefImplicitLod = 93,
722 OpImageSampleProjDrefExplicitLod = 94,
725 OpImageDrefGather = 97,
729 OpImageQueryFormat = 101,
730 OpImageQueryOrder = 102,
731 OpImageQuerySizeLod = 103,
732 OpImageQuerySize = 104,
733 OpImageQueryLod = 105,
734 OpImageQueryLevels = 106,
735 OpImageQuerySamples = 107,
743 OpQuantizeToF16 = 116,
744 OpConvertPtrToU = 117,
745 OpSatConvertSToU = 118,
746 OpSatConvertUToS = 119,
747 OpConvertUToPtr = 120,
748 OpPtrCastToGeneric = 121,
749 OpGenericCastToPtr = 122,
750 OpGenericCastToPtrExplicit = 123,
768 OpVectorTimesScalar = 142,
769 OpMatrixTimesScalar = 143,
770 OpVectorTimesMatrix = 144,
771 OpMatrixTimesVector = 145,
772 OpMatrixTimesMatrix = 146,
773 OpOuterProduct = 147,
777 OpUMulExtended = 151,
778 OpSMulExtended = 152,
786 OpLessOrGreater = 161,
789 OpLogicalEqual = 164,
790 OpLogicalNotEqual = 165,
797 OpUGreaterThan = 172,
798 OpSGreaterThan = 173,
799 OpUGreaterThanEqual = 174,
800 OpSGreaterThanEqual = 175,
803 OpULessThanEqual = 178,
804 OpSLessThanEqual = 179,
807 OpFOrdNotEqual = 182,
808 OpFUnordNotEqual = 183,
809 OpFOrdLessThan = 184,
810 OpFUnordLessThan = 185,
811 OpFOrdGreaterThan = 186,
812 OpFUnordGreaterThan = 187,
813 OpFOrdLessThanEqual = 188,
814 OpFUnordLessThanEqual = 189,
815 OpFOrdGreaterThanEqual = 190,
816 OpFUnordGreaterThanEqual = 191,
817 OpShiftRightLogical = 194,
818 OpShiftRightArithmetic = 195,
819 OpShiftLeftLogical = 196,
824 OpBitFieldInsert = 201,
825 OpBitFieldSExtract = 202,
826 OpBitFieldUExtract = 203,
837 OpFwidthCoarse = 215,
839 OpEndPrimitive = 219,
840 OpEmitStreamVertex = 220,
841 OpEndStreamPrimitive = 221,
842 OpControlBarrier = 224,
843 OpMemoryBarrier = 225,
846 OpAtomicExchange = 229,
847 OpAtomicCompareExchange = 230,
848 OpAtomicCompareExchangeWeak = 231,
849 OpAtomicIIncrement = 232,
850 OpAtomicIDecrement = 233,
862 OpSelectionMerge = 247,
865 OpBranchConditional = 250,
871 OpLifetimeStart = 256,
872 OpLifetimeStop = 257,
873 OpGroupAsyncCopy = 259,
874 OpGroupWaitEvents = 260,
877 OpGroupBroadcast = 263,
888 OpReservedReadPipe = 276,
889 OpReservedWritePipe = 277,
890 OpReserveReadPipePackets = 278,
891 OpReserveWritePipePackets = 279,
892 OpCommitReadPipe = 280,
893 OpCommitWritePipe = 281,
894 OpIsValidReserveId = 282,
895 OpGetNumPipePackets = 283,
896 OpGetMaxPipePackets = 284,
897 OpGroupReserveReadPipePackets = 285,
898 OpGroupReserveWritePipePackets = 286,
899 OpGroupCommitReadPipe = 287,
900 OpGroupCommitWritePipe = 288,
901 OpEnqueueMarker = 291,
902 OpEnqueueKernel = 292,
903 OpGetKernelNDrangeSubGroupCount = 293,
904 OpGetKernelNDrangeMaxSubGroupSize = 294,
905 OpGetKernelWorkGroupSize = 295,
906 OpGetKernelPreferredWorkGroupSizeMultiple = 296,
908 OpReleaseEvent = 298,
909 OpCreateUserEvent = 299,
910 OpIsValidEvent = 300,
911 OpSetUserEventStatus = 301,
912 OpCaptureEventProfilingInfo = 302,
913 OpGetDefaultQueue = 303,
914 OpBuildNDRange = 304,
915 OpImageSparseSampleImplicitLod = 305,
916 OpImageSparseSampleExplicitLod = 306,
917 OpImageSparseSampleDrefImplicitLod = 307,
918 OpImageSparseSampleDrefExplicitLod = 308,
919 OpImageSparseSampleProjImplicitLod = 309,
920 OpImageSparseSampleProjExplicitLod = 310,
921 OpImageSparseSampleProjDrefImplicitLod = 311,
922 OpImageSparseSampleProjDrefExplicitLod = 312,
923 OpImageSparseFetch = 313,
924 OpImageSparseGather = 314,
925 OpImageSparseDrefGather = 315,
926 OpImageSparseTexelsResident = 316,
928 OpAtomicFlagTestAndSet = 318,
929 OpAtomicFlagClear = 319,
930 OpImageSparseRead = 320,
932 OpTypePipeStorage = 322,
933 OpConstantPipeStorage = 323,
934 OpCreatePipeFromPipeStorage = 324,
935 OpGetKernelLocalSizeForSubgroupCount = 325,
936 OpGetKernelMaxNumSubgroups = 326,
937 OpTypeNamedBarrier = 327,
938 OpNamedBarrierInitialize = 328,
939 OpMemoryNamedBarrier = 329,
940 OpModuleProcessed = 330,
942 OpSubgroupBallotKHR = 4421,
943 OpSubgroupFirstInvocationKHR = 4422,
944 OpSubgroupAllKHR = 4428,
945 OpSubgroupAnyKHR = 4429,
946 OpSubgroupAllEqualKHR = 4430,
947 OpSubgroupReadInvocationKHR = 4432,
948 OpGroupIAddNonUniformAMD = 5000,
949 OpGroupFAddNonUniformAMD = 5001,
950 OpGroupFMinNonUniformAMD = 5002,
951 OpGroupUMinNonUniformAMD = 5003,
952 OpGroupSMinNonUniformAMD = 5004,
953 OpGroupFMaxNonUniformAMD = 5005,
954 OpGroupUMaxNonUniformAMD = 5006,
955 OpGroupSMaxNonUniformAMD = 5007,
956 OpFragmentMaskFetchAMD = 5011,
957 OpFragmentFetchAMD = 5012,
958 OpSubgroupShuffleINTEL = 5571,
959 OpSubgroupShuffleDownINTEL = 5572,
960 OpSubgroupShuffleUpINTEL = 5573,
961 OpSubgroupShuffleXorINTEL = 5574,
962 OpSubgroupBlockReadINTEL = 5575,
963 OpSubgroupBlockWriteINTEL = 5576,
964 OpSubgroupImageBlockReadINTEL = 5577,
965 OpSubgroupImageBlockWriteINTEL = 5578,
966 OpDecorateStringGOOGLE = 5632,
967 OpMemberDecorateStringGOOGLE = 5633,