aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2023-08-14 15:37:17 -0700
committerXin Li <delphij@google.com>2023-08-14 15:37:17 -0700
commit23a9bcfa76f4976b2e93d33e87049b6c538073da (patch)
tree2348ac4693fa0f042847c76b892e5a9dd2487c05
parentffb555f90e05559b79e2c777aa9fabbfb6767e73 (diff)
parent63f702d9f6f27cbc1bfbd905d7f41feb4215c8d8 (diff)
downloadSPIRV-Headers-tmp_amf_298295554.tar.gz
Merge Android U (ab/10368041)tmp_amf_298295554
Bug: 291102124 Merged-In: I6ae9e6aff054e05c8475eaf66f6054db2eb49b47 Change-Id: Ie76ecdd4651e5bfc1af420a633cd2fdf2f66641a
-rw-r--r--CMakeLists.txt14
-rw-r--r--include/spirv/spir-v.xml6
-rw-r--r--include/spirv/unified1/NonSemanticClspvReflection.h10
-rw-r--r--include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json88
-rw-r--r--include/spirv/unified1/spirv.bf1899
-rw-r--r--include/spirv/unified1/spirv.core.grammar.json471
-rw-r--r--include/spirv/unified1/spirv.cs53
-rw-r--r--include/spirv/unified1/spirv.h72
-rw-r--r--include/spirv/unified1/spirv.hpp72
-rw-r--r--include/spirv/unified1/spirv.hpp1172
-rw-r--r--include/spirv/unified1/spirv.json65
-rw-r--r--include/spirv/unified1/spirv.lua53
-rw-r--r--include/spirv/unified1/spirv.py53
-rw-r--r--include/spirv/unified1/spv.d53
-rw-r--r--tools/buildHeaders/header.cpp46
-rw-r--r--tools/buildHeaders/header.h1
-rw-r--r--tools/buildHeaders/main.cpp3
17 files changed, 2988 insertions, 43 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f19390a..9cfba73 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -44,11 +44,6 @@ project(SPIRV-Headers VERSION 1.5.5)
# 2. cmake ..
# 3. cmake --build . --target install
-# legacy
-add_custom_target(install-headers
- COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv
- $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/include/spirv)
-
option(SPIRV_HEADERS_SKIP_EXAMPLES "Skip building examples"
${SPIRV_HEADERS_SKIP_EXAMPLES})
@@ -61,6 +56,10 @@ endif()
if(NOT ${SPIRV_HEADERS_SKIP_INSTALL})
set(SPIRV_HEADERS_ENABLE_INSTALL ON)
+ # legacy
+ add_custom_target(install-headers
+ COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv
+ $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/include/spirv)
endif()
if (SPIRV_HEADERS_ENABLE_EXAMPLES)
@@ -89,9 +88,14 @@ if (SPIRV_HEADERS_ENABLE_INSTALL)
set(namespace "${PROJECT_NAME}::")
include(CMakePackageConfigHelpers)
+
+ if (NOT CMAKE_VERSION VERSION_LESS 3.14)
+ set(arch_independent_str ARCH_INDEPENDENT)
+ endif()
write_basic_package_version_file(
"${version_config}"
COMPATIBILITY SameMajorVersion
+ ${arch_independent_str}
)
configure_package_config_file(
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index 6b578a5..7acaed3 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -84,7 +84,8 @@
<id value="31" vendor="Google" tool="Skia SkSL" comment="Contact Ethan Nicholas, ethannicholas@google.com"/>
<id value="32" vendor="TornadoVM" tool="SPIRV Beehive Toolkit" comment="https://github.com/beehive-lab/spirv-beehive-toolkit"/>
<id value="33" vendor="DragonJoker" tool="ShaderWriter" comment="Contact Sylvain Doremus, https://github.com/DragonJoker/ShaderWriter"/>
- <unused start="34" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
+ <id value="34" vendor="Rayan Hatout" tool="SPIRVSmith" comment="Contact Rayan Hatout rayan.hatout@gmail.com, Repo https://github.com/rayanht/SPIRVSmith"/>
+ <unused start="35" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
</ids>
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
@@ -166,13 +167,14 @@
<ids type="enumerant" start="6144" end="6271" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
<ids type="enumerant" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
<ids type="enumerant" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
+ <ids type="enumerant" start="6464" end="6527" vendor="Mikkosoft Productions" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
<!-- Enumerants to reserve for future use. To get a block, allocate
multiples of 64 starting at the lowest available point in this
block and add a corresponding <ids> tag immediately above. Make
sure to fill in the vendor attribute, and preferably add a contact
person/address in a comment attribute. -->
<!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
- <ids type="enumerant" start="6464" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
+ <ids type="enumerant" start="6528" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
<!-- End reservations of enumerants -->
diff --git a/include/spirv/unified1/NonSemanticClspvReflection.h b/include/spirv/unified1/NonSemanticClspvReflection.h
index 380dc21..7994fd5 100644
--- a/include/spirv/unified1/NonSemanticClspvReflection.h
+++ b/include/spirv/unified1/NonSemanticClspvReflection.h
@@ -33,7 +33,7 @@ extern "C" {
#endif
enum {
- NonSemanticClspvReflectionRevision = 2,
+ NonSemanticClspvReflectionRevision = 3,
NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff
};
@@ -63,6 +63,14 @@ enum NonSemanticClspvReflectionInstructions {
NonSemanticClspvReflectionLiteralSampler = 23,
NonSemanticClspvReflectionPropertyRequiredWorkgroupSize = 24,
NonSemanticClspvReflectionSpecConstantSubgroupMaxSize = 25,
+ NonSemanticClspvReflectionArgumentPointerPushConstant = 26,
+ NonSemanticClspvReflectionArgumentPointerUniform = 27,
+ NonSemanticClspvReflectionProgramScopeVariablesStorageBuffer = 28,
+ NonSemanticClspvReflectionProgramScopeVariablePointerRelocation = 29,
+ NonSemanticClspvReflectionImageArgumentInfoChannelOrderPushConstant = 30,
+ NonSemanticClspvReflectionImageArgumentInfoChannelDataTypePushConstant = 31,
+ NonSemanticClspvReflectionImageArgumentInfoChannelOrderUniform = 32,
+ NonSemanticClspvReflectionImageArgumentInfoChannelDataTypeUniform = 33,
NonSemanticClspvReflectionInstructionsMax = 0x7fffffff
};
diff --git a/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json b/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
index 3d153e5..c5502f9 100644
--- a/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
+++ b/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
@@ -1,5 +1,5 @@
{
- "revision" : 2,
+ "revision" : 3,
"instructions" : [
{
"opname" : "Kernel",
@@ -239,6 +239,92 @@
"operands" : [
{ "kind" : "IdRef", "name" : "Size" }
]
+ },
+ {
+ "opname" : "ArgumentPointerPushConstant",
+ "opcode" : 26,
+ "operands": [
+ { "kind" : "IdRef", "name" : "Kernel" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentPointerUniform",
+ "opcode" : 27,
+ "operands": [
+ { "kind" : "IdRef", "name" : "Kernel" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ProgramScopeVariablesStorageBuffer",
+ "opcode" : 28,
+ "operands": [
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "Data" }
+ ]
+ },
+ {
+ "opname" : "ProgramScopeVariablePointerRelocation",
+ "opcode" : 29,
+ "operands": [
+ { "kind" : "IdRef", "name" : "ObjectOffset" },
+ { "kind" : "IdRef", "name" : "PointerOffset" },
+ { "kind" : "IdRef", "name" : "PointerSize" }
+ ]
+ },
+ {
+ "opname" : "ImageArgumentInfoChannelOrderPushConstant",
+ "opcode" : 30,
+ "operands": [
+ { "kind" : "IdRef", "name" : "Kernel" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "ImageArgumentInfoChannelDataTypePushConstant",
+ "opcode" : 31,
+ "operands": [
+ { "kind" : "IdRef", "name" : "Kernel" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "ImageArgumentInfoChannelOrderUniform",
+ "opcode" : 32,
+ "operands": [
+ { "kind" : "IdRef", "name" : "Kernel" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "ImageArgumentInfoChannelDataTypeUniform",
+ "opcode" : 33,
+ "operands": [
+ { "kind" : "IdRef", "name" : "Kernel" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
}
]
}
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
new file mode 100644
index 0000000..fb9ec89
--- /dev/null
+++ b/include/spirv/unified1/spirv.bf
@@ -0,0 +1,1899 @@
+// 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 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#, D, Beef
+//
+// - 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
+// - Beef will use enum classes in the Specification class located in the "Spv" namespace,
+// e.g.: Spv.Specification.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.
+
+namespace Spv
+{
+ using System;
+
+ public static class Specification
+ {
+ public const uint32 MagicNumber = 0x07230203;
+ public const uint32 Version = 0x00010600;
+ public const uint32 Revision = 1;
+ public const uint32 OpCodeMask = 0xffff;
+ public const uint32 WordCountShift = 16;
+
+ [AllowDuplicates, CRepr] public enum SourceLanguage
+ {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ CPP_for_OpenCL = 6,
+ SYCL = 7,
+ }
+
+ [AllowDuplicates, CRepr] public enum 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,
+ TaskEXT = 5364,
+ MeshEXT = 5365,
+ }
+
+ [AllowDuplicates, CRepr] public enum AddressingModel
+ {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ PhysicalStorageBuffer64 = 5348,
+ PhysicalStorageBuffer64EXT = 5348,
+ }
+
+ [AllowDuplicates, CRepr] public enum MemoryModel
+ {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ Vulkan = 3,
+ VulkanKHR = 3,
+ }
+
+ [AllowDuplicates, CRepr] public enum 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,
+ EarlyAndLateFragmentTestsAMD = 5017,
+ StencilRefReplacingEXT = 5027,
+ StencilRefUnchangedFrontAMD = 5079,
+ StencilRefGreaterFrontAMD = 5080,
+ StencilRefLessFrontAMD = 5081,
+ StencilRefUnchangedBackAMD = 5082,
+ StencilRefGreaterBackAMD = 5083,
+ StencilRefLessBackAMD = 5084,
+ OutputLinesEXT = 5269,
+ OutputLinesNV = 5269,
+ OutputPrimitivesEXT = 5270,
+ OutputPrimitivesNV = 5270,
+ DerivativeGroupQuadsNV = 5289,
+ DerivativeGroupLinearNV = 5290,
+ OutputTrianglesEXT = 5298,
+ 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,
+ NamedBarrierCountINTEL = 6417,
+ }
+
+ [AllowDuplicates, CRepr] public enum 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,
+ TaskPayloadWorkgroupEXT = 5402,
+ CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
+ }
+
+ [AllowDuplicates, CRepr] public enum Dim
+ {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ }
+
+ [AllowDuplicates, CRepr] public enum SamplerAddressingMode
+ {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ }
+
+ [AllowDuplicates, CRepr] public enum SamplerFilterMode
+ {
+ Nearest = 0,
+ Linear = 1,
+ }
+
+ [AllowDuplicates, CRepr] public enum 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,
+ Rgba32ui = 30,
+ Rgba16ui = 31,
+ Rgba8ui = 32,
+ R32ui = 33,
+ Rgb10a2ui = 34,
+ Rg32ui = 35,
+ Rg16ui = 36,
+ Rg8ui = 37,
+ R16ui = 38,
+ R8ui = 39,
+ R64ui = 40,
+ R64i = 41,
+ }
+
+ [AllowDuplicates, CRepr] public enum ImageChannelOrder
+ {
+ R = 0,
+ A = 1,
+ RG = 2,
+ RA = 3,
+ RGB = 4,
+ RGBA = 5,
+ BGRA = 6,
+ ARGB = 7,
+ Intensity = 8,
+ Luminance = 9,
+ Rx = 10,
+ RGx = 11,
+ RGBx = 12,
+ Depth = 13,
+ DepthStencil = 14,
+ sRGB = 15,
+ sRGBx = 16,
+ sRGBA = 17,
+ sBGRA = 18,
+ ABGR = 19,
+ }
+
+ [AllowDuplicates, CRepr] public enum ImageChannelDataType
+ {
+ SnormInt8 = 0,
+ SnormInt16 = 1,
+ UnormInt8 = 2,
+ UnormInt16 = 3,
+ UnormShort565 = 4,
+ UnormShort555 = 5,
+ UnormInt101010 = 6,
+ SignedInt8 = 7,
+ SignedInt16 = 8,
+ SignedInt32 = 9,
+ UnsignedInt8 = 10,
+ UnsignedInt16 = 11,
+ UnsignedInt32 = 12,
+ HalfFloat = 13,
+ Float = 14,
+ UnormInt24 = 15,
+ UnormInt101010_2 = 16,
+ }
+
+ [AllowDuplicates, CRepr] public enum ImageOperandsShift
+ {
+ Bias = 0,
+ Lod = 1,
+ Grad = 2,
+ ConstOffset = 3,
+ Offset = 4,
+ ConstOffsets = 5,
+ Sample = 6,
+ MinLod = 7,
+ MakeTexelAvailable = 8,
+ MakeTexelAvailableKHR = 8,
+ MakeTexelVisible = 9,
+ MakeTexelVisibleKHR = 9,
+ NonPrivateTexel = 10,
+ NonPrivateTexelKHR = 10,
+ VolatileTexel = 11,
+ VolatileTexelKHR = 11,
+ SignExtend = 12,
+ ZeroExtend = 13,
+ Nontemporal = 14,
+ Offsets = 16,
+ }
+
+ [AllowDuplicates, CRepr] public enum ImageOperandsMask
+ {
+ MaskNone = 0,
+ Bias = 0x00000001,
+ Lod = 0x00000002,
+ Grad = 0x00000004,
+ ConstOffset = 0x00000008,
+ Offset = 0x00000010,
+ ConstOffsets = 0x00000020,
+ Sample = 0x00000040,
+ MinLod = 0x00000080,
+ MakeTexelAvailable = 0x00000100,
+ MakeTexelAvailableKHR = 0x00000100,
+ MakeTexelVisible = 0x00000200,
+ MakeTexelVisibleKHR = 0x00000200,
+ NonPrivateTexel = 0x00000400,
+ NonPrivateTexelKHR = 0x00000400,
+ VolatileTexel = 0x00000800,
+ VolatileTexelKHR = 0x00000800,
+ SignExtend = 0x00001000,
+ ZeroExtend = 0x00002000,
+ Nontemporal = 0x00004000,
+ Offsets = 0x00010000,
+ }
+
+ [AllowDuplicates, CRepr] public enum FPFastMathModeShift
+ {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
+ }
+
+ [AllowDuplicates, CRepr] public enum FPFastMathModeMask
+ {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
+ }
+
+ [AllowDuplicates, CRepr] public enum FPRoundingMode
+ {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ }
+
+ [AllowDuplicates, CRepr] public enum LinkageType
+ {
+ Export = 0,
+ Import = 1,
+ LinkOnceODR = 2,
+ }
+
+ [AllowDuplicates, CRepr] public enum AccessQualifier
+ {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ }
+
+ [AllowDuplicates, CRepr] public enum FunctionParameterAttribute
+ {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ }
+
+ [AllowDuplicates, CRepr] public enum Decoration
+ {
+ RelaxedPrecision = 0,
+ SpecId = 1,
+ Block = 2,
+ BufferBlock = 3,
+ RowMajor = 4,
+ ColMajor = 5,
+ ArrayStride = 6,
+ MatrixStride = 7,
+ GLSLShared = 8,
+ GLSLPacked = 9,
+ CPacked = 10,
+ BuiltIn = 11,
+ NoPerspective = 13,
+ Flat = 14,
+ Patch = 15,
+ Centroid = 16,
+ Sample = 17,
+ Invariant = 18,
+ Restrict = 19,
+ Aliased = 20,
+ Volatile = 21,
+ Constant = 22,
+ Coherent = 23,
+ NonWritable = 24,
+ NonReadable = 25,
+ Uniform = 26,
+ UniformId = 27,
+ SaturatedConversion = 28,
+ Stream = 29,
+ Location = 30,
+ Component = 31,
+ Index = 32,
+ Binding = 33,
+ DescriptorSet = 34,
+ Offset = 35,
+ XfbBuffer = 36,
+ XfbStride = 37,
+ FuncParamAttr = 38,
+ FPRoundingMode = 39,
+ FPFastMathMode = 40,
+ LinkageAttributes = 41,
+ NoContraction = 42,
+ InputAttachmentIndex = 43,
+ Alignment = 44,
+ MaxByteOffset = 45,
+ AlignmentId = 46,
+ MaxByteOffsetId = 47,
+ NoSignedWrap = 4469,
+ NoUnsignedWrap = 4470,
+ ExplicitInterpAMD = 4999,
+ OverrideCoverageNV = 5248,
+ PassthroughNV = 5250,
+ ViewportRelativeNV = 5252,
+ SecondaryViewportRelativeNV = 5256,
+ PerPrimitiveEXT = 5271,
+ PerPrimitiveNV = 5271,
+ PerViewNV = 5272,
+ PerTaskNV = 5273,
+ PerVertexKHR = 5285,
+ PerVertexNV = 5285,
+ NonUniform = 5300,
+ NonUniformEXT = 5300,
+ RestrictPointer = 5355,
+ RestrictPointerEXT = 5355,
+ AliasedPointer = 5356,
+ AliasedPointerEXT = 5356,
+ BindlessSamplerNV = 5398,
+ BindlessImageNV = 5399,
+ BoundSamplerNV = 5400,
+ BoundImageNV = 5401,
+ SIMTCallINTEL = 5599,
+ ReferencedIndirectlyINTEL = 5602,
+ ClobberINTEL = 5607,
+ SideEffectsINTEL = 5608,
+ VectorComputeVariableINTEL = 5624,
+ FuncParamIOKindINTEL = 5625,
+ VectorComputeFunctionINTEL = 5626,
+ StackCallINTEL = 5627,
+ GlobalVariableOffsetINTEL = 5628,
+ CounterBuffer = 5634,
+ HlslCounterBufferGOOGLE = 5634,
+ HlslSemanticGOOGLE = 5635,
+ UserSemantic = 5635,
+ UserTypeGOOGLE = 5636,
+ FunctionRoundingModeINTEL = 5822,
+ FunctionDenormModeINTEL = 5823,
+ RegisterINTEL = 5825,
+ MemoryINTEL = 5826,
+ NumbanksINTEL = 5827,
+ BankwidthINTEL = 5828,
+ MaxPrivateCopiesINTEL = 5829,
+ SinglepumpINTEL = 5830,
+ DoublepumpINTEL = 5831,
+ MaxReplicatesINTEL = 5832,
+ SimpleDualPortINTEL = 5833,
+ MergeINTEL = 5834,
+ BankBitsINTEL = 5835,
+ ForcePow2DepthINTEL = 5836,
+ BurstCoalesceINTEL = 5899,
+ CacheSizeINTEL = 5900,
+ DontStaticallyCoalesceINTEL = 5901,
+ PrefetchINTEL = 5902,
+ StallEnableINTEL = 5905,
+ FuseLoopsInFunctionINTEL = 5907,
+ AliasScopeINTEL = 5914,
+ NoAliasINTEL = 5915,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
+ MediaBlockIOINTEL = 6140,
+ }
+
+ [AllowDuplicates, CRepr] public enum BuiltIn
+ {
+ Position = 0,
+ PointSize = 1,
+ ClipDistance = 3,
+ CullDistance = 4,
+ VertexId = 5,
+ InstanceId = 6,
+ PrimitiveId = 7,
+ InvocationId = 8,
+ Layer = 9,
+ ViewportIndex = 10,
+ TessLevelOuter = 11,
+ TessLevelInner = 12,
+ TessCoord = 13,
+ PatchVertices = 14,
+ FragCoord = 15,
+ PointCoord = 16,
+ FrontFacing = 17,
+ SampleId = 18,
+ SamplePosition = 19,
+ SampleMask = 20,
+ FragDepth = 22,
+ HelperInvocation = 23,
+ NumWorkgroups = 24,
+ WorkgroupSize = 25,
+ WorkgroupId = 26,
+ LocalInvocationId = 27,
+ GlobalInvocationId = 28,
+ LocalInvocationIndex = 29,
+ WorkDim = 30,
+ GlobalSize = 31,
+ EnqueuedWorkgroupSize = 32,
+ GlobalOffset = 33,
+ GlobalLinearId = 34,
+ SubgroupSize = 36,
+ SubgroupMaxSize = 37,
+ NumSubgroups = 38,
+ NumEnqueuedSubgroups = 39,
+ SubgroupId = 40,
+ SubgroupLocalInvocationId = 41,
+ VertexIndex = 42,
+ InstanceIndex = 43,
+ SubgroupEqMask = 4416,
+ SubgroupEqMaskKHR = 4416,
+ SubgroupGeMask = 4417,
+ SubgroupGeMaskKHR = 4417,
+ SubgroupGtMask = 4418,
+ SubgroupGtMaskKHR = 4418,
+ SubgroupLeMask = 4419,
+ SubgroupLeMaskKHR = 4419,
+ SubgroupLtMask = 4420,
+ SubgroupLtMaskKHR = 4420,
+ BaseVertex = 4424,
+ BaseInstance = 4425,
+ DrawIndex = 4426,
+ PrimitiveShadingRateKHR = 4432,
+ DeviceIndex = 4438,
+ ViewIndex = 4440,
+ ShadingRateKHR = 4444,
+ BaryCoordNoPerspAMD = 4992,
+ BaryCoordNoPerspCentroidAMD = 4993,
+ BaryCoordNoPerspSampleAMD = 4994,
+ BaryCoordSmoothAMD = 4995,
+ BaryCoordSmoothCentroidAMD = 4996,
+ BaryCoordSmoothSampleAMD = 4997,
+ BaryCoordPullModelAMD = 4998,
+ FragStencilRefEXT = 5014,
+ ViewportMaskNV = 5253,
+ SecondaryPositionNV = 5257,
+ SecondaryViewportMaskNV = 5258,
+ PositionPerViewNV = 5261,
+ ViewportMaskPerViewNV = 5262,
+ FullyCoveredEXT = 5264,
+ TaskCountNV = 5274,
+ PrimitiveCountNV = 5275,
+ PrimitiveIndicesNV = 5276,
+ ClipDistancePerViewNV = 5277,
+ CullDistancePerViewNV = 5278,
+ LayerPerViewNV = 5279,
+ MeshViewCountNV = 5280,
+ MeshViewIndicesNV = 5281,
+ BaryCoordKHR = 5286,
+ BaryCoordNV = 5286,
+ BaryCoordNoPerspKHR = 5287,
+ BaryCoordNoPerspNV = 5287,
+ FragSizeEXT = 5292,
+ FragmentSizeNV = 5292,
+ FragInvocationCountEXT = 5293,
+ InvocationsPerPixelNV = 5293,
+ PrimitivePointIndicesEXT = 5294,
+ PrimitiveLineIndicesEXT = 5295,
+ PrimitiveTriangleIndicesEXT = 5296,
+ CullPrimitiveEXT = 5299,
+ LaunchIdKHR = 5319,
+ LaunchIdNV = 5319,
+ LaunchSizeKHR = 5320,
+ LaunchSizeNV = 5320,
+ WorldRayOriginKHR = 5321,
+ WorldRayOriginNV = 5321,
+ WorldRayDirectionKHR = 5322,
+ WorldRayDirectionNV = 5322,
+ ObjectRayOriginKHR = 5323,
+ ObjectRayOriginNV = 5323,
+ ObjectRayDirectionKHR = 5324,
+ ObjectRayDirectionNV = 5324,
+ RayTminKHR = 5325,
+ RayTminNV = 5325,
+ RayTmaxKHR = 5326,
+ RayTmaxNV = 5326,
+ InstanceCustomIndexKHR = 5327,
+ InstanceCustomIndexNV = 5327,
+ ObjectToWorldKHR = 5330,
+ ObjectToWorldNV = 5330,
+ WorldToObjectKHR = 5331,
+ WorldToObjectNV = 5331,
+ HitTNV = 5332,
+ HitKindKHR = 5333,
+ HitKindNV = 5333,
+ CurrentRayTimeNV = 5334,
+ IncomingRayFlagsKHR = 5351,
+ IncomingRayFlagsNV = 5351,
+ RayGeometryIndexKHR = 5352,
+ WarpsPerSMNV = 5374,
+ SMCountNV = 5375,
+ WarpIDNV = 5376,
+ SMIDNV = 5377,
+ CullMaskKHR = 6021,
+ }
+
+ [AllowDuplicates, CRepr] public enum SelectionControlShift
+ {
+ Flatten = 0,
+ DontFlatten = 1,
+ }
+
+ [AllowDuplicates, CRepr] public enum SelectionControlMask
+ {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+ }
+
+ [AllowDuplicates, CRepr] public enum LoopControlShift
+ {
+ Unroll = 0,
+ DontUnroll = 1,
+ DependencyInfinite = 2,
+ DependencyLength = 3,
+ MinIterations = 4,
+ MaxIterations = 5,
+ IterationMultiple = 6,
+ PeelCount = 7,
+ PartialCount = 8,
+ InitiationIntervalINTEL = 16,
+ MaxConcurrencyINTEL = 17,
+ DependencyArrayINTEL = 18,
+ PipelineEnableINTEL = 19,
+ LoopCoalesceINTEL = 20,
+ MaxInterleavingINTEL = 21,
+ SpeculatedIterationsINTEL = 22,
+ NoFusionINTEL = 23,
+ }
+
+ [AllowDuplicates, CRepr] public enum LoopControlMask
+ {
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+ DependencyInfinite = 0x00000004,
+ DependencyLength = 0x00000008,
+ MinIterations = 0x00000010,
+ MaxIterations = 0x00000020,
+ IterationMultiple = 0x00000040,
+ PeelCount = 0x00000080,
+ PartialCount = 0x00000100,
+ InitiationIntervalINTEL = 0x00010000,
+ MaxConcurrencyINTEL = 0x00020000,
+ DependencyArrayINTEL = 0x00040000,
+ PipelineEnableINTEL = 0x00080000,
+ LoopCoalesceINTEL = 0x00100000,
+ MaxInterleavingINTEL = 0x00200000,
+ SpeculatedIterationsINTEL = 0x00400000,
+ NoFusionINTEL = 0x00800000,
+ }
+
+ [AllowDuplicates, CRepr] public enum FunctionControlShift
+ {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ OptNoneINTEL = 16,
+ }
+
+ [AllowDuplicates, CRepr] public enum FunctionControlMask
+ {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+ OptNoneINTEL = 0x00010000,
+ }
+
+ [AllowDuplicates, CRepr] public enum MemorySemanticsShift
+ {
+ Acquire = 1,
+ Release = 2,
+ AcquireRelease = 3,
+ SequentiallyConsistent = 4,
+ UniformMemory = 6,
+ SubgroupMemory = 7,
+ WorkgroupMemory = 8,
+ CrossWorkgroupMemory = 9,
+ AtomicCounterMemory = 10,
+ ImageMemory = 11,
+ OutputMemory = 12,
+ OutputMemoryKHR = 12,
+ MakeAvailable = 13,
+ MakeAvailableKHR = 13,
+ MakeVisible = 14,
+ MakeVisibleKHR = 14,
+ Volatile = 15,
+ }
+
+ [AllowDuplicates, CRepr] public enum MemorySemanticsMask
+ {
+ MaskNone = 0,
+ Acquire = 0x00000002,
+ Release = 0x00000004,
+ AcquireRelease = 0x00000008,
+ SequentiallyConsistent = 0x00000010,
+ UniformMemory = 0x00000040,
+ SubgroupMemory = 0x00000080,
+ WorkgroupMemory = 0x00000100,
+ CrossWorkgroupMemory = 0x00000200,
+ AtomicCounterMemory = 0x00000400,
+ ImageMemory = 0x00000800,
+ OutputMemory = 0x00001000,
+ OutputMemoryKHR = 0x00001000,
+ MakeAvailable = 0x00002000,
+ MakeAvailableKHR = 0x00002000,
+ MakeVisible = 0x00004000,
+ MakeVisibleKHR = 0x00004000,
+ Volatile = 0x00008000,
+ }
+
+ [AllowDuplicates, CRepr] public enum MemoryAccessShift
+ {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ MakePointerAvailable = 3,
+ MakePointerAvailableKHR = 3,
+ MakePointerVisible = 4,
+ MakePointerVisibleKHR = 4,
+ NonPrivatePointer = 5,
+ NonPrivatePointerKHR = 5,
+ AliasScopeINTELMask = 16,
+ NoAliasINTELMask = 17,
+ }
+
+ [AllowDuplicates, CRepr] public enum MemoryAccessMask
+ {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+ MakePointerAvailable = 0x00000008,
+ MakePointerAvailableKHR = 0x00000008,
+ MakePointerVisible = 0x00000010,
+ MakePointerVisibleKHR = 0x00000010,
+ NonPrivatePointer = 0x00000020,
+ NonPrivatePointerKHR = 0x00000020,
+ AliasScopeINTELMask = 0x00010000,
+ NoAliasINTELMask = 0x00020000,
+ }
+
+ [AllowDuplicates, CRepr] public enum Scope
+ {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ QueueFamily = 5,
+ QueueFamilyKHR = 5,
+ ShaderCallKHR = 6,
+ }
+
+ [AllowDuplicates, CRepr] public enum GroupOperation
+ {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ ClusteredReduce = 3,
+ PartitionedReduceNV = 6,
+ PartitionedInclusiveScanNV = 7,
+ PartitionedExclusiveScanNV = 8,
+ }
+
+ [AllowDuplicates, CRepr] public enum KernelEnqueueFlags
+ {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ }
+
+ [AllowDuplicates, CRepr] public enum KernelProfilingInfoShift
+ {
+ CmdExecTime = 0,
+ }
+
+ [AllowDuplicates, CRepr] public enum KernelProfilingInfoMask
+ {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+ }
+
+ [AllowDuplicates, CRepr] public enum Capability
+ {
+ Matrix = 0,
+ Shader = 1,
+ Geometry = 2,
+ Tessellation = 3,
+ Addresses = 4,
+ Linkage = 5,
+ Kernel = 6,
+ Vector16 = 7,
+ Float16Buffer = 8,
+ Float16 = 9,
+ Float64 = 10,
+ Int64 = 11,
+ Int64Atomics = 12,
+ ImageBasic = 13,
+ ImageReadWrite = 14,
+ ImageMipmap = 15,
+ Pipes = 17,
+ Groups = 18,
+ DeviceEnqueue = 19,
+ LiteralSampler = 20,
+ AtomicStorage = 21,
+ Int16 = 22,
+ TessellationPointSize = 23,
+ GeometryPointSize = 24,
+ ImageGatherExtended = 25,
+ StorageImageMultisample = 27,
+ UniformBufferArrayDynamicIndexing = 28,
+ SampledImageArrayDynamicIndexing = 29,
+ StorageBufferArrayDynamicIndexing = 30,
+ StorageImageArrayDynamicIndexing = 31,
+ ClipDistance = 32,
+ CullDistance = 33,
+ ImageCubeArray = 34,
+ SampleRateShading = 35,
+ ImageRect = 36,
+ SampledRect = 37,
+ GenericPointer = 38,
+ Int8 = 39,
+ InputAttachment = 40,
+ SparseResidency = 41,
+ MinLod = 42,
+ Sampled1D = 43,
+ Image1D = 44,
+ SampledCubeArray = 45,
+ SampledBuffer = 46,
+ ImageBuffer = 47,
+ ImageMSArray = 48,
+ StorageImageExtendedFormats = 49,
+ ImageQuery = 50,
+ DerivativeControl = 51,
+ InterpolationFunction = 52,
+ TransformFeedback = 53,
+ GeometryStreams = 54,
+ StorageImageReadWithoutFormat = 55,
+ StorageImageWriteWithoutFormat = 56,
+ MultiViewport = 57,
+ SubgroupDispatch = 58,
+ NamedBarrier = 59,
+ PipeStorage = 60,
+ GroupNonUniform = 61,
+ GroupNonUniformVote = 62,
+ GroupNonUniformArithmetic = 63,
+ GroupNonUniformBallot = 64,
+ GroupNonUniformShuffle = 65,
+ GroupNonUniformShuffleRelative = 66,
+ GroupNonUniformClustered = 67,
+ GroupNonUniformQuad = 68,
+ ShaderLayer = 69,
+ ShaderViewportIndex = 70,
+ UniformDecoration = 71,
+ FragmentShadingRateKHR = 4422,
+ SubgroupBallotKHR = 4423,
+ DrawParameters = 4427,
+ WorkgroupMemoryExplicitLayoutKHR = 4428,
+ WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
+ SubgroupVoteKHR = 4431,
+ StorageBuffer16BitAccess = 4433,
+ StorageUniformBufferBlock16 = 4433,
+ StorageUniform16 = 4434,
+ UniformAndStorageBuffer16BitAccess = 4434,
+ StoragePushConstant16 = 4435,
+ StorageInputOutput16 = 4436,
+ DeviceGroup = 4437,
+ MultiView = 4439,
+ VariablePointersStorageBuffer = 4441,
+ VariablePointers = 4442,
+ AtomicStorageOps = 4445,
+ SampleMaskPostDepthCoverage = 4447,
+ StorageBuffer8BitAccess = 4448,
+ UniformAndStorageBuffer8BitAccess = 4449,
+ StoragePushConstant8 = 4450,
+ DenormPreserve = 4464,
+ DenormFlushToZero = 4465,
+ SignedZeroInfNanPreserve = 4466,
+ RoundingModeRTE = 4467,
+ RoundingModeRTZ = 4468,
+ RayQueryProvisionalKHR = 4471,
+ RayQueryKHR = 4472,
+ RayTraversalPrimitiveCullingKHR = 4478,
+ RayTracingKHR = 4479,
+ Float16ImageAMD = 5008,
+ ImageGatherBiasLodAMD = 5009,
+ FragmentMaskAMD = 5010,
+ StencilExportEXT = 5013,
+ ImageReadWriteLodAMD = 5015,
+ Int64ImageEXT = 5016,
+ ShaderClockKHR = 5055,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerEXT = 5254,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ FragmentFullyCoveredEXT = 5265,
+ MeshShadingNV = 5266,
+ ImageFootprintNV = 5282,
+ MeshShadingEXT = 5283,
+ FragmentBarycentricKHR = 5284,
+ FragmentBarycentricNV = 5284,
+ ComputeDerivativeGroupQuadsNV = 5288,
+ FragmentDensityEXT = 5291,
+ ShadingRateNV = 5291,
+ GroupNonUniformPartitionedNV = 5297,
+ ShaderNonUniform = 5301,
+ ShaderNonUniformEXT = 5301,
+ RuntimeDescriptorArray = 5302,
+ RuntimeDescriptorArrayEXT = 5302,
+ InputAttachmentArrayDynamicIndexing = 5303,
+ InputAttachmentArrayDynamicIndexingEXT = 5303,
+ UniformTexelBufferArrayDynamicIndexing = 5304,
+ UniformTexelBufferArrayDynamicIndexingEXT = 5304,
+ StorageTexelBufferArrayDynamicIndexing = 5305,
+ StorageTexelBufferArrayDynamicIndexingEXT = 5305,
+ UniformBufferArrayNonUniformIndexing = 5306,
+ UniformBufferArrayNonUniformIndexingEXT = 5306,
+ SampledImageArrayNonUniformIndexing = 5307,
+ SampledImageArrayNonUniformIndexingEXT = 5307,
+ StorageBufferArrayNonUniformIndexing = 5308,
+ StorageBufferArrayNonUniformIndexingEXT = 5308,
+ StorageImageArrayNonUniformIndexing = 5309,
+ StorageImageArrayNonUniformIndexingEXT = 5309,
+ InputAttachmentArrayNonUniformIndexing = 5310,
+ InputAttachmentArrayNonUniformIndexingEXT = 5310,
+ UniformTexelBufferArrayNonUniformIndexing = 5311,
+ UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
+ StorageTexelBufferArrayNonUniformIndexing = 5312,
+ StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+ RayTracingNV = 5340,
+ RayTracingMotionBlurNV = 5341,
+ VulkanMemoryModel = 5345,
+ VulkanMemoryModelKHR = 5345,
+ VulkanMemoryModelDeviceScope = 5346,
+ VulkanMemoryModelDeviceScopeKHR = 5346,
+ PhysicalStorageBufferAddresses = 5347,
+ PhysicalStorageBufferAddressesEXT = 5347,
+ ComputeDerivativeGroupLinearNV = 5350,
+ RayTracingProvisionalKHR = 5353,
+ CooperativeMatrixNV = 5357,
+ FragmentShaderSampleInterlockEXT = 5363,
+ FragmentShaderShadingRateInterlockEXT = 5372,
+ ShaderSMBuiltinsNV = 5373,
+ FragmentShaderPixelInterlockEXT = 5378,
+ DemoteToHelperInvocation = 5379,
+ DemoteToHelperInvocationEXT = 5379,
+ BindlessTextureNV = 5390,
+ SubgroupShuffleINTEL = 5568,
+ SubgroupBufferBlockIOINTEL = 5569,
+ SubgroupImageBlockIOINTEL = 5570,
+ SubgroupImageMediaBlockIOINTEL = 5579,
+ RoundToInfinityINTEL = 5582,
+ FloatingPointModeINTEL = 5583,
+ IntegerFunctions2INTEL = 5584,
+ FunctionPointersINTEL = 5603,
+ IndirectReferencesINTEL = 5604,
+ AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
+ VectorComputeINTEL = 5617,
+ VectorAnyINTEL = 5619,
+ ExpectAssumeKHR = 5629,
+ SubgroupAvcMotionEstimationINTEL = 5696,
+ SubgroupAvcMotionEstimationIntraINTEL = 5697,
+ SubgroupAvcMotionEstimationChromaINTEL = 5698,
+ VariableLengthArrayINTEL = 5817,
+ FunctionFloatControlINTEL = 5821,
+ FPGAMemoryAttributesINTEL = 5824,
+ FPFastMathModeINTEL = 5837,
+ ArbitraryPrecisionIntegersINTEL = 5844,
+ ArbitraryPrecisionFloatingPointINTEL = 5845,
+ UnstructuredLoopControlsINTEL = 5886,
+ FPGALoopControlsINTEL = 5888,
+ KernelAttributesINTEL = 5892,
+ FPGAKernelAttributesINTEL = 5897,
+ FPGAMemoryAccessesINTEL = 5898,
+ FPGAClusterAttributesINTEL = 5904,
+ LoopFuseINTEL = 5906,
+ MemoryAccessAliasingINTEL = 5910,
+ FPGABufferLocationINTEL = 5920,
+ ArbitraryPrecisionFixedPointINTEL = 5922,
+ USMStorageClassesINTEL = 5935,
+ IOPipesINTEL = 5943,
+ BlockingPipesINTEL = 5945,
+ FPGARegINTEL = 5948,
+ DotProductInputAll = 6016,
+ DotProductInputAllKHR = 6016,
+ DotProductInput4x8Bit = 6017,
+ DotProductInput4x8BitKHR = 6017,
+ DotProductInput4x8BitPacked = 6018,
+ DotProductInput4x8BitPackedKHR = 6018,
+ DotProduct = 6019,
+ DotProductKHR = 6019,
+ RayCullMaskKHR = 6020,
+ BitInstructions = 6025,
+ GroupNonUniformRotateKHR = 6026,
+ AtomicFloat32AddEXT = 6033,
+ AtomicFloat64AddEXT = 6034,
+ LongConstantCompositeINTEL = 6089,
+ OptNoneINTEL = 6094,
+ AtomicFloat16AddEXT = 6095,
+ DebugInfoModuleINTEL = 6114,
+ SplitBarrierINTEL = 6141,
+ GroupUniformArithmeticKHR = 6400,
+ }
+
+ [AllowDuplicates, CRepr] public enum RayFlagsShift
+ {
+ OpaqueKHR = 0,
+ NoOpaqueKHR = 1,
+ TerminateOnFirstHitKHR = 2,
+ SkipClosestHitShaderKHR = 3,
+ CullBackFacingTrianglesKHR = 4,
+ CullFrontFacingTrianglesKHR = 5,
+ CullOpaqueKHR = 6,
+ CullNoOpaqueKHR = 7,
+ SkipTrianglesKHR = 8,
+ SkipAABBsKHR = 9,
+ }
+
+ [AllowDuplicates, CRepr] public enum RayFlagsMask
+ {
+ MaskNone = 0,
+ OpaqueKHR = 0x00000001,
+ NoOpaqueKHR = 0x00000002,
+ TerminateOnFirstHitKHR = 0x00000004,
+ SkipClosestHitShaderKHR = 0x00000008,
+ CullBackFacingTrianglesKHR = 0x00000010,
+ CullFrontFacingTrianglesKHR = 0x00000020,
+ CullOpaqueKHR = 0x00000040,
+ CullNoOpaqueKHR = 0x00000080,
+ SkipTrianglesKHR = 0x00000100,
+ SkipAABBsKHR = 0x00000200,
+ }
+
+ [AllowDuplicates, CRepr] public enum RayQueryIntersection
+ {
+ RayQueryCandidateIntersectionKHR = 0,
+ RayQueryCommittedIntersectionKHR = 1,
+ }
+
+ [AllowDuplicates, CRepr] public enum RayQueryCommittedIntersectionType
+ {
+ RayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionGeneratedKHR = 2,
+ }
+
+ [AllowDuplicates, CRepr] public enum RayQueryCandidateIntersectionType
+ {
+ RayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionAABBKHR = 1,
+ }
+
+ [AllowDuplicates, CRepr] public enum FragmentShadingRateShift
+ {
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+ }
+
+ [AllowDuplicates, CRepr] public enum FragmentShadingRateMask
+ {
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+ }
+
+ [AllowDuplicates, CRepr] public enum FPDenormMode
+ {
+ Preserve = 0,
+ FlushToZero = 1,
+ }
+
+ [AllowDuplicates, CRepr] public enum FPOperationMode
+ {
+ IEEE = 0,
+ ALT = 1,
+ }
+
+ [AllowDuplicates, CRepr] public enum QuantizationModes
+ {
+ TRN = 0,
+ TRN_ZERO = 1,
+ RND = 2,
+ RND_ZERO = 3,
+ RND_INF = 4,
+ RND_MIN_INF = 5,
+ RND_CONV = 6,
+ RND_CONV_ODD = 7,
+ }
+
+ [AllowDuplicates, CRepr] public enum OverflowModes
+ {
+ WRAP = 0,
+ SAT = 1,
+ SAT_ZERO = 2,
+ SAT_SYM = 3,
+ }
+
+ [AllowDuplicates, CRepr] public enum PackedVectorFormat
+ {
+ PackedVectorFormat4x8Bit = 0,
+ PackedVectorFormat4x8BitKHR = 0,
+ }
+
+ [AllowDuplicates, CRepr] public enum Op
+ {
+ OpNop = 0,
+ OpUndef = 1,
+ OpSourceContinued = 2,
+ OpSource = 3,
+ OpSourceExtension = 4,
+ OpName = 5,
+ OpMemberName = 6,
+ OpString = 7,
+ OpLine = 8,
+ OpExtension = 10,
+ OpExtInstImport = 11,
+ OpExtInst = 12,
+ OpMemoryModel = 14,
+ OpEntryPoint = 15,
+ OpExecutionMode = 16,
+ OpCapability = 17,
+ OpTypeVoid = 19,
+ OpTypeBool = 20,
+ OpTypeInt = 21,
+ OpTypeFloat = 22,
+ OpTypeVector = 23,
+ OpTypeMatrix = 24,
+ OpTypeImage = 25,
+ OpTypeSampler = 26,
+ OpTypeSampledImage = 27,
+ OpTypeArray = 28,
+ OpTypeRuntimeArray = 29,
+ OpTypeStruct = 30,
+ OpTypeOpaque = 31,
+ OpTypePointer = 32,
+ OpTypeFunction = 33,
+ OpTypeEvent = 34,
+ OpTypeDeviceEvent = 35,
+ OpTypeReserveId = 36,
+ OpTypeQueue = 37,
+ OpTypePipe = 38,
+ OpTypeForwardPointer = 39,
+ OpConstantTrue = 41,
+ OpConstantFalse = 42,
+ OpConstant = 43,
+ OpConstantComposite = 44,
+ OpConstantSampler = 45,
+ OpConstantNull = 46,
+ OpSpecConstantTrue = 48,
+ OpSpecConstantFalse = 49,
+ OpSpecConstant = 50,
+ OpSpecConstantComposite = 51,
+ OpSpecConstantOp = 52,
+ OpFunction = 54,
+ OpFunctionParameter = 55,
+ OpFunctionEnd = 56,
+ OpFunctionCall = 57,
+ OpVariable = 59,
+ OpImageTexelPointer = 60,
+ OpLoad = 61,
+ OpStore = 62,
+ OpCopyMemory = 63,
+ OpCopyMemorySized = 64,
+ OpAccessChain = 65,
+ OpInBoundsAccessChain = 66,
+ OpPtrAccessChain = 67,
+ OpArrayLength = 68,
+ OpGenericPtrMemSemantics = 69,
+ OpInBoundsPtrAccessChain = 70,
+ OpDecorate = 71,
+ OpMemberDecorate = 72,
+ OpDecorationGroup = 73,
+ OpGroupDecorate = 74,
+ OpGroupMemberDecorate = 75,
+ OpVectorExtractDynamic = 77,
+ OpVectorInsertDynamic = 78,
+ OpVectorShuffle = 79,
+ OpCompositeConstruct = 80,
+ OpCompositeExtract = 81,
+ OpCompositeInsert = 82,
+ OpCopyObject = 83,
+ OpTranspose = 84,
+ OpSampledImage = 86,
+ OpImageSampleImplicitLod = 87,
+ OpImageSampleExplicitLod = 88,
+ OpImageSampleDrefImplicitLod = 89,
+ OpImageSampleDrefExplicitLod = 90,
+ OpImageSampleProjImplicitLod = 91,
+ OpImageSampleProjExplicitLod = 92,
+ OpImageSampleProjDrefImplicitLod = 93,
+ OpImageSampleProjDrefExplicitLod = 94,
+ OpImageFetch = 95,
+ OpImageGather = 96,
+ OpImageDrefGather = 97,
+ OpImageRead = 98,
+ OpImageWrite = 99,
+ OpImage = 100,
+ OpImageQueryFormat = 101,
+ OpImageQueryOrder = 102,
+ OpImageQuerySizeLod = 103,
+ OpImageQuerySize = 104,
+ OpImageQueryLod = 105,
+ OpImageQueryLevels = 106,
+ OpImageQuerySamples = 107,
+ OpConvertFToU = 109,
+ OpConvertFToS = 110,
+ OpConvertSToF = 111,
+ OpConvertUToF = 112,
+ OpUConvert = 113,
+ OpSConvert = 114,
+ OpFConvert = 115,
+ OpQuantizeToF16 = 116,
+ OpConvertPtrToU = 117,
+ OpSatConvertSToU = 118,
+ OpSatConvertUToS = 119,
+ OpConvertUToPtr = 120,
+ OpPtrCastToGeneric = 121,
+ OpGenericCastToPtr = 122,
+ OpGenericCastToPtrExplicit = 123,
+ OpBitcast = 124,
+ OpSNegate = 126,
+ OpFNegate = 127,
+ OpIAdd = 128,
+ OpFAdd = 129,
+ OpISub = 130,
+ OpFSub = 131,
+ OpIMul = 132,
+ OpFMul = 133,
+ OpUDiv = 134,
+ OpSDiv = 135,
+ OpFDiv = 136,
+ OpUMod = 137,
+ OpSRem = 138,
+ OpSMod = 139,
+ OpFRem = 140,
+ OpFMod = 141,
+ OpVectorTimesScalar = 142,
+ OpMatrixTimesScalar = 143,
+ OpVectorTimesMatrix = 144,
+ OpMatrixTimesVector = 145,
+ OpMatrixTimesMatrix = 146,
+ OpOuterProduct = 147,
+ OpDot = 148,
+ OpIAddCarry = 149,
+ OpISubBorrow = 150,
+ OpUMulExtended = 151,
+ OpSMulExtended = 152,
+ OpAny = 154,
+ OpAll = 155,
+ OpIsNan = 156,
+ OpIsInf = 157,
+ OpIsFinite = 158,
+ OpIsNormal = 159,
+ OpSignBitSet = 160,
+ OpLessOrGreater = 161,
+ OpOrdered = 162,
+ OpUnordered = 163,
+ OpLogicalEqual = 164,
+ OpLogicalNotEqual = 165,
+ OpLogicalOr = 166,
+ OpLogicalAnd = 167,
+ OpLogicalNot = 168,
+ OpSelect = 169,
+ OpIEqual = 170,
+ OpINotEqual = 171,
+ OpUGreaterThan = 172,
+ OpSGreaterThan = 173,
+ OpUGreaterThanEqual = 174,
+ OpSGreaterThanEqual = 175,
+ OpULessThan = 176,
+ OpSLessThan = 177,
+ OpULessThanEqual = 178,
+ OpSLessThanEqual = 179,
+ OpFOrdEqual = 180,
+ OpFUnordEqual = 181,
+ OpFOrdNotEqual = 182,
+ OpFUnordNotEqual = 183,
+ OpFOrdLessThan = 184,
+ OpFUnordLessThan = 185,
+ OpFOrdGreaterThan = 186,
+ OpFUnordGreaterThan = 187,
+ OpFOrdLessThanEqual = 188,
+ OpFUnordLessThanEqual = 189,
+ OpFOrdGreaterThanEqual = 190,
+ OpFUnordGreaterThanEqual = 191,
+ OpShiftRightLogical = 194,
+ OpShiftRightArithmetic = 195,
+ OpShiftLeftLogical = 196,
+ OpBitwiseOr = 197,
+ OpBitwiseXor = 198,
+ OpBitwiseAnd = 199,
+ OpNot = 200,
+ OpBitFieldInsert = 201,
+ OpBitFieldSExtract = 202,
+ OpBitFieldUExtract = 203,
+ OpBitReverse = 204,
+ OpBitCount = 205,
+ OpDPdx = 207,
+ OpDPdy = 208,
+ OpFwidth = 209,
+ OpDPdxFine = 210,
+ OpDPdyFine = 211,
+ OpFwidthFine = 212,
+ OpDPdxCoarse = 213,
+ OpDPdyCoarse = 214,
+ OpFwidthCoarse = 215,
+ OpEmitVertex = 218,
+ OpEndPrimitive = 219,
+ OpEmitStreamVertex = 220,
+ OpEndStreamPrimitive = 221,
+ OpControlBarrier = 224,
+ OpMemoryBarrier = 225,
+ OpAtomicLoad = 227,
+ OpAtomicStore = 228,
+ OpAtomicExchange = 229,
+ OpAtomicCompareExchange = 230,
+ OpAtomicCompareExchangeWeak = 231,
+ OpAtomicIIncrement = 232,
+ OpAtomicIDecrement = 233,
+ OpAtomicIAdd = 234,
+ OpAtomicISub = 235,
+ OpAtomicSMin = 236,
+ OpAtomicUMin = 237,
+ OpAtomicSMax = 238,
+ OpAtomicUMax = 239,
+ OpAtomicAnd = 240,
+ OpAtomicOr = 241,
+ OpAtomicXor = 242,
+ OpPhi = 245,
+ OpLoopMerge = 246,
+ OpSelectionMerge = 247,
+ OpLabel = 248,
+ OpBranch = 249,
+ OpBranchConditional = 250,
+ OpSwitch = 251,
+ OpKill = 252,
+ OpReturn = 253,
+ OpReturnValue = 254,
+ OpUnreachable = 255,
+ OpLifetimeStart = 256,
+ OpLifetimeStop = 257,
+ OpGroupAsyncCopy = 259,
+ OpGroupWaitEvents = 260,
+ OpGroupAll = 261,
+ OpGroupAny = 262,
+ OpGroupBroadcast = 263,
+ OpGroupIAdd = 264,
+ OpGroupFAdd = 265,
+ OpGroupFMin = 266,
+ OpGroupUMin = 267,
+ OpGroupSMin = 268,
+ OpGroupFMax = 269,
+ OpGroupUMax = 270,
+ OpGroupSMax = 271,
+ OpReadPipe = 274,
+ OpWritePipe = 275,
+ OpReservedReadPipe = 276,
+ OpReservedWritePipe = 277,
+ OpReserveReadPipePackets = 278,
+ OpReserveWritePipePackets = 279,
+ OpCommitReadPipe = 280,
+ OpCommitWritePipe = 281,
+ OpIsValidReserveId = 282,
+ OpGetNumPipePackets = 283,
+ OpGetMaxPipePackets = 284,
+ OpGroupReserveReadPipePackets = 285,
+ OpGroupReserveWritePipePackets = 286,
+ OpGroupCommitReadPipe = 287,
+ OpGroupCommitWritePipe = 288,
+ OpEnqueueMarker = 291,
+ OpEnqueueKernel = 292,
+ OpGetKernelNDrangeSubGroupCount = 293,
+ OpGetKernelNDrangeMaxSubGroupSize = 294,
+ OpGetKernelWorkGroupSize = 295,
+ OpGetKernelPreferredWorkGroupSizeMultiple = 296,
+ OpRetainEvent = 297,
+ OpReleaseEvent = 298,
+ OpCreateUserEvent = 299,
+ OpIsValidEvent = 300,
+ OpSetUserEventStatus = 301,
+ OpCaptureEventProfilingInfo = 302,
+ OpGetDefaultQueue = 303,
+ OpBuildNDRange = 304,
+ OpImageSparseSampleImplicitLod = 305,
+ OpImageSparseSampleExplicitLod = 306,
+ OpImageSparseSampleDrefImplicitLod = 307,
+ OpImageSparseSampleDrefExplicitLod = 308,
+ OpImageSparseSampleProjImplicitLod = 309,
+ OpImageSparseSampleProjExplicitLod = 310,
+ OpImageSparseSampleProjDrefImplicitLod = 311,
+ OpImageSparseSampleProjDrefExplicitLod = 312,
+ OpImageSparseFetch = 313,
+ OpImageSparseGather = 314,
+ OpImageSparseDrefGather = 315,
+ OpImageSparseTexelsResident = 316,
+ OpNoLine = 317,
+ OpAtomicFlagTestAndSet = 318,
+ OpAtomicFlagClear = 319,
+ OpImageSparseRead = 320,
+ OpSizeOf = 321,
+ OpTypePipeStorage = 322,
+ OpConstantPipeStorage = 323,
+ OpCreatePipeFromPipeStorage = 324,
+ OpGetKernelLocalSizeForSubgroupCount = 325,
+ OpGetKernelMaxNumSubgroups = 326,
+ OpTypeNamedBarrier = 327,
+ OpNamedBarrierInitialize = 328,
+ OpMemoryNamedBarrier = 329,
+ OpModuleProcessed = 330,
+ OpExecutionModeId = 331,
+ OpDecorateId = 332,
+ OpGroupNonUniformElect = 333,
+ OpGroupNonUniformAll = 334,
+ OpGroupNonUniformAny = 335,
+ OpGroupNonUniformAllEqual = 336,
+ OpGroupNonUniformBroadcast = 337,
+ OpGroupNonUniformBroadcastFirst = 338,
+ OpGroupNonUniformBallot = 339,
+ OpGroupNonUniformInverseBallot = 340,
+ OpGroupNonUniformBallotBitExtract = 341,
+ OpGroupNonUniformBallotBitCount = 342,
+ OpGroupNonUniformBallotFindLSB = 343,
+ OpGroupNonUniformBallotFindMSB = 344,
+ OpGroupNonUniformShuffle = 345,
+ OpGroupNonUniformShuffleXor = 346,
+ OpGroupNonUniformShuffleUp = 347,
+ OpGroupNonUniformShuffleDown = 348,
+ OpGroupNonUniformIAdd = 349,
+ OpGroupNonUniformFAdd = 350,
+ OpGroupNonUniformIMul = 351,
+ OpGroupNonUniformFMul = 352,
+ OpGroupNonUniformSMin = 353,
+ OpGroupNonUniformUMin = 354,
+ OpGroupNonUniformFMin = 355,
+ OpGroupNonUniformSMax = 356,
+ OpGroupNonUniformUMax = 357,
+ OpGroupNonUniformFMax = 358,
+ OpGroupNonUniformBitwiseAnd = 359,
+ OpGroupNonUniformBitwiseOr = 360,
+ OpGroupNonUniformBitwiseXor = 361,
+ OpGroupNonUniformLogicalAnd = 362,
+ OpGroupNonUniformLogicalOr = 363,
+ OpGroupNonUniformLogicalXor = 364,
+ OpGroupNonUniformQuadBroadcast = 365,
+ OpGroupNonUniformQuadSwap = 366,
+ OpCopyLogical = 400,
+ OpPtrEqual = 401,
+ OpPtrNotEqual = 402,
+ OpPtrDiff = 403,
+ OpTerminateInvocation = 4416,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpGroupNonUniformRotateKHR = 4431,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpTraceRayKHR = 4445,
+ OpExecuteCallableKHR = 4446,
+ OpConvertUToAccelerationStructureKHR = 4447,
+ OpIgnoreIntersectionKHR = 4448,
+ OpTerminateRayKHR = 4449,
+ OpSDot = 4450,
+ OpSDotKHR = 4450,
+ OpUDot = 4451,
+ OpUDotKHR = 4451,
+ OpSUDot = 4452,
+ OpSUDotKHR = 4452,
+ OpSDotAccSat = 4453,
+ OpSDotAccSatKHR = 4453,
+ OpUDotAccSat = 4454,
+ OpUDotAccSatKHR = 4454,
+ OpSUDotAccSat = 4455,
+ OpSUDotAccSatKHR = 4455,
+ OpTypeRayQueryKHR = 4472,
+ OpRayQueryInitializeKHR = 4473,
+ OpRayQueryTerminateKHR = 4474,
+ OpRayQueryGenerateIntersectionKHR = 4475,
+ OpRayQueryConfirmIntersectionKHR = 4476,
+ OpRayQueryProceedKHR = 4477,
+ OpRayQueryGetIntersectionTypeKHR = 4479,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpReadClockKHR = 5056,
+ OpImageSampleFootprintNV = 5283,
+ OpEmitMeshTasksEXT = 5294,
+ OpSetMeshOutputsEXT = 5295,
+ OpGroupNonUniformPartitionNV = 5296,
+ OpWritePackedPrimitiveIndices4x8NV = 5299,
+ OpReportIntersectionKHR = 5334,
+ OpReportIntersectionNV = 5334,
+ OpIgnoreIntersectionNV = 5335,
+ OpTerminateRayNV = 5336,
+ OpTraceNV = 5337,
+ OpTraceMotionNV = 5338,
+ OpTraceRayMotionNV = 5339,
+ OpTypeAccelerationStructureKHR = 5341,
+ OpTypeAccelerationStructureNV = 5341,
+ OpExecuteCallableNV = 5344,
+ OpTypeCooperativeMatrixNV = 5358,
+ OpCooperativeMatrixLoadNV = 5359,
+ OpCooperativeMatrixStoreNV = 5360,
+ OpCooperativeMatrixMulAddNV = 5361,
+ OpCooperativeMatrixLengthNV = 5362,
+ OpBeginInvocationInterlockEXT = 5364,
+ OpEndInvocationInterlockEXT = 5365,
+ OpDemoteToHelperInvocation = 5380,
+ OpDemoteToHelperInvocationEXT = 5380,
+ OpIsHelperInvocationEXT = 5381,
+ OpConvertUToImageNV = 5391,
+ OpConvertUToSamplerNV = 5392,
+ OpConvertImageToUNV = 5393,
+ OpConvertSamplerToUNV = 5394,
+ OpConvertUToSampledImageNV = 5395,
+ OpConvertSampledImageToUNV = 5396,
+ OpSamplerImageAddressingModeNV = 5397,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpSubgroupImageMediaBlockReadINTEL = 5580,
+ OpSubgroupImageMediaBlockWriteINTEL = 5581,
+ OpUCountLeadingZerosINTEL = 5585,
+ OpUCountTrailingZerosINTEL = 5586,
+ OpAbsISubINTEL = 5587,
+ OpAbsUSubINTEL = 5588,
+ OpIAddSatINTEL = 5589,
+ OpUAddSatINTEL = 5590,
+ OpIAverageINTEL = 5591,
+ OpUAverageINTEL = 5592,
+ OpIAverageRoundedINTEL = 5593,
+ OpUAverageRoundedINTEL = 5594,
+ OpISubSatINTEL = 5595,
+ OpUSubSatINTEL = 5596,
+ OpIMul32x16INTEL = 5597,
+ OpUMul32x16INTEL = 5598,
+ OpConstantFunctionPointerINTEL = 5600,
+ OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
+ OpAssumeTrueKHR = 5630,
+ OpExpectKHR = 5631,
+ OpDecorateString = 5632,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateString = 5633,
+ OpMemberDecorateStringGOOGLE = 5633,
+ OpVmeImageINTEL = 5699,
+ OpTypeVmeImageINTEL = 5700,
+ OpTypeAvcImePayloadINTEL = 5701,
+ OpTypeAvcRefPayloadINTEL = 5702,
+ OpTypeAvcSicPayloadINTEL = 5703,
+ OpTypeAvcMcePayloadINTEL = 5704,
+ OpTypeAvcMceResultINTEL = 5705,
+ OpTypeAvcImeResultINTEL = 5706,
+ OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
+ OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
+ OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
+ OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
+ OpTypeAvcRefResultINTEL = 5711,
+ OpTypeAvcSicResultINTEL = 5712,
+ OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
+ OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
+ OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
+ OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
+ OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
+ OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
+ OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
+ OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
+ OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
+ OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
+ OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
+ OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
+ OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
+ OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
+ OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
+ OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
+ OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
+ OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
+ OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
+ OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
+ OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
+ OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
+ OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
+ OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
+ OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
+ OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
+ OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
+ OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
+ OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
+ OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
+ OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
+ OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
+ OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
+ OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
+ OpSubgroupAvcImeInitializeINTEL = 5747,
+ OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
+ OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
+ OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
+ OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
+ OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
+ OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
+ OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
+ OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
+ OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
+ OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
+ OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
+ OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
+ OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
+ OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
+ OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
+ OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
+ OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
+ OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
+ OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
+ OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
+ OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
+ OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
+ OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
+ OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
+ OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
+ OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
+ OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
+ OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
+ OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
+ OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
+ OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
+ OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
+ OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
+ OpSubgroupAvcFmeInitializeINTEL = 5781,
+ OpSubgroupAvcBmeInitializeINTEL = 5782,
+ OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
+ OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
+ OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
+ OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
+ OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
+ OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
+ OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
+ OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
+ OpSubgroupAvcSicInitializeINTEL = 5791,
+ OpSubgroupAvcSicConfigureSkcINTEL = 5792,
+ OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
+ OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
+ OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
+ OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
+ OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
+ OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
+ OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
+ OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
+ OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
+ OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
+ OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
+ OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
+ OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
+ OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
+ OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
+ OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
+ OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
+ OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
+ OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
+ OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
+ OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
+ OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
+ OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
+ OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
+ OpArbitraryFloatSinCosPiINTEL = 5840,
+ OpArbitraryFloatCastINTEL = 5841,
+ OpArbitraryFloatCastFromIntINTEL = 5842,
+ OpArbitraryFloatCastToIntINTEL = 5843,
+ OpArbitraryFloatAddINTEL = 5846,
+ OpArbitraryFloatSubINTEL = 5847,
+ OpArbitraryFloatMulINTEL = 5848,
+ OpArbitraryFloatDivINTEL = 5849,
+ OpArbitraryFloatGTINTEL = 5850,
+ OpArbitraryFloatGEINTEL = 5851,
+ OpArbitraryFloatLTINTEL = 5852,
+ OpArbitraryFloatLEINTEL = 5853,
+ OpArbitraryFloatEQINTEL = 5854,
+ OpArbitraryFloatRecipINTEL = 5855,
+ OpArbitraryFloatRSqrtINTEL = 5856,
+ OpArbitraryFloatCbrtINTEL = 5857,
+ OpArbitraryFloatHypotINTEL = 5858,
+ OpArbitraryFloatSqrtINTEL = 5859,
+ OpArbitraryFloatLogINTEL = 5860,
+ OpArbitraryFloatLog2INTEL = 5861,
+ OpArbitraryFloatLog10INTEL = 5862,
+ OpArbitraryFloatLog1pINTEL = 5863,
+ OpArbitraryFloatExpINTEL = 5864,
+ OpArbitraryFloatExp2INTEL = 5865,
+ OpArbitraryFloatExp10INTEL = 5866,
+ OpArbitraryFloatExpm1INTEL = 5867,
+ OpArbitraryFloatSinINTEL = 5868,
+ OpArbitraryFloatCosINTEL = 5869,
+ OpArbitraryFloatSinCosINTEL = 5870,
+ OpArbitraryFloatSinPiINTEL = 5871,
+ OpArbitraryFloatCosPiINTEL = 5872,
+ OpArbitraryFloatASinINTEL = 5873,
+ OpArbitraryFloatASinPiINTEL = 5874,
+ OpArbitraryFloatACosINTEL = 5875,
+ OpArbitraryFloatACosPiINTEL = 5876,
+ OpArbitraryFloatATanINTEL = 5877,
+ OpArbitraryFloatATanPiINTEL = 5878,
+ OpArbitraryFloatATan2INTEL = 5879,
+ OpArbitraryFloatPowINTEL = 5880,
+ OpArbitraryFloatPowRINTEL = 5881,
+ OpArbitraryFloatPowNINTEL = 5882,
+ OpLoopControlINTEL = 5887,
+ OpAliasDomainDeclINTEL = 5911,
+ OpAliasScopeDeclINTEL = 5912,
+ OpAliasScopeListDeclINTEL = 5913,
+ OpFixedSqrtINTEL = 5923,
+ OpFixedRecipINTEL = 5924,
+ OpFixedRsqrtINTEL = 5925,
+ OpFixedSinINTEL = 5926,
+ OpFixedCosINTEL = 5927,
+ OpFixedSinCosINTEL = 5928,
+ OpFixedSinPiINTEL = 5929,
+ OpFixedCosPiINTEL = 5930,
+ OpFixedSinCosPiINTEL = 5931,
+ OpFixedLogINTEL = 5932,
+ OpFixedExpINTEL = 5933,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
+ OpReadPipeBlockingINTEL = 5946,
+ OpWritePipeBlockingINTEL = 5947,
+ OpFPGARegINTEL = 5949,
+ OpRayQueryGetRayTMinKHR = 6016,
+ OpRayQueryGetRayFlagsKHR = 6017,
+ OpRayQueryGetIntersectionTKHR = 6018,
+ OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
+ OpRayQueryGetIntersectionInstanceIdKHR = 6020,
+ OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
+ OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
+ OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
+ OpRayQueryGetIntersectionBarycentricsKHR = 6024,
+ OpRayQueryGetIntersectionFrontFaceKHR = 6025,
+ OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
+ OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
+ OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
+ OpRayQueryGetWorldRayDirectionKHR = 6029,
+ OpRayQueryGetWorldRayOriginKHR = 6030,
+ OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
+ OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+ OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
+ OpControlBarrierArriveINTEL = 6142,
+ OpControlBarrierWaitINTEL = 6143,
+ OpGroupIMulKHR = 6401,
+ OpGroupFMulKHR = 6402,
+ OpGroupBitwiseAndKHR = 6403,
+ OpGroupBitwiseOrKHR = 6404,
+ OpGroupBitwiseXorKHR = 6405,
+ OpGroupLogicalAndKHR = 6406,
+ OpGroupLogicalOrKHR = 6407,
+ OpGroupLogicalXorKHR = 6408,
+ }
+ }
+}
+
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 766a4ed..bd1289e 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -4184,6 +4184,21 @@
"version" : "None"
},
{
+ "opname" : "OpGroupNonUniformRotateKHR",
+ "class" : "Group",
+ "opcode" : 4431,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Delta'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformRotateKHR" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpSubgroupReadInvocationKHR",
"class" : "Group",
"opcode" : 4432,
@@ -4757,6 +4772,30 @@
"version" : "None"
},
{
+ "opname" : "OpEmitMeshTasksEXT",
+ "class" : "Reserved",
+ "opcode" : 5294,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Group Count X'" },
+ { "kind" : "IdRef", "name" : "'Group Count Y'" },
+ { "kind" : "IdRef", "name" : "'Group Count Z'" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "MeshShadingEXT" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSetMeshOutputsEXT",
+ "class" : "Reserved",
+ "opcode" : 5295,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Vertex Count'" },
+ { "kind" : "IdRef", "name" : "'Primitive Count'" }
+ ],
+ "capabilities" : [ "MeshShadingEXT" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpGroupNonUniformPartitionNV",
"class" : "Non-Uniform",
"opcode" : 5296,
@@ -5029,7 +5068,7 @@
"opname" : "OpDemoteToHelperInvocationEXT",
"class" : "Control-Flow",
"opcode" : 5380,
- "capabilities" : [ "DemoteToHelperInvocation" ],
+ "capabilities" : [ "DemoteToHelperInvocationEXT" ],
"version" : "1.6"
},
{
@@ -7870,6 +7909,43 @@
"version" : "None"
},
{
+ "opname" : "OpAliasDomainDeclINTEL",
+ "class" : "@exclude",
+ "opcode" : 5911,
+ "operands" : [
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'Name'" }
+ ],
+ "capabilities" : [ "MemoryAccessAliasingINTEL" ],
+ "extensions" : [ "SPV_INTEL_memory_access_aliasing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAliasScopeDeclINTEL",
+ "class" : "@exclude",
+ "opcode" : 5912,
+ "operands" : [
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Alias Domain'"},
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'Name'" }
+ ],
+ "capabilities" : [ "MemoryAccessAliasingINTEL" ],
+ "extensions" : [ "SPV_INTEL_memory_access_aliasing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAliasScopeListDeclINTEL",
+ "class" : "@exclude",
+ "opcode" : 5913,
+ "operands" : [
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'AliasScope1, AliasScope2, ...'" }
+ ],
+ "capabilities" : [ "MemoryAccessAliasingINTEL" ],
+ "extensions" : [ "SPV_INTEL_memory_access_aliasing" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpFixedSqrtINTEL",
"class" : "@exclude",
"opcode" : 5923,
@@ -8512,6 +8588,142 @@
],
"capabilities" : [ "LongConstantCompositeINTEL" ],
"version" : "None"
+ },
+ {
+ "opname" : "OpControlBarrierArriveINTEL",
+ "class" : "Barrier",
+ "opcode" : 6142,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "SplitBarrierINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpControlBarrierWaitINTEL",
+ "class" : "Barrier",
+ "opcode" : 6143,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "SplitBarrierINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupIMulKHR",
+ "class" : "Group",
+ "opcode" : 6401,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "GroupUniformArithmeticKHR" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupFMulKHR",
+ "class" : "Group",
+ "opcode" : 6402,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "GroupUniformArithmeticKHR" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupBitwiseAndKHR",
+ "class" : "Group",
+ "opcode" : 6403,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "GroupUniformArithmeticKHR" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupBitwiseOrKHR",
+ "class" : "Group",
+ "opcode" : 6404,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "GroupUniformArithmeticKHR" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupBitwiseXorKHR",
+ "class" : "Group",
+ "opcode" : 6405,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "GroupUniformArithmeticKHR" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupLogicalAndKHR",
+ "class" : "Group",
+ "opcode" : 6406,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "GroupUniformArithmeticKHR" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupLogicalOrKHR",
+ "class" : "Group",
+ "opcode" : 6407,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "GroupUniformArithmeticKHR" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupLogicalXorKHR",
+ "class" : "Group",
+ "opcode" : 6408,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "GroupUniformArithmeticKHR" ],
+ "version" : "None"
}
],
"operand_kinds" : [
@@ -9090,6 +9302,26 @@
"capabilities" : [ "VulkanMemoryModel" ],
"extensions" : [ "SPV_KHR_vulkan_memory_model" ],
"version" : "1.5"
+ },
+ {
+ "enumerant" : "AliasScopeINTELMask",
+ "value" : "0x10000",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ],
+ "capabilities" : [ "MemoryAccessAliasingINTEL" ],
+ "extensions" : [ "SPV_INTEL_memory_access_aliasing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NoAliasINTELMask",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ],
+ "value" : "0x20000",
+ "capabilities" : [ "MemoryAccessAliasingINTEL" ],
+ "extensions" : [ "SPV_INTEL_memory_access_aliasing" ],
+ "version" : "None"
}
]
},
@@ -9241,6 +9473,10 @@
{
"enumerant" : "CPP_for_OpenCL",
"value" : 6
+ },
+ {
+ "enumerant" : "SYCL",
+ "value" : 7
}
]
},
@@ -9366,6 +9602,18 @@
"value" : 5318,
"capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "TaskEXT",
+ "value" : 5364,
+ "capabilities" : [ "MeshShadingEXT" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MeshEXT",
+ "value" : 5365,
+ "capabilities" : [ "MeshShadingEXT" ],
+ "version" : "None"
}
]
},
@@ -9581,7 +9829,7 @@
{
"enumerant" : "OutputVertices",
"value" : 26,
- "capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV" ],
+ "capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV", "MeshShadingEXT" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Vertex count'" }
]
@@ -9589,7 +9837,7 @@
{
"enumerant" : "OutputPoints",
"value" : 27,
- "capabilities" : [ "Geometry", "MeshShadingNV" ]
+ "capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ]
},
{
"enumerant" : "OutputLineStrip",
@@ -9739,6 +9987,13 @@
"version" : "1.4"
},
{
+ "enumerant": "EarlyAndLateFragmentTestsAMD",
+ "value": 5017,
+ "capabilities": [ "Shader" ],
+ "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests" ],
+ "version": "None"
+ },
+ {
"enumerant" : "StencilRefReplacingEXT",
"value" : 5027,
"capabilities" : [ "StencilExportEXT" ],
@@ -9746,20 +10001,79 @@
"version" : "None"
},
{
+ "enumerant": "StencilRefUnchangedFrontAMD",
+ "value": 5079,
+ "capabilities": [ "StencilExportEXT" ],
+ "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ],
+ "version": "None"
+ },
+ {
+ "enumerant": "StencilRefGreaterFrontAMD",
+ "value": 5080,
+ "capabilities": [ "StencilExportEXT" ],
+ "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ],
+ "version": "None"
+ },
+ {
+ "enumerant": "StencilRefLessFrontAMD",
+ "value": 5081,
+ "capabilities": [ "StencilExportEXT" ],
+ "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ],
+ "version": "None"
+ },
+ {
+ "enumerant": "StencilRefUnchangedBackAMD",
+ "value": 5082,
+ "capabilities": [ "StencilExportEXT" ],
+ "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ],
+ "version": "None"
+ },
+ {
+ "enumerant": "StencilRefGreaterBackAMD",
+ "value": 5083,
+ "capabilities": [ "StencilExportEXT" ],
+ "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ],
+ "version": "None"
+ },
+ {
+ "enumerant": "StencilRefLessBackAMD",
+ "value": 5084,
+ "capabilities": [ "StencilExportEXT" ],
+ "extensions": [ "SPV_AMD_shader_early_and_late_fragment_tests", "SPV_EXT_shader_stencil_export" ],
+ "version": "None"
+ },
+ {
"enumerant" : "OutputLinesNV",
"value" : 5269,
- "capabilities" : [ "MeshShadingNV" ],
- "extensions" : [ "SPV_NV_mesh_shader" ],
+ "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
+ "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "OutputLinesEXT",
+ "value" : 5269,
+ "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
+ "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
"version" : "None"
},
{
"enumerant" : "OutputPrimitivesNV",
"value" : 5270,
- "capabilities" : [ "MeshShadingNV" ],
+ "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Primitive count'" }
],
- "extensions" : [ "SPV_NV_mesh_shader" ],
+ "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "OutputPrimitivesEXT",
+ "value" : 5270,
+ "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Primitive count'" }
+ ],
+ "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
"version" : "None"
},
{
@@ -9779,8 +10093,15 @@
{
"enumerant" : "OutputTrianglesNV",
"value" : 5298,
- "capabilities" : [ "MeshShadingNV" ],
- "extensions" : [ "SPV_NV_mesh_shader" ],
+ "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
+ "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "OutputTrianglesEXT",
+ "value" : 5298,
+ "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
+ "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
"version" : "None"
},
{
@@ -9917,6 +10238,15 @@
],
"capabilities" : [ "FPGAKernelAttributesINTEL" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "NamedBarrierCountINTEL",
+ "value" : 6417,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Barrier Count'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
}
]
},
@@ -10087,6 +10417,13 @@
"version" : "1.5"
},
{
+ "enumerant" : "TaskPayloadWorkgroupEXT",
+ "value" : 5402,
+ "extensions" : [ "SPV_EXT_mesh_shader" ],
+ "capabilities" : [ "MeshShadingEXT" ],
+ "version" : "1.4"
+ },
+ {
"enumerant" : "CodeSectionINTEL",
"value" : 5605,
"extensions" : [ "SPV_INTEL_function_pointers" ],
@@ -11201,8 +11538,15 @@
{
"enumerant" : "PerPrimitiveNV",
"value" : 5271,
- "capabilities" : [ "MeshShadingNV" ],
- "extensions" : [ "SPV_NV_mesh_shader" ],
+ "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
+ "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PerPrimitiveEXT",
+ "value" : 5271,
+ "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
+ "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
"version" : "None"
},
{
@@ -11215,8 +11559,8 @@
{
"enumerant" : "PerTaskNV",
"value" : 5273,
- "capabilities" : [ "MeshShadingNV" ],
- "extensions" : [ "SPV_NV_mesh_shader" ],
+ "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
+ "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
"version" : "None"
},
{
@@ -11580,6 +11924,24 @@
"version" : "None"
},
{
+ "enumerant" : "AliasScopeINTEL",
+ "value" : 5914,
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Aliasing Scopes List'" }
+ ],
+ "capabilities" : [ "MemoryAccessAliasingINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NoAliasINTEL",
+ "value" : 5915,
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Aliasing Scopes List'" }
+ ],
+ "capabilities" : [ "MemoryAccessAliasingINTEL" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "BufferLocationINTEL",
"value" : 5921,
"parameters" : [
@@ -11664,7 +12026,7 @@
{
"enumerant" : "PrimitiveId",
"value" : 7,
- "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV" ]
+ "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ]
},
{
"enumerant" : "InvocationId",
@@ -11674,12 +12036,12 @@
{
"enumerant" : "Layer",
"value" : 9,
- "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV" ]
+ "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ]
},
{
"enumerant" : "ViewportIndex",
"value" : 10,
- "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV" ]
+ "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ]
},
{
"enumerant" : "TessLevelOuter",
@@ -11912,8 +12274,8 @@
{
"enumerant" : "DrawIndex",
"value" : 4426,
- "capabilities" : [ "DrawParameters", "MeshShadingNV" ],
- "extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader" ],
+ "capabilities" : [ "DrawParameters", "MeshShadingNV", "MeshShadingEXT" ],
+ "extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
"version" : "1.3"
},
{
@@ -12148,6 +12510,34 @@
"version" : "None"
},
{
+ "enumerant" : "PrimitivePointIndicesEXT",
+ "value" : 5294,
+ "capabilities" : [ "MeshShadingEXT" ],
+ "extensions" : [ "SPV_EXT_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PrimitiveLineIndicesEXT",
+ "value" : 5295,
+ "capabilities" : [ "MeshShadingEXT" ],
+ "extensions" : [ "SPV_EXT_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PrimitiveTriangleIndicesEXT",
+ "value" : 5296,
+ "capabilities" : [ "MeshShadingEXT" ],
+ "extensions" : [ "SPV_EXT_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CullPrimitiveEXT",
+ "value" : 5299,
+ "capabilities" : [ "MeshShadingEXT" ],
+ "extensions" : [ "SPV_EXT_mesh_shader" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "LaunchIdNV",
"value" : 5319,
"capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
@@ -12377,6 +12767,13 @@
"capabilities" : [ "ShaderSMBuiltinsNV" ],
"extensions" : [ "SPV_NV_shader_sm_builtins" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "CullMaskKHR",
+ "value" : 6021,
+ "capabilities" : [ "RayCullMaskKHR" ],
+ "extensions" : [ "SPV_KHR_ray_cull_mask" ],
+ "version" : "None"
}
]
},
@@ -13172,6 +13569,13 @@
"version" : "None"
},
{
+ "enumerant" : "MeshShadingEXT",
+ "value" : 5283,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_mesh_shader" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "FragmentBarycentricKHR",
"value" : 5284,
"extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
@@ -13678,6 +14082,12 @@
"version" : "None"
},
{
+ "enumerant" : "MemoryAccessAliasingINTEL",
+ "value" : 5910,
+ "extensions" : [ "SPV_INTEL_memory_access_aliasing" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "FPGABufferLocationINTEL",
"value" : 5920,
"extensions" : [ "SPV_INTEL_fpga_buffer_location" ],
@@ -13760,12 +14170,25 @@
"version" : "1.6"
},
{
+ "enumerant" : "RayCullMaskKHR",
+ "value" : 6020,
+ "extensions" : [ "SPV_KHR_ray_cull_mask" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "BitInstructions",
"value" : 6025,
"extensions" : [ "SPV_KHR_bit_instructions" ],
"version" : "None"
},
{
+ "enumerant" : "GroupNonUniformRotateKHR",
+ "value" : 6026,
+ "capabilities" : [ "GroupNonUniform" ],
+ "extensions" : [ "SPV_KHR_subgroup_rotate" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "AtomicFloat32AddEXT",
"value" : 6033,
"extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
@@ -13800,6 +14223,18 @@
"value" : 6114,
"extensions" : [ "SPV_INTEL_debug_module" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "SplitBarrierINTEL",
+ "value" : 6141,
+ "extensions" : [ "SPV_INTEL_split_barrier" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "GroupUniformArithmeticKHR",
+ "value" : 6400,
+ "extensions" : [ "SPV_KHR_uniform_group_instructions"],
+ "version" : "None"
}
]
},
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 9cf00ec..14d36ae 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -26,7 +26,7 @@
// 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, C++, C++11, JSON, Lua, Python, C#, D, Beef
//
// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
@@ -36,6 +36,8 @@
// - 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
+// - Beef will use enum classes in the Specification class located in the "Spv" namespace,
+// e.g.: Spv.Specification.SourceLanguage.GLSL
//
// Some tokens act like mask values, which can be OR'd together,
// while others are mutually exclusive. The mask-like ones have
@@ -62,6 +64,7 @@ namespace Spv
OpenCL_CPP = 4,
HLSL = 5,
CPP_for_OpenCL = 6,
+ SYCL = 7,
}
public enum ExecutionModel
@@ -87,6 +90,8 @@ namespace Spv
MissNV = 5317,
CallableKHR = 5318,
CallableNV = 5318,
+ TaskEXT = 5364,
+ MeshEXT = 5365,
}
public enum AddressingModel
@@ -154,11 +159,21 @@ namespace Spv
SignedZeroInfNanPreserve = 4461,
RoundingModeRTE = 4462,
RoundingModeRTZ = 4463,
+ EarlyAndLateFragmentTestsAMD = 5017,
StencilRefReplacingEXT = 5027,
+ StencilRefUnchangedFrontAMD = 5079,
+ StencilRefGreaterFrontAMD = 5080,
+ StencilRefLessFrontAMD = 5081,
+ StencilRefUnchangedBackAMD = 5082,
+ StencilRefGreaterBackAMD = 5083,
+ StencilRefLessBackAMD = 5084,
+ OutputLinesEXT = 5269,
OutputLinesNV = 5269,
+ OutputPrimitivesEXT = 5270,
OutputPrimitivesNV = 5270,
DerivativeGroupQuadsNV = 5289,
DerivativeGroupLinearNV = 5290,
+ OutputTrianglesEXT = 5298,
OutputTrianglesNV = 5298,
PixelInterlockOrderedEXT = 5366,
PixelInterlockUnorderedEXT = 5367,
@@ -176,6 +191,7 @@ namespace Spv
NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896,
SchedulerTargetFmaxMhzINTEL = 5903,
+ NamedBarrierCountINTEL = 6417,
}
public enum StorageClass
@@ -207,6 +223,7 @@ namespace Spv
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
+ TaskPayloadWorkgroupEXT = 5402,
CodeSectionINTEL = 5605,
DeviceOnlyINTEL = 5936,
HostOnlyINTEL = 5937,
@@ -491,6 +508,7 @@ namespace Spv
PassthroughNV = 5250,
ViewportRelativeNV = 5252,
SecondaryViewportRelativeNV = 5256,
+ PerPrimitiveEXT = 5271,
PerPrimitiveNV = 5271,
PerViewNV = 5272,
PerTaskNV = 5273,
@@ -540,6 +558,8 @@ namespace Spv
PrefetchINTEL = 5902,
StallEnableINTEL = 5905,
FuseLoopsInFunctionINTEL = 5907,
+ AliasScopeINTEL = 5914,
+ NoAliasINTEL = 5915,
BufferLocationINTEL = 5921,
IOPipeStorageINTEL = 5944,
FunctionFloatingPointModeINTEL = 6080,
@@ -638,6 +658,10 @@ namespace Spv
FragmentSizeNV = 5292,
FragInvocationCountEXT = 5293,
InvocationsPerPixelNV = 5293,
+ PrimitivePointIndicesEXT = 5294,
+ PrimitiveLineIndicesEXT = 5295,
+ PrimitiveTriangleIndicesEXT = 5296,
+ CullPrimitiveEXT = 5299,
LaunchIdKHR = 5319,
LaunchIdNV = 5319,
LaunchSizeKHR = 5320,
@@ -671,6 +695,7 @@ namespace Spv
SMCountNV = 5375,
WarpIDNV = 5376,
SMIDNV = 5377,
+ CullMaskKHR = 6021,
}
public enum SelectionControlShift
@@ -802,6 +827,8 @@ namespace Spv
MakePointerVisibleKHR = 4,
NonPrivatePointer = 5,
NonPrivatePointerKHR = 5,
+ AliasScopeINTELMask = 16,
+ NoAliasINTELMask = 17,
}
public enum MemoryAccessMask
@@ -816,6 +843,8 @@ namespace Spv
MakePointerVisibleKHR = 0x00000010,
NonPrivatePointer = 0x00000020,
NonPrivatePointerKHR = 0x00000020,
+ AliasScopeINTELMask = 0x00010000,
+ NoAliasINTELMask = 0x00020000,
}
public enum Scope
@@ -979,6 +1008,7 @@ namespace Spv
FragmentFullyCoveredEXT = 5265,
MeshShadingNV = 5266,
ImageFootprintNV = 5282,
+ MeshShadingEXT = 5283,
FragmentBarycentricKHR = 5284,
FragmentBarycentricNV = 5284,
ComputeDerivativeGroupQuadsNV = 5288,
@@ -1059,6 +1089,7 @@ namespace Spv
FPGAMemoryAccessesINTEL = 5898,
FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906,
+ MemoryAccessAliasingINTEL = 5910,
FPGABufferLocationINTEL = 5920,
ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935,
@@ -1073,13 +1104,17 @@ namespace Spv
DotProductInput4x8BitPackedKHR = 6018,
DotProduct = 6019,
DotProductKHR = 6019,
+ RayCullMaskKHR = 6020,
BitInstructions = 6025,
+ GroupNonUniformRotateKHR = 6026,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089,
OptNoneINTEL = 6094,
AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114,
+ SplitBarrierINTEL = 6141,
+ GroupUniformArithmeticKHR = 6400,
}
public enum RayFlagsShift
@@ -1537,6 +1572,7 @@ namespace Spv
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
+ OpGroupNonUniformRotateKHR = 4431,
OpSubgroupReadInvocationKHR = 4432,
OpTraceRayKHR = 4445,
OpExecuteCallableKHR = 4446,
@@ -1574,6 +1610,8 @@ namespace Spv
OpFragmentFetchAMD = 5012,
OpReadClockKHR = 5056,
OpImageSampleFootprintNV = 5283,
+ OpEmitMeshTasksEXT = 5294,
+ OpSetMeshOutputsEXT = 5295,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
OpReportIntersectionKHR = 5334,
@@ -1803,6 +1841,9 @@ namespace Spv
OpArbitraryFloatPowRINTEL = 5881,
OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
+ OpAliasDomainDeclINTEL = 5911,
+ OpAliasScopeDeclINTEL = 5912,
+ OpAliasScopeListDeclINTEL = 5913,
OpFixedSqrtINTEL = 5923,
OpFixedRecipINTEL = 5924,
OpFixedRsqrtINTEL = 5925,
@@ -1841,6 +1882,16 @@ namespace Spv
OpTypeStructContinuedINTEL = 6090,
OpConstantCompositeContinuedINTEL = 6091,
OpSpecConstantCompositeContinuedINTEL = 6092,
+ OpControlBarrierArriveINTEL = 6142,
+ OpControlBarrierWaitINTEL = 6143,
+ OpGroupIMulKHR = 6401,
+ OpGroupFMulKHR = 6402,
+ OpGroupBitwiseAndKHR = 6403,
+ OpGroupBitwiseOrKHR = 6404,
+ OpGroupBitwiseXorKHR = 6405,
+ OpGroupLogicalAndKHR = 6406,
+ OpGroupLogicalOrKHR = 6407,
+ OpGroupLogicalXorKHR = 6408,
}
}
}
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index c15736e..5b6e8aa 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -31,7 +31,7 @@
/*
** Enumeration tokens for SPIR-V, in various styles:
-** C, C++, C++11, JSON, Lua, Python, C#, D
+** C, C++, C++11, JSON, Lua, Python, C#, D, Beef
**
** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
@@ -41,6 +41,8 @@
** - 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
+** - Beef will use enum classes in the Specification class located in the "Spv" namespace,
+** e.g.: Spv.Specification.SourceLanguage.GLSL
**
** Some tokens act like mask values, which can be OR'd together,
** while others are mutually exclusive. The mask-like ones have
@@ -70,6 +72,7 @@ typedef enum SpvSourceLanguage_ {
SpvSourceLanguageOpenCL_CPP = 4,
SpvSourceLanguageHLSL = 5,
SpvSourceLanguageCPP_for_OpenCL = 6,
+ SpvSourceLanguageSYCL = 7,
SpvSourceLanguageMax = 0x7fffffff,
} SpvSourceLanguage;
@@ -95,6 +98,8 @@ typedef enum SpvExecutionModel_ {
SpvExecutionModelMissNV = 5317,
SpvExecutionModelCallableKHR = 5318,
SpvExecutionModelCallableNV = 5318,
+ SpvExecutionModelTaskEXT = 5364,
+ SpvExecutionModelMeshEXT = 5365,
SpvExecutionModelMax = 0x7fffffff,
} SpvExecutionModel;
@@ -162,11 +167,21 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeSignedZeroInfNanPreserve = 4461,
SpvExecutionModeRoundingModeRTE = 4462,
SpvExecutionModeRoundingModeRTZ = 4463,
+ SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
SpvExecutionModeStencilRefReplacingEXT = 5027,
+ SpvExecutionModeStencilRefUnchangedFrontAMD = 5079,
+ SpvExecutionModeStencilRefGreaterFrontAMD = 5080,
+ SpvExecutionModeStencilRefLessFrontAMD = 5081,
+ SpvExecutionModeStencilRefUnchangedBackAMD = 5082,
+ SpvExecutionModeStencilRefGreaterBackAMD = 5083,
+ SpvExecutionModeStencilRefLessBackAMD = 5084,
+ SpvExecutionModeOutputLinesEXT = 5269,
SpvExecutionModeOutputLinesNV = 5269,
+ SpvExecutionModeOutputPrimitivesEXT = 5270,
SpvExecutionModeOutputPrimitivesNV = 5270,
SpvExecutionModeDerivativeGroupQuadsNV = 5289,
SpvExecutionModeDerivativeGroupLinearNV = 5290,
+ SpvExecutionModeOutputTrianglesEXT = 5298,
SpvExecutionModeOutputTrianglesNV = 5298,
SpvExecutionModePixelInterlockOrderedEXT = 5366,
SpvExecutionModePixelInterlockUnorderedEXT = 5367,
@@ -184,6 +199,7 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeNoGlobalOffsetINTEL = 5895,
SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
+ SpvExecutionModeNamedBarrierCountINTEL = 6417,
SpvExecutionModeMax = 0x7fffffff,
} SpvExecutionMode;
@@ -215,6 +231,7 @@ typedef enum SpvStorageClass_ {
SpvStorageClassShaderRecordBufferNV = 5343,
SpvStorageClassPhysicalStorageBuffer = 5349,
SpvStorageClassPhysicalStorageBufferEXT = 5349,
+ SpvStorageClassTaskPayloadWorkgroupEXT = 5402,
SpvStorageClassCodeSectionINTEL = 5605,
SpvStorageClassDeviceOnlyINTEL = 5936,
SpvStorageClassHostOnlyINTEL = 5937,
@@ -497,6 +514,7 @@ typedef enum SpvDecoration_ {
SpvDecorationPassthroughNV = 5250,
SpvDecorationViewportRelativeNV = 5252,
SpvDecorationSecondaryViewportRelativeNV = 5256,
+ SpvDecorationPerPrimitiveEXT = 5271,
SpvDecorationPerPrimitiveNV = 5271,
SpvDecorationPerViewNV = 5272,
SpvDecorationPerTaskNV = 5273,
@@ -546,6 +564,8 @@ typedef enum SpvDecoration_ {
SpvDecorationPrefetchINTEL = 5902,
SpvDecorationStallEnableINTEL = 5905,
SpvDecorationFuseLoopsInFunctionINTEL = 5907,
+ SpvDecorationAliasScopeINTEL = 5914,
+ SpvDecorationNoAliasINTEL = 5915,
SpvDecorationBufferLocationINTEL = 5921,
SpvDecorationIOPipeStorageINTEL = 5944,
SpvDecorationFunctionFloatingPointModeINTEL = 6080,
@@ -644,6 +664,10 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInFragmentSizeNV = 5292,
SpvBuiltInFragInvocationCountEXT = 5293,
SpvBuiltInInvocationsPerPixelNV = 5293,
+ SpvBuiltInPrimitivePointIndicesEXT = 5294,
+ SpvBuiltInPrimitiveLineIndicesEXT = 5295,
+ SpvBuiltInPrimitiveTriangleIndicesEXT = 5296,
+ SpvBuiltInCullPrimitiveEXT = 5299,
SpvBuiltInLaunchIdKHR = 5319,
SpvBuiltInLaunchIdNV = 5319,
SpvBuiltInLaunchSizeKHR = 5320,
@@ -677,6 +701,7 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInSMCountNV = 5375,
SpvBuiltInWarpIDNV = 5376,
SpvBuiltInSMIDNV = 5377,
+ SpvBuiltInCullMaskKHR = 6021,
SpvBuiltInMax = 0x7fffffff,
} SpvBuiltIn;
@@ -804,6 +829,8 @@ typedef enum SpvMemoryAccessShift_ {
SpvMemoryAccessMakePointerVisibleKHRShift = 4,
SpvMemoryAccessNonPrivatePointerShift = 5,
SpvMemoryAccessNonPrivatePointerKHRShift = 5,
+ SpvMemoryAccessAliasScopeINTELMaskShift = 16,
+ SpvMemoryAccessNoAliasINTELMaskShift = 17,
SpvMemoryAccessMax = 0x7fffffff,
} SpvMemoryAccessShift;
@@ -818,6 +845,8 @@ typedef enum SpvMemoryAccessMask_ {
SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
SpvMemoryAccessNonPrivatePointerMask = 0x00000020,
SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
+ SpvMemoryAccessAliasScopeINTELMaskMask = 0x00010000,
+ SpvMemoryAccessNoAliasINTELMaskMask = 0x00020000,
} SpvMemoryAccessMask;
typedef enum SpvScope_ {
@@ -979,6 +1008,7 @@ typedef enum SpvCapability_ {
SpvCapabilityFragmentFullyCoveredEXT = 5265,
SpvCapabilityMeshShadingNV = 5266,
SpvCapabilityImageFootprintNV = 5282,
+ SpvCapabilityMeshShadingEXT = 5283,
SpvCapabilityFragmentBarycentricKHR = 5284,
SpvCapabilityFragmentBarycentricNV = 5284,
SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
@@ -1059,6 +1089,7 @@ typedef enum SpvCapability_ {
SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
SpvCapabilityFPGAClusterAttributesINTEL = 5904,
SpvCapabilityLoopFuseINTEL = 5906,
+ SpvCapabilityMemoryAccessAliasingINTEL = 5910,
SpvCapabilityFPGABufferLocationINTEL = 5920,
SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
SpvCapabilityUSMStorageClassesINTEL = 5935,
@@ -1073,13 +1104,17 @@ typedef enum SpvCapability_ {
SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
SpvCapabilityDotProduct = 6019,
SpvCapabilityDotProductKHR = 6019,
+ SpvCapabilityRayCullMaskKHR = 6020,
SpvCapabilityBitInstructions = 6025,
+ SpvCapabilityGroupNonUniformRotateKHR = 6026,
SpvCapabilityAtomicFloat32AddEXT = 6033,
SpvCapabilityAtomicFloat64AddEXT = 6034,
SpvCapabilityLongConstantCompositeINTEL = 6089,
SpvCapabilityOptNoneINTEL = 6094,
SpvCapabilityAtomicFloat16AddEXT = 6095,
SpvCapabilityDebugInfoModuleINTEL = 6114,
+ SpvCapabilitySplitBarrierINTEL = 6141,
+ SpvCapabilityGroupUniformArithmeticKHR = 6400,
SpvCapabilityMax = 0x7fffffff,
} SpvCapability;
@@ -1535,6 +1570,7 @@ typedef enum SpvOp_ {
SpvOpSubgroupAllKHR = 4428,
SpvOpSubgroupAnyKHR = 4429,
SpvOpSubgroupAllEqualKHR = 4430,
+ SpvOpGroupNonUniformRotateKHR = 4431,
SpvOpSubgroupReadInvocationKHR = 4432,
SpvOpTraceRayKHR = 4445,
SpvOpExecuteCallableKHR = 4446,
@@ -1572,6 +1608,8 @@ typedef enum SpvOp_ {
SpvOpFragmentFetchAMD = 5012,
SpvOpReadClockKHR = 5056,
SpvOpImageSampleFootprintNV = 5283,
+ SpvOpEmitMeshTasksEXT = 5294,
+ SpvOpSetMeshOutputsEXT = 5295,
SpvOpGroupNonUniformPartitionNV = 5296,
SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
SpvOpReportIntersectionKHR = 5334,
@@ -1801,6 +1839,9 @@ typedef enum SpvOp_ {
SpvOpArbitraryFloatPowRINTEL = 5881,
SpvOpArbitraryFloatPowNINTEL = 5882,
SpvOpLoopControlINTEL = 5887,
+ SpvOpAliasDomainDeclINTEL = 5911,
+ SpvOpAliasScopeDeclINTEL = 5912,
+ SpvOpAliasScopeListDeclINTEL = 5913,
SpvOpFixedSqrtINTEL = 5923,
SpvOpFixedRecipINTEL = 5924,
SpvOpFixedRsqrtINTEL = 5925,
@@ -1839,10 +1880,23 @@ typedef enum SpvOp_ {
SpvOpTypeStructContinuedINTEL = 6090,
SpvOpConstantCompositeContinuedINTEL = 6091,
SpvOpSpecConstantCompositeContinuedINTEL = 6092,
+ SpvOpControlBarrierArriveINTEL = 6142,
+ SpvOpControlBarrierWaitINTEL = 6143,
+ SpvOpGroupIMulKHR = 6401,
+ SpvOpGroupFMulKHR = 6402,
+ SpvOpGroupBitwiseAndKHR = 6403,
+ SpvOpGroupBitwiseOrKHR = 6404,
+ SpvOpGroupBitwiseXorKHR = 6405,
+ SpvOpGroupLogicalAndKHR = 6406,
+ SpvOpGroupLogicalOrKHR = 6407,
+ SpvOpGroupLogicalXorKHR = 6408,
SpvOpMax = 0x7fffffff,
} SpvOp;
#ifdef SPV_ENABLE_UTILITY_CODE
+#ifndef __cplusplus
+#include <stdbool.h>
+#endif
inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) {
*hasResult = *hasResultType = false;
switch (opcode) {
@@ -2197,6 +2251,7 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
case SpvOpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
@@ -2228,6 +2283,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
@@ -2452,6 +2509,9 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break;
case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2490,6 +2550,16 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 3d500eb..e25264a 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -26,7 +26,7 @@
// 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, C++, C++11, JSON, Lua, Python, C#, D, Beef
//
// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
@@ -36,6 +36,8 @@
// - 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
+// - Beef will use enum classes in the Specification class located in the "Spv" namespace,
+// e.g.: Spv.Specification.SourceLanguage.GLSL
//
// Some tokens act like mask values, which can be OR'd together,
// while others are mutually exclusive. The mask-like ones have
@@ -66,6 +68,7 @@ enum SourceLanguage {
SourceLanguageOpenCL_CPP = 4,
SourceLanguageHLSL = 5,
SourceLanguageCPP_for_OpenCL = 6,
+ SourceLanguageSYCL = 7,
SourceLanguageMax = 0x7fffffff,
};
@@ -91,6 +94,8 @@ enum ExecutionModel {
ExecutionModelMissNV = 5317,
ExecutionModelCallableKHR = 5318,
ExecutionModelCallableNV = 5318,
+ ExecutionModelTaskEXT = 5364,
+ ExecutionModelMeshEXT = 5365,
ExecutionModelMax = 0x7fffffff,
};
@@ -158,11 +163,21 @@ enum ExecutionMode {
ExecutionModeSignedZeroInfNanPreserve = 4461,
ExecutionModeRoundingModeRTE = 4462,
ExecutionModeRoundingModeRTZ = 4463,
+ ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
ExecutionModeStencilRefReplacingEXT = 5027,
+ ExecutionModeStencilRefUnchangedFrontAMD = 5079,
+ ExecutionModeStencilRefGreaterFrontAMD = 5080,
+ ExecutionModeStencilRefLessFrontAMD = 5081,
+ ExecutionModeStencilRefUnchangedBackAMD = 5082,
+ ExecutionModeStencilRefGreaterBackAMD = 5083,
+ ExecutionModeStencilRefLessBackAMD = 5084,
+ ExecutionModeOutputLinesEXT = 5269,
ExecutionModeOutputLinesNV = 5269,
+ ExecutionModeOutputPrimitivesEXT = 5270,
ExecutionModeOutputPrimitivesNV = 5270,
ExecutionModeDerivativeGroupQuadsNV = 5289,
ExecutionModeDerivativeGroupLinearNV = 5290,
+ ExecutionModeOutputTrianglesEXT = 5298,
ExecutionModeOutputTrianglesNV = 5298,
ExecutionModePixelInterlockOrderedEXT = 5366,
ExecutionModePixelInterlockUnorderedEXT = 5367,
@@ -180,6 +195,7 @@ enum ExecutionMode {
ExecutionModeNoGlobalOffsetINTEL = 5895,
ExecutionModeNumSIMDWorkitemsINTEL = 5896,
ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
+ ExecutionModeNamedBarrierCountINTEL = 6417,
ExecutionModeMax = 0x7fffffff,
};
@@ -211,6 +227,7 @@ enum StorageClass {
StorageClassShaderRecordBufferNV = 5343,
StorageClassPhysicalStorageBuffer = 5349,
StorageClassPhysicalStorageBufferEXT = 5349,
+ StorageClassTaskPayloadWorkgroupEXT = 5402,
StorageClassCodeSectionINTEL = 5605,
StorageClassDeviceOnlyINTEL = 5936,
StorageClassHostOnlyINTEL = 5937,
@@ -493,6 +510,7 @@ enum Decoration {
DecorationPassthroughNV = 5250,
DecorationViewportRelativeNV = 5252,
DecorationSecondaryViewportRelativeNV = 5256,
+ DecorationPerPrimitiveEXT = 5271,
DecorationPerPrimitiveNV = 5271,
DecorationPerViewNV = 5272,
DecorationPerTaskNV = 5273,
@@ -542,6 +560,8 @@ enum Decoration {
DecorationPrefetchINTEL = 5902,
DecorationStallEnableINTEL = 5905,
DecorationFuseLoopsInFunctionINTEL = 5907,
+ DecorationAliasScopeINTEL = 5914,
+ DecorationNoAliasINTEL = 5915,
DecorationBufferLocationINTEL = 5921,
DecorationIOPipeStorageINTEL = 5944,
DecorationFunctionFloatingPointModeINTEL = 6080,
@@ -640,6 +660,10 @@ enum BuiltIn {
BuiltInFragmentSizeNV = 5292,
BuiltInFragInvocationCountEXT = 5293,
BuiltInInvocationsPerPixelNV = 5293,
+ BuiltInPrimitivePointIndicesEXT = 5294,
+ BuiltInPrimitiveLineIndicesEXT = 5295,
+ BuiltInPrimitiveTriangleIndicesEXT = 5296,
+ BuiltInCullPrimitiveEXT = 5299,
BuiltInLaunchIdKHR = 5319,
BuiltInLaunchIdNV = 5319,
BuiltInLaunchSizeKHR = 5320,
@@ -673,6 +697,7 @@ enum BuiltIn {
BuiltInSMCountNV = 5375,
BuiltInWarpIDNV = 5376,
BuiltInSMIDNV = 5377,
+ BuiltInCullMaskKHR = 6021,
BuiltInMax = 0x7fffffff,
};
@@ -800,6 +825,8 @@ enum MemoryAccessShift {
MemoryAccessMakePointerVisibleKHRShift = 4,
MemoryAccessNonPrivatePointerShift = 5,
MemoryAccessNonPrivatePointerKHRShift = 5,
+ MemoryAccessAliasScopeINTELMaskShift = 16,
+ MemoryAccessNoAliasINTELMaskShift = 17,
MemoryAccessMax = 0x7fffffff,
};
@@ -814,6 +841,8 @@ enum MemoryAccessMask {
MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
MemoryAccessNonPrivatePointerMask = 0x00000020,
MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
+ MemoryAccessAliasScopeINTELMaskMask = 0x00010000,
+ MemoryAccessNoAliasINTELMaskMask = 0x00020000,
};
enum Scope {
@@ -975,6 +1004,7 @@ enum Capability {
CapabilityFragmentFullyCoveredEXT = 5265,
CapabilityMeshShadingNV = 5266,
CapabilityImageFootprintNV = 5282,
+ CapabilityMeshShadingEXT = 5283,
CapabilityFragmentBarycentricKHR = 5284,
CapabilityFragmentBarycentricNV = 5284,
CapabilityComputeDerivativeGroupQuadsNV = 5288,
@@ -1055,6 +1085,7 @@ enum Capability {
CapabilityFPGAMemoryAccessesINTEL = 5898,
CapabilityFPGAClusterAttributesINTEL = 5904,
CapabilityLoopFuseINTEL = 5906,
+ CapabilityMemoryAccessAliasingINTEL = 5910,
CapabilityFPGABufferLocationINTEL = 5920,
CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
CapabilityUSMStorageClassesINTEL = 5935,
@@ -1069,13 +1100,17 @@ enum Capability {
CapabilityDotProductInput4x8BitPackedKHR = 6018,
CapabilityDotProduct = 6019,
CapabilityDotProductKHR = 6019,
+ CapabilityRayCullMaskKHR = 6020,
CapabilityBitInstructions = 6025,
+ CapabilityGroupNonUniformRotateKHR = 6026,
CapabilityAtomicFloat32AddEXT = 6033,
CapabilityAtomicFloat64AddEXT = 6034,
CapabilityLongConstantCompositeINTEL = 6089,
CapabilityOptNoneINTEL = 6094,
CapabilityAtomicFloat16AddEXT = 6095,
CapabilityDebugInfoModuleINTEL = 6114,
+ CapabilitySplitBarrierINTEL = 6141,
+ CapabilityGroupUniformArithmeticKHR = 6400,
CapabilityMax = 0x7fffffff,
};
@@ -1531,6 +1566,7 @@ enum Op {
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
+ OpGroupNonUniformRotateKHR = 4431,
OpSubgroupReadInvocationKHR = 4432,
OpTraceRayKHR = 4445,
OpExecuteCallableKHR = 4446,
@@ -1568,6 +1604,8 @@ enum Op {
OpFragmentFetchAMD = 5012,
OpReadClockKHR = 5056,
OpImageSampleFootprintNV = 5283,
+ OpEmitMeshTasksEXT = 5294,
+ OpSetMeshOutputsEXT = 5295,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
OpReportIntersectionKHR = 5334,
@@ -1797,6 +1835,9 @@ enum Op {
OpArbitraryFloatPowRINTEL = 5881,
OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
+ OpAliasDomainDeclINTEL = 5911,
+ OpAliasScopeDeclINTEL = 5912,
+ OpAliasScopeListDeclINTEL = 5913,
OpFixedSqrtINTEL = 5923,
OpFixedRecipINTEL = 5924,
OpFixedRsqrtINTEL = 5925,
@@ -1835,10 +1876,23 @@ enum Op {
OpTypeStructContinuedINTEL = 6090,
OpConstantCompositeContinuedINTEL = 6091,
OpSpecConstantCompositeContinuedINTEL = 6092,
+ OpControlBarrierArriveINTEL = 6142,
+ OpControlBarrierWaitINTEL = 6143,
+ OpGroupIMulKHR = 6401,
+ OpGroupFMulKHR = 6402,
+ OpGroupBitwiseAndKHR = 6403,
+ OpGroupBitwiseOrKHR = 6404,
+ OpGroupBitwiseXorKHR = 6405,
+ OpGroupLogicalAndKHR = 6406,
+ OpGroupLogicalOrKHR = 6407,
+ OpGroupLogicalXorKHR = 6408,
OpMax = 0x7fffffff,
};
#ifdef SPV_ENABLE_UTILITY_CODE
+#ifndef __cplusplus
+#include <stdbool.h>
+#endif
inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
*hasResult = *hasResultType = false;
switch (opcode) {
@@ -2193,6 +2247,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break;
case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
@@ -2224,6 +2279,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
+ case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
+ case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
@@ -2448,6 +2505,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break;
case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2486,6 +2546,16 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
+ case OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
+ case OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
+ case OpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break;
+ case OpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break;
+ case OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
+ case OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
+ case OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index f1fd764..555f57b 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -26,7 +26,7 @@
// 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, C++, C++11, JSON, Lua, Python, C#, D, Beef
//
// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
@@ -36,6 +36,8 @@
// - 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
+// - Beef will use enum classes in the Specification class located in the "Spv" namespace,
+// e.g.: Spv.Specification.SourceLanguage.GLSL
//
// Some tokens act like mask values, which can be OR'd together,
// while others are mutually exclusive. The mask-like ones have
@@ -66,6 +68,7 @@ enum class SourceLanguage : unsigned {
OpenCL_CPP = 4,
HLSL = 5,
CPP_for_OpenCL = 6,
+ SYCL = 7,
Max = 0x7fffffff,
};
@@ -91,6 +94,8 @@ enum class ExecutionModel : unsigned {
MissNV = 5317,
CallableKHR = 5318,
CallableNV = 5318,
+ TaskEXT = 5364,
+ MeshEXT = 5365,
Max = 0x7fffffff,
};
@@ -158,11 +163,21 @@ enum class ExecutionMode : unsigned {
SignedZeroInfNanPreserve = 4461,
RoundingModeRTE = 4462,
RoundingModeRTZ = 4463,
+ EarlyAndLateFragmentTestsAMD = 5017,
StencilRefReplacingEXT = 5027,
+ StencilRefUnchangedFrontAMD = 5079,
+ StencilRefGreaterFrontAMD = 5080,
+ StencilRefLessFrontAMD = 5081,
+ StencilRefUnchangedBackAMD = 5082,
+ StencilRefGreaterBackAMD = 5083,
+ StencilRefLessBackAMD = 5084,
+ OutputLinesEXT = 5269,
OutputLinesNV = 5269,
+ OutputPrimitivesEXT = 5270,
OutputPrimitivesNV = 5270,
DerivativeGroupQuadsNV = 5289,
DerivativeGroupLinearNV = 5290,
+ OutputTrianglesEXT = 5298,
OutputTrianglesNV = 5298,
PixelInterlockOrderedEXT = 5366,
PixelInterlockUnorderedEXT = 5367,
@@ -180,6 +195,7 @@ enum class ExecutionMode : unsigned {
NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896,
SchedulerTargetFmaxMhzINTEL = 5903,
+ NamedBarrierCountINTEL = 6417,
Max = 0x7fffffff,
};
@@ -211,6 +227,7 @@ enum class StorageClass : unsigned {
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
+ TaskPayloadWorkgroupEXT = 5402,
CodeSectionINTEL = 5605,
DeviceOnlyINTEL = 5936,
HostOnlyINTEL = 5937,
@@ -493,6 +510,7 @@ enum class Decoration : unsigned {
PassthroughNV = 5250,
ViewportRelativeNV = 5252,
SecondaryViewportRelativeNV = 5256,
+ PerPrimitiveEXT = 5271,
PerPrimitiveNV = 5271,
PerViewNV = 5272,
PerTaskNV = 5273,
@@ -542,6 +560,8 @@ enum class Decoration : unsigned {
PrefetchINTEL = 5902,
StallEnableINTEL = 5905,
FuseLoopsInFunctionINTEL = 5907,
+ AliasScopeINTEL = 5914,
+ NoAliasINTEL = 5915,
BufferLocationINTEL = 5921,
IOPipeStorageINTEL = 5944,
FunctionFloatingPointModeINTEL = 6080,
@@ -640,6 +660,10 @@ enum class BuiltIn : unsigned {
FragmentSizeNV = 5292,
FragInvocationCountEXT = 5293,
InvocationsPerPixelNV = 5293,
+ PrimitivePointIndicesEXT = 5294,
+ PrimitiveLineIndicesEXT = 5295,
+ PrimitiveTriangleIndicesEXT = 5296,
+ CullPrimitiveEXT = 5299,
LaunchIdKHR = 5319,
LaunchIdNV = 5319,
LaunchSizeKHR = 5320,
@@ -673,6 +697,7 @@ enum class BuiltIn : unsigned {
SMCountNV = 5375,
WarpIDNV = 5376,
SMIDNV = 5377,
+ CullMaskKHR = 6021,
Max = 0x7fffffff,
};
@@ -800,6 +825,8 @@ enum class MemoryAccessShift : unsigned {
MakePointerVisibleKHR = 4,
NonPrivatePointer = 5,
NonPrivatePointerKHR = 5,
+ AliasScopeINTELMask = 16,
+ NoAliasINTELMask = 17,
Max = 0x7fffffff,
};
@@ -814,6 +841,8 @@ enum class MemoryAccessMask : unsigned {
MakePointerVisibleKHR = 0x00000010,
NonPrivatePointer = 0x00000020,
NonPrivatePointerKHR = 0x00000020,
+ AliasScopeINTELMask = 0x00010000,
+ NoAliasINTELMask = 0x00020000,
};
enum class Scope : unsigned {
@@ -975,6 +1004,7 @@ enum class Capability : unsigned {
FragmentFullyCoveredEXT = 5265,
MeshShadingNV = 5266,
ImageFootprintNV = 5282,
+ MeshShadingEXT = 5283,
FragmentBarycentricKHR = 5284,
FragmentBarycentricNV = 5284,
ComputeDerivativeGroupQuadsNV = 5288,
@@ -1055,6 +1085,7 @@ enum class Capability : unsigned {
FPGAMemoryAccessesINTEL = 5898,
FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906,
+ MemoryAccessAliasingINTEL = 5910,
FPGABufferLocationINTEL = 5920,
ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935,
@@ -1069,13 +1100,17 @@ enum class Capability : unsigned {
DotProductInput4x8BitPackedKHR = 6018,
DotProduct = 6019,
DotProductKHR = 6019,
+ RayCullMaskKHR = 6020,
BitInstructions = 6025,
+ GroupNonUniformRotateKHR = 6026,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089,
OptNoneINTEL = 6094,
AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114,
+ SplitBarrierINTEL = 6141,
+ GroupUniformArithmeticKHR = 6400,
Max = 0x7fffffff,
};
@@ -1531,6 +1566,7 @@ enum class Op : unsigned {
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
+ OpGroupNonUniformRotateKHR = 4431,
OpSubgroupReadInvocationKHR = 4432,
OpTraceRayKHR = 4445,
OpExecuteCallableKHR = 4446,
@@ -1568,6 +1604,8 @@ enum class Op : unsigned {
OpFragmentFetchAMD = 5012,
OpReadClockKHR = 5056,
OpImageSampleFootprintNV = 5283,
+ OpEmitMeshTasksEXT = 5294,
+ OpSetMeshOutputsEXT = 5295,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
OpReportIntersectionKHR = 5334,
@@ -1797,6 +1835,9 @@ enum class Op : unsigned {
OpArbitraryFloatPowRINTEL = 5881,
OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
+ OpAliasDomainDeclINTEL = 5911,
+ OpAliasScopeDeclINTEL = 5912,
+ OpAliasScopeListDeclINTEL = 5913,
OpFixedSqrtINTEL = 5923,
OpFixedRecipINTEL = 5924,
OpFixedRsqrtINTEL = 5925,
@@ -1835,10 +1876,23 @@ enum class Op : unsigned {
OpTypeStructContinuedINTEL = 6090,
OpConstantCompositeContinuedINTEL = 6091,
OpSpecConstantCompositeContinuedINTEL = 6092,
+ OpControlBarrierArriveINTEL = 6142,
+ OpControlBarrierWaitINTEL = 6143,
+ OpGroupIMulKHR = 6401,
+ OpGroupFMulKHR = 6402,
+ OpGroupBitwiseAndKHR = 6403,
+ OpGroupBitwiseOrKHR = 6404,
+ OpGroupBitwiseXorKHR = 6405,
+ OpGroupLogicalAndKHR = 6406,
+ OpGroupLogicalOrKHR = 6407,
+ OpGroupLogicalXorKHR = 6408,
Max = 0x7fffffff,
};
#ifdef SPV_ENABLE_UTILITY_CODE
+#ifndef __cplusplus
+#include <stdbool.h>
+#endif
inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
*hasResult = *hasResultType = false;
switch (opcode) {
@@ -2193,6 +2247,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
case Op::OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
@@ -2224,6 +2279,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
case Op::OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
case Op::OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
@@ -2448,6 +2505,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break;
case Op::OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2486,6 +2546,16 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index e80d3bd..4ad3bcb 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -36,7 +36,7 @@
],
[
"Enumeration tokens for SPIR-V, in various styles:",
- " C, C++, C++11, JSON, Lua, Python, C#, D",
+ " C, C++, C++11, JSON, Lua, Python, C#, D, Beef",
"",
"- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL",
"- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL",
@@ -46,6 +46,8 @@
"- 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",
+ "- Beef will use enum classes in the Specification class located in the \"Spv\" namespace,",
+ " e.g.: Spv.Specification.SourceLanguage.GLSL",
"",
"Some tokens act like mask values, which can be OR'd together,",
"while others are mutually exclusive. The mask-like ones have",
@@ -72,7 +74,8 @@
"OpenCL_C": 3,
"OpenCL_CPP": 4,
"HLSL": 5,
- "CPP_for_OpenCL": 6
+ "CPP_for_OpenCL": 6,
+ "SYCL": 7
}
},
{
@@ -100,7 +103,9 @@
"MissKHR": 5317,
"MissNV": 5317,
"CallableKHR": 5318,
- "CallableNV": 5318
+ "CallableNV": 5318,
+ "TaskEXT": 5364,
+ "MeshEXT": 5365
}
},
{
@@ -177,11 +182,21 @@
"SignedZeroInfNanPreserve": 4461,
"RoundingModeRTE": 4462,
"RoundingModeRTZ": 4463,
+ "EarlyAndLateFragmentTestsAMD": 5017,
"StencilRefReplacingEXT": 5027,
+ "StencilRefUnchangedFrontAMD": 5079,
+ "StencilRefGreaterFrontAMD": 5080,
+ "StencilRefLessFrontAMD": 5081,
+ "StencilRefUnchangedBackAMD": 5082,
+ "StencilRefGreaterBackAMD": 5083,
+ "StencilRefLessBackAMD": 5084,
+ "OutputLinesEXT": 5269,
"OutputLinesNV": 5269,
+ "OutputPrimitivesEXT": 5270,
"OutputPrimitivesNV": 5270,
"DerivativeGroupQuadsNV": 5289,
"DerivativeGroupLinearNV": 5290,
+ "OutputTrianglesEXT": 5298,
"OutputTrianglesNV": 5298,
"PixelInterlockOrderedEXT": 5366,
"PixelInterlockUnorderedEXT": 5367,
@@ -198,7 +213,8 @@
"MaxWorkDimINTEL": 5894,
"NoGlobalOffsetINTEL": 5895,
"NumSIMDWorkitemsINTEL": 5896,
- "SchedulerTargetFmaxMhzINTEL": 5903
+ "SchedulerTargetFmaxMhzINTEL": 5903,
+ "NamedBarrierCountINTEL": 6417
}
},
{
@@ -233,6 +249,7 @@
"ShaderRecordBufferNV": 5343,
"PhysicalStorageBuffer": 5349,
"PhysicalStorageBufferEXT": 5349,
+ "TaskPayloadWorkgroupEXT": 5402,
"CodeSectionINTEL": 5605,
"DeviceOnlyINTEL": 5936,
"HostOnlyINTEL": 5937
@@ -519,6 +536,7 @@
"PassthroughNV": 5250,
"ViewportRelativeNV": 5252,
"SecondaryViewportRelativeNV": 5256,
+ "PerPrimitiveEXT": 5271,
"PerPrimitiveNV": 5271,
"PerViewNV": 5272,
"PerTaskNV": 5273,
@@ -568,6 +586,8 @@
"PrefetchINTEL": 5902,
"StallEnableINTEL": 5905,
"FuseLoopsInFunctionINTEL": 5907,
+ "AliasScopeINTEL": 5914,
+ "NoAliasINTEL": 5915,
"BufferLocationINTEL": 5921,
"IOPipeStorageINTEL": 5944,
"FunctionFloatingPointModeINTEL": 6080,
@@ -669,6 +689,10 @@
"FragmentSizeNV": 5292,
"FragInvocationCountEXT": 5293,
"InvocationsPerPixelNV": 5293,
+ "PrimitivePointIndicesEXT": 5294,
+ "PrimitiveLineIndicesEXT": 5295,
+ "PrimitiveTriangleIndicesEXT": 5296,
+ "CullPrimitiveEXT": 5299,
"LaunchIdKHR": 5319,
"LaunchIdNV": 5319,
"LaunchSizeKHR": 5320,
@@ -701,7 +725,8 @@
"WarpsPerSMNV": 5374,
"SMCountNV": 5375,
"WarpIDNV": 5376,
- "SMIDNV": 5377
+ "SMIDNV": 5377,
+ "CullMaskKHR": 6021
}
},
{
@@ -786,7 +811,9 @@
"MakePointerVisible": 4,
"MakePointerVisibleKHR": 4,
"NonPrivatePointer": 5,
- "NonPrivatePointerKHR": 5
+ "NonPrivatePointerKHR": 5,
+ "AliasScopeINTELMask": 16,
+ "NoAliasINTELMask": 17
}
},
{
@@ -959,6 +986,7 @@
"FragmentFullyCoveredEXT": 5265,
"MeshShadingNV": 5266,
"ImageFootprintNV": 5282,
+ "MeshShadingEXT": 5283,
"FragmentBarycentricKHR": 5284,
"FragmentBarycentricNV": 5284,
"ComputeDerivativeGroupQuadsNV": 5288,
@@ -1039,6 +1067,7 @@
"FPGAMemoryAccessesINTEL": 5898,
"FPGAClusterAttributesINTEL": 5904,
"LoopFuseINTEL": 5906,
+ "MemoryAccessAliasingINTEL": 5910,
"FPGABufferLocationINTEL": 5920,
"ArbitraryPrecisionFixedPointINTEL": 5922,
"USMStorageClassesINTEL": 5935,
@@ -1053,13 +1082,17 @@
"DotProductInput4x8BitPackedKHR": 6018,
"DotProduct": 6019,
"DotProductKHR": 6019,
+ "RayCullMaskKHR": 6020,
"BitInstructions": 6025,
+ "GroupNonUniformRotateKHR": 6026,
"AtomicFloat32AddEXT": 6033,
"AtomicFloat64AddEXT": 6034,
"LongConstantCompositeINTEL": 6089,
"OptNoneINTEL": 6094,
"AtomicFloat16AddEXT": 6095,
- "DebugInfoModuleINTEL": 6114
+ "DebugInfoModuleINTEL": 6114,
+ "SplitBarrierINTEL": 6141,
+ "GroupUniformArithmeticKHR": 6400
}
},
{
@@ -1526,6 +1559,7 @@
"OpSubgroupAllKHR": 4428,
"OpSubgroupAnyKHR": 4429,
"OpSubgroupAllEqualKHR": 4430,
+ "OpGroupNonUniformRotateKHR": 4431,
"OpSubgroupReadInvocationKHR": 4432,
"OpTraceRayKHR": 4445,
"OpExecuteCallableKHR": 4446,
@@ -1563,6 +1597,8 @@
"OpFragmentFetchAMD": 5012,
"OpReadClockKHR": 5056,
"OpImageSampleFootprintNV": 5283,
+ "OpEmitMeshTasksEXT": 5294,
+ "OpSetMeshOutputsEXT": 5295,
"OpGroupNonUniformPartitionNV": 5296,
"OpWritePackedPrimitiveIndices4x8NV": 5299,
"OpReportIntersectionKHR": 5334,
@@ -1792,6 +1828,9 @@
"OpArbitraryFloatPowRINTEL": 5881,
"OpArbitraryFloatPowNINTEL": 5882,
"OpLoopControlINTEL": 5887,
+ "OpAliasDomainDeclINTEL": 5911,
+ "OpAliasScopeDeclINTEL": 5912,
+ "OpAliasScopeListDeclINTEL": 5913,
"OpFixedSqrtINTEL": 5923,
"OpFixedRecipINTEL": 5924,
"OpFixedRsqrtINTEL": 5925,
@@ -1829,7 +1868,17 @@
"OpTypeBufferSurfaceINTEL": 6086,
"OpTypeStructContinuedINTEL": 6090,
"OpConstantCompositeContinuedINTEL": 6091,
- "OpSpecConstantCompositeContinuedINTEL": 6092
+ "OpSpecConstantCompositeContinuedINTEL": 6092,
+ "OpControlBarrierArriveINTEL": 6142,
+ "OpControlBarrierWaitINTEL": 6143,
+ "OpGroupIMulKHR": 6401,
+ "OpGroupFMulKHR": 6402,
+ "OpGroupBitwiseAndKHR": 6403,
+ "OpGroupBitwiseOrKHR": 6404,
+ "OpGroupBitwiseXorKHR": 6405,
+ "OpGroupLogicalAndKHR": 6406,
+ "OpGroupLogicalOrKHR": 6407,
+ "OpGroupLogicalXorKHR": 6408
}
}
]
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 2f5e803..a3d47e9 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -26,7 +26,7 @@
-- 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, C++, C++11, JSON, Lua, Python, C#, D, Beef
--
-- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
-- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
@@ -36,6 +36,8 @@
-- - 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
+-- - Beef will use enum classes in the Specification class located in the "Spv" namespace,
+-- e.g.: Spv.Specification.SourceLanguage.GLSL
--
-- Some tokens act like mask values, which can be OR'd together,
-- while others are mutually exclusive. The mask-like ones have
@@ -57,6 +59,7 @@ spv = {
OpenCL_CPP = 4,
HLSL = 5,
CPP_for_OpenCL = 6,
+ SYCL = 7,
},
ExecutionModel = {
@@ -81,6 +84,8 @@ spv = {
MissNV = 5317,
CallableKHR = 5318,
CallableNV = 5318,
+ TaskEXT = 5364,
+ MeshEXT = 5365,
},
AddressingModel = {
@@ -145,11 +150,21 @@ spv = {
SignedZeroInfNanPreserve = 4461,
RoundingModeRTE = 4462,
RoundingModeRTZ = 4463,
+ EarlyAndLateFragmentTestsAMD = 5017,
StencilRefReplacingEXT = 5027,
+ StencilRefUnchangedFrontAMD = 5079,
+ StencilRefGreaterFrontAMD = 5080,
+ StencilRefLessFrontAMD = 5081,
+ StencilRefUnchangedBackAMD = 5082,
+ StencilRefGreaterBackAMD = 5083,
+ StencilRefLessBackAMD = 5084,
+ OutputLinesEXT = 5269,
OutputLinesNV = 5269,
+ OutputPrimitivesEXT = 5270,
OutputPrimitivesNV = 5270,
DerivativeGroupQuadsNV = 5289,
DerivativeGroupLinearNV = 5290,
+ OutputTrianglesEXT = 5298,
OutputTrianglesNV = 5298,
PixelInterlockOrderedEXT = 5366,
PixelInterlockUnorderedEXT = 5367,
@@ -167,6 +182,7 @@ spv = {
NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896,
SchedulerTargetFmaxMhzINTEL = 5903,
+ NamedBarrierCountINTEL = 6417,
},
StorageClass = {
@@ -197,6 +213,7 @@ spv = {
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
+ TaskPayloadWorkgroupEXT = 5402,
CodeSectionINTEL = 5605,
DeviceOnlyINTEL = 5936,
HostOnlyINTEL = 5937,
@@ -466,6 +483,7 @@ spv = {
PassthroughNV = 5250,
ViewportRelativeNV = 5252,
SecondaryViewportRelativeNV = 5256,
+ PerPrimitiveEXT = 5271,
PerPrimitiveNV = 5271,
PerViewNV = 5272,
PerTaskNV = 5273,
@@ -515,6 +533,8 @@ spv = {
PrefetchINTEL = 5902,
StallEnableINTEL = 5905,
FuseLoopsInFunctionINTEL = 5907,
+ AliasScopeINTEL = 5914,
+ NoAliasINTEL = 5915,
BufferLocationINTEL = 5921,
IOPipeStorageINTEL = 5944,
FunctionFloatingPointModeINTEL = 6080,
@@ -612,6 +632,10 @@ spv = {
FragmentSizeNV = 5292,
FragInvocationCountEXT = 5293,
InvocationsPerPixelNV = 5293,
+ PrimitivePointIndicesEXT = 5294,
+ PrimitiveLineIndicesEXT = 5295,
+ PrimitiveTriangleIndicesEXT = 5296,
+ CullPrimitiveEXT = 5299,
LaunchIdKHR = 5319,
LaunchIdNV = 5319,
LaunchSizeKHR = 5320,
@@ -645,6 +669,7 @@ spv = {
SMCountNV = 5375,
WarpIDNV = 5376,
SMIDNV = 5377,
+ CullMaskKHR = 6021,
},
SelectionControlShift = {
@@ -767,6 +792,8 @@ spv = {
MakePointerVisibleKHR = 4,
NonPrivatePointer = 5,
NonPrivatePointerKHR = 5,
+ AliasScopeINTELMask = 16,
+ NoAliasINTELMask = 17,
},
MemoryAccessMask = {
@@ -780,6 +807,8 @@ spv = {
MakePointerVisibleKHR = 0x00000010,
NonPrivatePointer = 0x00000020,
NonPrivatePointerKHR = 0x00000020,
+ AliasScopeINTELMask = 0x00010000,
+ NoAliasINTELMask = 0x00020000,
},
Scope = {
@@ -937,6 +966,7 @@ spv = {
FragmentFullyCoveredEXT = 5265,
MeshShadingNV = 5266,
ImageFootprintNV = 5282,
+ MeshShadingEXT = 5283,
FragmentBarycentricKHR = 5284,
FragmentBarycentricNV = 5284,
ComputeDerivativeGroupQuadsNV = 5288,
@@ -1017,6 +1047,7 @@ spv = {
FPGAMemoryAccessesINTEL = 5898,
FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906,
+ MemoryAccessAliasingINTEL = 5910,
FPGABufferLocationINTEL = 5920,
ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935,
@@ -1031,13 +1062,17 @@ spv = {
DotProductInput4x8BitPackedKHR = 6018,
DotProduct = 6019,
DotProductKHR = 6019,
+ RayCullMaskKHR = 6020,
BitInstructions = 6025,
+ GroupNonUniformRotateKHR = 6026,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089,
OptNoneINTEL = 6094,
AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114,
+ SplitBarrierINTEL = 6141,
+ GroupUniformArithmeticKHR = 6400,
},
RayFlagsShift = {
@@ -1482,6 +1517,7 @@ spv = {
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
+ OpGroupNonUniformRotateKHR = 4431,
OpSubgroupReadInvocationKHR = 4432,
OpTraceRayKHR = 4445,
OpExecuteCallableKHR = 4446,
@@ -1519,6 +1555,8 @@ spv = {
OpFragmentFetchAMD = 5012,
OpReadClockKHR = 5056,
OpImageSampleFootprintNV = 5283,
+ OpEmitMeshTasksEXT = 5294,
+ OpSetMeshOutputsEXT = 5295,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
OpReportIntersectionKHR = 5334,
@@ -1748,6 +1786,9 @@ spv = {
OpArbitraryFloatPowRINTEL = 5881,
OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
+ OpAliasDomainDeclINTEL = 5911,
+ OpAliasScopeDeclINTEL = 5912,
+ OpAliasScopeListDeclINTEL = 5913,
OpFixedSqrtINTEL = 5923,
OpFixedRecipINTEL = 5924,
OpFixedRsqrtINTEL = 5925,
@@ -1786,6 +1827,16 @@ spv = {
OpTypeStructContinuedINTEL = 6090,
OpConstantCompositeContinuedINTEL = 6091,
OpSpecConstantCompositeContinuedINTEL = 6092,
+ OpControlBarrierArriveINTEL = 6142,
+ OpControlBarrierWaitINTEL = 6143,
+ OpGroupIMulKHR = 6401,
+ OpGroupFMulKHR = 6402,
+ OpGroupBitwiseAndKHR = 6403,
+ OpGroupBitwiseOrKHR = 6404,
+ OpGroupBitwiseXorKHR = 6405,
+ OpGroupLogicalAndKHR = 6406,
+ OpGroupLogicalOrKHR = 6407,
+ OpGroupLogicalXorKHR = 6408,
},
}
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 7aee89f..5e8a0ef 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -26,7 +26,7 @@
# 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, C++, C++11, JSON, Lua, Python, C#, D, Beef
#
# - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
# - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
@@ -36,6 +36,8 @@
# - 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
+# - Beef will use enum classes in the Specification class located in the "Spv" namespace,
+# e.g.: Spv.Specification.SourceLanguage.GLSL
#
# Some tokens act like mask values, which can be OR'd together,
# while others are mutually exclusive. The mask-like ones have
@@ -57,6 +59,7 @@ spv = {
'OpenCL_CPP' : 4,
'HLSL' : 5,
'CPP_for_OpenCL' : 6,
+ 'SYCL' : 7,
},
'ExecutionModel' : {
@@ -81,6 +84,8 @@ spv = {
'MissNV' : 5317,
'CallableKHR' : 5318,
'CallableNV' : 5318,
+ 'TaskEXT' : 5364,
+ 'MeshEXT' : 5365,
},
'AddressingModel' : {
@@ -145,11 +150,21 @@ spv = {
'SignedZeroInfNanPreserve' : 4461,
'RoundingModeRTE' : 4462,
'RoundingModeRTZ' : 4463,
+ 'EarlyAndLateFragmentTestsAMD' : 5017,
'StencilRefReplacingEXT' : 5027,
+ 'StencilRefUnchangedFrontAMD' : 5079,
+ 'StencilRefGreaterFrontAMD' : 5080,
+ 'StencilRefLessFrontAMD' : 5081,
+ 'StencilRefUnchangedBackAMD' : 5082,
+ 'StencilRefGreaterBackAMD' : 5083,
+ 'StencilRefLessBackAMD' : 5084,
+ 'OutputLinesEXT' : 5269,
'OutputLinesNV' : 5269,
+ 'OutputPrimitivesEXT' : 5270,
'OutputPrimitivesNV' : 5270,
'DerivativeGroupQuadsNV' : 5289,
'DerivativeGroupLinearNV' : 5290,
+ 'OutputTrianglesEXT' : 5298,
'OutputTrianglesNV' : 5298,
'PixelInterlockOrderedEXT' : 5366,
'PixelInterlockUnorderedEXT' : 5367,
@@ -167,6 +182,7 @@ spv = {
'NoGlobalOffsetINTEL' : 5895,
'NumSIMDWorkitemsINTEL' : 5896,
'SchedulerTargetFmaxMhzINTEL' : 5903,
+ 'NamedBarrierCountINTEL' : 6417,
},
'StorageClass' : {
@@ -197,6 +213,7 @@ spv = {
'ShaderRecordBufferNV' : 5343,
'PhysicalStorageBuffer' : 5349,
'PhysicalStorageBufferEXT' : 5349,
+ 'TaskPayloadWorkgroupEXT' : 5402,
'CodeSectionINTEL' : 5605,
'DeviceOnlyINTEL' : 5936,
'HostOnlyINTEL' : 5937,
@@ -466,6 +483,7 @@ spv = {
'PassthroughNV' : 5250,
'ViewportRelativeNV' : 5252,
'SecondaryViewportRelativeNV' : 5256,
+ 'PerPrimitiveEXT' : 5271,
'PerPrimitiveNV' : 5271,
'PerViewNV' : 5272,
'PerTaskNV' : 5273,
@@ -515,6 +533,8 @@ spv = {
'PrefetchINTEL' : 5902,
'StallEnableINTEL' : 5905,
'FuseLoopsInFunctionINTEL' : 5907,
+ 'AliasScopeINTEL' : 5914,
+ 'NoAliasINTEL' : 5915,
'BufferLocationINTEL' : 5921,
'IOPipeStorageINTEL' : 5944,
'FunctionFloatingPointModeINTEL' : 6080,
@@ -612,6 +632,10 @@ spv = {
'FragmentSizeNV' : 5292,
'FragInvocationCountEXT' : 5293,
'InvocationsPerPixelNV' : 5293,
+ 'PrimitivePointIndicesEXT' : 5294,
+ 'PrimitiveLineIndicesEXT' : 5295,
+ 'PrimitiveTriangleIndicesEXT' : 5296,
+ 'CullPrimitiveEXT' : 5299,
'LaunchIdKHR' : 5319,
'LaunchIdNV' : 5319,
'LaunchSizeKHR' : 5320,
@@ -645,6 +669,7 @@ spv = {
'SMCountNV' : 5375,
'WarpIDNV' : 5376,
'SMIDNV' : 5377,
+ 'CullMaskKHR' : 6021,
},
'SelectionControlShift' : {
@@ -767,6 +792,8 @@ spv = {
'MakePointerVisibleKHR' : 4,
'NonPrivatePointer' : 5,
'NonPrivatePointerKHR' : 5,
+ 'AliasScopeINTELMask' : 16,
+ 'NoAliasINTELMask' : 17,
},
'MemoryAccessMask' : {
@@ -780,6 +807,8 @@ spv = {
'MakePointerVisibleKHR' : 0x00000010,
'NonPrivatePointer' : 0x00000020,
'NonPrivatePointerKHR' : 0x00000020,
+ 'AliasScopeINTELMask' : 0x00010000,
+ 'NoAliasINTELMask' : 0x00020000,
},
'Scope' : {
@@ -937,6 +966,7 @@ spv = {
'FragmentFullyCoveredEXT' : 5265,
'MeshShadingNV' : 5266,
'ImageFootprintNV' : 5282,
+ 'MeshShadingEXT' : 5283,
'FragmentBarycentricKHR' : 5284,
'FragmentBarycentricNV' : 5284,
'ComputeDerivativeGroupQuadsNV' : 5288,
@@ -1017,6 +1047,7 @@ spv = {
'FPGAMemoryAccessesINTEL' : 5898,
'FPGAClusterAttributesINTEL' : 5904,
'LoopFuseINTEL' : 5906,
+ 'MemoryAccessAliasingINTEL' : 5910,
'FPGABufferLocationINTEL' : 5920,
'ArbitraryPrecisionFixedPointINTEL' : 5922,
'USMStorageClassesINTEL' : 5935,
@@ -1031,13 +1062,17 @@ spv = {
'DotProductInput4x8BitPackedKHR' : 6018,
'DotProduct' : 6019,
'DotProductKHR' : 6019,
+ 'RayCullMaskKHR' : 6020,
'BitInstructions' : 6025,
+ 'GroupNonUniformRotateKHR' : 6026,
'AtomicFloat32AddEXT' : 6033,
'AtomicFloat64AddEXT' : 6034,
'LongConstantCompositeINTEL' : 6089,
'OptNoneINTEL' : 6094,
'AtomicFloat16AddEXT' : 6095,
'DebugInfoModuleINTEL' : 6114,
+ 'SplitBarrierINTEL' : 6141,
+ 'GroupUniformArithmeticKHR' : 6400,
},
'RayFlagsShift' : {
@@ -1482,6 +1517,7 @@ spv = {
'OpSubgroupAllKHR' : 4428,
'OpSubgroupAnyKHR' : 4429,
'OpSubgroupAllEqualKHR' : 4430,
+ 'OpGroupNonUniformRotateKHR' : 4431,
'OpSubgroupReadInvocationKHR' : 4432,
'OpTraceRayKHR' : 4445,
'OpExecuteCallableKHR' : 4446,
@@ -1519,6 +1555,8 @@ spv = {
'OpFragmentFetchAMD' : 5012,
'OpReadClockKHR' : 5056,
'OpImageSampleFootprintNV' : 5283,
+ 'OpEmitMeshTasksEXT' : 5294,
+ 'OpSetMeshOutputsEXT' : 5295,
'OpGroupNonUniformPartitionNV' : 5296,
'OpWritePackedPrimitiveIndices4x8NV' : 5299,
'OpReportIntersectionKHR' : 5334,
@@ -1748,6 +1786,9 @@ spv = {
'OpArbitraryFloatPowRINTEL' : 5881,
'OpArbitraryFloatPowNINTEL' : 5882,
'OpLoopControlINTEL' : 5887,
+ 'OpAliasDomainDeclINTEL' : 5911,
+ 'OpAliasScopeDeclINTEL' : 5912,
+ 'OpAliasScopeListDeclINTEL' : 5913,
'OpFixedSqrtINTEL' : 5923,
'OpFixedRecipINTEL' : 5924,
'OpFixedRsqrtINTEL' : 5925,
@@ -1786,6 +1827,16 @@ spv = {
'OpTypeStructContinuedINTEL' : 6090,
'OpConstantCompositeContinuedINTEL' : 6091,
'OpSpecConstantCompositeContinuedINTEL' : 6092,
+ 'OpControlBarrierArriveINTEL' : 6142,
+ 'OpControlBarrierWaitINTEL' : 6143,
+ 'OpGroupIMulKHR' : 6401,
+ 'OpGroupFMulKHR' : 6402,
+ 'OpGroupBitwiseAndKHR' : 6403,
+ 'OpGroupBitwiseOrKHR' : 6404,
+ 'OpGroupBitwiseXorKHR' : 6405,
+ 'OpGroupLogicalAndKHR' : 6406,
+ 'OpGroupLogicalOrKHR' : 6407,
+ 'OpGroupLogicalXorKHR' : 6408,
},
}
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index a17e63d..0ef3768 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -31,7 +31,7 @@
/+
+ Enumeration tokens for SPIR-V, in various styles:
- + C, C++, C++11, JSON, Lua, Python, C#, D
+ + C, C++, C++11, JSON, Lua, Python, C#, D, Beef
+
+ - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+ - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
@@ -41,6 +41,8 @@
+ - 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
+ + - Beef will use enum classes in the Specification class located in the "Spv" namespace,
+ + e.g.: Spv.Specification.SourceLanguage.GLSL
+
+ Some tokens act like mask values, which can be OR'd together,
+ while others are mutually exclusive. The mask-like ones have
@@ -65,6 +67,7 @@ enum SourceLanguage : uint
OpenCL_CPP = 4,
HLSL = 5,
CPP_for_OpenCL = 6,
+ SYCL = 7,
}
enum ExecutionModel : uint
@@ -90,6 +93,8 @@ enum ExecutionModel : uint
MissNV = 5317,
CallableKHR = 5318,
CallableNV = 5318,
+ TaskEXT = 5364,
+ MeshEXT = 5365,
}
enum AddressingModel : uint
@@ -157,11 +162,21 @@ enum ExecutionMode : uint
SignedZeroInfNanPreserve = 4461,
RoundingModeRTE = 4462,
RoundingModeRTZ = 4463,
+ EarlyAndLateFragmentTestsAMD = 5017,
StencilRefReplacingEXT = 5027,
+ StencilRefUnchangedFrontAMD = 5079,
+ StencilRefGreaterFrontAMD = 5080,
+ StencilRefLessFrontAMD = 5081,
+ StencilRefUnchangedBackAMD = 5082,
+ StencilRefGreaterBackAMD = 5083,
+ StencilRefLessBackAMD = 5084,
+ OutputLinesEXT = 5269,
OutputLinesNV = 5269,
+ OutputPrimitivesEXT = 5270,
OutputPrimitivesNV = 5270,
DerivativeGroupQuadsNV = 5289,
DerivativeGroupLinearNV = 5290,
+ OutputTrianglesEXT = 5298,
OutputTrianglesNV = 5298,
PixelInterlockOrderedEXT = 5366,
PixelInterlockUnorderedEXT = 5367,
@@ -179,6 +194,7 @@ enum ExecutionMode : uint
NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896,
SchedulerTargetFmaxMhzINTEL = 5903,
+ NamedBarrierCountINTEL = 6417,
}
enum StorageClass : uint
@@ -210,6 +226,7 @@ enum StorageClass : uint
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
+ TaskPayloadWorkgroupEXT = 5402,
CodeSectionINTEL = 5605,
DeviceOnlyINTEL = 5936,
HostOnlyINTEL = 5937,
@@ -494,6 +511,7 @@ enum Decoration : uint
PassthroughNV = 5250,
ViewportRelativeNV = 5252,
SecondaryViewportRelativeNV = 5256,
+ PerPrimitiveEXT = 5271,
PerPrimitiveNV = 5271,
PerViewNV = 5272,
PerTaskNV = 5273,
@@ -543,6 +561,8 @@ enum Decoration : uint
PrefetchINTEL = 5902,
StallEnableINTEL = 5905,
FuseLoopsInFunctionINTEL = 5907,
+ AliasScopeINTEL = 5914,
+ NoAliasINTEL = 5915,
BufferLocationINTEL = 5921,
IOPipeStorageINTEL = 5944,
FunctionFloatingPointModeINTEL = 6080,
@@ -641,6 +661,10 @@ enum BuiltIn : uint
FragmentSizeNV = 5292,
FragInvocationCountEXT = 5293,
InvocationsPerPixelNV = 5293,
+ PrimitivePointIndicesEXT = 5294,
+ PrimitiveLineIndicesEXT = 5295,
+ PrimitiveTriangleIndicesEXT = 5296,
+ CullPrimitiveEXT = 5299,
LaunchIdKHR = 5319,
LaunchIdNV = 5319,
LaunchSizeKHR = 5320,
@@ -674,6 +698,7 @@ enum BuiltIn : uint
SMCountNV = 5375,
WarpIDNV = 5376,
SMIDNV = 5377,
+ CullMaskKHR = 6021,
}
enum SelectionControlShift : uint
@@ -805,6 +830,8 @@ enum MemoryAccessShift : uint
MakePointerVisibleKHR = 4,
NonPrivatePointer = 5,
NonPrivatePointerKHR = 5,
+ AliasScopeINTELMask = 16,
+ NoAliasINTELMask = 17,
}
enum MemoryAccessMask : uint
@@ -819,6 +846,8 @@ enum MemoryAccessMask : uint
MakePointerVisibleKHR = 0x00000010,
NonPrivatePointer = 0x00000020,
NonPrivatePointerKHR = 0x00000020,
+ AliasScopeINTELMask = 0x00010000,
+ NoAliasINTELMask = 0x00020000,
}
enum Scope : uint
@@ -982,6 +1011,7 @@ enum Capability : uint
FragmentFullyCoveredEXT = 5265,
MeshShadingNV = 5266,
ImageFootprintNV = 5282,
+ MeshShadingEXT = 5283,
FragmentBarycentricKHR = 5284,
FragmentBarycentricNV = 5284,
ComputeDerivativeGroupQuadsNV = 5288,
@@ -1062,6 +1092,7 @@ enum Capability : uint
FPGAMemoryAccessesINTEL = 5898,
FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906,
+ MemoryAccessAliasingINTEL = 5910,
FPGABufferLocationINTEL = 5920,
ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935,
@@ -1076,13 +1107,17 @@ enum Capability : uint
DotProductInput4x8BitPackedKHR = 6018,
DotProduct = 6019,
DotProductKHR = 6019,
+ RayCullMaskKHR = 6020,
BitInstructions = 6025,
+ GroupNonUniformRotateKHR = 6026,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089,
OptNoneINTEL = 6094,
AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114,
+ SplitBarrierINTEL = 6141,
+ GroupUniformArithmeticKHR = 6400,
}
enum RayFlagsShift : uint
@@ -1540,6 +1575,7 @@ enum Op : uint
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
+ OpGroupNonUniformRotateKHR = 4431,
OpSubgroupReadInvocationKHR = 4432,
OpTraceRayKHR = 4445,
OpExecuteCallableKHR = 4446,
@@ -1577,6 +1613,8 @@ enum Op : uint
OpFragmentFetchAMD = 5012,
OpReadClockKHR = 5056,
OpImageSampleFootprintNV = 5283,
+ OpEmitMeshTasksEXT = 5294,
+ OpSetMeshOutputsEXT = 5295,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
OpReportIntersectionKHR = 5334,
@@ -1806,6 +1844,9 @@ enum Op : uint
OpArbitraryFloatPowRINTEL = 5881,
OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
+ OpAliasDomainDeclINTEL = 5911,
+ OpAliasScopeDeclINTEL = 5912,
+ OpAliasScopeListDeclINTEL = 5913,
OpFixedSqrtINTEL = 5923,
OpFixedRecipINTEL = 5924,
OpFixedRsqrtINTEL = 5925,
@@ -1844,6 +1885,16 @@ enum Op : uint
OpTypeStructContinuedINTEL = 6090,
OpConstantCompositeContinuedINTEL = 6091,
OpSpecConstantCompositeContinuedINTEL = 6092,
+ OpControlBarrierArriveINTEL = 6142,
+ OpControlBarrierWaitINTEL = 6143,
+ OpGroupIMulKHR = 6401,
+ OpGroupFMulKHR = 6402,
+ OpGroupBitwiseAndKHR = 6403,
+ OpGroupBitwiseOrKHR = 6404,
+ OpGroupBitwiseXorKHR = 6405,
+ OpGroupLogicalAndKHR = 6406,
+ OpGroupLogicalOrKHR = 6407,
+ OpGroupLogicalXorKHR = 6408,
}
diff --git a/tools/buildHeaders/header.cpp b/tools/buildHeaders/header.cpp
index febc6f2..f9e06fb 100644
--- a/tools/buildHeaders/header.cpp
+++ b/tools/buildHeaders/header.cpp
@@ -199,7 +199,7 @@ namespace {
const std::string TPrinter::DocComment2 =
"Enumeration tokens for SPIR-V, in various styles:\n"
- " C, C++, C++11, JSON, Lua, Python, C#, D\n"
+ " C, C++, C++11, JSON, Lua, Python, C#, D, Beef\n"
"\n"
"- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL\n"
"- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL\n"
@@ -209,6 +209,8 @@ namespace {
"- C# will use enum classes in the Specification class located in the \"Spv\" namespace,\n"
" e.g.: Spv.Specification.SourceLanguage.GLSL\n"
"- D will have tokens under the \"spv\" module, e.g: spv.SourceLanguage.GLSL\n"
+ "- Beef will use enum classes in the Specification class located in the \"Spv\" namespace,\n"
+ " e.g.: Spv.Specification.SourceLanguage.GLSL\n"
"\n"
"Some tokens act like mask values, which can be OR'd together,\n"
"while others are mutually exclusive. The mask-like ones have\n"
@@ -513,6 +515,9 @@ namespace {
}
out << "#ifdef SPV_ENABLE_UTILITY_CODE" << std::endl;
+ out << "#ifndef __cplusplus" << std::endl;
+ out << "#include <stdbool.h>" << std::endl;
+ out << "#endif" << std::endl;
out << "inline void " << pre() << "HasResultAndType(" << pre() << opName << " opcode, bool *hasResult, bool *hasResultType) {" << std::endl;
out << " *hasResult = *hasResultType = false;" << std::endl;
out << " switch (opcode) {" << std::endl;
@@ -776,6 +781,43 @@ namespace {
}
};
+ // Beef printer
+ class TPrinterBeef final : public TPrinter {
+ private:
+ std::string commentBOL() const override { return "// "; }
+
+ void printPrologue(std::ostream& out) const override {
+ out << "namespace Spv\n{\n";
+ out << indent() << "using System;\n\n";
+ out << indent() << "public static class Specification\n";
+ out << indent() << "{\n";
+ }
+
+ void printEpilogue(std::ostream& out) const override {
+ out << indent() << "}\n";
+ out << "}\n";
+ }
+
+ std::string enumBeg(const std::string& s, enumStyle_t style) const override {
+ return indent(2) + "[AllowDuplicates, CRepr] public enum " + s + styleStr(style) + "\n" + indent(2) + "{\n";
+ }
+
+ std::string enumEnd(const std::string& s, enumStyle_t style, bool isLast) const override {
+ return indent(2) + "}" + +(isLast ? "\n" : "\n\n");
+ }
+
+ std::string enumFmt(const std::string& s, const valpair_t& v,
+ enumStyle_t style, bool isLast) const override {
+ return indent(3) + prependIfDigit(s, v.second) + " = " + fmtStyleVal(v.first, style) + ",\n";
+ }
+
+ std::string fmtConstInt(unsigned val, const std::string& name,
+ const char* fmt, bool isLast) const override {
+ return indent(2) + std::string("public const uint32 ") + name +
+ " = " + fmtNum(fmt, val) + (isLast ? ";\n\n" : ";\n");
+ }
+ };
+
} // namespace
namespace spv {
@@ -792,6 +834,7 @@ namespace spv {
langInfo.push_back(std::make_pair(ELangPython, "spirv.py"));
langInfo.push_back(std::make_pair(ELangCSharp, "spirv.cs"));
langInfo.push_back(std::make_pair(ELangD, "spv.d"));
+ langInfo.push_back(std::make_pair(ELangBeef, "spirv.bf"));
for (const auto& lang : langInfo) {
std::ofstream out(lang.second, std::ios::out);
@@ -819,6 +862,7 @@ namespace spv {
case ELangPython: p = TPrinterPtr(new TPrinterPython); break;
case ELangCSharp: p = TPrinterPtr(new TPrinterCSharp); break;
case ELangD: p = TPrinterPtr(new TPrinterD); break;
+ case ELangBeef: p = TPrinterPtr(new TPrinterBeef); break;
case ELangAll: PrintAllHeaders(); break;
default:
std::cerr << "Unknown language." << std::endl;
diff --git a/tools/buildHeaders/header.h b/tools/buildHeaders/header.h
index 9c34b21..1dd6e67 100644
--- a/tools/buildHeaders/header.h
+++ b/tools/buildHeaders/header.h
@@ -43,6 +43,7 @@ namespace spv {
ELangPython, // Python
ELangCSharp, // CSharp
ELangD, // D
+ ELangBeef, // Beef
ELangAll, // print headers in all languages to files
};
diff --git a/tools/buildHeaders/main.cpp b/tools/buildHeaders/main.cpp
index 7e5f7f8..9a59714 100644
--- a/tools/buildHeaders/main.cpp
+++ b/tools/buildHeaders/main.cpp
@@ -52,6 +52,7 @@ void Usage()
" Python - Python module (also accepts Py)\n"
" C# - C# module (also accepts CSharp)\n"
" D - D module\n"
+ " Beef - Beef module\n"
" -H print header in all supported languages to files in current directory\n"
);
}
@@ -96,6 +97,8 @@ bool ProcessArguments(int argc, char* argv[])
Language = spv::ELangCSharp;
} else if (language == "d") {
Language = spv::ELangD;
+ } else if (language == "beef") {
+ Language = spv::ELangBeef;
} else
return false;