aboutsummaryrefslogtreecommitdiff
path: root/externals/sirit
diff options
context:
space:
mode:
authorDawid Potocki <dawid@dawidpotocki.com>2024-03-05 14:09:27 +1300
committerDawid Potocki <dawid@dawidpotocki.com>2024-03-05 20:34:15 +1300
commit063e15900bda8453fb0fc6751e78d064501ccbae (patch)
treea4cd5f01dbca33a262333aff10e1e035217a30c8 /externals/sirit
parent537296095ab24eddcb196b5ef98004f91de9c8c2 (diff)
Replace broken submodules with vendored source codeHEADpatched
Diffstat (limited to 'externals/sirit')
m---------externals/sirit0
-rw-r--r--externals/sirit/.clang-format88
-rw-r--r--externals/sirit/.gitignore2
-rw-r--r--externals/sirit/.gitmodules3
-rw-r--r--externals/sirit/CMakeLists.txt99
-rw-r--r--externals/sirit/LICENSE.txt24
-rw-r--r--externals/sirit/README.md53
-rw-r--r--externals/sirit/externals/SPIRV-Headers/.gitattributes7
-rw-r--r--externals/sirit/externals/SPIRV-Headers/.github/workflows/presubmit.yml37
-rw-r--r--externals/sirit/externals/SPIRV-Headers/.gitignore3
-rw-r--r--externals/sirit/externals/SPIRV-Headers/BUILD.bazel171
-rw-r--r--externals/sirit/externals/SPIRV-Headers/BUILD.gn44
-rw-r--r--externals/sirit/externals/SPIRV-Headers/CMakeLists.txt137
-rw-r--r--externals/sirit/externals/SPIRV-Headers/CODE_OF_CONDUCT.md1
-rw-r--r--externals/sirit/externals/SPIRV-Headers/LICENSE25
-rw-r--r--externals/sirit/externals/SPIRV-Headers/README.md226
-rw-r--r--externals/sirit/externals/SPIRV-Headers/SPIRV-Headers.pc.in9
-rw-r--r--externals/sirit/externals/SPIRV-Headers/WORKSPACE0
-rw-r--r--externals/sirit/externals/SPIRV-Headers/cmake/Config.cmake.in4
-rw-r--r--externals/sirit/externals/SPIRV-Headers/example/CMakeLists.txt4
-rw-r--r--externals/sirit/externals/SPIRV-Headers/example/example.cpp37
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/GLSL.std.450.h131
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/OpenCL.std.h210
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/extinst.glsl.std.450.grammar.json642
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/extinst.opencl.std.100.grammar.json1279
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.core.grammar.json5775
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.cs993
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.h993
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.hpp1002
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.hpp111002
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.json1020
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.lua949
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.py949
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/GLSL.std.450.h131
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/OpenCL.std.h210
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/extinst.glsl.std.450.grammar.json642
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/extinst.opencl.std.100.grammar.json1279
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.core.grammar.json5938
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.cs1015
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.h1015
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.hpp1024
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.hpp111024
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.json1040
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.lua971
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.py971
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/GLSL.std.450.h131
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/OpenCL.std.h210
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/extinst.glsl.std.450.grammar.json642
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/extinst.opencl.std.100.grammar.json1279
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.core.grammar.json5986
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.cs1021
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.h1021
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.hpp1030
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.hpp111030
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.json1046
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.lua977
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.py977
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/spir-v.xml282
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_gcn_shader.h52
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_shader_ballot.h53
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_shader_explicit_vertex_parameter.h50
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_shader_trinary_minmax.h58
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/DebugInfo.h144
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/GLSL.std.450.h131
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/NonSemanticClspvReflection.h84
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/NonSemanticDebugPrintf.h50
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/NonSemanticShaderDebugInfo100.h171
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/OpenCL.std.h401
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/OpenCLDebugInfo100.h158
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.debuginfo.grammar.json572
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.glsl.std.450.grammar.json642
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json352
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json13
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json713
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json651
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.opencl.std.100.grammar.json1279
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json26
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json41
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json14
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-shader-trinary-minmax.grammar.json95
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.bf1956
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.core.grammar.json14968
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.cs1955
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.h2658
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.hpp2669
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.hpp112669
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.json1941
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.lua1900
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.py1900
-rw-r--r--externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spv.d1957
-rw-r--r--externals/sirit/include/sirit/sirit.h1330
-rw-r--r--externals/sirit/src/.gitignore1
-rw-r--r--externals/sirit/src/CMakeLists.txt32
-rw-r--r--externals/sirit/src/common_types.h31
-rw-r--r--externals/sirit/src/instructions/annotation.cpp27
-rw-r--r--externals/sirit/src/instructions/arithmetic.cpp44
-rw-r--r--externals/sirit/src/instructions/atomic.cpp104
-rw-r--r--externals/sirit/src/instructions/barrier.cpp23
-rw-r--r--externals/sirit/src/instructions/bit.cpp76
-rw-r--r--externals/sirit/src/instructions/constant.cpp48
-rw-r--r--externals/sirit/src/instructions/conversion.cpp29
-rw-r--r--externals/sirit/src/instructions/debug.cpp36
-rw-r--r--externals/sirit/src/instructions/derivatives.cpp29
-rw-r--r--externals/sirit/src/instructions/extension.cpp76
-rw-r--r--externals/sirit/src/instructions/flow.cpp109
-rw-r--r--externals/sirit/src/instructions/function.cpp34
-rw-r--r--externals/sirit/src/instructions/group.cpp88
-rw-r--r--externals/sirit/src/instructions/image.cpp169
-rw-r--r--externals/sirit/src/instructions/logical.cpp65
-rw-r--r--externals/sirit/src/instructions/memory.cpp68
-rw-r--r--externals/sirit/src/instructions/misc.cpp38
-rw-r--r--externals/sirit/src/instructions/type.cpp130
-rw-r--r--externals/sirit/src/sirit.cpp142
-rw-r--r--externals/sirit/src/stream.cpp0
-rw-r--r--externals/sirit/src/stream.h266
-rw-r--r--externals/sirit/tests/CMakeLists.txt6
-rw-r--r--externals/sirit/tests/main.cpp139
117 files changed, 90274 insertions, 0 deletions
diff --git a/externals/sirit b/externals/sirit
deleted file mode 160000
-Subproject ab75463999f4f3291976b079d42d52ee91eebf3
diff --git a/externals/sirit/.clang-format b/externals/sirit/.clang-format
new file mode 100644
index 0000000000..1c6b71b2e3
--- /dev/null
+++ b/externals/sirit/.clang-format
@@ -0,0 +1,88 @@
+---
+Language: Cpp
+# BasedOnStyle: LLVM
+AccessModifierOffset: -4
+AlignAfterOpenBracket: Align
+AlignConsecutiveAssignments: false
+AlignConsecutiveDeclarations: false
+AlignEscapedNewlinesLeft: false
+AlignOperands: true
+AlignTrailingComments: true
+AllowAllParametersOfDeclarationOnNextLine: true
+AllowShortBlocksOnASingleLine: false
+AllowShortCaseLabelsOnASingleLine: false
+AllowShortFunctionsOnASingleLine: Empty
+AllowShortIfStatementsOnASingleLine: false
+AllowShortLoopsOnASingleLine: false
+AlwaysBreakAfterDefinitionReturnType: None
+AlwaysBreakAfterReturnType: None
+AlwaysBreakBeforeMultilineStrings: false
+AlwaysBreakTemplateDeclarations: true
+BinPackArguments: true
+BinPackParameters: true
+BraceWrapping:
+ AfterClass: false
+ AfterControlStatement: false
+ AfterEnum: false
+ AfterFunction: false
+ AfterNamespace: false
+ AfterObjCDeclaration: false
+ AfterStruct: false
+ AfterUnion: false
+ BeforeCatch: false
+ BeforeElse: false
+ IndentBraces: false
+BreakBeforeBinaryOperators: None
+BreakBeforeBraces: Attach
+BreakBeforeTernaryOperators: true
+BreakConstructorInitializersBeforeComma: false
+ColumnLimit: 100
+CommentPragmas: '^ IWYU pragma:'
+ConstructorInitializerAllOnOneLineOrOnePerLine: false
+ConstructorInitializerIndentWidth: 4
+ContinuationIndentWidth: 4
+Cpp11BracedListStyle: true
+DerivePointerAlignment: false
+DisableFormat: false
+ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
+IncludeCategories:
+ - Regex: '^\<[^Q][^/.>]*\>'
+ Priority: -2
+ - Regex: '^\<'
+ Priority: -1
+ - Regex: '^\"'
+ Priority: 0
+IndentCaseLabels: false
+IndentWidth: 4
+IndentWrappedFunctionNames: false
+KeepEmptyLinesAtTheStartOfBlocks: true
+MacroBlockBegin: ''
+MacroBlockEnd: ''
+MaxEmptyLinesToKeep: 1
+NamespaceIndentation: None
+ObjCBlockIndentWidth: 2
+ObjCSpaceAfterProperty: false
+ObjCSpaceBeforeProtocolList: true
+PenaltyBreakBeforeFirstCallParameter: 19
+PenaltyBreakComment: 300
+PenaltyBreakFirstLessLess: 120
+PenaltyBreakString: 1000
+PenaltyExcessCharacter: 1000000
+PenaltyReturnTypeOnItsOwnLine: 150
+PointerAlignment: Left
+ReflowComments: true
+SortIncludes: true
+SpaceAfterCStyleCast: false
+SpaceBeforeAssignmentOperators: true
+SpaceBeforeParens: ControlStatements
+SpaceInEmptyParentheses: false
+SpacesBeforeTrailingComments: 1
+SpacesInAngles: false
+SpacesInContainerLiterals: true
+SpacesInCStyleCastParentheses: false
+SpacesInParentheses: false
+SpacesInSquareBrackets: false
+Standard: Cpp11
+TabWidth: 4
+UseTab: Never
+...
diff --git a/externals/sirit/.gitignore b/externals/sirit/.gitignore
new file mode 100644
index 0000000000..7353e7e145
--- /dev/null
+++ b/externals/sirit/.gitignore
@@ -0,0 +1,2 @@
+build
+*.o
diff --git a/externals/sirit/.gitmodules b/externals/sirit/.gitmodules
new file mode 100644
index 0000000000..e925e6a3b8
--- /dev/null
+++ b/externals/sirit/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "externals/SPIRV-Headers"]
+ path = externals/SPIRV-Headers
+ url = https://github.com/KhronosGroup/SPIRV-Headers
diff --git a/externals/sirit/CMakeLists.txt b/externals/sirit/CMakeLists.txt
new file mode 100644
index 0000000000..ca7e3b6cd2
--- /dev/null
+++ b/externals/sirit/CMakeLists.txt
@@ -0,0 +1,99 @@
+# This file has been adapted from dynarmic
+
+cmake_minimum_required(VERSION 3.8)
+project(sirit CXX)
+
+# Determine if we're built as a subproject (using add_subdirectory)
+# or if this is the master project.
+set(MASTER_PROJECT OFF)
+if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
+ set(MASTER_PROJECT ON)
+endif()
+
+# Sirit project options
+option(SIRIT_TESTS "Build tests" OFF)
+option(SIRIT_USE_SYSTEM_SPIRV_HEADERS "Use system SPIR-V headers" OFF)
+
+# Default to a Release build
+if (NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
+ message(STATUS "Defaulting to a Release build")
+endif()
+
+# Set hard requirements for C++
+set(CMAKE_CXX_STANDARD 20)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_EXTENSIONS OFF)
+
+# Warn on CMake API deprecations
+set(CMAKE_WARN_DEPRECATED ON)
+
+# Disable in-source builds
+set(CMAKE_DISABLE_SOURCE_CHANGES ON)
+set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
+if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+ message(SEND_ERROR "In-source builds are not allowed.")
+endif()
+
+# Add the module directory to the list of paths
+list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMakeModules")
+
+# Compiler flags
+if (MSVC)
+ set(SIRIT_CXX_FLAGS
+ /std:c++latest # CMAKE_CXX_STANDARD as no effect on MSVC until CMake 3.10.
+ /W4
+ /w34263 # Non-virtual member function hides base class virtual function
+ /w44265 # Class has virtual functions, but destructor is not virtual
+ /w34456 # Declaration of 'var' hides previous local declaration
+ /w34457 # Declaration of 'var' hides function parameter
+ /w34458 # Declaration of 'var' hides class member
+ /w34459 # Declaration of 'var' hides global definition
+ /w34946 # Reinterpret-cast between related types
+ /wd4592 # Symbol will be dynamically initialized (implementation limitation)
+ /permissive- # Stricter C++ standards conformance
+ /MP
+ /Zi
+ /Zo
+ /EHsc
+ /Zc:throwingNew # Assumes new never returns null
+ /Zc:inline # Omits inline functions from object-file output
+ /DNOMINMAX
+ /WX)
+
+ if (CMAKE_VS_PLATFORM_TOOLSET MATCHES "LLVM-vs[0-9]+")
+ list(APPEND SIRIT_CXX_FLAGS
+ -Qunused-arguments
+ -Wno-missing-braces)
+ endif()
+else()
+ set(SIRIT_CXX_FLAGS
+ -Wall
+ -Wextra
+ -Wcast-qual
+ -pedantic
+ -pedantic-errors
+ -Wfatal-errors
+ -Wno-missing-braces
+ -Wconversion
+ -Wsign-conversion
+ -Wshadow
+ -Werror)
+endif()
+
+# Enable unit-testing.
+enable_testing(true)
+
+# SPIR-V headers
+if (SIRIT_USE_SYSTEM_SPIRV_HEADERS)
+ find_package(SPIRV-Headers REQUIRED)
+else()
+ add_subdirectory(externals/SPIRV-Headers EXCLUDE_FROM_ALL)
+ add_library(SPIRV-Headers::SPIRV-Headers ALIAS SPIRV-Headers)
+endif()
+
+# Sirit project files
+add_subdirectory(src)
+if (SIRIT_TESTS)
+ add_subdirectory(tests)
+endif()
diff --git a/externals/sirit/LICENSE.txt b/externals/sirit/LICENSE.txt
new file mode 100644
index 0000000000..eff331d9e9
--- /dev/null
+++ b/externals/sirit/LICENSE.txt
@@ -0,0 +1,24 @@
+Copyright (c) 2019, sirit
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the <organization> nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/externals/sirit/README.md b/externals/sirit/README.md
new file mode 100644
index 0000000000..72109bb9ac
--- /dev/null
+++ b/externals/sirit/README.md
@@ -0,0 +1,53 @@
+Sirit
+=====
+A runtime SPIR-V assembler. It aims to ease dynamic SPIR-V code generation
+without calling external applications (like Khronos' `spirv-as`)
+
+Its design aims to move code that does not belong in the application to the
+library, without limiting its functionality.
+
+What Sirit does for you:
+* Sort declaration opcodes
+* Handle types and constant duplicates
+* Emit SPIR-V opcodes
+
+What Sirit won't do for you:
+* Avoid ID duplicates (e.g. emitting the same label twice)
+* Dump code to disk
+* Handle control flow
+* Compile from a higher level language
+
+
+It's in early stages of development, many instructions are missing since
+they are written manually instead of being generated from a file.
+
+Example
+-------
+
+```cpp
+class MyModule : public Sirit::Module {
+public:
+ MyModule() {}
+ ~MyModule() = default;
+
+ void Generate() {
+ AddCapability(spv::Capability::Shader);
+ SetMemoryModel(spv::AddressingModel::Logical, spv::MemoryModel::GLSL450);
+
+ auto main_type{TypeFunction(TypeVoid())};
+ auto main_func{OpFunction(TypeVoid(), spv::FunctionControlMask::MaskNone, main_type)};
+ AddLabel(OpLabel());
+ OpReturn();
+ OpFunctionEnd();
+
+ AddEntryPoint(spv::ExecutionModel::Vertex, main_func, "main");
+ }
+};
+
+// Then...
+
+MyModule module;
+module.Generate();
+
+std::vector<std::uint32_t> code{module.Assemble()};
+```
diff --git a/externals/sirit/externals/SPIRV-Headers/.gitattributes b/externals/sirit/externals/SPIRV-Headers/.gitattributes
new file mode 100644
index 0000000000..3fa5aaf165
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/.gitattributes
@@ -0,0 +1,7 @@
+*.json text
+*.h text
+*.hpp text
+*.hpp11 text
+*.lua text
+*.py text
+*.xml
diff --git a/externals/sirit/externals/SPIRV-Headers/.github/workflows/presubmit.yml b/externals/sirit/externals/SPIRV-Headers/.github/workflows/presubmit.yml
new file mode 100644
index 0000000000..d9c25faef5
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/.github/workflows/presubmit.yml
@@ -0,0 +1,37 @@
+name: Presubmit
+on: [push, pull_request]
+
+jobs:
+ build:
+ name: Build ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, macos-latest, windows-latest]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install Ubuntu packages
+ if: matrix.os == 'ubuntu-latest'
+ run: sudo apt install -y dos2unix
+ - name: Install macOS packages
+ if: matrix.os == 'macos-latest'
+ run: brew install dos2unix
+ - name: Build
+ run: |
+ mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=install ..
+ cmake --build . --target install
+ - name: Build spec tools
+ run: |
+ cd tools/buildHeaders
+ mkdir build
+ cd build
+ cmake ..
+ cmake --build . --target install
+ - name: Build headers
+ run: |
+ cd tools/buildHeaders
+ ./bin/makeHeaders
+ - name: Check generated headers
+ run: git diff --exit-code
diff --git a/externals/sirit/externals/SPIRV-Headers/.gitignore b/externals/sirit/externals/SPIRV-Headers/.gitignore
new file mode 100644
index 0000000000..f33592c908
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/.gitignore
@@ -0,0 +1,3 @@
+build
+out
+.DS_Store
diff --git a/externals/sirit/externals/SPIRV-Headers/BUILD.bazel b/externals/sirit/externals/SPIRV-Headers/BUILD.bazel
new file mode 100644
index 0000000000..c898ade80a
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/BUILD.bazel
@@ -0,0 +1,171 @@
+package(
+ default_visibility = ["//visibility:public"],
+)
+
+licenses(["notice"])
+
+exports_files(["LICENSE"])
+
+filegroup(
+ name = "spirv_core_grammar_1.0",
+ srcs = ["include/spirv/1.0/spirv.core.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_glsl_grammar_1.0",
+ srcs = ["include/spirv/1.0/extinst.glsl.std.450.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_opencl_grammar_1.0",
+ srcs = ["include/spirv/1.0/extinst.opencl.std.100.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_core_grammar_1.1",
+ srcs = ["include/spirv/1.1/spirv.core.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_glsl_grammar_1.1",
+ srcs = ["include/spirv/1.1/extinst.glsl.std.450.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_opencl_grammar_1.1",
+ srcs = ["include/spirv/1.1/extinst.opencl.std.100.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_core_grammar_1.2",
+ srcs = ["include/spirv/1.2/spirv.core.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_glsl_grammar_1.2",
+ srcs = ["include/spirv/1.2/extinst.glsl.std.450.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_opencl_grammar_1.2",
+ srcs = ["include/spirv/1.2/extinst.opencl.std.100.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_core_grammar_unified1",
+ srcs = ["include/spirv/unified1/spirv.core.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_glsl_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.glsl.std.450.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_opencl_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.opencl.std.100.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_xml_registry",
+ srcs = ["include/spirv/spir-v.xml"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_debuginfo_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.debuginfo.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_nonsemantic_clspvreflection_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_nonsemantic_debugprintf_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_opencl_debuginfo_100_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_nonsemantic_shader_debuginfo_100_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_spv_amd_gcn_shader_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_spv_amd_shader_ballot_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_spv_amd_shader_explicit_vertex_parameter_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_spv_amd_shader_trinary_minmax_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.spv-amd-shader-trinary-minmax.grammar.json"],
+)
+
+cc_library(
+ name = "spirv_common_headers",
+ hdrs = [
+ "include/spirv/1.0/GLSL.std.450.h",
+ "include/spirv/1.0/OpenCL.std.h",
+ "include/spirv/1.1/GLSL.std.450.h",
+ "include/spirv/1.1/OpenCL.std.h",
+ "include/spirv/1.2/GLSL.std.450.h",
+ "include/spirv/1.2/OpenCL.std.h",
+ "include/spirv/unified1/GLSL.std.450.h",
+ "include/spirv/unified1/NonSemanticClspvReflection.h",
+ "include/spirv/unified1/NonSemanticDebugPrintf.h",
+ "include/spirv/unified1/OpenCL.std.h",
+ ],
+ includes = ["include"],
+)
+
+cc_library(
+ name = "spirv_c_headers",
+ hdrs = [
+ "include/spirv/1.0/spirv.h",
+ "include/spirv/1.1/spirv.h",
+ "include/spirv/1.2/spirv.h",
+ "include/spirv/unified1/spirv.h",
+ ],
+ includes = ["include"],
+ deps = [":spirv_common_headers"],
+)
+
+cc_library(
+ name = "spirv_cpp_headers",
+ hdrs = [
+ "include/spirv/1.0/spirv.hpp",
+ "include/spirv/1.1/spirv.hpp",
+ "include/spirv/1.2/spirv.hpp",
+ "include/spirv/unified1/spirv.hpp",
+ ],
+ includes = ["include"],
+ deps = [":spirv_common_headers"],
+)
+
+cc_library(
+ name = "spirv_cpp11_headers",
+ hdrs = [
+ "include/spirv/1.0/spirv.hpp11",
+ "include/spirv/1.1/spirv.hpp11",
+ "include/spirv/1.2/spirv.hpp11",
+ "include/spirv/unified1/spirv.hpp11",
+ ],
+ includes = ["include"],
+ deps = [":spirv_common_headers"],
+)
+
diff --git a/externals/sirit/externals/SPIRV-Headers/BUILD.gn b/externals/sirit/externals/SPIRV-Headers/BUILD.gn
new file mode 100644
index 0000000000..be3f43b3f1
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/BUILD.gn
@@ -0,0 +1,44 @@
+# Copyright (c) 2020 Google LLC
+#
+# 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.
+
+config("spv_headers_public_config") {
+ include_dirs = [ "include" ]
+}
+
+source_set("spv_headers") {
+ sources = [
+ "include/spirv/1.2/GLSL.std.450.h",
+ "include/spirv/1.2/OpenCL.std.h",
+ "include/spirv/1.2/spirv.h",
+ "include/spirv/1.2/spirv.hpp",
+ "include/spirv/unified1/GLSL.std.450.h",
+ "include/spirv/unified1/NonSemanticClspvReflection.h",
+ "include/spirv/unified1/NonSemanticDebugPrintf.h",
+ "include/spirv/unified1/OpenCL.std.h",
+ "include/spirv/unified1/spirv.h",
+ "include/spirv/unified1/spirv.hpp",
+ ]
+
+ public_configs = [ ":spv_headers_public_config" ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/CMakeLists.txt b/externals/sirit/externals/SPIRV-Headers/CMakeLists.txt
new file mode 100644
index 0000000000..9cfba73af2
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/CMakeLists.txt
@@ -0,0 +1,137 @@
+# Copyright (c) 2015-2016 The Khronos Group Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and/or associated documentation files (the
+# "Materials"), to deal in the Materials without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Materials, and to
+# permit persons to whom the Materials are furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Materials.
+#
+# MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
+# KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
+# SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
+# https://www.khronos.org/registry/
+#
+# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+#
+# The SPIR-V headers from the SPIR-V Registry
+# https://www.khronos.org/registry/spir-v/
+#
+cmake_minimum_required(VERSION 3.0)
+project(SPIRV-Headers VERSION 1.5.5)
+
+# There are two ways to use this project.
+#
+# Using this source tree directly from a CMake-based project:
+# 1. Add an add_subdirectory directive to include this sub directory.
+# 2. Use ${SPIRV-Headers_SOURCE_DIR}/include} in a target_include_directories
+# command.
+#
+# Installing the headers first, then using them with an implicit include
+# directory. To install the headers:
+# 1. mkdir build ; cd build
+# 2. cmake ..
+# 3. cmake --build . --target install
+
+option(SPIRV_HEADERS_SKIP_EXAMPLES "Skip building examples"
+ ${SPIRV_HEADERS_SKIP_EXAMPLES})
+
+option(SPIRV_HEADERS_SKIP_INSTALL "Skip install"
+ ${SPIRV_HEADERS_SKIP_INSTALL})
+
+if(NOT ${SPIRV_HEADERS_SKIP_EXAMPLES})
+ set(SPIRV_HEADERS_ENABLE_EXAMPLES ON)
+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)
+ message(STATUS "Building SPIRV-Header examples")
+ add_subdirectory(example)
+endif()
+
+include(GNUInstallDirs)
+add_library(${PROJECT_NAME} INTERFACE)
+target_include_directories(${PROJECT_NAME} INTERFACE
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+)
+
+# Installation
+
+if (SPIRV_HEADERS_ENABLE_INSTALL)
+ message(STATUS "Installing SPIRV-Header")
+
+ set(config_install_dir "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}")
+
+ set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
+
+ set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
+ set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
+ set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
+ 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(
+ "cmake/Config.cmake.in"
+ "${project_config}"
+ INSTALL_DESTINATION "${config_install_dir}"
+ )
+
+ install(
+ TARGETS ${PROJECT_NAME}
+ EXPORT "${TARGETS_EXPORT_NAME}"
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ )
+
+ install(
+ DIRECTORY include/spirv
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ )
+
+ install(
+ FILES "${project_config}" "${version_config}"
+ DESTINATION "${config_install_dir}"
+ )
+
+ install(
+ EXPORT "${TARGETS_EXPORT_NAME}"
+ NAMESPACE "${namespace}"
+ DESTINATION "${config_install_dir}"
+ )
+
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Headers.pc.in ${CMAKE_BINARY_DIR}/SPIRV-Headers.pc @ONLY)
+ install(
+ FILES "${CMAKE_BINARY_DIR}/SPIRV-Headers.pc"
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig
+ )
+endif()
diff --git a/externals/sirit/externals/SPIRV-Headers/CODE_OF_CONDUCT.md b/externals/sirit/externals/SPIRV-Headers/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000000..a11610bd30
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/CODE_OF_CONDUCT.md
@@ -0,0 +1 @@
+A reminder that this issue tracker is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil.
diff --git a/externals/sirit/externals/SPIRV-Headers/LICENSE b/externals/sirit/externals/SPIRV-Headers/LICENSE
new file mode 100644
index 0000000000..47974f8ce3
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/LICENSE
@@ -0,0 +1,25 @@
+Copyright (c) 2015-2018 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.
diff --git a/externals/sirit/externals/SPIRV-Headers/README.md b/externals/sirit/externals/SPIRV-Headers/README.md
new file mode 100644
index 0000000000..8c7039f7d1
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/README.md
@@ -0,0 +1,226 @@
+# SPIR-V Headers
+
+This repository contains machine-readable files for the
+[SPIR-V Registry](https://www.khronos.org/registry/spir-v/).
+This includes:
+
+* Header files for various languages.
+* JSON files describing the grammar for the SPIR-V core instruction set
+ and the extended instruction sets.
+* The XML registry file.
+* A tool to build the headers from the JSON grammar.
+
+Headers are provided in the [include](include) directory, with up-to-date
+headers in the `unified1` subdirectory. Older headers are provided according to
+their version.
+
+In contrast, the XML registry file has a linear history, so it is
+not tied to SPIR-V specification versions.
+
+## How is this repository updated?
+
+When a new version or revision of the SPIR-V specification is published,
+the SPIR-V Working Group will push new commits onto master, updating
+the files under [include](include).
+
+[The SPIR-V XML registry file](include/spirv/spir-v.xml)
+is updated by Khronos whenever a new enum range is allocated.
+
+Pull requests can be made to
+- request allocation of new enum ranges in the XML registry file
+- register a new magic number for a SPIR-V generator
+- reserve specific tokens in the JSON grammar
+
+### Registering a SPIR-V Generator Magic Number
+
+Tools that generate SPIR-V should use a magic number in the SPIR-V to help identify the
+generator.
+
+Care should be taken to follow existing precedent in populating the details of reserved tokens.
+This includes:
+- keeping generator numbers in numeric order
+- filling out all the existing fields
+
+### Reserving tokens in the JSON grammar
+
+Care should be taken to follow existing precedent in populating the details of reserved tokens.
+This includes:
+- pointing to what extension has more information, when possible
+- keeping enumerants in numeric order
+- when there are aliases, listing the preferred spelling first
+- adding the statement `"version" : "None"`
+
+## How to install the headers
+
+```
+mkdir build
+cd build
+cmake ..
+cmake --build . --target install
+```
+
+Then, for example, you will have `/usr/local/include/spirv/unified1/spirv.h`
+
+If you want to install them somewhere else, then use
+`-DCMAKE_INSTALL_PREFIX=/other/path` on the first `cmake` command.
+
+## Using the headers without installing
+
+### Using CMake
+A CMake-based project can use the headers without installing, as follows:
+
+1. Add an `add_subdirectory` directive to include this source tree.
+2. Use `${SPIRV-Headers_SOURCE_DIR}/include}` in a `target_include_directories`
+ directive.
+3. In your C or C++ source code use `#include` directives that explicitly mention
+ the `spirv` path component.
+```
+#include "spirv/unified1/GLSL.std.450.h"
+#include "spirv/unified1/OpenCL.std.h"
+#include "spirv/unified1/spirv.hpp"
+```
+
+See also the [example](example/) subdirectory. But since that example is
+*inside* this repostory, it doesn't use and `add_subdirectory` directive.
+
+### Using Bazel
+A Bazel-based project can use the headers without installing, as follows:
+
+1. Add SPIRV-Headers as a submodule of your project, and add a
+`local_repository` to your `WORKSPACE` file. For example, if you place
+SPIRV-Headers under `external/spirv-headers`, then add the following to your
+`WORKSPACE` file:
+
+```
+local_repository(
+ name = "spirv_headers",
+ path = "external/spirv-headers",
+)
+```
+
+2. Add one of the following to the `deps` attribute of your build target based
+on your needs:
+```
+@spirv_headers//:spirv_c_headers
+@spirv_headers//:spirv_cpp_headers
+@spirv_headers//:spirv_cpp11_headers
+```
+
+For example:
+
+```
+cc_library(
+ name = "project",
+ srcs = [
+ # Path to project sources
+ ],
+ hdrs = [
+ # Path to project headers
+ ],
+ deps = [
+ "@spirv_tools//:spirv_c_headers",
+ # Other dependencies,
+ ],
+)
+```
+
+3. In your C or C++ source code use `#include` directives that explicitly mention
+ the `spirv` path component.
+```
+#include "spirv/unified1/GLSL.std.450.h"
+#include "spirv/unified1/OpenCL.std.h"
+#include "spirv/unified1/spirv.hpp"
+```
+
+## Generating headers from the JSON grammar for the SPIR-V core instruction set
+
+This will generally be done by Khronos, for a change to the JSON grammar.
+However, the project for the tool to do this is included in this repository,
+and can be used to test a PR, or even to include the results in the PR.
+This is not required though.
+
+The header-generation project is under the `tools/buildHeaders` directory.
+Use CMake to build and install the project, in a `build` subdirectory (under `tools/buildHeaders`).
+There is then a bash script at `bin/makeHeaders` that shows how to use the built
+header-generator binary to generate the headers from the JSON grammar.
+(Execute `bin/makeHeaders` from the `tools/buildHeaders` directory.)
+Here's a complete example:
+
+```
+cd tools/buildHeaders
+mkdir build
+cd build
+cmake ..
+cmake --build . --target install
+cd ..
+./bin/makeHeaders
+```
+
+Notes:
+- this generator is used in a broader context within Khronos to generate the specification,
+ and that influences the languages used, for legacy reasons
+- the C++ structures built may similarly include more than strictly necessary, for the same reason
+
+## Generating C headers for extended instruction sets
+
+The [GLSL.std.450.h](include/spirv/unified1/GLSL.std.450.h)
+and [OpenCL.std.h](include/spirv/unified1/OpenCL.std.h) extended instruction set headers
+are maintained manually.
+
+The C/C++ header for each of the other extended instruction sets
+is generated from the corresponding JSON grammar file. For example, the
+[OpenCLDebugInfo100.h](include/spirv/unified1/OpenCLDebugInfo100.h) header
+is generated from the
+[extinst.opencl.debuginfo.100.grammar.json](include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json)
+grammar file.
+
+To generate these C/C++ headers, first make sure `python3` is in your PATH, then
+invoke the build script as follows:
+```
+cd tools/buildHeaders
+python3 bin/makeExtinstHeaders.py
+```
+
+## FAQ
+
+* *How are different versions published?*
+
+ The multiple versions of the headers have been simplified into a
+ single `unified1` view. The JSON grammar has a "version" field saying
+ what version things first showed up in.
+
+* *How do you handle the evolution of extended instruction sets?*
+
+ Extended instruction sets evolve asynchronously from the core spec.
+ Right now there is only a single version of both the GLSL and OpenCL
+ headers. So we don't yet have a problematic example to resolve.
+
+## License
+<a name="license"></a>
+```
+Copyright (c) 2015-2018 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.
+```
diff --git a/externals/sirit/externals/SPIRV-Headers/SPIRV-Headers.pc.in b/externals/sirit/externals/SPIRV-Headers/SPIRV-Headers.pc.in
new file mode 100644
index 0000000000..345f5f8040
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/SPIRV-Headers.pc.in
@@ -0,0 +1,9 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
+
+Name: SPIRV-Headers
+Description: Header files from the SPIR-V registry
+Version: @CMAKE_PROJECT_VERSION@
+Requires:
+Libs:
+Cflags: -I${includedir}
diff --git a/externals/sirit/externals/SPIRV-Headers/WORKSPACE b/externals/sirit/externals/SPIRV-Headers/WORKSPACE
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/WORKSPACE
diff --git a/externals/sirit/externals/SPIRV-Headers/cmake/Config.cmake.in b/externals/sirit/externals/SPIRV-Headers/cmake/Config.cmake.in
new file mode 100644
index 0000000000..38bbde7b37
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/cmake/Config.cmake.in
@@ -0,0 +1,4 @@
+@PACKAGE_INIT@
+
+include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
+check_required_components("@PROJECT_NAME@")
diff --git a/externals/sirit/externals/SPIRV-Headers/example/CMakeLists.txt b/externals/sirit/externals/SPIRV-Headers/example/CMakeLists.txt
new file mode 100644
index 0000000000..8b22f600a2
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/example/CMakeLists.txt
@@ -0,0 +1,4 @@
+add_library(SPIRV-Headers-example
+ ${CMAKE_CURRENT_SOURCE_DIR}/example.cpp)
+target_include_directories(SPIRV-Headers-example
+ PRIVATE ${SPIRV-Headers_SOURCE_DIR}/include)
diff --git a/externals/sirit/externals/SPIRV-Headers/example/example.cpp b/externals/sirit/externals/SPIRV-Headers/example/example.cpp
new file mode 100644
index 0000000000..d79b62f225
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/example/example.cpp
@@ -0,0 +1,37 @@
+// Copyright (c) 2016 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and/or associated documentation files (the
+// "Materials"), to deal in the Materials without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Materials, and to
+// permit persons to whom the Materials are furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
+// KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
+// SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
+// https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+#include <spirv/unified1/GLSL.std.450.h>
+#include <spirv/unified1/OpenCL.std.h>
+#include <spirv/unified1/spirv.hpp>
+
+namespace {
+
+const GLSLstd450 kSin = GLSLstd450Sin;
+const OpenCLLIB::Entrypoints kNative_cos = OpenCLLIB::Native_cos;
+const spv::Op kNop = spv::OpNop;
+
+} // anonymous namespace
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/GLSL.std.450.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/GLSL.std.450.h
new file mode 100644
index 0000000000..54cc00e9a8
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/GLSL.std.450.h
@@ -0,0 +1,131 @@
+/*
+** Copyright (c) 2014-2016 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+#ifndef GLSLstd450_H
+#define GLSLstd450_H
+
+static const int GLSLstd450Version = 100;
+static const int GLSLstd450Revision = 3;
+
+enum GLSLstd450 {
+ GLSLstd450Bad = 0, // Don't use
+
+ GLSLstd450Round = 1,
+ GLSLstd450RoundEven = 2,
+ GLSLstd450Trunc = 3,
+ GLSLstd450FAbs = 4,
+ GLSLstd450SAbs = 5,
+ GLSLstd450FSign = 6,
+ GLSLstd450SSign = 7,
+ GLSLstd450Floor = 8,
+ GLSLstd450Ceil = 9,
+ GLSLstd450Fract = 10,
+
+ GLSLstd450Radians = 11,
+ GLSLstd450Degrees = 12,
+ GLSLstd450Sin = 13,
+ GLSLstd450Cos = 14,
+ GLSLstd450Tan = 15,
+ GLSLstd450Asin = 16,
+ GLSLstd450Acos = 17,
+ GLSLstd450Atan = 18,
+ GLSLstd450Sinh = 19,
+ GLSLstd450Cosh = 20,
+ GLSLstd450Tanh = 21,
+ GLSLstd450Asinh = 22,
+ GLSLstd450Acosh = 23,
+ GLSLstd450Atanh = 24,
+ GLSLstd450Atan2 = 25,
+
+ GLSLstd450Pow = 26,
+ GLSLstd450Exp = 27,
+ GLSLstd450Log = 28,
+ GLSLstd450Exp2 = 29,
+ GLSLstd450Log2 = 30,
+ GLSLstd450Sqrt = 31,
+ GLSLstd450InverseSqrt = 32,
+
+ GLSLstd450Determinant = 33,
+ GLSLstd450MatrixInverse = 34,
+
+ GLSLstd450Modf = 35, // second operand needs an OpVariable to write to
+ GLSLstd450ModfStruct = 36, // no OpVariable operand
+ GLSLstd450FMin = 37,
+ GLSLstd450UMin = 38,
+ GLSLstd450SMin = 39,
+ GLSLstd450FMax = 40,
+ GLSLstd450UMax = 41,
+ GLSLstd450SMax = 42,
+ GLSLstd450FClamp = 43,
+ GLSLstd450UClamp = 44,
+ GLSLstd450SClamp = 45,
+ GLSLstd450FMix = 46,
+ GLSLstd450IMix = 47, // Reserved
+ GLSLstd450Step = 48,
+ GLSLstd450SmoothStep = 49,
+
+ GLSLstd450Fma = 50,
+ GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to
+ GLSLstd450FrexpStruct = 52, // no OpVariable operand
+ GLSLstd450Ldexp = 53,
+
+ GLSLstd450PackSnorm4x8 = 54,
+ GLSLstd450PackUnorm4x8 = 55,
+ GLSLstd450PackSnorm2x16 = 56,
+ GLSLstd450PackUnorm2x16 = 57,
+ GLSLstd450PackHalf2x16 = 58,
+ GLSLstd450PackDouble2x32 = 59,
+ GLSLstd450UnpackSnorm2x16 = 60,
+ GLSLstd450UnpackUnorm2x16 = 61,
+ GLSLstd450UnpackHalf2x16 = 62,
+ GLSLstd450UnpackSnorm4x8 = 63,
+ GLSLstd450UnpackUnorm4x8 = 64,
+ GLSLstd450UnpackDouble2x32 = 65,
+
+ GLSLstd450Length = 66,
+ GLSLstd450Distance = 67,
+ GLSLstd450Cross = 68,
+ GLSLstd450Normalize = 69,
+ GLSLstd450FaceForward = 70,
+ GLSLstd450Reflect = 71,
+ GLSLstd450Refract = 72,
+
+ GLSLstd450FindILsb = 73,
+ GLSLstd450FindSMsb = 74,
+ GLSLstd450FindUMsb = 75,
+
+ GLSLstd450InterpolateAtCentroid = 76,
+ GLSLstd450InterpolateAtSample = 77,
+ GLSLstd450InterpolateAtOffset = 78,
+
+ GLSLstd450NMin = 79,
+ GLSLstd450NMax = 80,
+ GLSLstd450NClamp = 81,
+
+ GLSLstd450Count
+};
+
+#endif // #ifndef GLSLstd450_H
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/OpenCL.std.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/OpenCL.std.h
new file mode 100644
index 0000000000..19a6688490
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/OpenCL.std.h
@@ -0,0 +1,210 @@
+/*
+** Copyright (c) 2015-2017 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.
+*/
+
+namespace OpenCLLIB {
+
+enum Entrypoints {
+
+ // Section 2.1: Math extended instructions
+ Acos = 0,
+ Acosh = 1,
+ Acospi = 2,
+ Asin = 3,
+ Asinh = 4,
+ Asinpi = 5,
+ Atan = 6,
+ Atan2 = 7,
+ Atanh = 8,
+ Atanpi = 9,
+ Atan2pi = 10,
+ Cbrt = 11,
+ Ceil = 12,
+ Copysign = 13,
+ Cos = 14,
+ Cosh = 15,
+ Cospi = 16,
+ Erfc = 17,
+ Erf = 18,
+ Exp = 19,
+ Exp2 = 20,
+ Exp10 = 21,
+ Expm1 = 22,
+ Fabs = 23,
+ Fdim = 24,
+ Floor = 25,
+ Fma = 26,
+ Fmax = 27,
+ Fmin = 28,
+ Fmod = 29,
+ Fract = 30,
+ Frexp = 31,
+ Hypot = 32,
+ Ilogb = 33,
+ Ldexp = 34,
+ Lgamma = 35,
+ Lgamma_r = 36,
+ Log = 37,
+ Log2 = 38,
+ Log10 = 39,
+ Log1p = 40,
+ Logb = 41,
+ Mad = 42,
+ Maxmag = 43,
+ Minmag = 44,
+ Modf = 45,
+ Nan = 46,
+ Nextafter = 47,
+ Pow = 48,
+ Pown = 49,
+ Powr = 50,
+ Remainder = 51,
+ Remquo = 52,
+ Rint = 53,
+ Rootn = 54,
+ Round = 55,
+ Rsqrt = 56,
+ Sin = 57,
+ Sincos = 58,
+ Sinh = 59,
+ Sinpi = 60,
+ Sqrt = 61,
+ Tan = 62,
+ Tanh = 63,
+ Tanpi = 64,
+ Tgamma = 65,
+ Trunc = 66,
+ Half_cos = 67,
+ Half_divide = 68,
+ Half_exp = 69,
+ Half_exp2 = 70,
+ Half_exp10 = 71,
+ Half_log = 72,
+ Half_log2 = 73,
+ Half_log10 = 74,
+ Half_powr = 75,
+ Half_recip = 76,
+ Half_rsqrt = 77,
+ Half_sin = 78,
+ Half_sqrt = 79,
+ Half_tan = 80,
+ Native_cos = 81,
+ Native_divide = 82,
+ Native_exp = 83,
+ Native_exp2 = 84,
+ Native_exp10 = 85,
+ Native_log = 86,
+ Native_log2 = 87,
+ Native_log10 = 88,
+ Native_powr = 89,
+ Native_recip = 90,
+ Native_rsqrt = 91,
+ Native_sin = 92,
+ Native_sqrt = 93,
+ Native_tan = 94,
+
+ // Section 2.2: Integer instructions
+ SAbs = 141,
+ SAbs_diff = 142,
+ SAdd_sat = 143,
+ UAdd_sat = 144,
+ SHadd = 145,
+ UHadd = 146,
+ SRhadd = 147,
+ URhadd = 148,
+ SClamp = 149,
+ UClamp = 150,
+ Clz = 151,
+ Ctz = 152,
+ SMad_hi = 153,
+ UMad_sat = 154,
+ SMad_sat = 155,
+ SMax = 156,
+ UMax = 157,
+ SMin = 158,
+ UMin = 159,
+ SMul_hi = 160,
+ Rotate = 161,
+ SSub_sat = 162,
+ USub_sat = 163,
+ U_Upsample = 164,
+ S_Upsample = 165,
+ Popcount = 166,
+ SMad24 = 167,
+ UMad24 = 168,
+ SMul24 = 169,
+ UMul24 = 170,
+ UAbs = 201,
+ UAbs_diff = 202,
+ UMul_hi = 203,
+ UMad_hi = 204,
+
+ // Section 2.3: Common instructions
+ FClamp = 95,
+ Degrees = 96,
+ FMax_common = 97,
+ FMin_common = 98,
+ Mix = 99,
+ Radians = 100,
+ Step = 101,
+ Smoothstep = 102,
+ Sign = 103,
+
+ // Section 2.4: Geometric instructions
+ Cross = 104,
+ Distance = 105,
+ Length = 106,
+ Normalize = 107,
+ Fast_distance = 108,
+ Fast_length = 109,
+ Fast_normalize = 110,
+
+ // Section 2.5: Relational instructions
+ Bitselect = 186,
+ Select = 187,
+
+ // Section 2.6: Vector Data Load and Store instructions
+ Vloadn = 171,
+ Vstoren = 172,
+ Vload_half = 173,
+ Vload_halfn = 174,
+ Vstore_half = 175,
+ Vstore_half_r = 176,
+ Vstore_halfn = 177,
+ Vstore_halfn_r = 178,
+ Vloada_halfn = 179,
+ Vstorea_halfn = 180,
+ Vstorea_halfn_r = 181,
+
+ // Section 2.7: Miscellaneous Vector instructions
+ Shuffle = 182,
+ Shuffle2 = 183,
+
+ // Section 2.8: Misc instructions
+ Printf = 184,
+ Prefetch = 185,
+};
+
+} // end namespace OpenCLLIB
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/extinst.glsl.std.450.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/extinst.glsl.std.450.grammar.json
new file mode 100644
index 0000000000..3d9f39e76c
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/extinst.glsl.std.450.grammar.json
@@ -0,0 +1,642 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "Round",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "RoundEven",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Trunc",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FAbs",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SAbs",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FSign",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SSign",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Floor",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Ceil",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Fract",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Radians",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'degrees'" }
+ ]
+ },
+ {
+ "opname" : "Degrees",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'radians'" }
+ ]
+ },
+ {
+ "opname" : "Sin",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Cos",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Tan",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Asin",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Acos",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atan",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y_over_x'" }
+ ]
+ },
+ {
+ "opname" : "Sinh",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Cosh",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Tanh",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Asinh",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Acosh",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atanh",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atan2",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Pow",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "Exp",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Log",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Exp2",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Log2",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Sqrt",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "InverseSqrt",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Determinant",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "MatrixInverse",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Modf",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'i'" }
+ ]
+ },
+ {
+ "opname" : "ModfStruct",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FMin",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "UMin",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "SMin",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "FMax",
+ "opcode" : 40,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "UMax",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "SMax",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "FClamp",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "UClamp",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "SClamp",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "FMix",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "IMix",
+ "opcode" : 47,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "Step",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SmoothStep",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge0'" },
+ { "kind" : "IdRef", "name" : "'edge1'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Fma",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "Frexp",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "FrexpStruct",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Ldexp",
+ "opcode" : 53,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "PackSnorm4x8",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackUnorm4x8",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackSnorm2x16",
+ "opcode" : 56,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackUnorm2x16",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackHalf2x16",
+ "opcode" : 58,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackDouble2x32",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ],
+ "capabilities" : [ "Float64" ]
+ },
+ {
+ "opname" : "UnpackSnorm2x16",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackUnorm2x16",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackHalf2x16",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "UnpackSnorm4x8",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackUnorm4x8",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackDouble2x32",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ],
+ "capabilities" : [ "Float64" ]
+ },
+ {
+ "opname" : "Length",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Distance",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "Cross",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "Normalize",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FaceForward",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'N'" },
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'Nref'" }
+ ]
+ },
+ {
+ "opname" : "Reflect",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'N'" }
+ ]
+ },
+ {
+ "opname" : "Refract",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'N'" },
+ { "kind" : "IdRef", "name" : "'eta'" }
+ ]
+ },
+ {
+ "opname" : "FindILsb",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "FindSMsb",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "FindUMsb",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "InterpolateAtCentroid",
+ "opcode" : 76,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "InterpolateAtSample",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" },
+ { "kind" : "IdRef", "name" : "'sample'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "InterpolateAtOffset",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" },
+ { "kind" : "IdRef", "name" : "'offset'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "NMin",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "NMax",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "NClamp",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/extinst.opencl.std.100.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/extinst.opencl.std.100.grammar.json
new file mode 100644
index 0000000000..4fe45060bb
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/extinst.opencl.std.100.grammar.json
@@ -0,0 +1,1279 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "acos",
+ "opcode" : 0,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acosh",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acospi",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asin",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinh",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinpi",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanh",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanpi",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2pi",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cbrt",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ceil",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "copysign",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "cos",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cosh",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cospi",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erfc",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erf",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp2",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp10",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "expm1",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fabs",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fdim",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "floor",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fma",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fmax",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmod",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fract",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'ptr'" }
+ ]
+ },
+ {
+ "opname" : "frexp",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "hypot",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "ilogb",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ldexp",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'k'" }
+ ]
+ },
+ {
+ "opname" : "lgamma",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "lgamma_r",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'signp'" }
+ ]
+ },
+ {
+ "opname" : "log",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log2",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log10",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log1p",
+ "opcode" : 40,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "logb",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "mad",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "maxmag",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "minmag",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "modf",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'iptr'" }
+ ]
+ },
+ {
+ "opname" : "nan",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'nancode'" }
+ ]
+ },
+ {
+ "opname" : "nextafter",
+ "opcode" : 47,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "pow",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y" }
+ ]
+ },
+ {
+ "opname" : "pown",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "powr",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remainder",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remquo",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'quo'" }
+ ]
+ },
+ {
+ "opname" : "rint",
+ "opcode" : 53,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rootn",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "round",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rsqrt",
+ "opcode" : 56,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sin",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sincos",
+ "opcode" : 58,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'cosval'" }
+ ]
+ },
+ {
+ "opname" : "sinh",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sinpi",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sqrt",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tan",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanh",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanpi",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tgamma",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "trunc",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_cos",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_divide",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_exp",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp2",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp10",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log2",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log10",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_powr",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_recip",
+ "opcode" : 76,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_rsqrt",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sin",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sqrt",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_tan",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_cos",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_divide",
+ "opcode" : 82,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_exp",
+ "opcode" : 83,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp2",
+ "opcode" : 84,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp10",
+ "opcode" : 85,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log",
+ "opcode" : 86,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log2",
+ "opcode" : 87,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log10",
+ "opcode" : 88,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_powr",
+ "opcode" : 89,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_recip",
+ "opcode" : 90,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_rsqrt",
+ "opcode" : 91,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sin",
+ "opcode" : 92,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sqrt",
+ "opcode" : 93,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_tan",
+ "opcode" : 94,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs",
+ "opcode" : 141,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs_diff",
+ "opcode" : 142,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_add_sat",
+ "opcode" : 143,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_add_sat",
+ "opcode" : 144,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_hadd",
+ "opcode" : 145,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_hadd",
+ "opcode" : 146,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_rhadd",
+ "opcode" : 147,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_rhadd",
+ "opcode" : 148,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_clamp",
+ "opcode" : 149,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "u_clamp",
+ "opcode" : 150,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "clz",
+ "opcode" : 151,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ctz",
+ "opcode" : 152,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_hi",
+ "opcode" : 153,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_sat",
+ "opcode" : 154,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_sat",
+ "opcode" : 155,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_max",
+ "opcode" : 156,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_max",
+ "opcode" : 157,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_min",
+ "opcode" : 158,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_min",
+ "opcode" : 159,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_mul_hi",
+ "opcode" : 160,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "rotate",
+ "opcode" : 161,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" },
+ { "kind" : "IdRef", "name" : "'i'" }
+ ]
+ },
+ {
+ "opname" : "s_sub_sat",
+ "opcode" : 162,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_sub_sat",
+ "opcode" : 163,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_upsample",
+ "opcode" : 164,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "s_upsample",
+ "opcode" : 165,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "popcount",
+ "opcode" : 166,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad24",
+ "opcode" : 167,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "u_mad24",
+ "opcode" : 168,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mul24",
+ "opcode" : 169,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul24",
+ "opcode" : 170,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_abs",
+ "opcode" : 201,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "u_abs_diff",
+ "opcode" : 202,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul_hi",
+ "opcode" : 203,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_hi",
+ "opcode" : 204,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fclamp",
+ "opcode" : 95,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "degrees",
+ "opcode" :96,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'radians'" }
+ ]
+ },
+ {
+ "opname" : "fmax_common",
+ "opcode" : 97,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin_common",
+ "opcode" : 98,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "mix",
+ "opcode" : 99,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "radians",
+ "opcode" : 100,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'degrees'" }
+ ]
+ },
+ {
+ "opname" : "step",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "smoothstep",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge0'" },
+ { "kind" : "IdRef", "name" : "'edge1'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sign",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cross",
+ "opcode" : 104,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "distance",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "length",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "normalize",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_distance",
+ "opcode" : 108,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "fast_length",
+ "opcode" : 109,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_normalize",
+ "opcode" : 110,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "bitselect",
+ "opcode" : 186,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "select",
+ "opcode" : 187,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "vloadn",
+ "opcode" : 171,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstoren",
+ "opcode" : 172,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_half",
+ "opcode" : 173,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_halfn",
+ "opcode" : 174,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half",
+ "opcode" : 175,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half_r",
+ "opcode" : 176,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn",
+ "opcode" : 177,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn_r",
+ "opcode" : 178,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vloada_halfn",
+ "opcode" : 179,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn",
+ "opcode" : 180,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn_r",
+ "opcode" : 181,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "shuffle",
+ "opcode" : 182,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "shuffle2",
+ "opcode" : 183,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "printf",
+ "opcode" : 184,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'format'" },
+ { "kind" : "IdRef", "name" : "'additional arguments'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "prefetch",
+ "opcode" : 185,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'ptr'" },
+ { "kind" : "IdRef", "name" : "'num elements'" }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.core.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.core.grammar.json
new file mode 100644
index 0000000000..f3cfc4c299
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.core.grammar.json
@@ -0,0 +1,5775 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "magic_number" : "0x07230203",
+ "major_version" : 1,
+ "minor_version" : 0,
+ "revision" : 12,
+ "instructions" : [
+ {
+ "opname" : "OpNop",
+ "opcode" : 0
+ },
+ {
+ "opname" : "OpUndef",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSourceContinued",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Continued Source'" }
+ ]
+ },
+ {
+ "opname" : "OpSource",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "SourceLanguage" },
+ { "kind" : "LiteralInteger", "name" : "'Version'" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" },
+ { "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" }
+ ]
+ },
+ {
+ "opname" : "OpSourceExtension",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Extension'" }
+ ]
+ },
+ {
+ "opname" : "OpName",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpMemberName",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpString",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'String'" }
+ ]
+ },
+ {
+ "opname" : "OpLine",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'File'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "OpExtension",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpExtInstImport",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpExtInst",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Set'" },
+ { "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpMemoryModel",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "AddressingModel" },
+ { "kind" : "MemoryModel" }
+ ]
+ },
+ {
+ "opname" : "OpEntryPoint",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "ExecutionModel" },
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "LiteralString", "name" : "'Name'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" }
+ ]
+ },
+ {
+ "opname" : "OpExecutionMode",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "ExecutionMode", "name" : "'Mode'" }
+ ]
+ },
+ {
+ "opname" : "OpCapability",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "Capability", "name" : "'Capability'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeVoid",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeBool",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeInt",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Width'" },
+ { "kind" : "LiteralInteger", "name" : "'Signedness'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeFloat",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Width'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeVector",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Component Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Component Count'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeMatrix",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Column Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Column Count'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpTypeImage",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Type'" },
+ { "kind" : "Dim" },
+ { "kind" : "LiteralInteger", "name" : "'Depth'" },
+ { "kind" : "LiteralInteger", "name" : "'Arrayed'" },
+ { "kind" : "LiteralInteger", "name" : "'MS'" },
+ { "kind" : "LiteralInteger", "name" : "'Sampled'" },
+ { "kind" : "ImageFormat" },
+ { "kind" : "AccessQualifier", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpTypeSampler",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeSampledImage",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image Type'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeArray",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Element Type'" },
+ { "kind" : "IdRef", "name" : "'Length'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeRuntimeArray",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Element Type'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpTypeStruct",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpTypeOpaque",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "The name of the opaque type." }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpTypePointer",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "StorageClass" },
+ { "kind" : "IdRef", "name" : "'Type'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeFunction",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Return Type'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpTypeEvent",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpTypeDeviceEvent",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpTypeReserveId",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpTypeQueue",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpTypePipe",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "AccessQualifier", "name" : "'Qualifier'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpTypeForwardPointer",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer Type'" },
+ { "kind" : "StorageClass" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpConstantTrue",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpConstantFalse",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpConstant",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConstantComposite",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpConstantSampler",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "SamplerAddressingMode" },
+ { "kind" : "LiteralInteger", "name" : "'Param'" },
+ { "kind" : "SamplerFilterMode" }
+ ],
+ "capabilities" : [ "LiteralSampler" ]
+ },
+ {
+ "opname" : "OpConstantNull",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantTrue",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantFalse",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstant",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantComposite",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantOp",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" }
+ ]
+ },
+ {
+ "opname" : "OpFunction",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "FunctionControl" },
+ { "kind" : "IdRef", "name" : "'Function Type'" }
+ ]
+ },
+ {
+ "opname" : "OpFunctionParameter",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpFunctionEnd",
+ "opcode" : 56
+ },
+ {
+ "opname" : "OpFunctionCall",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Function'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpVariable",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "StorageClass" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" }
+ ]
+ },
+ {
+ "opname" : "OpImageTexelPointer",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Sample'" }
+ ]
+ },
+ {
+ "opname" : "OpLoad",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpStore",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Object'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpCopyMemory",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpCopyMemorySized",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpAccessChain",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpInBoundsAccessChain",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpPtrAccessChain",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Element'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ],
+ "capabilities" : [
+ "Addresses",
+ "VariablePointers",
+ "VariablePointersStorageBuffer"
+ ]
+ },
+ {
+ "opname" : "OpArrayLength",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Structure'" },
+ { "kind" : "LiteralInteger", "name" : "'Array member'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpGenericPtrMemSemantics",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpInBoundsPtrAccessChain",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Element'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpDecorate",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ]
+ },
+ {
+ "opname" : "OpMemberDecorate",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Structure Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "Decoration" }
+ ]
+ },
+ {
+ "opname" : "OpDecorationGroup",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpGroupDecorate",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Decoration Group'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" }
+ ]
+ },
+ {
+ "opname" : "OpGroupMemberDecorate",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Decoration Group'" },
+ { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorExtractDynamic",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorInsertDynamic",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorShuffle",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeConstruct",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeExtract",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Composite'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeInsert",
+ "opcode" : 82,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Object'" },
+ { "kind" : "IdRef", "name" : "'Composite'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpCopyObject",
+ "opcode" : 83,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpTranspose",
+ "opcode" : 84,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpSampledImage",
+ "opcode" : 86,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Sampler'" }
+ ]
+ },
+ {
+ "opname" : "OpImageSampleImplicitLod",
+ "opcode" : 87,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleExplicitLod",
+ "opcode" : 88,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ]
+ },
+ {
+ "opname" : "OpImageSampleDrefImplicitLod",
+ "opcode" : 89,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleDrefExplicitLod",
+ "opcode" : 90,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjImplicitLod",
+ "opcode" : 91,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjExplicitLod",
+ "opcode" : 92,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjDrefImplicitLod",
+ "opcode" : 93,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjDrefExplicitLod",
+ "opcode" : 94,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageFetch",
+ "opcode" : 95,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImageGather",
+ "opcode" : 96,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageDrefGather",
+ "opcode" : 97,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageRead",
+ "opcode" : 98,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImageWrite",
+ "opcode" : 99,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Texel'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImage",
+ "opcode" : 100,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" }
+ ]
+ },
+ {
+ "opname" : "OpImageQueryFormat",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageQueryOrder",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageQuerySizeLod",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Level of Detail'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQuerySize",
+ "opcode" : 104,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQueryLod",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQueryLevels",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQuerySamples",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpConvertFToU",
+ "opcode" : 109,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertFToS",
+ "opcode" : 110,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertSToF",
+ "opcode" : 111,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertUToF",
+ "opcode" : 112,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ]
+ },
+ {
+ "opname" : "OpUConvert",
+ "opcode" : 113,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ]
+ },
+ {
+ "opname" : "OpSConvert",
+ "opcode" : 114,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ]
+ },
+ {
+ "opname" : "OpFConvert",
+ "opcode" : 115,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpQuantizeToF16",
+ "opcode" : 116,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertPtrToU",
+ "opcode" : 117,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpSatConvertSToU",
+ "opcode" : 118,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpSatConvertUToS",
+ "opcode" : 119,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpConvertUToPtr",
+ "opcode" : 120,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Integer Value'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpPtrCastToGeneric",
+ "opcode" : 121,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGenericCastToPtr",
+ "opcode" : 122,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGenericCastToPtrExplicit",
+ "opcode" : 123,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "StorageClass", "name" : "'Storage'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpBitcast",
+ "opcode" : 124,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpSNegate",
+ "opcode" : 126,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpFNegate",
+ "opcode" : 127,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpIAdd",
+ "opcode" : 128,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFAdd",
+ "opcode" : 129,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpISub",
+ "opcode" : 130,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFSub",
+ "opcode" : 131,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIMul",
+ "opcode" : 132,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFMul",
+ "opcode" : 133,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUDiv",
+ "opcode" : 134,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSDiv",
+ "opcode" : 135,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFDiv",
+ "opcode" : 136,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUMod",
+ "opcode" : 137,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSRem",
+ "opcode" : 138,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSMod",
+ "opcode" : 139,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFRem",
+ "opcode" : 140,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFMod",
+ "opcode" : 141,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorTimesScalar",
+ "opcode" : 142,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Scalar'" }
+ ]
+ },
+ {
+ "opname" : "OpMatrixTimesScalar",
+ "opcode" : 143,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" },
+ { "kind" : "IdRef", "name" : "'Scalar'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpVectorTimesMatrix",
+ "opcode" : 144,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Matrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpMatrixTimesVector",
+ "opcode" : 145,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpMatrixTimesMatrix",
+ "opcode" : 146,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'LeftMatrix'" },
+ { "kind" : "IdRef", "name" : "'RightMatrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpOuterProduct",
+ "opcode" : 147,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpDot",
+ "opcode" : 148,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIAddCarry",
+ "opcode" : 149,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpISubBorrow",
+ "opcode" : 150,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUMulExtended",
+ "opcode" : 151,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSMulExtended",
+ "opcode" : 152,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpAny",
+ "opcode" : 154,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ]
+ },
+ {
+ "opname" : "OpAll",
+ "opcode" : 155,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ]
+ },
+ {
+ "opname" : "OpIsNan",
+ "opcode" : 156,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "OpIsInf",
+ "opcode" : 157,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "OpIsFinite",
+ "opcode" : 158,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpIsNormal",
+ "opcode" : 159,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpSignBitSet",
+ "opcode" : 160,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLessOrGreater",
+ "opcode" : 161,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpOrdered",
+ "opcode" : 162,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpUnordered",
+ "opcode" : 163,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLogicalEqual",
+ "opcode" : 164,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalNotEqual",
+ "opcode" : 165,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalOr",
+ "opcode" : 166,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalAnd",
+ "opcode" : 167,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalNot",
+ "opcode" : 168,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpSelect",
+ "opcode" : 169,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Condition'" },
+ { "kind" : "IdRef", "name" : "'Object 1'" },
+ { "kind" : "IdRef", "name" : "'Object 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIEqual",
+ "opcode" : 170,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpINotEqual",
+ "opcode" : 171,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUGreaterThan",
+ "opcode" : 172,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSGreaterThan",
+ "opcode" : 173,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUGreaterThanEqual",
+ "opcode" : 174,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSGreaterThanEqual",
+ "opcode" : 175,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpULessThan",
+ "opcode" : 176,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSLessThan",
+ "opcode" : 177,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpULessThanEqual",
+ "opcode" : 178,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSLessThanEqual",
+ "opcode" : 179,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdEqual",
+ "opcode" : 180,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordEqual",
+ "opcode" : 181,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdNotEqual",
+ "opcode" : 182,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordNotEqual",
+ "opcode" : 183,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdLessThan",
+ "opcode" : 184,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordLessThan",
+ "opcode" : 185,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdGreaterThan",
+ "opcode" : 186,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordGreaterThan",
+ "opcode" : 187,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdLessThanEqual",
+ "opcode" : 188,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordLessThanEqual",
+ "opcode" : 189,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdGreaterThanEqual",
+ "opcode" : 190,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordGreaterThanEqual",
+ "opcode" : 191,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftRightLogical",
+ "opcode" : 194,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftRightArithmetic",
+ "opcode" : 195,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftLeftLogical",
+ "opcode" : 196,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseOr",
+ "opcode" : 197,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseXor",
+ "opcode" : 198,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseAnd",
+ "opcode" : 199,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpNot",
+ "opcode" : 200,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpBitFieldInsert",
+ "opcode" : 201,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Insert'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitFieldSExtract",
+ "opcode" : 202,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitFieldUExtract",
+ "opcode" : 203,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitReverse",
+ "opcode" : 204,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitCount",
+ "opcode" : 205,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" }
+ ]
+ },
+ {
+ "opname" : "OpDPdx",
+ "opcode" : 207,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpDPdy",
+ "opcode" : 208,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpFwidth",
+ "opcode" : 209,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpDPdxFine",
+ "opcode" : 210,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdyFine",
+ "opcode" : 211,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpFwidthFine",
+ "opcode" : 212,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdxCoarse",
+ "opcode" : 213,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdyCoarse",
+ "opcode" : 214,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpFwidthCoarse",
+ "opcode" : 215,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpEmitVertex",
+ "opcode" : 218,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "opname" : "OpEndPrimitive",
+ "opcode" : 219,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "opname" : "OpEmitStreamVertex",
+ "opcode" : 220,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Stream'" }
+ ],
+ "capabilities" : [ "GeometryStreams" ]
+ },
+ {
+ "opname" : "OpEndStreamPrimitive",
+ "opcode" : 221,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Stream'" }
+ ],
+ "capabilities" : [ "GeometryStreams" ]
+ },
+ {
+ "opname" : "OpControlBarrier",
+ "opcode" : 224,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpMemoryBarrier",
+ "opcode" : 225,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicLoad",
+ "opcode" : 227,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicStore",
+ "opcode" : 228,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicExchange",
+ "opcode" : 229,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicCompareExchange",
+ "opcode" : 230,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Comparator'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicCompareExchangeWeak",
+ "opcode" : 231,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Comparator'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpAtomicIIncrement",
+ "opcode" : 232,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicIDecrement",
+ "opcode" : 233,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicIAdd",
+ "opcode" : 234,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicISub",
+ "opcode" : 235,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicSMin",
+ "opcode" : 236,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicUMin",
+ "opcode" : 237,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicSMax",
+ "opcode" : 238,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicUMax",
+ "opcode" : 239,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicAnd",
+ "opcode" : 240,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicOr",
+ "opcode" : 241,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicXor",
+ "opcode" : 242,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpPhi",
+ "opcode" : 245,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" }
+ ]
+ },
+ {
+ "opname" : "OpLoopMerge",
+ "opcode" : 246,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Merge Block'" },
+ { "kind" : "IdRef", "name" : "'Continue Target'" },
+ { "kind" : "LoopControl" }
+ ]
+ },
+ {
+ "opname" : "OpSelectionMerge",
+ "opcode" : 247,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Merge Block'" },
+ { "kind" : "SelectionControl" }
+ ]
+ },
+ {
+ "opname" : "OpLabel",
+ "opcode" : 248,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpBranch",
+ "opcode" : 249,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target Label'" }
+ ]
+ },
+ {
+ "opname" : "OpBranchConditional",
+ "opcode" : 250,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Condition'" },
+ { "kind" : "IdRef", "name" : "'True Label'" },
+ { "kind" : "IdRef", "name" : "'False Label'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" }
+ ]
+ },
+ {
+ "opname" : "OpSwitch",
+ "opcode" : 251,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Selector'" },
+ { "kind" : "IdRef", "name" : "'Default'" },
+ { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" }
+ ]
+ },
+ {
+ "opname" : "OpKill",
+ "opcode" : 252,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpReturn",
+ "opcode" : 253
+ },
+ {
+ "opname" : "OpReturnValue",
+ "opcode" : 254,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpUnreachable",
+ "opcode" : 255
+ },
+ {
+ "opname" : "OpLifetimeStart",
+ "opcode" : 256,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLifetimeStop",
+ "opcode" : 257,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupAsyncCopy",
+ "opcode" : 259,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Destination'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Num Elements'" },
+ { "kind" : "IdRef", "name" : "'Stride'" },
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupWaitEvents",
+ "opcode" : 260,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Events List'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupAll",
+ "opcode" : 261,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupAny",
+ "opcode" : 262,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupBroadcast",
+ "opcode" : 263,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'LocalId'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupIAdd",
+ "opcode" : 264,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFAdd",
+ "opcode" : 265,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMin",
+ "opcode" : 266,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMin",
+ "opcode" : 267,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMin",
+ "opcode" : 268,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMax",
+ "opcode" : 269,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMax",
+ "opcode" : 270,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMax",
+ "opcode" : 271,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpReadPipe",
+ "opcode" : 274,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpWritePipe",
+ "opcode" : 275,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReservedReadPipe",
+ "opcode" : 276,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Index'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReservedWritePipe",
+ "opcode" : 277,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Index'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReserveReadPipePackets",
+ "opcode" : 278,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReserveWritePipePackets",
+ "opcode" : 279,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpCommitReadPipe",
+ "opcode" : 280,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpCommitWritePipe",
+ "opcode" : 281,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpIsValidReserveId",
+ "opcode" : 282,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGetNumPipePackets",
+ "opcode" : 283,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGetMaxPipePackets",
+ "opcode" : 284,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupReserveReadPipePackets",
+ "opcode" : 285,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupReserveWritePipePackets",
+ "opcode" : 286,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupCommitReadPipe",
+ "opcode" : 287,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupCommitWritePipe",
+ "opcode" : 288,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpEnqueueMarker",
+ "opcode" : 291,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Queue'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Wait Events'" },
+ { "kind" : "IdRef", "name" : "'Ret Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpEnqueueKernel",
+ "opcode" : 292,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Queue'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Wait Events'" },
+ { "kind" : "IdRef", "name" : "'Ret Event'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Local Size'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelNDrangeSubGroupCount",
+ "opcode" : 293,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelNDrangeMaxSubGroupSize",
+ "opcode" : 294,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelWorkGroupSize",
+ "opcode" : 295,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple",
+ "opcode" : 296,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpRetainEvent",
+ "opcode" : 297,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpReleaseEvent",
+ "opcode" : 298,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpCreateUserEvent",
+ "opcode" : 299,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpIsValidEvent",
+ "opcode" : 300,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpSetUserEventStatus",
+ "opcode" : 301,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" },
+ { "kind" : "IdRef", "name" : "'Status'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpCaptureEventProfilingInfo",
+ "opcode" : 302,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" },
+ { "kind" : "IdRef", "name" : "'Profiling Info'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetDefaultQueue",
+ "opcode" : 303,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpBuildNDRange",
+ "opcode" : 304,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'GlobalWorkSize'" },
+ { "kind" : "IdRef", "name" : "'LocalWorkSize'" },
+ { "kind" : "IdRef", "name" : "'GlobalWorkOffset'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleImplicitLod",
+ "opcode" : 305,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleExplicitLod",
+ "opcode" : 306,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleDrefImplicitLod",
+ "opcode" : 307,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleDrefExplicitLod",
+ "opcode" : 308,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjImplicitLod",
+ "opcode" : 309,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjExplicitLod",
+ "opcode" : 310,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjDrefImplicitLod",
+ "opcode" : 311,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjDrefExplicitLod",
+ "opcode" : 312,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseFetch",
+ "opcode" : 313,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseGather",
+ "opcode" : 314,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseDrefGather",
+ "opcode" : 315,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseTexelsResident",
+ "opcode" : 316,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Resident Code'" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpNoLine",
+ "opcode" : 317
+ },
+ {
+ "opname" : "OpAtomicFlagTestAndSet",
+ "opcode" : 318,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpAtomicFlagClear",
+ "opcode" : 319,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageSparseRead",
+ "opcode" : 320,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpDecorateId",
+ "opcode" : 332,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ]
+ },
+ {
+ "opname" : "OpSubgroupBallotKHR",
+ "opcode" : 4421,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupFirstInvocationKHR",
+ "opcode" : 4422,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAllKHR",
+ "opcode" : 4428,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAnyKHR",
+ "opcode" : 4429,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAllEqualKHR",
+ "opcode" : 4430,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupReadInvocationKHR",
+ "opcode" : 4432,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpGroupIAddNonUniformAMD",
+ "opcode" : 5000,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFAddNonUniformAMD",
+ "opcode" : 5001,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMinNonUniformAMD",
+ "opcode" : 5002,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMinNonUniformAMD",
+ "opcode" : 5003,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMinNonUniformAMD",
+ "opcode" : 5004,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMaxNonUniformAMD",
+ "opcode" : 5005,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMaxNonUniformAMD",
+ "opcode" : 5006,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMaxNonUniformAMD",
+ "opcode" : 5007,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpFragmentMaskFetchAMD",
+ "opcode" : 5011,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "FragmentMaskAMD" ]
+ },
+ {
+ "opname" : "OpFragmentFetchAMD",
+ "opcode" : 5012,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Fragment Index'" }
+ ],
+ "capabilities" : [ "FragmentMaskAMD" ]
+ },
+ {
+ "opname" : "OpSubgroupShuffleINTEL",
+ "opcode" : 5571,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Data'" },
+ { "kind" : "IdRef", "name" : "'InvocationId'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupShuffleDownINTEL",
+ "opcode" : 5572,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Current'" },
+ { "kind" : "IdRef", "name" : "'Next'" },
+ { "kind" : "IdRef", "name" : "'Delta'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupShuffleUpINTEL",
+ "opcode" : 5573,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Previous'" },
+ { "kind" : "IdRef", "name" : "'Current'" },
+ { "kind" : "IdRef", "name" : "'Delta'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupShuffleXorINTEL",
+ "opcode" : 5574,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Data'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupBlockReadINTEL",
+ "opcode" : 5575,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Ptr'" }
+ ],
+ "capabilities" : [ "SubgroupBufferBlockIOINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupBlockWriteINTEL",
+ "opcode" : 5576,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Ptr'" },
+ { "kind" : "IdRef", "name" : "'Data'" }
+ ],
+ "capabilities" : [ "SubgroupBufferBlockIOINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupImageBlockReadINTEL",
+ "opcode" : 5577,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "SubgroupImageBlockIOINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupImageBlockWriteINTEL",
+ "opcode" : 5578,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Data'" }
+ ],
+ "capabilities" : [ "SubgroupImageBlockIOINTEL" ]
+ },
+ {
+ "opname" : "OpDecorateStringGOOGLE",
+ "opcode" : 5632,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_decorate_string" ]
+ },
+ {
+ "opname" : "OpMemberDecorateStringGOOGLE",
+ "opcode" : 5633,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Struct Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_decorate_string" ]
+ }
+ ],
+ "operand_kinds" : [
+ {
+ "category" : "BitEnum",
+ "kind" : "ImageOperands",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Bias",
+ "value" : "0x0001",
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Lod",
+ "value" : "0x0002",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Grad",
+ "value" : "0x0004",
+ "parameters" : [
+ { "kind" : "IdRef" },
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "ConstOffset",
+ "value" : "0x0008",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Offset",
+ "value" : "0x0010",
+ "capabilities" : [ "ImageGatherExtended" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "ConstOffsets",
+ "value" : "0x0020",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Sample",
+ "value" : "0x0040",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "MinLod",
+ "value" : "0x0080",
+ "capabilities" : [ "MinLod" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "FPFastMathMode",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "NotNaN",
+ "value" : "0x0001",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NotInf",
+ "value" : "0x0002",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NSZ",
+ "value" : "0x0004",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "AllowRecip",
+ "value" : "0x0008",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Fast",
+ "value" : "0x0010",
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "SelectionControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Flatten",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontFlatten",
+ "value" : "0x0002"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "LoopControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Unroll",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontUnroll",
+ "value" : "0x0002"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "FunctionControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Inline",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontInline",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "Pure",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "Const",
+ "value" : "0x0008"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "MemorySemantics",
+ "enumerants" : [
+ {
+ "enumerant" : "Relaxed",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Acquire",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "Release",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "AcquireRelease",
+ "value" : "0x0008"
+ },
+ {
+ "enumerant" : "SequentiallyConsistent",
+ "value" : "0x0010"
+ },
+ {
+ "enumerant" : "UniformMemory",
+ "value" : "0x0040",
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SubgroupMemory",
+ "value" : "0x0080"
+ },
+ {
+ "enumerant" : "WorkgroupMemory",
+ "value" : "0x0100"
+ },
+ {
+ "enumerant" : "CrossWorkgroupMemory",
+ "value" : "0x0200"
+ },
+ {
+ "enumerant" : "AtomicCounterMemory",
+ "value" : "0x0400",
+ "capabilities" : [ "AtomicStorage" ]
+ },
+ {
+ "enumerant" : "ImageMemory",
+ "value" : "0x0800"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "MemoryAccess",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Volatile",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "Aligned",
+ "value" : "0x0002",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ]
+ },
+ {
+ "enumerant" : "Nontemporal",
+ "value" : "0x0004"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "KernelProfilingInfo",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "CmdExecTime",
+ "value" : "0x0001",
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SourceLanguage",
+ "enumerants" : [
+ {
+ "enumerant" : "Unknown",
+ "value" : 0
+ },
+ {
+ "enumerant" : "ESSL",
+ "value" : 1
+ },
+ {
+ "enumerant" : "GLSL",
+ "value" : 2
+ },
+ {
+ "enumerant" : "OpenCL_C",
+ "value" : 3
+ },
+ {
+ "enumerant" : "OpenCL_CPP",
+ "value" : 4
+ },
+ {
+ "enumerant" : "HLSL",
+ "value" : 5
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ExecutionModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Vertex",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "TessellationControl",
+ "value" : 1,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessellationEvaluation",
+ "value" : 2,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Geometry",
+ "value" : 3,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Fragment",
+ "value" : 4,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLCompute",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Kernel",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "AddressingModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Logical",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Physical32",
+ "value" : 1,
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "enumerant" : "Physical64",
+ "value" : 2,
+ "capabilities" : [ "Addresses" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "MemoryModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Simple",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLSL450",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OpenCL",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ExecutionMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Invocations",
+ "value" : 0,
+ "capabilities" : [ "Geometry" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Number of <<Invocation,invocations>>'" }
+ ]
+ },
+ {
+ "enumerant" : "SpacingEqual",
+ "value" : 1,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "SpacingFractionalEven",
+ "value" : 2,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "SpacingFractionalOdd",
+ "value" : 3,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "VertexOrderCw",
+ "value" : 4,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "VertexOrderCcw",
+ "value" : 5,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "PixelCenterInteger",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OriginUpperLeft",
+ "value" : 7,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OriginLowerLeft",
+ "value" : 8,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "EarlyFragmentTests",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointMode",
+ "value" : 10,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Xfb",
+ "value" : 11,
+ "capabilities" : [ "TransformFeedback" ]
+ },
+ {
+ "enumerant" : "DepthReplacing",
+ "value" : 12,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthGreater",
+ "value" : 14,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthLess",
+ "value" : 15,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthUnchanged",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "LocalSize",
+ "value" : 17,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'x size'" },
+ { "kind" : "LiteralInteger", "name" : "'y size'" },
+ { "kind" : "LiteralInteger", "name" : "'z size'" }
+ ]
+ },
+ {
+ "enumerant" : "LocalSizeHint",
+ "value" : 18,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'x size'" },
+ { "kind" : "LiteralInteger", "name" : "'y size'" },
+ { "kind" : "LiteralInteger", "name" : "'z size'" }
+ ]
+ },
+ {
+ "enumerant" : "InputPoints",
+ "value" : 19,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "InputLines",
+ "value" : 20,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "InputLinesAdjacency",
+ "value" : 21,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Triangles",
+ "value" : 22,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "InputTrianglesAdjacency",
+ "value" : 23,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Quads",
+ "value" : 24,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Isolines",
+ "value" : 25,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "OutputVertices",
+ "value" : 26,
+ "capabilities" : [ "Geometry", "Tessellation" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
+ ]
+ },
+ {
+ "enumerant" : "OutputPoints",
+ "value" : 27,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "OutputLineStrip",
+ "value" : 28,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "OutputTriangleStrip",
+ "value" : 29,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "VecTypeHint",
+ "value" : 30,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Vector type'" }
+ ]
+ },
+ {
+ "enumerant" : "ContractionOff",
+ "value" : 31,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "PostDepthCoverage",
+ "value" : 4446,
+ "capabilities" : [ "SampleMaskPostDepthCoverage" ]
+ },
+ {
+ "enumerant" : "StencilRefReplacingEXT",
+ "value" : 5027,
+ "capabilities" : [ "StencilExportEXT" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "StorageClass",
+ "enumerants" : [
+ {
+ "enumerant" : "UniformConstant",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Input",
+ "value" : 1
+ },
+ {
+ "enumerant" : "Uniform",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Output",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Workgroup",
+ "value" : 4
+ },
+ {
+ "enumerant" : "CrossWorkgroup",
+ "value" : 5
+ },
+ {
+ "enumerant" : "Private",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Function",
+ "value" : 7
+ },
+ {
+ "enumerant" : "Generic",
+ "value" : 8,
+ "capabilities" : [ "GenericPointer" ]
+ },
+ {
+ "enumerant" : "PushConstant",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "AtomicCounter",
+ "value" : 10,
+ "capabilities" : [ "AtomicStorage" ]
+ },
+ {
+ "enumerant" : "Image",
+ "value" : 11
+ },
+ {
+ "enumerant" : "StorageBuffer",
+ "value" : 12,
+ "extensions" : [
+ "SPV_KHR_storage_buffer_storage_class",
+ "SPV_KHR_variable_pointers"
+ ],
+ "capabilities" : [ "Shader" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Dim",
+ "enumerants" : [
+ {
+ "enumerant" : "1D",
+ "value" : 0,
+ "capabilities" : [ "Sampled1D" ]
+ },
+ {
+ "enumerant" : "2D",
+ "value" : 1
+ },
+ {
+ "enumerant" : "3D",
+ "value" : 2
+ },
+ {
+ "enumerant" : "Cube",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rect",
+ "value" : 4,
+ "capabilities" : [ "SampledRect" ]
+ },
+ {
+ "enumerant" : "Buffer",
+ "value" : 5,
+ "capabilities" : [ "SampledBuffer" ]
+ },
+ {
+ "enumerant" : "SubpassData",
+ "value" : 6,
+ "capabilities" : [ "InputAttachment" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SamplerAddressingMode",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ClampToEdge",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Clamp",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Repeat",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RepeatMirrored",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SamplerFilterMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Nearest",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Linear",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageFormat",
+ "enumerants" : [
+ {
+ "enumerant" : "Unknown",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Rgba32f",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16f",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32f",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8",
+ "value" : 4,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8Snorm",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rg32f",
+ "value" : 6,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16f",
+ "value" : 7,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R11fG11fB10f",
+ "value" : 8,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16f",
+ "value" : 9,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba16",
+ "value" : 10,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgb10A2",
+ "value" : 11,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16",
+ "value" : 12,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8",
+ "value" : 13,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16",
+ "value" : 14,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8",
+ "value" : 15,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba16Snorm",
+ "value" : 16,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16Snorm",
+ "value" : 17,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8Snorm",
+ "value" : 18,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16Snorm",
+ "value" : 19,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8Snorm",
+ "value" : 20,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba32i",
+ "value" : 21,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16i",
+ "value" : 22,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8i",
+ "value" : 23,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32i",
+ "value" : 24,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rg32i",
+ "value" : 25,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16i",
+ "value" : 26,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8i",
+ "value" : 27,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16i",
+ "value" : 28,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8i",
+ "value" : 29,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba32ui",
+ "value" : 30,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16ui",
+ "value" : 31,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8ui",
+ "value" : 32,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32ui",
+ "value" : 33,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgb10a2ui",
+ "value" : 34,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg32ui",
+ "value" : 35,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16ui",
+ "value" : 36,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8ui",
+ "value" : 37,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16ui",
+ "value" : 38,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8ui",
+ "value" : 39,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageChannelOrder",
+ "enumerants" : [
+ {
+ "enumerant" : "R",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "A",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RG",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RA",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGB",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGBA",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "BGRA",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ARGB",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Intensity",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Luminance",
+ "value" : 9,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Rx",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGx",
+ "value" : 11,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGBx",
+ "value" : 12,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Depth",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "DepthStencil",
+ "value" : 14,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGB",
+ "value" : 15,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGBx",
+ "value" : 16,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGBA",
+ "value" : 17,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sBGRA",
+ "value" : 18,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ABGR",
+ "value" : 19,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageChannelDataType",
+ "enumerants" : [
+ {
+ "enumerant" : "SnormInt8",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SnormInt16",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt8",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt16",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormShort565",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormShort555",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt101010",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt8",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt16",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt32",
+ "value" : 9,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt8",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt16",
+ "value" : 11,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt32",
+ "value" : 12,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "HalfFloat",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float",
+ "value" : 14,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt24",
+ "value" : 15,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt101010_2",
+ "value" : 16,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FPRoundingMode",
+ "enumerants" : [
+ {
+ "enumerant" : "RTE",
+ "value" : 0,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ },
+ {
+ "enumerant" : "RTZ",
+ "value" : 1,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ },
+ {
+ "enumerant" : "RTP",
+ "value" : 2,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ },
+ {
+ "enumerant" : "RTN",
+ "value" : 3,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "LinkageType",
+ "enumerants" : [
+ {
+ "enumerant" : "Export",
+ "value" : 0,
+ "capabilities" : [ "Linkage" ]
+ },
+ {
+ "enumerant" : "Import",
+ "value" : 1,
+ "capabilities" : [ "Linkage" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "AccessQualifier",
+ "enumerants" : [
+ {
+ "enumerant" : "ReadOnly",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WriteOnly",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ReadWrite",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FunctionParameterAttribute",
+ "enumerants" : [
+ {
+ "enumerant" : "Zext",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Sext",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ByVal",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Sret",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoAlias",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoCapture",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoWrite",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoReadWrite",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Decoration",
+ "enumerants" : [
+ {
+ "enumerant" : "RelaxedPrecision",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SpecId",
+ "value" : 1,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" }
+ ]
+ },
+ {
+ "enumerant" : "Block",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "BufferBlock",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "RowMajor",
+ "value" : 4,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "ColMajor",
+ "value" : 5,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "ArrayStride",
+ "value" : 6,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Array Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "MatrixStride",
+ "value" : 7,
+ "capabilities" : [ "Matrix" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "GLSLShared",
+ "value" : 8,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLSLPacked",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "CPacked",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "BuiltIn",
+ "value" : 11,
+ "parameters" : [
+ { "kind" : "BuiltIn" }
+ ]
+ },
+ {
+ "enumerant" : "NoPerspective",
+ "value" : 13,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Flat",
+ "value" : 14,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Patch",
+ "value" : 15,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Centroid",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Sample",
+ "value" : 17,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "Invariant",
+ "value" : 18,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Restrict",
+ "value" : 19
+ },
+ {
+ "enumerant" : "Aliased",
+ "value" : 20
+ },
+ {
+ "enumerant" : "Volatile",
+ "value" : 21
+ },
+ {
+ "enumerant" : "Constant",
+ "value" : 22,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Coherent",
+ "value" : 23
+ },
+ {
+ "enumerant" : "NonWritable",
+ "value" : 24
+ },
+ {
+ "enumerant" : "NonReadable",
+ "value" : 25
+ },
+ {
+ "enumerant" : "Uniform",
+ "value" : 26,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SaturatedConversion",
+ "value" : 28,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Stream",
+ "value" : 29,
+ "capabilities" : [ "GeometryStreams" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Stream Number'" }
+ ]
+ },
+ {
+ "enumerant" : "Location",
+ "value" : 30,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Location'" }
+ ]
+ },
+ {
+ "enumerant" : "Component",
+ "value" : 31,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Component'" }
+ ]
+ },
+ {
+ "enumerant" : "Index",
+ "value" : 32,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Index'" }
+ ]
+ },
+ {
+ "enumerant" : "Binding",
+ "value" : 33,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Binding Point'" }
+ ]
+ },
+ {
+ "enumerant" : "DescriptorSet",
+ "value" : 34,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" }
+ ]
+ },
+ {
+ "enumerant" : "Offset",
+ "value" : 35,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Byte Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "XfbBuffer",
+ "value" : 36,
+ "capabilities" : [ "TransformFeedback" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" }
+ ]
+ },
+ {
+ "enumerant" : "XfbStride",
+ "value" : 37,
+ "capabilities" : [ "TransformFeedback" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'XFB Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "FuncParamAttr",
+ "value" : 38,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" }
+ ]
+ },
+ {
+ "enumerant" : "FPRoundingMode",
+ "value" : 39,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ],
+ "parameters" : [
+ { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" }
+ ]
+ },
+ {
+ "enumerant" : "FPFastMathMode",
+ "value" : 40,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" }
+ ]
+ },
+ {
+ "enumerant" : "LinkageAttributes",
+ "value" : 41,
+ "capabilities" : [ "Linkage" ],
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Name'" },
+ { "kind" : "LinkageType", "name" : "'Linkage Type'" }
+ ]
+ },
+ {
+ "enumerant" : "NoContraction",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InputAttachmentIndex",
+ "value" : 43,
+ "capabilities" : [ "InputAttachment" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Attachment Index'" }
+ ]
+ },
+ {
+ "enumerant" : "Alignment",
+ "value" : 44,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Alignment'" }
+ ]
+ },
+ {
+ "enumerant" : "ExplicitInterpAMD",
+ "value" : 4999
+ },
+ {
+ "enumerant" : "OverrideCoverageNV",
+ "value" : 5248,
+ "capabilities" : [ "SampleMaskOverrideCoverageNV" ]
+ },
+ {
+ "enumerant" : "PassthroughNV",
+ "value" : 5250,
+ "capabilities" : [ "GeometryShaderPassthroughNV" ]
+ },
+ {
+ "enumerant" : "ViewportRelativeNV",
+ "value" : 5252,
+ "capabilities" : [ "ShaderViewportMaskNV" ]
+ },
+ {
+ "enumerant" : "SecondaryViewportRelativeNV",
+ "value" : 5256,
+ "capabilities" : [ "ShaderStereoViewNV" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "HlslCounterBufferGOOGLE",
+ "value" : 5634,
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Counter Buffer'" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ]
+ },
+ {
+ "enumerant" : "HlslSemanticGOOGLE",
+ "value" : 5635,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Semantic'" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "BuiltIn",
+ "enumerants" : [
+ {
+ "enumerant" : "Position",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointSize",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ClipDistance",
+ "value" : 3,
+ "capabilities" : [ "ClipDistance" ]
+ },
+ {
+ "enumerant" : "CullDistance",
+ "value" : 4,
+ "capabilities" : [ "CullDistance" ]
+ },
+ {
+ "enumerant" : "VertexId",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InstanceId",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PrimitiveId",
+ "value" : 7,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "InvocationId",
+ "value" : 8,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "Layer",
+ "value" : 9,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "ViewportIndex",
+ "value" : 10,
+ "capabilities" : [ "MultiViewport" ]
+ },
+ {
+ "enumerant" : "TessLevelOuter",
+ "value" : 11,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessLevelInner",
+ "value" : 12,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessCoord",
+ "value" : 13,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "PatchVertices",
+ "value" : 14,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "FragCoord",
+ "value" : 15,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointCoord",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "FrontFacing",
+ "value" : 17,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampleId",
+ "value" : 18,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "SamplePosition",
+ "value" : 19,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "SampleMask",
+ "value" : 20,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "FragDepth",
+ "value" : 22,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "HelperInvocation",
+ "value" : 23,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "NumWorkgroups",
+ "value" : 24
+ },
+ {
+ "enumerant" : "WorkgroupSize",
+ "value" : 25
+ },
+ {
+ "enumerant" : "WorkgroupId",
+ "value" : 26
+ },
+ {
+ "enumerant" : "LocalInvocationId",
+ "value" : 27
+ },
+ {
+ "enumerant" : "GlobalInvocationId",
+ "value" : 28
+ },
+ {
+ "enumerant" : "LocalInvocationIndex",
+ "value" : 29
+ },
+ {
+ "enumerant" : "WorkDim",
+ "value" : 30,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalSize",
+ "value" : 31,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "EnqueuedWorkgroupSize",
+ "value" : 32,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalOffset",
+ "value" : 33,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalLinearId",
+ "value" : 34,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupSize",
+ "value" : 36,
+ "capabilities" : [ "Kernel", "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupMaxSize",
+ "value" : 37,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NumSubgroups",
+ "value" : 38,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NumEnqueuedSubgroups",
+ "value" : 39,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupId",
+ "value" : 40,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupLocalInvocationId",
+ "value" : 41,
+ "capabilities" : [ "Kernel", "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "VertexIndex",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InstanceIndex",
+ "value" : 43,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SubgroupEqMaskKHR",
+ "value" : 4416,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupGeMaskKHR",
+ "value" : 4417,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupGtMaskKHR",
+ "value" : 4418,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupLeMaskKHR",
+ "value" : 4419,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupLtMaskKHR",
+ "value" : 4420,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "BaseVertex",
+ "value" : 4424,
+ "capabilities" : [ "DrawParameters" ]
+ },
+ {
+ "enumerant" : "BaseInstance",
+ "value" : 4425,
+ "capabilities" : [ "DrawParameters" ]
+ },
+ {
+ "enumerant" : "DrawIndex",
+ "value" : 4426,
+ "capabilities" : [ "DrawParameters" ]
+ },
+ {
+ "enumerant" : "DeviceIndex",
+ "value" : 4438,
+ "capabilities" : [ "DeviceGroup" ]
+ },
+ {
+ "enumerant" : "ViewIndex",
+ "value" : 4440,
+ "capabilities" : [ "MultiView" ]
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspAMD",
+ "value" : 4992
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspCentroidAMD",
+ "value" : 4993
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspSampleAMD",
+ "value" : 4994
+ },
+ {
+ "enumerant" : "BaryCoordSmoothAMD",
+ "value" : 4995
+ },
+ {
+ "enumerant" : "BaryCoordSmoothCentroidAMD",
+ "value" : 4996
+ },
+ {
+ "enumerant" : "BaryCoordSmoothSampleAMD",
+ "value" : 4997
+ },
+ {
+ "enumerant" : "BaryCoordPullModelAMD",
+ "value" : 4998
+ },
+ {
+ "enumerant" : "FragStencilRefEXT",
+ "value" : 5014,
+ "capabilities" : [ "StencilExportEXT" ]
+ },
+ {
+ "enumerant" : "ViewportMaskNV",
+ "value" : 5253,
+ "capabilities" : [ "ShaderViewportMaskNV" ]
+ },
+ {
+ "enumerant" : "SecondaryPositionNV",
+ "value" : 5257,
+ "capabilities" : [ "ShaderStereoViewNV" ]
+ },
+ {
+ "enumerant" : "SecondaryViewportMaskNV",
+ "value" : 5258,
+ "capabilities" : [ "ShaderStereoViewNV" ]
+ },
+ {
+ "enumerant" : "PositionPerViewNV",
+ "value" : 5261,
+ "capabilities" : [ "PerViewAttributesNV" ]
+ },
+ {
+ "enumerant" : "ViewportMaskPerViewNV",
+ "value" : 5262,
+ "capabilities" : [ "PerViewAttributesNV" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Scope",
+ "enumerants" : [
+ {
+ "enumerant" : "CrossDevice",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Device",
+ "value" : 1
+ },
+ {
+ "enumerant" : "Workgroup",
+ "value" : 2
+ },
+ {
+ "enumerant" : "Subgroup",
+ "value" : 3
+ },
+ {
+ "enumerant" : "Invocation",
+ "value" : 4
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "GroupOperation",
+ "enumerants" : [
+ {
+ "enumerant" : "Reduce",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "InclusiveScan",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ExclusiveScan",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "KernelEnqueueFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "NoWait",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WaitKernel",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WaitWorkGroup",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Capability",
+ "enumerants" : [
+ {
+ "enumerant" : "Matrix",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Shader",
+ "value" : 1,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "Geometry",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Tessellation",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Addresses",
+ "value" : 4
+ },
+ {
+ "enumerant" : "Linkage",
+ "value" : 5
+ },
+ {
+ "enumerant" : "Kernel",
+ "value" : 6
+ },
+ {
+ "enumerant" : "Vector16",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float16Buffer",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float16",
+ "value" : 9
+ },
+ {
+ "enumerant" : "Float64",
+ "value" : 10
+ },
+ {
+ "enumerant" : "Int64",
+ "value" : 11
+ },
+ {
+ "enumerant" : "Int64Atomics",
+ "value" : 12,
+ "capabilities" : [ "Int64" ]
+ },
+ {
+ "enumerant" : "ImageBasic",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ImageReadWrite",
+ "value" : 14,
+ "capabilities" : [ "ImageBasic" ]
+ },
+ {
+ "enumerant" : "ImageMipmap",
+ "value" : 15,
+ "capabilities" : [ "ImageBasic" ]
+ },
+ {
+ "enumerant" : "Pipes",
+ "value" : 17,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Groups",
+ "value" : 18
+ },
+ {
+ "enumerant" : "DeviceEnqueue",
+ "value" : 19,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "LiteralSampler",
+ "value" : 20,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "AtomicStorage",
+ "value" : 21,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Int16",
+ "value" : 22
+ },
+ {
+ "enumerant" : "TessellationPointSize",
+ "value" : 23,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "GeometryPointSize",
+ "value" : 24,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "ImageGatherExtended",
+ "value" : 25,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageMultisample",
+ "value" : 27,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "UniformBufferArrayDynamicIndexing",
+ "value" : 28,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampledImageArrayDynamicIndexing",
+ "value" : 29,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageBufferArrayDynamicIndexing",
+ "value" : 30,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageArrayDynamicIndexing",
+ "value" : 31,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ClipDistance",
+ "value" : 32,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "CullDistance",
+ "value" : 33,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageCubeArray",
+ "value" : 34,
+ "capabilities" : [ "SampledCubeArray" ]
+ },
+ {
+ "enumerant" : "SampleRateShading",
+ "value" : 35,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageRect",
+ "value" : 36,
+ "capabilities" : [ "SampledRect" ]
+ },
+ {
+ "enumerant" : "SampledRect",
+ "value" : 37,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GenericPointer",
+ "value" : 38,
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "enumerant" : "Int8",
+ "value" : 39,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "InputAttachment",
+ "value" : 40,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SparseResidency",
+ "value" : 41,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "MinLod",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Sampled1D",
+ "value" : 43
+ },
+ {
+ "enumerant" : "Image1D",
+ "value" : 44,
+ "capabilities" : [ "Sampled1D" ]
+ },
+ {
+ "enumerant" : "SampledCubeArray",
+ "value" : 45,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampledBuffer",
+ "value" : 46
+ },
+ {
+ "enumerant" : "ImageBuffer",
+ "value" : 47,
+ "capabilities" : [ "SampledBuffer" ]
+ },
+ {
+ "enumerant" : "ImageMSArray",
+ "value" : 48,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageExtendedFormats",
+ "value" : 49,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageQuery",
+ "value" : 50,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DerivativeControl",
+ "value" : 51,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InterpolationFunction",
+ "value" : 52,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "TransformFeedback",
+ "value" : 53,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GeometryStreams",
+ "value" : 54,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "StorageImageReadWithoutFormat",
+ "value" : 55,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageWriteWithoutFormat",
+ "value" : 56,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "MultiViewport",
+ "value" : 57,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "SubgroupBallotKHR",
+ "value" : 4423,
+ "extensions" : [ "SPV_KHR_shader_ballot" ]
+ },
+ {
+ "enumerant" : "DrawParameters",
+ "value" : 4427,
+ "extensions" : [ "SPV_KHR_shader_draw_parameters" ]
+ },
+ {
+ "enumerant" : "SubgroupVoteKHR",
+ "value" : 4431,
+ "extensions" : [ "SPV_KHR_subgroup_vote" ]
+ },
+ {
+ "enumerant" : "StorageBuffer16BitAccess",
+ "value" : 4433,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StorageUniformBufferBlock16",
+ "value" : 4433,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "UniformAndStorageBuffer16BitAccess",
+ "value" : 4434,
+ "capabilities" : [
+ "StorageBuffer16BitAccess",
+ "StorageUniformBufferBlock16"
+ ],
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StorageUniform16",
+ "value" : 4434,
+ "capabilities" : [
+ "StorageBuffer16BitAccess",
+ "StorageUniformBufferBlock16"
+ ],
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StoragePushConstant16",
+ "value" : 4435,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StorageInputOutput16",
+ "value" : 4436,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "DeviceGroup",
+ "value" : 4437,
+ "extensions" : [ "SPV_KHR_device_group" ]
+ },
+ {
+ "enumerant" : "MultiView",
+ "value" : 4439,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_multiview" ]
+ },
+ {
+ "enumerant" : "VariablePointersStorageBuffer",
+ "value" : 4441,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_variable_pointers" ]
+ },
+ {
+ "enumerant" : "VariablePointers",
+ "value" : 4442,
+ "capabilities" : [ "VariablePointersStorageBuffer" ],
+ "extensions" : [ "SPV_KHR_variable_pointers" ]
+ },
+ {
+ "enumerant": "AtomicStorageOps",
+ "value": 4445,
+ "extensions": [ "SPV_KHR_shader_atomic_counter_ops" ]
+ },
+ {
+ "enumerant" : "SampleMaskPostDepthCoverage",
+ "value" : 4447,
+ "extensions" : [ "SPV_KHR_post_depth_coverage" ]
+ },
+ {
+ "enumerant" : "ImageGatherBiasLodAMD",
+ "value" : 5009,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ]
+ },
+ {
+ "enumerant" : "FragmentMaskAMD",
+ "value" : 5010,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_shader_fragment_mask" ]
+ },
+ {
+ "enumerant" : "StencilExportEXT",
+ "value" : 5013,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_shader_stencil_export" ]
+ },
+ {
+ "enumerant" : "ImageReadWriteLodAMD",
+ "value" : 5015,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ]
+ },
+ {
+ "enumerant" : "SampleMaskOverrideCoverageNV",
+ "value" : 5249,
+ "capabilities" : [ "SampleRateShading" ],
+ "extensions" : [ "SPV_NV_sample_mask_override_coverage" ]
+ },
+ {
+ "enumerant" : "GeometryShaderPassthroughNV",
+ "value" : 5251,
+ "capabilities" : [ "Geometry" ],
+ "extensions" : [ "SPV_NV_geometry_shader_passthrough" ]
+ },
+ {
+ "enumerant" : "ShaderViewportIndexLayerEXT",
+ "value" : 5254,
+ "capabilities" : [ "MultiViewport" ],
+ "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ]
+ },
+ {
+ "enumerant" : "ShaderViewportIndexLayerNV",
+ "value" : 5254,
+ "capabilities" : [ "MultiViewport" ],
+ "extensions" : [ "SPV_NV_viewport_array2" ]
+ },
+ {
+ "enumerant" : "ShaderViewportMaskNV",
+ "value" : 5255,
+ "capabilities" : [ "ShaderViewportIndexLayerNV" ],
+ "extensions" : [ "SPV_NV_viewport_array2" ]
+ },
+ {
+ "enumerant" : "ShaderStereoViewNV",
+ "value" : 5259,
+ "capabilities" : [ "ShaderViewportMaskNV" ],
+ "extensions" : [ "SPV_NV_stereo_view_rendering" ]
+ },
+ {
+ "enumerant" : "PerViewAttributesNV",
+ "value" : 5260,
+ "capabilities" : [ "MultiView" ],
+ "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ]
+ },
+ {
+ "enumerant" : "SubgroupShuffleINTEL",
+ "value" : 5568,
+ "extensions" : [ "SPV_INTEL_subgroups" ]
+ },
+ {
+ "enumerant" : "SubgroupBufferBlockIOINTEL",
+ "value" : 5569,
+ "extensions" : [ "SPV_INTEL_subgroups" ]
+ },
+ {
+ "enumerant" : "SubgroupImageBlockIOINTEL",
+ "value" : 5570,
+ "extensions" : [ "SPV_INTEL_subgroups" ]
+ }
+ ]
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdResultType",
+ "doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdResult",
+ "doc" : "Definition of an <id> representing the result of the enclosing instruction"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdMemorySemantics",
+ "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the MemorySemantics operand kind"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdScope",
+ "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the Scope operand kind"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdRef",
+ "doc" : "Reference to an <id>"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralInteger",
+ "doc" : "An integer consuming one or more words"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralString",
+ "doc" : "A null-terminated stream of characters consuming an integral number of words"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralContextDependentNumber",
+ "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralExtInstInteger",
+ "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralSpecConstantOpInteger",
+ "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)"
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairLiteralIntegerIdRef",
+ "bases" : [ "LiteralInteger", "IdRef" ]
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairIdRefLiteralInteger",
+ "bases" : [ "IdRef", "LiteralInteger" ]
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairIdRefIdRef",
+ "bases" : [ "IdRef", "IdRef" ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.cs b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.cs
new file mode 100644
index 0000000000..de325cc4aa
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.cs
@@ -0,0 +1,993 @@
+// Copyright (c) 2014-2018 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#
+//
+// - 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
+//
+// 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
+{
+
+ public static class Specification
+ {
+ public const uint MagicNumber = 0x07230203;
+ public const uint Version = 0x00010000;
+ public const uint Revision = 12;
+ public const uint OpCodeMask = 0xffff;
+ public const uint WordCountShift = 16;
+
+ public enum SourceLanguage
+ {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ }
+
+ public enum ExecutionModel
+ {
+ Vertex = 0,
+ TessellationControl = 1,
+ TessellationEvaluation = 2,
+ Geometry = 3,
+ Fragment = 4,
+ GLCompute = 5,
+ Kernel = 6,
+ }
+
+ public enum AddressingModel
+ {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ }
+
+ public enum MemoryModel
+ {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ }
+
+ 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,
+ PostDepthCoverage = 4446,
+ StencilRefReplacingEXT = 5027,
+ }
+
+ 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,
+ }
+
+ public enum Dim
+ {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ }
+
+ public enum SamplerAddressingMode
+ {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ }
+
+ public enum SamplerFilterMode
+ {
+ Nearest = 0,
+ Linear = 1,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ public enum ImageOperandsShift
+ {
+ Bias = 0,
+ Lod = 1,
+ Grad = 2,
+ ConstOffset = 3,
+ Offset = 4,
+ ConstOffsets = 5,
+ Sample = 6,
+ MinLod = 7,
+ }
+
+ public enum ImageOperandsMask
+ {
+ MaskNone = 0,
+ Bias = 0x00000001,
+ Lod = 0x00000002,
+ Grad = 0x00000004,
+ ConstOffset = 0x00000008,
+ Offset = 0x00000010,
+ ConstOffsets = 0x00000020,
+ Sample = 0x00000040,
+ MinLod = 0x00000080,
+ }
+
+ public enum FPFastMathModeShift
+ {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ }
+
+ public enum FPFastMathModeMask
+ {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+ }
+
+ public enum FPRoundingMode
+ {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ }
+
+ public enum LinkageType
+ {
+ Export = 0,
+ Import = 1,
+ }
+
+ public enum AccessQualifier
+ {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ }
+
+ public enum FunctionParameterAttribute
+ {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ }
+
+ 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,
+ 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,
+ ExplicitInterpAMD = 4999,
+ OverrideCoverageNV = 5248,
+ PassthroughNV = 5250,
+ ViewportRelativeNV = 5252,
+ SecondaryViewportRelativeNV = 5256,
+ HlslCounterBufferGOOGLE = 5634,
+ HlslSemanticGOOGLE = 5635,
+ }
+
+ 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,
+ SubgroupEqMaskKHR = 4416,
+ SubgroupGeMaskKHR = 4417,
+ SubgroupGtMaskKHR = 4418,
+ SubgroupLeMaskKHR = 4419,
+ SubgroupLtMaskKHR = 4420,
+ BaseVertex = 4424,
+ BaseInstance = 4425,
+ DrawIndex = 4426,
+ DeviceIndex = 4438,
+ ViewIndex = 4440,
+ 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,
+ }
+
+ public enum SelectionControlShift
+ {
+ Flatten = 0,
+ DontFlatten = 1,
+ }
+
+ public enum SelectionControlMask
+ {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+ }
+
+ public enum LoopControlShift
+ {
+ Unroll = 0,
+ DontUnroll = 1,
+ }
+
+ public enum LoopControlMask
+ {
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+ }
+
+ public enum FunctionControlShift
+ {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ }
+
+ public enum FunctionControlMask
+ {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+ }
+
+ public enum MemorySemanticsShift
+ {
+ Acquire = 1,
+ Release = 2,
+ AcquireRelease = 3,
+ SequentiallyConsistent = 4,
+ UniformMemory = 6,
+ SubgroupMemory = 7,
+ WorkgroupMemory = 8,
+ CrossWorkgroupMemory = 9,
+ AtomicCounterMemory = 10,
+ ImageMemory = 11,
+ }
+
+ 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,
+ }
+
+ public enum MemoryAccessShift
+ {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ }
+
+ public enum MemoryAccessMask
+ {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+ }
+
+ public enum Scope
+ {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ }
+
+ public enum GroupOperation
+ {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ }
+
+ public enum KernelEnqueueFlags
+ {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ }
+
+ public enum KernelProfilingInfoShift
+ {
+ CmdExecTime = 0,
+ }
+
+ public enum KernelProfilingInfoMask
+ {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+ }
+
+ 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,
+ SubgroupBallotKHR = 4423,
+ DrawParameters = 4427,
+ 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,
+ ImageGatherBiasLodAMD = 5009,
+ FragmentMaskAMD = 5010,
+ StencilExportEXT = 5013,
+ ImageReadWriteLodAMD = 5015,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerEXT = 5254,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ SubgroupShuffleINTEL = 5568,
+ SubgroupBufferBlockIOINTEL = 5569,
+ SubgroupImageBlockIOINTEL = 5570,
+ }
+
+ 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,
+ OpDecorateId = 332,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateStringGOOGLE = 5633,
+ }
+ }
+}
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.h
new file mode 100644
index 0000000000..bd5a9b9593
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.h
@@ -0,0 +1,993 @@
+/*
+** Copyright (c) 2014-2018 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+/*
+** This header is automatically generated by the same tool that creates
+** the Binary Section of the SPIR-V specification.
+*/
+
+/*
+** Enumeration tokens for SPIR-V, in various styles:
+** C, C++, C++11, JSON, Lua, Python
+**
+** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+**
+** Some tokens act like mask values, which can be OR'd together,
+** while others are mutually exclusive. The mask-like ones have
+** "Mask" in their name, and a parallel enum that has the shift
+** amount (1 << x) for each corresponding enumerant.
+*/
+
+#ifndef spirv_H
+#define spirv_H
+
+typedef unsigned int SpvId;
+
+#define SPV_VERSION 0x10000
+#define SPV_REVISION 12
+
+static const unsigned int SpvMagicNumber = 0x07230203;
+static const unsigned int SpvVersion = 0x00010000;
+static const unsigned int SpvRevision = 12;
+static const unsigned int SpvOpCodeMask = 0xffff;
+static const unsigned int SpvWordCountShift = 16;
+
+typedef enum SpvSourceLanguage_ {
+ SpvSourceLanguageUnknown = 0,
+ SpvSourceLanguageESSL = 1,
+ SpvSourceLanguageGLSL = 2,
+ SpvSourceLanguageOpenCL_C = 3,
+ SpvSourceLanguageOpenCL_CPP = 4,
+ SpvSourceLanguageHLSL = 5,
+ SpvSourceLanguageMax = 0x7fffffff,
+} SpvSourceLanguage;
+
+typedef enum SpvExecutionModel_ {
+ SpvExecutionModelVertex = 0,
+ SpvExecutionModelTessellationControl = 1,
+ SpvExecutionModelTessellationEvaluation = 2,
+ SpvExecutionModelGeometry = 3,
+ SpvExecutionModelFragment = 4,
+ SpvExecutionModelGLCompute = 5,
+ SpvExecutionModelKernel = 6,
+ SpvExecutionModelMax = 0x7fffffff,
+} SpvExecutionModel;
+
+typedef enum SpvAddressingModel_ {
+ SpvAddressingModelLogical = 0,
+ SpvAddressingModelPhysical32 = 1,
+ SpvAddressingModelPhysical64 = 2,
+ SpvAddressingModelMax = 0x7fffffff,
+} SpvAddressingModel;
+
+typedef enum SpvMemoryModel_ {
+ SpvMemoryModelSimple = 0,
+ SpvMemoryModelGLSL450 = 1,
+ SpvMemoryModelOpenCL = 2,
+ SpvMemoryModelMax = 0x7fffffff,
+} SpvMemoryModel;
+
+typedef enum SpvExecutionMode_ {
+ SpvExecutionModeInvocations = 0,
+ SpvExecutionModeSpacingEqual = 1,
+ SpvExecutionModeSpacingFractionalEven = 2,
+ SpvExecutionModeSpacingFractionalOdd = 3,
+ SpvExecutionModeVertexOrderCw = 4,
+ SpvExecutionModeVertexOrderCcw = 5,
+ SpvExecutionModePixelCenterInteger = 6,
+ SpvExecutionModeOriginUpperLeft = 7,
+ SpvExecutionModeOriginLowerLeft = 8,
+ SpvExecutionModeEarlyFragmentTests = 9,
+ SpvExecutionModePointMode = 10,
+ SpvExecutionModeXfb = 11,
+ SpvExecutionModeDepthReplacing = 12,
+ SpvExecutionModeDepthGreater = 14,
+ SpvExecutionModeDepthLess = 15,
+ SpvExecutionModeDepthUnchanged = 16,
+ SpvExecutionModeLocalSize = 17,
+ SpvExecutionModeLocalSizeHint = 18,
+ SpvExecutionModeInputPoints = 19,
+ SpvExecutionModeInputLines = 20,
+ SpvExecutionModeInputLinesAdjacency = 21,
+ SpvExecutionModeTriangles = 22,
+ SpvExecutionModeInputTrianglesAdjacency = 23,
+ SpvExecutionModeQuads = 24,
+ SpvExecutionModeIsolines = 25,
+ SpvExecutionModeOutputVertices = 26,
+ SpvExecutionModeOutputPoints = 27,
+ SpvExecutionModeOutputLineStrip = 28,
+ SpvExecutionModeOutputTriangleStrip = 29,
+ SpvExecutionModeVecTypeHint = 30,
+ SpvExecutionModeContractionOff = 31,
+ SpvExecutionModePostDepthCoverage = 4446,
+ SpvExecutionModeStencilRefReplacingEXT = 5027,
+ SpvExecutionModeMax = 0x7fffffff,
+} SpvExecutionMode;
+
+typedef enum SpvStorageClass_ {
+ SpvStorageClassUniformConstant = 0,
+ SpvStorageClassInput = 1,
+ SpvStorageClassUniform = 2,
+ SpvStorageClassOutput = 3,
+ SpvStorageClassWorkgroup = 4,
+ SpvStorageClassCrossWorkgroup = 5,
+ SpvStorageClassPrivate = 6,
+ SpvStorageClassFunction = 7,
+ SpvStorageClassGeneric = 8,
+ SpvStorageClassPushConstant = 9,
+ SpvStorageClassAtomicCounter = 10,
+ SpvStorageClassImage = 11,
+ SpvStorageClassStorageBuffer = 12,
+ SpvStorageClassMax = 0x7fffffff,
+} SpvStorageClass;
+
+typedef enum SpvDim_ {
+ SpvDim1D = 0,
+ SpvDim2D = 1,
+ SpvDim3D = 2,
+ SpvDimCube = 3,
+ SpvDimRect = 4,
+ SpvDimBuffer = 5,
+ SpvDimSubpassData = 6,
+ SpvDimMax = 0x7fffffff,
+} SpvDim;
+
+typedef enum SpvSamplerAddressingMode_ {
+ SpvSamplerAddressingModeNone = 0,
+ SpvSamplerAddressingModeClampToEdge = 1,
+ SpvSamplerAddressingModeClamp = 2,
+ SpvSamplerAddressingModeRepeat = 3,
+ SpvSamplerAddressingModeRepeatMirrored = 4,
+ SpvSamplerAddressingModeMax = 0x7fffffff,
+} SpvSamplerAddressingMode;
+
+typedef enum SpvSamplerFilterMode_ {
+ SpvSamplerFilterModeNearest = 0,
+ SpvSamplerFilterModeLinear = 1,
+ SpvSamplerFilterModeMax = 0x7fffffff,
+} SpvSamplerFilterMode;
+
+typedef enum SpvImageFormat_ {
+ SpvImageFormatUnknown = 0,
+ SpvImageFormatRgba32f = 1,
+ SpvImageFormatRgba16f = 2,
+ SpvImageFormatR32f = 3,
+ SpvImageFormatRgba8 = 4,
+ SpvImageFormatRgba8Snorm = 5,
+ SpvImageFormatRg32f = 6,
+ SpvImageFormatRg16f = 7,
+ SpvImageFormatR11fG11fB10f = 8,
+ SpvImageFormatR16f = 9,
+ SpvImageFormatRgba16 = 10,
+ SpvImageFormatRgb10A2 = 11,
+ SpvImageFormatRg16 = 12,
+ SpvImageFormatRg8 = 13,
+ SpvImageFormatR16 = 14,
+ SpvImageFormatR8 = 15,
+ SpvImageFormatRgba16Snorm = 16,
+ SpvImageFormatRg16Snorm = 17,
+ SpvImageFormatRg8Snorm = 18,
+ SpvImageFormatR16Snorm = 19,
+ SpvImageFormatR8Snorm = 20,
+ SpvImageFormatRgba32i = 21,
+ SpvImageFormatRgba16i = 22,
+ SpvImageFormatRgba8i = 23,
+ SpvImageFormatR32i = 24,
+ SpvImageFormatRg32i = 25,
+ SpvImageFormatRg16i = 26,
+ SpvImageFormatRg8i = 27,
+ SpvImageFormatR16i = 28,
+ SpvImageFormatR8i = 29,
+ SpvImageFormatRgba32ui = 30,
+ SpvImageFormatRgba16ui = 31,
+ SpvImageFormatRgba8ui = 32,
+ SpvImageFormatR32ui = 33,
+ SpvImageFormatRgb10a2ui = 34,
+ SpvImageFormatRg32ui = 35,
+ SpvImageFormatRg16ui = 36,
+ SpvImageFormatRg8ui = 37,
+ SpvImageFormatR16ui = 38,
+ SpvImageFormatR8ui = 39,
+ SpvImageFormatMax = 0x7fffffff,
+} SpvImageFormat;
+
+typedef enum SpvImageChannelOrder_ {
+ SpvImageChannelOrderR = 0,
+ SpvImageChannelOrderA = 1,
+ SpvImageChannelOrderRG = 2,
+ SpvImageChannelOrderRA = 3,
+ SpvImageChannelOrderRGB = 4,
+ SpvImageChannelOrderRGBA = 5,
+ SpvImageChannelOrderBGRA = 6,
+ SpvImageChannelOrderARGB = 7,
+ SpvImageChannelOrderIntensity = 8,
+ SpvImageChannelOrderLuminance = 9,
+ SpvImageChannelOrderRx = 10,
+ SpvImageChannelOrderRGx = 11,
+ SpvImageChannelOrderRGBx = 12,
+ SpvImageChannelOrderDepth = 13,
+ SpvImageChannelOrderDepthStencil = 14,
+ SpvImageChannelOrdersRGB = 15,
+ SpvImageChannelOrdersRGBx = 16,
+ SpvImageChannelOrdersRGBA = 17,
+ SpvImageChannelOrdersBGRA = 18,
+ SpvImageChannelOrderABGR = 19,
+ SpvImageChannelOrderMax = 0x7fffffff,
+} SpvImageChannelOrder;
+
+typedef enum SpvImageChannelDataType_ {
+ SpvImageChannelDataTypeSnormInt8 = 0,
+ SpvImageChannelDataTypeSnormInt16 = 1,
+ SpvImageChannelDataTypeUnormInt8 = 2,
+ SpvImageChannelDataTypeUnormInt16 = 3,
+ SpvImageChannelDataTypeUnormShort565 = 4,
+ SpvImageChannelDataTypeUnormShort555 = 5,
+ SpvImageChannelDataTypeUnormInt101010 = 6,
+ SpvImageChannelDataTypeSignedInt8 = 7,
+ SpvImageChannelDataTypeSignedInt16 = 8,
+ SpvImageChannelDataTypeSignedInt32 = 9,
+ SpvImageChannelDataTypeUnsignedInt8 = 10,
+ SpvImageChannelDataTypeUnsignedInt16 = 11,
+ SpvImageChannelDataTypeUnsignedInt32 = 12,
+ SpvImageChannelDataTypeHalfFloat = 13,
+ SpvImageChannelDataTypeFloat = 14,
+ SpvImageChannelDataTypeUnormInt24 = 15,
+ SpvImageChannelDataTypeUnormInt101010_2 = 16,
+ SpvImageChannelDataTypeMax = 0x7fffffff,
+} SpvImageChannelDataType;
+
+typedef enum SpvImageOperandsShift_ {
+ SpvImageOperandsBiasShift = 0,
+ SpvImageOperandsLodShift = 1,
+ SpvImageOperandsGradShift = 2,
+ SpvImageOperandsConstOffsetShift = 3,
+ SpvImageOperandsOffsetShift = 4,
+ SpvImageOperandsConstOffsetsShift = 5,
+ SpvImageOperandsSampleShift = 6,
+ SpvImageOperandsMinLodShift = 7,
+ SpvImageOperandsMax = 0x7fffffff,
+} SpvImageOperandsShift;
+
+typedef enum SpvImageOperandsMask_ {
+ SpvImageOperandsMaskNone = 0,
+ SpvImageOperandsBiasMask = 0x00000001,
+ SpvImageOperandsLodMask = 0x00000002,
+ SpvImageOperandsGradMask = 0x00000004,
+ SpvImageOperandsConstOffsetMask = 0x00000008,
+ SpvImageOperandsOffsetMask = 0x00000010,
+ SpvImageOperandsConstOffsetsMask = 0x00000020,
+ SpvImageOperandsSampleMask = 0x00000040,
+ SpvImageOperandsMinLodMask = 0x00000080,
+} SpvImageOperandsMask;
+
+typedef enum SpvFPFastMathModeShift_ {
+ SpvFPFastMathModeNotNaNShift = 0,
+ SpvFPFastMathModeNotInfShift = 1,
+ SpvFPFastMathModeNSZShift = 2,
+ SpvFPFastMathModeAllowRecipShift = 3,
+ SpvFPFastMathModeFastShift = 4,
+ SpvFPFastMathModeMax = 0x7fffffff,
+} SpvFPFastMathModeShift;
+
+typedef enum SpvFPFastMathModeMask_ {
+ SpvFPFastMathModeMaskNone = 0,
+ SpvFPFastMathModeNotNaNMask = 0x00000001,
+ SpvFPFastMathModeNotInfMask = 0x00000002,
+ SpvFPFastMathModeNSZMask = 0x00000004,
+ SpvFPFastMathModeAllowRecipMask = 0x00000008,
+ SpvFPFastMathModeFastMask = 0x00000010,
+} SpvFPFastMathModeMask;
+
+typedef enum SpvFPRoundingMode_ {
+ SpvFPRoundingModeRTE = 0,
+ SpvFPRoundingModeRTZ = 1,
+ SpvFPRoundingModeRTP = 2,
+ SpvFPRoundingModeRTN = 3,
+ SpvFPRoundingModeMax = 0x7fffffff,
+} SpvFPRoundingMode;
+
+typedef enum SpvLinkageType_ {
+ SpvLinkageTypeExport = 0,
+ SpvLinkageTypeImport = 1,
+ SpvLinkageTypeMax = 0x7fffffff,
+} SpvLinkageType;
+
+typedef enum SpvAccessQualifier_ {
+ SpvAccessQualifierReadOnly = 0,
+ SpvAccessQualifierWriteOnly = 1,
+ SpvAccessQualifierReadWrite = 2,
+ SpvAccessQualifierMax = 0x7fffffff,
+} SpvAccessQualifier;
+
+typedef enum SpvFunctionParameterAttribute_ {
+ SpvFunctionParameterAttributeZext = 0,
+ SpvFunctionParameterAttributeSext = 1,
+ SpvFunctionParameterAttributeByVal = 2,
+ SpvFunctionParameterAttributeSret = 3,
+ SpvFunctionParameterAttributeNoAlias = 4,
+ SpvFunctionParameterAttributeNoCapture = 5,
+ SpvFunctionParameterAttributeNoWrite = 6,
+ SpvFunctionParameterAttributeNoReadWrite = 7,
+ SpvFunctionParameterAttributeMax = 0x7fffffff,
+} SpvFunctionParameterAttribute;
+
+typedef enum SpvDecoration_ {
+ SpvDecorationRelaxedPrecision = 0,
+ SpvDecorationSpecId = 1,
+ SpvDecorationBlock = 2,
+ SpvDecorationBufferBlock = 3,
+ SpvDecorationRowMajor = 4,
+ SpvDecorationColMajor = 5,
+ SpvDecorationArrayStride = 6,
+ SpvDecorationMatrixStride = 7,
+ SpvDecorationGLSLShared = 8,
+ SpvDecorationGLSLPacked = 9,
+ SpvDecorationCPacked = 10,
+ SpvDecorationBuiltIn = 11,
+ SpvDecorationNoPerspective = 13,
+ SpvDecorationFlat = 14,
+ SpvDecorationPatch = 15,
+ SpvDecorationCentroid = 16,
+ SpvDecorationSample = 17,
+ SpvDecorationInvariant = 18,
+ SpvDecorationRestrict = 19,
+ SpvDecorationAliased = 20,
+ SpvDecorationVolatile = 21,
+ SpvDecorationConstant = 22,
+ SpvDecorationCoherent = 23,
+ SpvDecorationNonWritable = 24,
+ SpvDecorationNonReadable = 25,
+ SpvDecorationUniform = 26,
+ SpvDecorationSaturatedConversion = 28,
+ SpvDecorationStream = 29,
+ SpvDecorationLocation = 30,
+ SpvDecorationComponent = 31,
+ SpvDecorationIndex = 32,
+ SpvDecorationBinding = 33,
+ SpvDecorationDescriptorSet = 34,
+ SpvDecorationOffset = 35,
+ SpvDecorationXfbBuffer = 36,
+ SpvDecorationXfbStride = 37,
+ SpvDecorationFuncParamAttr = 38,
+ SpvDecorationFPRoundingMode = 39,
+ SpvDecorationFPFastMathMode = 40,
+ SpvDecorationLinkageAttributes = 41,
+ SpvDecorationNoContraction = 42,
+ SpvDecorationInputAttachmentIndex = 43,
+ SpvDecorationAlignment = 44,
+ SpvDecorationExplicitInterpAMD = 4999,
+ SpvDecorationOverrideCoverageNV = 5248,
+ SpvDecorationPassthroughNV = 5250,
+ SpvDecorationViewportRelativeNV = 5252,
+ SpvDecorationSecondaryViewportRelativeNV = 5256,
+ SpvDecorationHlslCounterBufferGOOGLE = 5634,
+ SpvDecorationHlslSemanticGOOGLE = 5635,
+ SpvDecorationMax = 0x7fffffff,
+} SpvDecoration;
+
+typedef enum SpvBuiltIn_ {
+ SpvBuiltInPosition = 0,
+ SpvBuiltInPointSize = 1,
+ SpvBuiltInClipDistance = 3,
+ SpvBuiltInCullDistance = 4,
+ SpvBuiltInVertexId = 5,
+ SpvBuiltInInstanceId = 6,
+ SpvBuiltInPrimitiveId = 7,
+ SpvBuiltInInvocationId = 8,
+ SpvBuiltInLayer = 9,
+ SpvBuiltInViewportIndex = 10,
+ SpvBuiltInTessLevelOuter = 11,
+ SpvBuiltInTessLevelInner = 12,
+ SpvBuiltInTessCoord = 13,
+ SpvBuiltInPatchVertices = 14,
+ SpvBuiltInFragCoord = 15,
+ SpvBuiltInPointCoord = 16,
+ SpvBuiltInFrontFacing = 17,
+ SpvBuiltInSampleId = 18,
+ SpvBuiltInSamplePosition = 19,
+ SpvBuiltInSampleMask = 20,
+ SpvBuiltInFragDepth = 22,
+ SpvBuiltInHelperInvocation = 23,
+ SpvBuiltInNumWorkgroups = 24,
+ SpvBuiltInWorkgroupSize = 25,
+ SpvBuiltInWorkgroupId = 26,
+ SpvBuiltInLocalInvocationId = 27,
+ SpvBuiltInGlobalInvocationId = 28,
+ SpvBuiltInLocalInvocationIndex = 29,
+ SpvBuiltInWorkDim = 30,
+ SpvBuiltInGlobalSize = 31,
+ SpvBuiltInEnqueuedWorkgroupSize = 32,
+ SpvBuiltInGlobalOffset = 33,
+ SpvBuiltInGlobalLinearId = 34,
+ SpvBuiltInSubgroupSize = 36,
+ SpvBuiltInSubgroupMaxSize = 37,
+ SpvBuiltInNumSubgroups = 38,
+ SpvBuiltInNumEnqueuedSubgroups = 39,
+ SpvBuiltInSubgroupId = 40,
+ SpvBuiltInSubgroupLocalInvocationId = 41,
+ SpvBuiltInVertexIndex = 42,
+ SpvBuiltInInstanceIndex = 43,
+ SpvBuiltInSubgroupEqMaskKHR = 4416,
+ SpvBuiltInSubgroupGeMaskKHR = 4417,
+ SpvBuiltInSubgroupGtMaskKHR = 4418,
+ SpvBuiltInSubgroupLeMaskKHR = 4419,
+ SpvBuiltInSubgroupLtMaskKHR = 4420,
+ SpvBuiltInBaseVertex = 4424,
+ SpvBuiltInBaseInstance = 4425,
+ SpvBuiltInDrawIndex = 4426,
+ SpvBuiltInDeviceIndex = 4438,
+ SpvBuiltInViewIndex = 4440,
+ SpvBuiltInBaryCoordNoPerspAMD = 4992,
+ SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
+ SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
+ SpvBuiltInBaryCoordSmoothAMD = 4995,
+ SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
+ SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
+ SpvBuiltInBaryCoordPullModelAMD = 4998,
+ SpvBuiltInFragStencilRefEXT = 5014,
+ SpvBuiltInViewportMaskNV = 5253,
+ SpvBuiltInSecondaryPositionNV = 5257,
+ SpvBuiltInSecondaryViewportMaskNV = 5258,
+ SpvBuiltInPositionPerViewNV = 5261,
+ SpvBuiltInViewportMaskPerViewNV = 5262,
+ SpvBuiltInMax = 0x7fffffff,
+} SpvBuiltIn;
+
+typedef enum SpvSelectionControlShift_ {
+ SpvSelectionControlFlattenShift = 0,
+ SpvSelectionControlDontFlattenShift = 1,
+ SpvSelectionControlMax = 0x7fffffff,
+} SpvSelectionControlShift;
+
+typedef enum SpvSelectionControlMask_ {
+ SpvSelectionControlMaskNone = 0,
+ SpvSelectionControlFlattenMask = 0x00000001,
+ SpvSelectionControlDontFlattenMask = 0x00000002,
+} SpvSelectionControlMask;
+
+typedef enum SpvLoopControlShift_ {
+ SpvLoopControlUnrollShift = 0,
+ SpvLoopControlDontUnrollShift = 1,
+ SpvLoopControlMax = 0x7fffffff,
+} SpvLoopControlShift;
+
+typedef enum SpvLoopControlMask_ {
+ SpvLoopControlMaskNone = 0,
+ SpvLoopControlUnrollMask = 0x00000001,
+ SpvLoopControlDontUnrollMask = 0x00000002,
+} SpvLoopControlMask;
+
+typedef enum SpvFunctionControlShift_ {
+ SpvFunctionControlInlineShift = 0,
+ SpvFunctionControlDontInlineShift = 1,
+ SpvFunctionControlPureShift = 2,
+ SpvFunctionControlConstShift = 3,
+ SpvFunctionControlMax = 0x7fffffff,
+} SpvFunctionControlShift;
+
+typedef enum SpvFunctionControlMask_ {
+ SpvFunctionControlMaskNone = 0,
+ SpvFunctionControlInlineMask = 0x00000001,
+ SpvFunctionControlDontInlineMask = 0x00000002,
+ SpvFunctionControlPureMask = 0x00000004,
+ SpvFunctionControlConstMask = 0x00000008,
+} SpvFunctionControlMask;
+
+typedef enum SpvMemorySemanticsShift_ {
+ SpvMemorySemanticsAcquireShift = 1,
+ SpvMemorySemanticsReleaseShift = 2,
+ SpvMemorySemanticsAcquireReleaseShift = 3,
+ SpvMemorySemanticsSequentiallyConsistentShift = 4,
+ SpvMemorySemanticsUniformMemoryShift = 6,
+ SpvMemorySemanticsSubgroupMemoryShift = 7,
+ SpvMemorySemanticsWorkgroupMemoryShift = 8,
+ SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
+ SpvMemorySemanticsAtomicCounterMemoryShift = 10,
+ SpvMemorySemanticsImageMemoryShift = 11,
+ SpvMemorySemanticsMax = 0x7fffffff,
+} SpvMemorySemanticsShift;
+
+typedef enum SpvMemorySemanticsMask_ {
+ SpvMemorySemanticsMaskNone = 0,
+ SpvMemorySemanticsAcquireMask = 0x00000002,
+ SpvMemorySemanticsReleaseMask = 0x00000004,
+ SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
+ SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
+ SpvMemorySemanticsUniformMemoryMask = 0x00000040,
+ SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
+ SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
+ SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
+ SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
+ SpvMemorySemanticsImageMemoryMask = 0x00000800,
+} SpvMemorySemanticsMask;
+
+typedef enum SpvMemoryAccessShift_ {
+ SpvMemoryAccessVolatileShift = 0,
+ SpvMemoryAccessAlignedShift = 1,
+ SpvMemoryAccessNontemporalShift = 2,
+ SpvMemoryAccessMax = 0x7fffffff,
+} SpvMemoryAccessShift;
+
+typedef enum SpvMemoryAccessMask_ {
+ SpvMemoryAccessMaskNone = 0,
+ SpvMemoryAccessVolatileMask = 0x00000001,
+ SpvMemoryAccessAlignedMask = 0x00000002,
+ SpvMemoryAccessNontemporalMask = 0x00000004,
+} SpvMemoryAccessMask;
+
+typedef enum SpvScope_ {
+ SpvScopeCrossDevice = 0,
+ SpvScopeDevice = 1,
+ SpvScopeWorkgroup = 2,
+ SpvScopeSubgroup = 3,
+ SpvScopeInvocation = 4,
+ SpvScopeMax = 0x7fffffff,
+} SpvScope;
+
+typedef enum SpvGroupOperation_ {
+ SpvGroupOperationReduce = 0,
+ SpvGroupOperationInclusiveScan = 1,
+ SpvGroupOperationExclusiveScan = 2,
+ SpvGroupOperationMax = 0x7fffffff,
+} SpvGroupOperation;
+
+typedef enum SpvKernelEnqueueFlags_ {
+ SpvKernelEnqueueFlagsNoWait = 0,
+ SpvKernelEnqueueFlagsWaitKernel = 1,
+ SpvKernelEnqueueFlagsWaitWorkGroup = 2,
+ SpvKernelEnqueueFlagsMax = 0x7fffffff,
+} SpvKernelEnqueueFlags;
+
+typedef enum SpvKernelProfilingInfoShift_ {
+ SpvKernelProfilingInfoCmdExecTimeShift = 0,
+ SpvKernelProfilingInfoMax = 0x7fffffff,
+} SpvKernelProfilingInfoShift;
+
+typedef enum SpvKernelProfilingInfoMask_ {
+ SpvKernelProfilingInfoMaskNone = 0,
+ SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
+} SpvKernelProfilingInfoMask;
+
+typedef enum SpvCapability_ {
+ SpvCapabilityMatrix = 0,
+ SpvCapabilityShader = 1,
+ SpvCapabilityGeometry = 2,
+ SpvCapabilityTessellation = 3,
+ SpvCapabilityAddresses = 4,
+ SpvCapabilityLinkage = 5,
+ SpvCapabilityKernel = 6,
+ SpvCapabilityVector16 = 7,
+ SpvCapabilityFloat16Buffer = 8,
+ SpvCapabilityFloat16 = 9,
+ SpvCapabilityFloat64 = 10,
+ SpvCapabilityInt64 = 11,
+ SpvCapabilityInt64Atomics = 12,
+ SpvCapabilityImageBasic = 13,
+ SpvCapabilityImageReadWrite = 14,
+ SpvCapabilityImageMipmap = 15,
+ SpvCapabilityPipes = 17,
+ SpvCapabilityGroups = 18,
+ SpvCapabilityDeviceEnqueue = 19,
+ SpvCapabilityLiteralSampler = 20,
+ SpvCapabilityAtomicStorage = 21,
+ SpvCapabilityInt16 = 22,
+ SpvCapabilityTessellationPointSize = 23,
+ SpvCapabilityGeometryPointSize = 24,
+ SpvCapabilityImageGatherExtended = 25,
+ SpvCapabilityStorageImageMultisample = 27,
+ SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
+ SpvCapabilitySampledImageArrayDynamicIndexing = 29,
+ SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
+ SpvCapabilityStorageImageArrayDynamicIndexing = 31,
+ SpvCapabilityClipDistance = 32,
+ SpvCapabilityCullDistance = 33,
+ SpvCapabilityImageCubeArray = 34,
+ SpvCapabilitySampleRateShading = 35,
+ SpvCapabilityImageRect = 36,
+ SpvCapabilitySampledRect = 37,
+ SpvCapabilityGenericPointer = 38,
+ SpvCapabilityInt8 = 39,
+ SpvCapabilityInputAttachment = 40,
+ SpvCapabilitySparseResidency = 41,
+ SpvCapabilityMinLod = 42,
+ SpvCapabilitySampled1D = 43,
+ SpvCapabilityImage1D = 44,
+ SpvCapabilitySampledCubeArray = 45,
+ SpvCapabilitySampledBuffer = 46,
+ SpvCapabilityImageBuffer = 47,
+ SpvCapabilityImageMSArray = 48,
+ SpvCapabilityStorageImageExtendedFormats = 49,
+ SpvCapabilityImageQuery = 50,
+ SpvCapabilityDerivativeControl = 51,
+ SpvCapabilityInterpolationFunction = 52,
+ SpvCapabilityTransformFeedback = 53,
+ SpvCapabilityGeometryStreams = 54,
+ SpvCapabilityStorageImageReadWithoutFormat = 55,
+ SpvCapabilityStorageImageWriteWithoutFormat = 56,
+ SpvCapabilityMultiViewport = 57,
+ SpvCapabilitySubgroupBallotKHR = 4423,
+ SpvCapabilityDrawParameters = 4427,
+ SpvCapabilitySubgroupVoteKHR = 4431,
+ SpvCapabilityStorageBuffer16BitAccess = 4433,
+ SpvCapabilityStorageUniformBufferBlock16 = 4433,
+ SpvCapabilityStorageUniform16 = 4434,
+ SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
+ SpvCapabilityStoragePushConstant16 = 4435,
+ SpvCapabilityStorageInputOutput16 = 4436,
+ SpvCapabilityDeviceGroup = 4437,
+ SpvCapabilityMultiView = 4439,
+ SpvCapabilityVariablePointersStorageBuffer = 4441,
+ SpvCapabilityVariablePointers = 4442,
+ SpvCapabilityAtomicStorageOps = 4445,
+ SpvCapabilitySampleMaskPostDepthCoverage = 4447,
+ SpvCapabilityImageGatherBiasLodAMD = 5009,
+ SpvCapabilityFragmentMaskAMD = 5010,
+ SpvCapabilityStencilExportEXT = 5013,
+ SpvCapabilityImageReadWriteLodAMD = 5015,
+ SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
+ SpvCapabilityGeometryShaderPassthroughNV = 5251,
+ SpvCapabilityShaderViewportIndexLayerEXT = 5254,
+ SpvCapabilityShaderViewportIndexLayerNV = 5254,
+ SpvCapabilityShaderViewportMaskNV = 5255,
+ SpvCapabilityShaderStereoViewNV = 5259,
+ SpvCapabilityPerViewAttributesNV = 5260,
+ SpvCapabilitySubgroupShuffleINTEL = 5568,
+ SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
+ SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
+ SpvCapabilityMax = 0x7fffffff,
+} SpvCapability;
+
+typedef enum SpvOp_ {
+ SpvOpNop = 0,
+ SpvOpUndef = 1,
+ SpvOpSourceContinued = 2,
+ SpvOpSource = 3,
+ SpvOpSourceExtension = 4,
+ SpvOpName = 5,
+ SpvOpMemberName = 6,
+ SpvOpString = 7,
+ SpvOpLine = 8,
+ SpvOpExtension = 10,
+ SpvOpExtInstImport = 11,
+ SpvOpExtInst = 12,
+ SpvOpMemoryModel = 14,
+ SpvOpEntryPoint = 15,
+ SpvOpExecutionMode = 16,
+ SpvOpCapability = 17,
+ SpvOpTypeVoid = 19,
+ SpvOpTypeBool = 20,
+ SpvOpTypeInt = 21,
+ SpvOpTypeFloat = 22,
+ SpvOpTypeVector = 23,
+ SpvOpTypeMatrix = 24,
+ SpvOpTypeImage = 25,
+ SpvOpTypeSampler = 26,
+ SpvOpTypeSampledImage = 27,
+ SpvOpTypeArray = 28,
+ SpvOpTypeRuntimeArray = 29,
+ SpvOpTypeStruct = 30,
+ SpvOpTypeOpaque = 31,
+ SpvOpTypePointer = 32,
+ SpvOpTypeFunction = 33,
+ SpvOpTypeEvent = 34,
+ SpvOpTypeDeviceEvent = 35,
+ SpvOpTypeReserveId = 36,
+ SpvOpTypeQueue = 37,
+ SpvOpTypePipe = 38,
+ SpvOpTypeForwardPointer = 39,
+ SpvOpConstantTrue = 41,
+ SpvOpConstantFalse = 42,
+ SpvOpConstant = 43,
+ SpvOpConstantComposite = 44,
+ SpvOpConstantSampler = 45,
+ SpvOpConstantNull = 46,
+ SpvOpSpecConstantTrue = 48,
+ SpvOpSpecConstantFalse = 49,
+ SpvOpSpecConstant = 50,
+ SpvOpSpecConstantComposite = 51,
+ SpvOpSpecConstantOp = 52,
+ SpvOpFunction = 54,
+ SpvOpFunctionParameter = 55,
+ SpvOpFunctionEnd = 56,
+ SpvOpFunctionCall = 57,
+ SpvOpVariable = 59,
+ SpvOpImageTexelPointer = 60,
+ SpvOpLoad = 61,
+ SpvOpStore = 62,
+ SpvOpCopyMemory = 63,
+ SpvOpCopyMemorySized = 64,
+ SpvOpAccessChain = 65,
+ SpvOpInBoundsAccessChain = 66,
+ SpvOpPtrAccessChain = 67,
+ SpvOpArrayLength = 68,
+ SpvOpGenericPtrMemSemantics = 69,
+ SpvOpInBoundsPtrAccessChain = 70,
+ SpvOpDecorate = 71,
+ SpvOpMemberDecorate = 72,
+ SpvOpDecorationGroup = 73,
+ SpvOpGroupDecorate = 74,
+ SpvOpGroupMemberDecorate = 75,
+ SpvOpVectorExtractDynamic = 77,
+ SpvOpVectorInsertDynamic = 78,
+ SpvOpVectorShuffle = 79,
+ SpvOpCompositeConstruct = 80,
+ SpvOpCompositeExtract = 81,
+ SpvOpCompositeInsert = 82,
+ SpvOpCopyObject = 83,
+ SpvOpTranspose = 84,
+ SpvOpSampledImage = 86,
+ SpvOpImageSampleImplicitLod = 87,
+ SpvOpImageSampleExplicitLod = 88,
+ SpvOpImageSampleDrefImplicitLod = 89,
+ SpvOpImageSampleDrefExplicitLod = 90,
+ SpvOpImageSampleProjImplicitLod = 91,
+ SpvOpImageSampleProjExplicitLod = 92,
+ SpvOpImageSampleProjDrefImplicitLod = 93,
+ SpvOpImageSampleProjDrefExplicitLod = 94,
+ SpvOpImageFetch = 95,
+ SpvOpImageGather = 96,
+ SpvOpImageDrefGather = 97,
+ SpvOpImageRead = 98,
+ SpvOpImageWrite = 99,
+ SpvOpImage = 100,
+ SpvOpImageQueryFormat = 101,
+ SpvOpImageQueryOrder = 102,
+ SpvOpImageQuerySizeLod = 103,
+ SpvOpImageQuerySize = 104,
+ SpvOpImageQueryLod = 105,
+ SpvOpImageQueryLevels = 106,
+ SpvOpImageQuerySamples = 107,
+ SpvOpConvertFToU = 109,
+ SpvOpConvertFToS = 110,
+ SpvOpConvertSToF = 111,
+ SpvOpConvertUToF = 112,
+ SpvOpUConvert = 113,
+ SpvOpSConvert = 114,
+ SpvOpFConvert = 115,
+ SpvOpQuantizeToF16 = 116,
+ SpvOpConvertPtrToU = 117,
+ SpvOpSatConvertSToU = 118,
+ SpvOpSatConvertUToS = 119,
+ SpvOpConvertUToPtr = 120,
+ SpvOpPtrCastToGeneric = 121,
+ SpvOpGenericCastToPtr = 122,
+ SpvOpGenericCastToPtrExplicit = 123,
+ SpvOpBitcast = 124,
+ SpvOpSNegate = 126,
+ SpvOpFNegate = 127,
+ SpvOpIAdd = 128,
+ SpvOpFAdd = 129,
+ SpvOpISub = 130,
+ SpvOpFSub = 131,
+ SpvOpIMul = 132,
+ SpvOpFMul = 133,
+ SpvOpUDiv = 134,
+ SpvOpSDiv = 135,
+ SpvOpFDiv = 136,
+ SpvOpUMod = 137,
+ SpvOpSRem = 138,
+ SpvOpSMod = 139,
+ SpvOpFRem = 140,
+ SpvOpFMod = 141,
+ SpvOpVectorTimesScalar = 142,
+ SpvOpMatrixTimesScalar = 143,
+ SpvOpVectorTimesMatrix = 144,
+ SpvOpMatrixTimesVector = 145,
+ SpvOpMatrixTimesMatrix = 146,
+ SpvOpOuterProduct = 147,
+ SpvOpDot = 148,
+ SpvOpIAddCarry = 149,
+ SpvOpISubBorrow = 150,
+ SpvOpUMulExtended = 151,
+ SpvOpSMulExtended = 152,
+ SpvOpAny = 154,
+ SpvOpAll = 155,
+ SpvOpIsNan = 156,
+ SpvOpIsInf = 157,
+ SpvOpIsFinite = 158,
+ SpvOpIsNormal = 159,
+ SpvOpSignBitSet = 160,
+ SpvOpLessOrGreater = 161,
+ SpvOpOrdered = 162,
+ SpvOpUnordered = 163,
+ SpvOpLogicalEqual = 164,
+ SpvOpLogicalNotEqual = 165,
+ SpvOpLogicalOr = 166,
+ SpvOpLogicalAnd = 167,
+ SpvOpLogicalNot = 168,
+ SpvOpSelect = 169,
+ SpvOpIEqual = 170,
+ SpvOpINotEqual = 171,
+ SpvOpUGreaterThan = 172,
+ SpvOpSGreaterThan = 173,
+ SpvOpUGreaterThanEqual = 174,
+ SpvOpSGreaterThanEqual = 175,
+ SpvOpULessThan = 176,
+ SpvOpSLessThan = 177,
+ SpvOpULessThanEqual = 178,
+ SpvOpSLessThanEqual = 179,
+ SpvOpFOrdEqual = 180,
+ SpvOpFUnordEqual = 181,
+ SpvOpFOrdNotEqual = 182,
+ SpvOpFUnordNotEqual = 183,
+ SpvOpFOrdLessThan = 184,
+ SpvOpFUnordLessThan = 185,
+ SpvOpFOrdGreaterThan = 186,
+ SpvOpFUnordGreaterThan = 187,
+ SpvOpFOrdLessThanEqual = 188,
+ SpvOpFUnordLessThanEqual = 189,
+ SpvOpFOrdGreaterThanEqual = 190,
+ SpvOpFUnordGreaterThanEqual = 191,
+ SpvOpShiftRightLogical = 194,
+ SpvOpShiftRightArithmetic = 195,
+ SpvOpShiftLeftLogical = 196,
+ SpvOpBitwiseOr = 197,
+ SpvOpBitwiseXor = 198,
+ SpvOpBitwiseAnd = 199,
+ SpvOpNot = 200,
+ SpvOpBitFieldInsert = 201,
+ SpvOpBitFieldSExtract = 202,
+ SpvOpBitFieldUExtract = 203,
+ SpvOpBitReverse = 204,
+ SpvOpBitCount = 205,
+ SpvOpDPdx = 207,
+ SpvOpDPdy = 208,
+ SpvOpFwidth = 209,
+ SpvOpDPdxFine = 210,
+ SpvOpDPdyFine = 211,
+ SpvOpFwidthFine = 212,
+ SpvOpDPdxCoarse = 213,
+ SpvOpDPdyCoarse = 214,
+ SpvOpFwidthCoarse = 215,
+ SpvOpEmitVertex = 218,
+ SpvOpEndPrimitive = 219,
+ SpvOpEmitStreamVertex = 220,
+ SpvOpEndStreamPrimitive = 221,
+ SpvOpControlBarrier = 224,
+ SpvOpMemoryBarrier = 225,
+ SpvOpAtomicLoad = 227,
+ SpvOpAtomicStore = 228,
+ SpvOpAtomicExchange = 229,
+ SpvOpAtomicCompareExchange = 230,
+ SpvOpAtomicCompareExchangeWeak = 231,
+ SpvOpAtomicIIncrement = 232,
+ SpvOpAtomicIDecrement = 233,
+ SpvOpAtomicIAdd = 234,
+ SpvOpAtomicISub = 235,
+ SpvOpAtomicSMin = 236,
+ SpvOpAtomicUMin = 237,
+ SpvOpAtomicSMax = 238,
+ SpvOpAtomicUMax = 239,
+ SpvOpAtomicAnd = 240,
+ SpvOpAtomicOr = 241,
+ SpvOpAtomicXor = 242,
+ SpvOpPhi = 245,
+ SpvOpLoopMerge = 246,
+ SpvOpSelectionMerge = 247,
+ SpvOpLabel = 248,
+ SpvOpBranch = 249,
+ SpvOpBranchConditional = 250,
+ SpvOpSwitch = 251,
+ SpvOpKill = 252,
+ SpvOpReturn = 253,
+ SpvOpReturnValue = 254,
+ SpvOpUnreachable = 255,
+ SpvOpLifetimeStart = 256,
+ SpvOpLifetimeStop = 257,
+ SpvOpGroupAsyncCopy = 259,
+ SpvOpGroupWaitEvents = 260,
+ SpvOpGroupAll = 261,
+ SpvOpGroupAny = 262,
+ SpvOpGroupBroadcast = 263,
+ SpvOpGroupIAdd = 264,
+ SpvOpGroupFAdd = 265,
+ SpvOpGroupFMin = 266,
+ SpvOpGroupUMin = 267,
+ SpvOpGroupSMin = 268,
+ SpvOpGroupFMax = 269,
+ SpvOpGroupUMax = 270,
+ SpvOpGroupSMax = 271,
+ SpvOpReadPipe = 274,
+ SpvOpWritePipe = 275,
+ SpvOpReservedReadPipe = 276,
+ SpvOpReservedWritePipe = 277,
+ SpvOpReserveReadPipePackets = 278,
+ SpvOpReserveWritePipePackets = 279,
+ SpvOpCommitReadPipe = 280,
+ SpvOpCommitWritePipe = 281,
+ SpvOpIsValidReserveId = 282,
+ SpvOpGetNumPipePackets = 283,
+ SpvOpGetMaxPipePackets = 284,
+ SpvOpGroupReserveReadPipePackets = 285,
+ SpvOpGroupReserveWritePipePackets = 286,
+ SpvOpGroupCommitReadPipe = 287,
+ SpvOpGroupCommitWritePipe = 288,
+ SpvOpEnqueueMarker = 291,
+ SpvOpEnqueueKernel = 292,
+ SpvOpGetKernelNDrangeSubGroupCount = 293,
+ SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
+ SpvOpGetKernelWorkGroupSize = 295,
+ SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
+ SpvOpRetainEvent = 297,
+ SpvOpReleaseEvent = 298,
+ SpvOpCreateUserEvent = 299,
+ SpvOpIsValidEvent = 300,
+ SpvOpSetUserEventStatus = 301,
+ SpvOpCaptureEventProfilingInfo = 302,
+ SpvOpGetDefaultQueue = 303,
+ SpvOpBuildNDRange = 304,
+ SpvOpImageSparseSampleImplicitLod = 305,
+ SpvOpImageSparseSampleExplicitLod = 306,
+ SpvOpImageSparseSampleDrefImplicitLod = 307,
+ SpvOpImageSparseSampleDrefExplicitLod = 308,
+ SpvOpImageSparseSampleProjImplicitLod = 309,
+ SpvOpImageSparseSampleProjExplicitLod = 310,
+ SpvOpImageSparseSampleProjDrefImplicitLod = 311,
+ SpvOpImageSparseSampleProjDrefExplicitLod = 312,
+ SpvOpImageSparseFetch = 313,
+ SpvOpImageSparseGather = 314,
+ SpvOpImageSparseDrefGather = 315,
+ SpvOpImageSparseTexelsResident = 316,
+ SpvOpNoLine = 317,
+ SpvOpAtomicFlagTestAndSet = 318,
+ SpvOpAtomicFlagClear = 319,
+ SpvOpImageSparseRead = 320,
+ SpvOpDecorateId = 332,
+ SpvOpSubgroupBallotKHR = 4421,
+ SpvOpSubgroupFirstInvocationKHR = 4422,
+ SpvOpSubgroupAllKHR = 4428,
+ SpvOpSubgroupAnyKHR = 4429,
+ SpvOpSubgroupAllEqualKHR = 4430,
+ SpvOpSubgroupReadInvocationKHR = 4432,
+ SpvOpGroupIAddNonUniformAMD = 5000,
+ SpvOpGroupFAddNonUniformAMD = 5001,
+ SpvOpGroupFMinNonUniformAMD = 5002,
+ SpvOpGroupUMinNonUniformAMD = 5003,
+ SpvOpGroupSMinNonUniformAMD = 5004,
+ SpvOpGroupFMaxNonUniformAMD = 5005,
+ SpvOpGroupUMaxNonUniformAMD = 5006,
+ SpvOpGroupSMaxNonUniformAMD = 5007,
+ SpvOpFragmentMaskFetchAMD = 5011,
+ SpvOpFragmentFetchAMD = 5012,
+ SpvOpSubgroupShuffleINTEL = 5571,
+ SpvOpSubgroupShuffleDownINTEL = 5572,
+ SpvOpSubgroupShuffleUpINTEL = 5573,
+ SpvOpSubgroupShuffleXorINTEL = 5574,
+ SpvOpSubgroupBlockReadINTEL = 5575,
+ SpvOpSubgroupBlockWriteINTEL = 5576,
+ SpvOpSubgroupImageBlockReadINTEL = 5577,
+ SpvOpSubgroupImageBlockWriteINTEL = 5578,
+ SpvOpDecorateStringGOOGLE = 5632,
+ SpvOpMemberDecorateStringGOOGLE = 5633,
+ SpvOpMax = 0x7fffffff,
+} SpvOp;
+
+#endif // #ifndef spirv_H
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.hpp b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.hpp
new file mode 100644
index 0000000000..e98a89cee7
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.hpp
@@ -0,0 +1,1002 @@
+// Copyright (c) 2014-2018 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+// This header is automatically generated by the same tool that creates
+// the Binary Section of the SPIR-V specification.
+
+// Enumeration tokens for SPIR-V, in various styles:
+// C, C++, C++11, JSON, Lua, Python
+//
+// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+//
+// Some tokens act like mask values, which can be OR'd together,
+// while others are mutually exclusive. The mask-like ones have
+// "Mask" in their name, and a parallel enum that has the shift
+// amount (1 << x) for each corresponding enumerant.
+
+#ifndef spirv_HPP
+#define spirv_HPP
+
+namespace spv {
+
+typedef unsigned int Id;
+
+#define SPV_VERSION 0x10000
+#define SPV_REVISION 12
+
+static const unsigned int MagicNumber = 0x07230203;
+static const unsigned int Version = 0x00010000;
+static const unsigned int Revision = 12;
+static const unsigned int OpCodeMask = 0xffff;
+static const unsigned int WordCountShift = 16;
+
+enum SourceLanguage {
+ SourceLanguageUnknown = 0,
+ SourceLanguageESSL = 1,
+ SourceLanguageGLSL = 2,
+ SourceLanguageOpenCL_C = 3,
+ SourceLanguageOpenCL_CPP = 4,
+ SourceLanguageHLSL = 5,
+ SourceLanguageMax = 0x7fffffff,
+};
+
+enum ExecutionModel {
+ ExecutionModelVertex = 0,
+ ExecutionModelTessellationControl = 1,
+ ExecutionModelTessellationEvaluation = 2,
+ ExecutionModelGeometry = 3,
+ ExecutionModelFragment = 4,
+ ExecutionModelGLCompute = 5,
+ ExecutionModelKernel = 6,
+ ExecutionModelMax = 0x7fffffff,
+};
+
+enum AddressingModel {
+ AddressingModelLogical = 0,
+ AddressingModelPhysical32 = 1,
+ AddressingModelPhysical64 = 2,
+ AddressingModelMax = 0x7fffffff,
+};
+
+enum MemoryModel {
+ MemoryModelSimple = 0,
+ MemoryModelGLSL450 = 1,
+ MemoryModelOpenCL = 2,
+ MemoryModelMax = 0x7fffffff,
+};
+
+enum ExecutionMode {
+ ExecutionModeInvocations = 0,
+ ExecutionModeSpacingEqual = 1,
+ ExecutionModeSpacingFractionalEven = 2,
+ ExecutionModeSpacingFractionalOdd = 3,
+ ExecutionModeVertexOrderCw = 4,
+ ExecutionModeVertexOrderCcw = 5,
+ ExecutionModePixelCenterInteger = 6,
+ ExecutionModeOriginUpperLeft = 7,
+ ExecutionModeOriginLowerLeft = 8,
+ ExecutionModeEarlyFragmentTests = 9,
+ ExecutionModePointMode = 10,
+ ExecutionModeXfb = 11,
+ ExecutionModeDepthReplacing = 12,
+ ExecutionModeDepthGreater = 14,
+ ExecutionModeDepthLess = 15,
+ ExecutionModeDepthUnchanged = 16,
+ ExecutionModeLocalSize = 17,
+ ExecutionModeLocalSizeHint = 18,
+ ExecutionModeInputPoints = 19,
+ ExecutionModeInputLines = 20,
+ ExecutionModeInputLinesAdjacency = 21,
+ ExecutionModeTriangles = 22,
+ ExecutionModeInputTrianglesAdjacency = 23,
+ ExecutionModeQuads = 24,
+ ExecutionModeIsolines = 25,
+ ExecutionModeOutputVertices = 26,
+ ExecutionModeOutputPoints = 27,
+ ExecutionModeOutputLineStrip = 28,
+ ExecutionModeOutputTriangleStrip = 29,
+ ExecutionModeVecTypeHint = 30,
+ ExecutionModeContractionOff = 31,
+ ExecutionModePostDepthCoverage = 4446,
+ ExecutionModeStencilRefReplacingEXT = 5027,
+ ExecutionModeMax = 0x7fffffff,
+};
+
+enum StorageClass {
+ StorageClassUniformConstant = 0,
+ StorageClassInput = 1,
+ StorageClassUniform = 2,
+ StorageClassOutput = 3,
+ StorageClassWorkgroup = 4,
+ StorageClassCrossWorkgroup = 5,
+ StorageClassPrivate = 6,
+ StorageClassFunction = 7,
+ StorageClassGeneric = 8,
+ StorageClassPushConstant = 9,
+ StorageClassAtomicCounter = 10,
+ StorageClassImage = 11,
+ StorageClassStorageBuffer = 12,
+ StorageClassMax = 0x7fffffff,
+};
+
+enum Dim {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ DimCube = 3,
+ DimRect = 4,
+ DimBuffer = 5,
+ DimSubpassData = 6,
+ DimMax = 0x7fffffff,
+};
+
+enum SamplerAddressingMode {
+ SamplerAddressingModeNone = 0,
+ SamplerAddressingModeClampToEdge = 1,
+ SamplerAddressingModeClamp = 2,
+ SamplerAddressingModeRepeat = 3,
+ SamplerAddressingModeRepeatMirrored = 4,
+ SamplerAddressingModeMax = 0x7fffffff,
+};
+
+enum SamplerFilterMode {
+ SamplerFilterModeNearest = 0,
+ SamplerFilterModeLinear = 1,
+ SamplerFilterModeMax = 0x7fffffff,
+};
+
+enum ImageFormat {
+ ImageFormatUnknown = 0,
+ ImageFormatRgba32f = 1,
+ ImageFormatRgba16f = 2,
+ ImageFormatR32f = 3,
+ ImageFormatRgba8 = 4,
+ ImageFormatRgba8Snorm = 5,
+ ImageFormatRg32f = 6,
+ ImageFormatRg16f = 7,
+ ImageFormatR11fG11fB10f = 8,
+ ImageFormatR16f = 9,
+ ImageFormatRgba16 = 10,
+ ImageFormatRgb10A2 = 11,
+ ImageFormatRg16 = 12,
+ ImageFormatRg8 = 13,
+ ImageFormatR16 = 14,
+ ImageFormatR8 = 15,
+ ImageFormatRgba16Snorm = 16,
+ ImageFormatRg16Snorm = 17,
+ ImageFormatRg8Snorm = 18,
+ ImageFormatR16Snorm = 19,
+ ImageFormatR8Snorm = 20,
+ ImageFormatRgba32i = 21,
+ ImageFormatRgba16i = 22,
+ ImageFormatRgba8i = 23,
+ ImageFormatR32i = 24,
+ ImageFormatRg32i = 25,
+ ImageFormatRg16i = 26,
+ ImageFormatRg8i = 27,
+ ImageFormatR16i = 28,
+ ImageFormatR8i = 29,
+ ImageFormatRgba32ui = 30,
+ ImageFormatRgba16ui = 31,
+ ImageFormatRgba8ui = 32,
+ ImageFormatR32ui = 33,
+ ImageFormatRgb10a2ui = 34,
+ ImageFormatRg32ui = 35,
+ ImageFormatRg16ui = 36,
+ ImageFormatRg8ui = 37,
+ ImageFormatR16ui = 38,
+ ImageFormatR8ui = 39,
+ ImageFormatMax = 0x7fffffff,
+};
+
+enum ImageChannelOrder {
+ ImageChannelOrderR = 0,
+ ImageChannelOrderA = 1,
+ ImageChannelOrderRG = 2,
+ ImageChannelOrderRA = 3,
+ ImageChannelOrderRGB = 4,
+ ImageChannelOrderRGBA = 5,
+ ImageChannelOrderBGRA = 6,
+ ImageChannelOrderARGB = 7,
+ ImageChannelOrderIntensity = 8,
+ ImageChannelOrderLuminance = 9,
+ ImageChannelOrderRx = 10,
+ ImageChannelOrderRGx = 11,
+ ImageChannelOrderRGBx = 12,
+ ImageChannelOrderDepth = 13,
+ ImageChannelOrderDepthStencil = 14,
+ ImageChannelOrdersRGB = 15,
+ ImageChannelOrdersRGBx = 16,
+ ImageChannelOrdersRGBA = 17,
+ ImageChannelOrdersBGRA = 18,
+ ImageChannelOrderABGR = 19,
+ ImageChannelOrderMax = 0x7fffffff,
+};
+
+enum ImageChannelDataType {
+ ImageChannelDataTypeSnormInt8 = 0,
+ ImageChannelDataTypeSnormInt16 = 1,
+ ImageChannelDataTypeUnormInt8 = 2,
+ ImageChannelDataTypeUnormInt16 = 3,
+ ImageChannelDataTypeUnormShort565 = 4,
+ ImageChannelDataTypeUnormShort555 = 5,
+ ImageChannelDataTypeUnormInt101010 = 6,
+ ImageChannelDataTypeSignedInt8 = 7,
+ ImageChannelDataTypeSignedInt16 = 8,
+ ImageChannelDataTypeSignedInt32 = 9,
+ ImageChannelDataTypeUnsignedInt8 = 10,
+ ImageChannelDataTypeUnsignedInt16 = 11,
+ ImageChannelDataTypeUnsignedInt32 = 12,
+ ImageChannelDataTypeHalfFloat = 13,
+ ImageChannelDataTypeFloat = 14,
+ ImageChannelDataTypeUnormInt24 = 15,
+ ImageChannelDataTypeUnormInt101010_2 = 16,
+ ImageChannelDataTypeMax = 0x7fffffff,
+};
+
+enum ImageOperandsShift {
+ ImageOperandsBiasShift = 0,
+ ImageOperandsLodShift = 1,
+ ImageOperandsGradShift = 2,
+ ImageOperandsConstOffsetShift = 3,
+ ImageOperandsOffsetShift = 4,
+ ImageOperandsConstOffsetsShift = 5,
+ ImageOperandsSampleShift = 6,
+ ImageOperandsMinLodShift = 7,
+ ImageOperandsMax = 0x7fffffff,
+};
+
+enum ImageOperandsMask {
+ ImageOperandsMaskNone = 0,
+ ImageOperandsBiasMask = 0x00000001,
+ ImageOperandsLodMask = 0x00000002,
+ ImageOperandsGradMask = 0x00000004,
+ ImageOperandsConstOffsetMask = 0x00000008,
+ ImageOperandsOffsetMask = 0x00000010,
+ ImageOperandsConstOffsetsMask = 0x00000020,
+ ImageOperandsSampleMask = 0x00000040,
+ ImageOperandsMinLodMask = 0x00000080,
+};
+
+enum FPFastMathModeShift {
+ FPFastMathModeNotNaNShift = 0,
+ FPFastMathModeNotInfShift = 1,
+ FPFastMathModeNSZShift = 2,
+ FPFastMathModeAllowRecipShift = 3,
+ FPFastMathModeFastShift = 4,
+ FPFastMathModeMax = 0x7fffffff,
+};
+
+enum FPFastMathModeMask {
+ FPFastMathModeMaskNone = 0,
+ FPFastMathModeNotNaNMask = 0x00000001,
+ FPFastMathModeNotInfMask = 0x00000002,
+ FPFastMathModeNSZMask = 0x00000004,
+ FPFastMathModeAllowRecipMask = 0x00000008,
+ FPFastMathModeFastMask = 0x00000010,
+};
+
+enum FPRoundingMode {
+ FPRoundingModeRTE = 0,
+ FPRoundingModeRTZ = 1,
+ FPRoundingModeRTP = 2,
+ FPRoundingModeRTN = 3,
+ FPRoundingModeMax = 0x7fffffff,
+};
+
+enum LinkageType {
+ LinkageTypeExport = 0,
+ LinkageTypeImport = 1,
+ LinkageTypeMax = 0x7fffffff,
+};
+
+enum AccessQualifier {
+ AccessQualifierReadOnly = 0,
+ AccessQualifierWriteOnly = 1,
+ AccessQualifierReadWrite = 2,
+ AccessQualifierMax = 0x7fffffff,
+};
+
+enum FunctionParameterAttribute {
+ FunctionParameterAttributeZext = 0,
+ FunctionParameterAttributeSext = 1,
+ FunctionParameterAttributeByVal = 2,
+ FunctionParameterAttributeSret = 3,
+ FunctionParameterAttributeNoAlias = 4,
+ FunctionParameterAttributeNoCapture = 5,
+ FunctionParameterAttributeNoWrite = 6,
+ FunctionParameterAttributeNoReadWrite = 7,
+ FunctionParameterAttributeMax = 0x7fffffff,
+};
+
+enum Decoration {
+ DecorationRelaxedPrecision = 0,
+ DecorationSpecId = 1,
+ DecorationBlock = 2,
+ DecorationBufferBlock = 3,
+ DecorationRowMajor = 4,
+ DecorationColMajor = 5,
+ DecorationArrayStride = 6,
+ DecorationMatrixStride = 7,
+ DecorationGLSLShared = 8,
+ DecorationGLSLPacked = 9,
+ DecorationCPacked = 10,
+ DecorationBuiltIn = 11,
+ DecorationNoPerspective = 13,
+ DecorationFlat = 14,
+ DecorationPatch = 15,
+ DecorationCentroid = 16,
+ DecorationSample = 17,
+ DecorationInvariant = 18,
+ DecorationRestrict = 19,
+ DecorationAliased = 20,
+ DecorationVolatile = 21,
+ DecorationConstant = 22,
+ DecorationCoherent = 23,
+ DecorationNonWritable = 24,
+ DecorationNonReadable = 25,
+ DecorationUniform = 26,
+ DecorationSaturatedConversion = 28,
+ DecorationStream = 29,
+ DecorationLocation = 30,
+ DecorationComponent = 31,
+ DecorationIndex = 32,
+ DecorationBinding = 33,
+ DecorationDescriptorSet = 34,
+ DecorationOffset = 35,
+ DecorationXfbBuffer = 36,
+ DecorationXfbStride = 37,
+ DecorationFuncParamAttr = 38,
+ DecorationFPRoundingMode = 39,
+ DecorationFPFastMathMode = 40,
+ DecorationLinkageAttributes = 41,
+ DecorationNoContraction = 42,
+ DecorationInputAttachmentIndex = 43,
+ DecorationAlignment = 44,
+ DecorationExplicitInterpAMD = 4999,
+ DecorationOverrideCoverageNV = 5248,
+ DecorationPassthroughNV = 5250,
+ DecorationViewportRelativeNV = 5252,
+ DecorationSecondaryViewportRelativeNV = 5256,
+ DecorationHlslCounterBufferGOOGLE = 5634,
+ DecorationHlslSemanticGOOGLE = 5635,
+ DecorationMax = 0x7fffffff,
+};
+
+enum BuiltIn {
+ BuiltInPosition = 0,
+ BuiltInPointSize = 1,
+ BuiltInClipDistance = 3,
+ BuiltInCullDistance = 4,
+ BuiltInVertexId = 5,
+ BuiltInInstanceId = 6,
+ BuiltInPrimitiveId = 7,
+ BuiltInInvocationId = 8,
+ BuiltInLayer = 9,
+ BuiltInViewportIndex = 10,
+ BuiltInTessLevelOuter = 11,
+ BuiltInTessLevelInner = 12,
+ BuiltInTessCoord = 13,
+ BuiltInPatchVertices = 14,
+ BuiltInFragCoord = 15,
+ BuiltInPointCoord = 16,
+ BuiltInFrontFacing = 17,
+ BuiltInSampleId = 18,
+ BuiltInSamplePosition = 19,
+ BuiltInSampleMask = 20,
+ BuiltInFragDepth = 22,
+ BuiltInHelperInvocation = 23,
+ BuiltInNumWorkgroups = 24,
+ BuiltInWorkgroupSize = 25,
+ BuiltInWorkgroupId = 26,
+ BuiltInLocalInvocationId = 27,
+ BuiltInGlobalInvocationId = 28,
+ BuiltInLocalInvocationIndex = 29,
+ BuiltInWorkDim = 30,
+ BuiltInGlobalSize = 31,
+ BuiltInEnqueuedWorkgroupSize = 32,
+ BuiltInGlobalOffset = 33,
+ BuiltInGlobalLinearId = 34,
+ BuiltInSubgroupSize = 36,
+ BuiltInSubgroupMaxSize = 37,
+ BuiltInNumSubgroups = 38,
+ BuiltInNumEnqueuedSubgroups = 39,
+ BuiltInSubgroupId = 40,
+ BuiltInSubgroupLocalInvocationId = 41,
+ BuiltInVertexIndex = 42,
+ BuiltInInstanceIndex = 43,
+ BuiltInSubgroupEqMaskKHR = 4416,
+ BuiltInSubgroupGeMaskKHR = 4417,
+ BuiltInSubgroupGtMaskKHR = 4418,
+ BuiltInSubgroupLeMaskKHR = 4419,
+ BuiltInSubgroupLtMaskKHR = 4420,
+ BuiltInBaseVertex = 4424,
+ BuiltInBaseInstance = 4425,
+ BuiltInDrawIndex = 4426,
+ BuiltInDeviceIndex = 4438,
+ BuiltInViewIndex = 4440,
+ BuiltInBaryCoordNoPerspAMD = 4992,
+ BuiltInBaryCoordNoPerspCentroidAMD = 4993,
+ BuiltInBaryCoordNoPerspSampleAMD = 4994,
+ BuiltInBaryCoordSmoothAMD = 4995,
+ BuiltInBaryCoordSmoothCentroidAMD = 4996,
+ BuiltInBaryCoordSmoothSampleAMD = 4997,
+ BuiltInBaryCoordPullModelAMD = 4998,
+ BuiltInFragStencilRefEXT = 5014,
+ BuiltInViewportMaskNV = 5253,
+ BuiltInSecondaryPositionNV = 5257,
+ BuiltInSecondaryViewportMaskNV = 5258,
+ BuiltInPositionPerViewNV = 5261,
+ BuiltInViewportMaskPerViewNV = 5262,
+ BuiltInMax = 0x7fffffff,
+};
+
+enum SelectionControlShift {
+ SelectionControlFlattenShift = 0,
+ SelectionControlDontFlattenShift = 1,
+ SelectionControlMax = 0x7fffffff,
+};
+
+enum SelectionControlMask {
+ SelectionControlMaskNone = 0,
+ SelectionControlFlattenMask = 0x00000001,
+ SelectionControlDontFlattenMask = 0x00000002,
+};
+
+enum LoopControlShift {
+ LoopControlUnrollShift = 0,
+ LoopControlDontUnrollShift = 1,
+ LoopControlMax = 0x7fffffff,
+};
+
+enum LoopControlMask {
+ LoopControlMaskNone = 0,
+ LoopControlUnrollMask = 0x00000001,
+ LoopControlDontUnrollMask = 0x00000002,
+};
+
+enum FunctionControlShift {
+ FunctionControlInlineShift = 0,
+ FunctionControlDontInlineShift = 1,
+ FunctionControlPureShift = 2,
+ FunctionControlConstShift = 3,
+ FunctionControlMax = 0x7fffffff,
+};
+
+enum FunctionControlMask {
+ FunctionControlMaskNone = 0,
+ FunctionControlInlineMask = 0x00000001,
+ FunctionControlDontInlineMask = 0x00000002,
+ FunctionControlPureMask = 0x00000004,
+ FunctionControlConstMask = 0x00000008,
+};
+
+enum MemorySemanticsShift {
+ MemorySemanticsAcquireShift = 1,
+ MemorySemanticsReleaseShift = 2,
+ MemorySemanticsAcquireReleaseShift = 3,
+ MemorySemanticsSequentiallyConsistentShift = 4,
+ MemorySemanticsUniformMemoryShift = 6,
+ MemorySemanticsSubgroupMemoryShift = 7,
+ MemorySemanticsWorkgroupMemoryShift = 8,
+ MemorySemanticsCrossWorkgroupMemoryShift = 9,
+ MemorySemanticsAtomicCounterMemoryShift = 10,
+ MemorySemanticsImageMemoryShift = 11,
+ MemorySemanticsMax = 0x7fffffff,
+};
+
+enum MemorySemanticsMask {
+ MemorySemanticsMaskNone = 0,
+ MemorySemanticsAcquireMask = 0x00000002,
+ MemorySemanticsReleaseMask = 0x00000004,
+ MemorySemanticsAcquireReleaseMask = 0x00000008,
+ MemorySemanticsSequentiallyConsistentMask = 0x00000010,
+ MemorySemanticsUniformMemoryMask = 0x00000040,
+ MemorySemanticsSubgroupMemoryMask = 0x00000080,
+ MemorySemanticsWorkgroupMemoryMask = 0x00000100,
+ MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
+ MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
+ MemorySemanticsImageMemoryMask = 0x00000800,
+};
+
+enum MemoryAccessShift {
+ MemoryAccessVolatileShift = 0,
+ MemoryAccessAlignedShift = 1,
+ MemoryAccessNontemporalShift = 2,
+ MemoryAccessMax = 0x7fffffff,
+};
+
+enum MemoryAccessMask {
+ MemoryAccessMaskNone = 0,
+ MemoryAccessVolatileMask = 0x00000001,
+ MemoryAccessAlignedMask = 0x00000002,
+ MemoryAccessNontemporalMask = 0x00000004,
+};
+
+enum Scope {
+ ScopeCrossDevice = 0,
+ ScopeDevice = 1,
+ ScopeWorkgroup = 2,
+ ScopeSubgroup = 3,
+ ScopeInvocation = 4,
+ ScopeMax = 0x7fffffff,
+};
+
+enum GroupOperation {
+ GroupOperationReduce = 0,
+ GroupOperationInclusiveScan = 1,
+ GroupOperationExclusiveScan = 2,
+ GroupOperationMax = 0x7fffffff,
+};
+
+enum KernelEnqueueFlags {
+ KernelEnqueueFlagsNoWait = 0,
+ KernelEnqueueFlagsWaitKernel = 1,
+ KernelEnqueueFlagsWaitWorkGroup = 2,
+ KernelEnqueueFlagsMax = 0x7fffffff,
+};
+
+enum KernelProfilingInfoShift {
+ KernelProfilingInfoCmdExecTimeShift = 0,
+ KernelProfilingInfoMax = 0x7fffffff,
+};
+
+enum KernelProfilingInfoMask {
+ KernelProfilingInfoMaskNone = 0,
+ KernelProfilingInfoCmdExecTimeMask = 0x00000001,
+};
+
+enum Capability {
+ CapabilityMatrix = 0,
+ CapabilityShader = 1,
+ CapabilityGeometry = 2,
+ CapabilityTessellation = 3,
+ CapabilityAddresses = 4,
+ CapabilityLinkage = 5,
+ CapabilityKernel = 6,
+ CapabilityVector16 = 7,
+ CapabilityFloat16Buffer = 8,
+ CapabilityFloat16 = 9,
+ CapabilityFloat64 = 10,
+ CapabilityInt64 = 11,
+ CapabilityInt64Atomics = 12,
+ CapabilityImageBasic = 13,
+ CapabilityImageReadWrite = 14,
+ CapabilityImageMipmap = 15,
+ CapabilityPipes = 17,
+ CapabilityGroups = 18,
+ CapabilityDeviceEnqueue = 19,
+ CapabilityLiteralSampler = 20,
+ CapabilityAtomicStorage = 21,
+ CapabilityInt16 = 22,
+ CapabilityTessellationPointSize = 23,
+ CapabilityGeometryPointSize = 24,
+ CapabilityImageGatherExtended = 25,
+ CapabilityStorageImageMultisample = 27,
+ CapabilityUniformBufferArrayDynamicIndexing = 28,
+ CapabilitySampledImageArrayDynamicIndexing = 29,
+ CapabilityStorageBufferArrayDynamicIndexing = 30,
+ CapabilityStorageImageArrayDynamicIndexing = 31,
+ CapabilityClipDistance = 32,
+ CapabilityCullDistance = 33,
+ CapabilityImageCubeArray = 34,
+ CapabilitySampleRateShading = 35,
+ CapabilityImageRect = 36,
+ CapabilitySampledRect = 37,
+ CapabilityGenericPointer = 38,
+ CapabilityInt8 = 39,
+ CapabilityInputAttachment = 40,
+ CapabilitySparseResidency = 41,
+ CapabilityMinLod = 42,
+ CapabilitySampled1D = 43,
+ CapabilityImage1D = 44,
+ CapabilitySampledCubeArray = 45,
+ CapabilitySampledBuffer = 46,
+ CapabilityImageBuffer = 47,
+ CapabilityImageMSArray = 48,
+ CapabilityStorageImageExtendedFormats = 49,
+ CapabilityImageQuery = 50,
+ CapabilityDerivativeControl = 51,
+ CapabilityInterpolationFunction = 52,
+ CapabilityTransformFeedback = 53,
+ CapabilityGeometryStreams = 54,
+ CapabilityStorageImageReadWithoutFormat = 55,
+ CapabilityStorageImageWriteWithoutFormat = 56,
+ CapabilityMultiViewport = 57,
+ CapabilitySubgroupBallotKHR = 4423,
+ CapabilityDrawParameters = 4427,
+ CapabilitySubgroupVoteKHR = 4431,
+ CapabilityStorageBuffer16BitAccess = 4433,
+ CapabilityStorageUniformBufferBlock16 = 4433,
+ CapabilityStorageUniform16 = 4434,
+ CapabilityUniformAndStorageBuffer16BitAccess = 4434,
+ CapabilityStoragePushConstant16 = 4435,
+ CapabilityStorageInputOutput16 = 4436,
+ CapabilityDeviceGroup = 4437,
+ CapabilityMultiView = 4439,
+ CapabilityVariablePointersStorageBuffer = 4441,
+ CapabilityVariablePointers = 4442,
+ CapabilityAtomicStorageOps = 4445,
+ CapabilitySampleMaskPostDepthCoverage = 4447,
+ CapabilityImageGatherBiasLodAMD = 5009,
+ CapabilityFragmentMaskAMD = 5010,
+ CapabilityStencilExportEXT = 5013,
+ CapabilityImageReadWriteLodAMD = 5015,
+ CapabilitySampleMaskOverrideCoverageNV = 5249,
+ CapabilityGeometryShaderPassthroughNV = 5251,
+ CapabilityShaderViewportIndexLayerEXT = 5254,
+ CapabilityShaderViewportIndexLayerNV = 5254,
+ CapabilityShaderViewportMaskNV = 5255,
+ CapabilityShaderStereoViewNV = 5259,
+ CapabilityPerViewAttributesNV = 5260,
+ CapabilitySubgroupShuffleINTEL = 5568,
+ CapabilitySubgroupBufferBlockIOINTEL = 5569,
+ CapabilitySubgroupImageBlockIOINTEL = 5570,
+ CapabilityMax = 0x7fffffff,
+};
+
+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,
+ OpDecorateId = 332,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateStringGOOGLE = 5633,
+ OpMax = 0x7fffffff,
+};
+
+// Overload operator| for mask bit combining
+
+inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
+inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
+inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
+inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
+inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
+inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
+inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
+inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+
+} // end namespace spv
+
+#endif // #ifndef spirv_HPP
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.hpp11 b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.hpp11
new file mode 100644
index 0000000000..8896e81b7c
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.hpp11
@@ -0,0 +1,1002 @@
+// Copyright (c) 2014-2018 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+// This header is automatically generated by the same tool that creates
+// the Binary Section of the SPIR-V specification.
+
+// Enumeration tokens for SPIR-V, in various styles:
+// C, C++, C++11, JSON, Lua, Python
+//
+// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+//
+// Some tokens act like mask values, which can be OR'd together,
+// while others are mutually exclusive. The mask-like ones have
+// "Mask" in their name, and a parallel enum that has the shift
+// amount (1 << x) for each corresponding enumerant.
+
+#ifndef spirv_HPP
+#define spirv_HPP
+
+namespace spv {
+
+typedef unsigned int Id;
+
+#define SPV_VERSION 0x10000
+#define SPV_REVISION 12
+
+static const unsigned int MagicNumber = 0x07230203;
+static const unsigned int Version = 0x00010000;
+static const unsigned int Revision = 12;
+static const unsigned int OpCodeMask = 0xffff;
+static const unsigned int WordCountShift = 16;
+
+enum class SourceLanguage : unsigned {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ Max = 0x7fffffff,
+};
+
+enum class ExecutionModel : unsigned {
+ Vertex = 0,
+ TessellationControl = 1,
+ TessellationEvaluation = 2,
+ Geometry = 3,
+ Fragment = 4,
+ GLCompute = 5,
+ Kernel = 6,
+ Max = 0x7fffffff,
+};
+
+enum class AddressingModel : unsigned {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ Max = 0x7fffffff,
+};
+
+enum class MemoryModel : unsigned {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ Max = 0x7fffffff,
+};
+
+enum class ExecutionMode : unsigned {
+ 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,
+ PostDepthCoverage = 4446,
+ StencilRefReplacingEXT = 5027,
+ Max = 0x7fffffff,
+};
+
+enum class StorageClass : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class Dim : unsigned {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ Max = 0x7fffffff,
+};
+
+enum class SamplerAddressingMode : unsigned {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ Max = 0x7fffffff,
+};
+
+enum class SamplerFilterMode : unsigned {
+ Nearest = 0,
+ Linear = 1,
+ Max = 0x7fffffff,
+};
+
+enum class ImageFormat : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageChannelOrder : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageChannelDataType : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageOperandsShift : unsigned {
+ Bias = 0,
+ Lod = 1,
+ Grad = 2,
+ ConstOffset = 3,
+ Offset = 4,
+ ConstOffsets = 5,
+ Sample = 6,
+ MinLod = 7,
+ Max = 0x7fffffff,
+};
+
+enum class ImageOperandsMask : unsigned {
+ MaskNone = 0,
+ Bias = 0x00000001,
+ Lod = 0x00000002,
+ Grad = 0x00000004,
+ ConstOffset = 0x00000008,
+ Offset = 0x00000010,
+ ConstOffsets = 0x00000020,
+ Sample = 0x00000040,
+ MinLod = 0x00000080,
+};
+
+enum class FPFastMathModeShift : unsigned {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ Max = 0x7fffffff,
+};
+
+enum class FPFastMathModeMask : unsigned {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+};
+
+enum class FPRoundingMode : unsigned {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ Max = 0x7fffffff,
+};
+
+enum class LinkageType : unsigned {
+ Export = 0,
+ Import = 1,
+ Max = 0x7fffffff,
+};
+
+enum class AccessQualifier : unsigned {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ Max = 0x7fffffff,
+};
+
+enum class FunctionParameterAttribute : unsigned {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ Max = 0x7fffffff,
+};
+
+enum class Decoration : unsigned {
+ 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,
+ 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,
+ ExplicitInterpAMD = 4999,
+ OverrideCoverageNV = 5248,
+ PassthroughNV = 5250,
+ ViewportRelativeNV = 5252,
+ SecondaryViewportRelativeNV = 5256,
+ HlslCounterBufferGOOGLE = 5634,
+ HlslSemanticGOOGLE = 5635,
+ Max = 0x7fffffff,
+};
+
+enum class BuiltIn : unsigned {
+ 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,
+ SubgroupEqMaskKHR = 4416,
+ SubgroupGeMaskKHR = 4417,
+ SubgroupGtMaskKHR = 4418,
+ SubgroupLeMaskKHR = 4419,
+ SubgroupLtMaskKHR = 4420,
+ BaseVertex = 4424,
+ BaseInstance = 4425,
+ DrawIndex = 4426,
+ DeviceIndex = 4438,
+ ViewIndex = 4440,
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class SelectionControlShift : unsigned {
+ Flatten = 0,
+ DontFlatten = 1,
+ Max = 0x7fffffff,
+};
+
+enum class SelectionControlMask : unsigned {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+};
+
+enum class LoopControlShift : unsigned {
+ Unroll = 0,
+ DontUnroll = 1,
+ Max = 0x7fffffff,
+};
+
+enum class LoopControlMask : unsigned {
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+};
+
+enum class FunctionControlShift : unsigned {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ Max = 0x7fffffff,
+};
+
+enum class FunctionControlMask : unsigned {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+};
+
+enum class MemorySemanticsShift : unsigned {
+ Acquire = 1,
+ Release = 2,
+ AcquireRelease = 3,
+ SequentiallyConsistent = 4,
+ UniformMemory = 6,
+ SubgroupMemory = 7,
+ WorkgroupMemory = 8,
+ CrossWorkgroupMemory = 9,
+ AtomicCounterMemory = 10,
+ ImageMemory = 11,
+ Max = 0x7fffffff,
+};
+
+enum class MemorySemanticsMask : unsigned {
+ MaskNone = 0,
+ Acquire = 0x00000002,
+ Release = 0x00000004,
+ AcquireRelease = 0x00000008,
+ SequentiallyConsistent = 0x00000010,
+ UniformMemory = 0x00000040,
+ SubgroupMemory = 0x00000080,
+ WorkgroupMemory = 0x00000100,
+ CrossWorkgroupMemory = 0x00000200,
+ AtomicCounterMemory = 0x00000400,
+ ImageMemory = 0x00000800,
+};
+
+enum class MemoryAccessShift : unsigned {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ Max = 0x7fffffff,
+};
+
+enum class MemoryAccessMask : unsigned {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+};
+
+enum class Scope : unsigned {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ Max = 0x7fffffff,
+};
+
+enum class GroupOperation : unsigned {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ Max = 0x7fffffff,
+};
+
+enum class KernelEnqueueFlags : unsigned {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ Max = 0x7fffffff,
+};
+
+enum class KernelProfilingInfoShift : unsigned {
+ CmdExecTime = 0,
+ Max = 0x7fffffff,
+};
+
+enum class KernelProfilingInfoMask : unsigned {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+};
+
+enum class Capability : unsigned {
+ 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,
+ SubgroupBallotKHR = 4423,
+ DrawParameters = 4427,
+ 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,
+ ImageGatherBiasLodAMD = 5009,
+ FragmentMaskAMD = 5010,
+ StencilExportEXT = 5013,
+ ImageReadWriteLodAMD = 5015,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerEXT = 5254,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ SubgroupShuffleINTEL = 5568,
+ SubgroupBufferBlockIOINTEL = 5569,
+ SubgroupImageBlockIOINTEL = 5570,
+ Max = 0x7fffffff,
+};
+
+enum class Op : unsigned {
+ 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,
+ OpDecorateId = 332,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateStringGOOGLE = 5633,
+ Max = 0x7fffffff,
+};
+
+// Overload operator| for mask bit combining
+
+inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
+inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
+inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
+inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
+inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
+inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
+inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
+inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+
+} // end namespace spv
+
+#endif // #ifndef spirv_HPP
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.json
new file mode 100644
index 0000000000..9b0a8f3de2
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.json
@@ -0,0 +1,1020 @@
+{
+ "spv":
+ {
+ "meta":
+ {
+ "Comment":
+ [
+ [
+ "Copyright (c) 2014-2018 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ [
+ "This header is automatically generated by the same tool that creates",
+ "the Binary Section of the SPIR-V specification."
+ ],
+ [
+ "Enumeration tokens for SPIR-V, in various styles:",
+ " C, C++, C++11, JSON, Lua, Python",
+ "",
+ "- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL",
+ "- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL",
+ "- C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL",
+ "- Lua will use tables, e.g.: spv.SourceLanguage.GLSL",
+ "- Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']",
+ "",
+ "Some tokens act like mask values, which can be OR'd together,",
+ "while others are mutually exclusive. The mask-like ones have",
+ "\"Mask\" in their name, and a parallel enum that has the shift",
+ "amount (1 << x) for each corresponding enumerant."
+ ]
+ ],
+ "MagicNumber": 119734787,
+ "Version": 65536,
+ "Revision": 12,
+ "OpCodeMask": 65535,
+ "WordCountShift": 16
+ },
+ "enum":
+ [
+ {
+ "Name": "SourceLanguage",
+ "Type": "Value",
+ "Values":
+ {
+ "Unknown": 0,
+ "ESSL": 1,
+ "GLSL": 2,
+ "OpenCL_C": 3,
+ "OpenCL_CPP": 4,
+ "HLSL": 5
+ }
+ },
+ {
+ "Name": "ExecutionModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Vertex": 0,
+ "TessellationControl": 1,
+ "TessellationEvaluation": 2,
+ "Geometry": 3,
+ "Fragment": 4,
+ "GLCompute": 5,
+ "Kernel": 6
+ }
+ },
+ {
+ "Name": "AddressingModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Logical": 0,
+ "Physical32": 1,
+ "Physical64": 2
+ }
+ },
+ {
+ "Name": "MemoryModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Simple": 0,
+ "GLSL450": 1,
+ "OpenCL": 2
+ }
+ },
+ {
+ "Name": "ExecutionMode",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "PostDepthCoverage": 4446,
+ "StencilRefReplacingEXT": 5027
+ }
+ },
+ {
+ "Name": "StorageClass",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "Dim",
+ "Type": "Value",
+ "Values":
+ {
+ "Dim1D": 0,
+ "Dim2D": 1,
+ "Dim3D": 2,
+ "Cube": 3,
+ "Rect": 4,
+ "Buffer": 5,
+ "SubpassData": 6
+ }
+ },
+ {
+ "Name": "SamplerAddressingMode",
+ "Type": "Value",
+ "Values":
+ {
+ "None": 0,
+ "ClampToEdge": 1,
+ "Clamp": 2,
+ "Repeat": 3,
+ "RepeatMirrored": 4
+ }
+ },
+ {
+ "Name": "SamplerFilterMode",
+ "Type": "Value",
+ "Values":
+ {
+ "Nearest": 0,
+ "Linear": 1
+ }
+ },
+ {
+ "Name": "ImageFormat",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "ImageChannelOrder",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "ImageChannelDataType",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "ImageOperands",
+ "Type": "Bit",
+ "Values":
+ {
+ "Bias": 0,
+ "Lod": 1,
+ "Grad": 2,
+ "ConstOffset": 3,
+ "Offset": 4,
+ "ConstOffsets": 5,
+ "Sample": 6,
+ "MinLod": 7
+ }
+ },
+ {
+ "Name": "FPFastMathMode",
+ "Type": "Bit",
+ "Values":
+ {
+ "NotNaN": 0,
+ "NotInf": 1,
+ "NSZ": 2,
+ "AllowRecip": 3,
+ "Fast": 4
+ }
+ },
+ {
+ "Name": "FPRoundingMode",
+ "Type": "Value",
+ "Values":
+ {
+ "RTE": 0,
+ "RTZ": 1,
+ "RTP": 2,
+ "RTN": 3
+ }
+ },
+ {
+ "Name": "LinkageType",
+ "Type": "Value",
+ "Values":
+ {
+ "Export": 0,
+ "Import": 1
+ }
+ },
+ {
+ "Name": "AccessQualifier",
+ "Type": "Value",
+ "Values":
+ {
+ "ReadOnly": 0,
+ "WriteOnly": 1,
+ "ReadWrite": 2
+ }
+ },
+ {
+ "Name": "FunctionParameterAttribute",
+ "Type": "Value",
+ "Values":
+ {
+ "Zext": 0,
+ "Sext": 1,
+ "ByVal": 2,
+ "Sret": 3,
+ "NoAlias": 4,
+ "NoCapture": 5,
+ "NoWrite": 6,
+ "NoReadWrite": 7
+ }
+ },
+ {
+ "Name": "Decoration",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "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,
+ "ExplicitInterpAMD": 4999,
+ "OverrideCoverageNV": 5248,
+ "PassthroughNV": 5250,
+ "ViewportRelativeNV": 5252,
+ "SecondaryViewportRelativeNV": 5256,
+ "HlslCounterBufferGOOGLE": 5634,
+ "HlslSemanticGOOGLE": 5635
+ }
+ },
+ {
+ "Name": "BuiltIn",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "SubgroupEqMaskKHR": 4416,
+ "SubgroupGeMaskKHR": 4417,
+ "SubgroupGtMaskKHR": 4418,
+ "SubgroupLeMaskKHR": 4419,
+ "SubgroupLtMaskKHR": 4420,
+ "BaseVertex": 4424,
+ "BaseInstance": 4425,
+ "DrawIndex": 4426,
+ "DeviceIndex": 4438,
+ "ViewIndex": 4440,
+ "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
+ }
+ },
+ {
+ "Name": "SelectionControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Flatten": 0,
+ "DontFlatten": 1
+ }
+ },
+ {
+ "Name": "LoopControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Unroll": 0,
+ "DontUnroll": 1
+ }
+ },
+ {
+ "Name": "FunctionControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Inline": 0,
+ "DontInline": 1,
+ "Pure": 2,
+ "Const": 3
+ }
+ },
+ {
+ "Name": "MemorySemantics",
+ "Type": "Bit",
+ "Values":
+ {
+ "Acquire": 1,
+ "Release": 2,
+ "AcquireRelease": 3,
+ "SequentiallyConsistent": 4,
+ "UniformMemory": 6,
+ "SubgroupMemory": 7,
+ "WorkgroupMemory": 8,
+ "CrossWorkgroupMemory": 9,
+ "AtomicCounterMemory": 10,
+ "ImageMemory": 11
+ }
+ },
+ {
+ "Name": "MemoryAccess",
+ "Type": "Bit",
+ "Values":
+ {
+ "Volatile": 0,
+ "Aligned": 1,
+ "Nontemporal": 2
+ }
+ },
+ {
+ "Name": "Scope",
+ "Type": "Value",
+ "Values":
+ {
+ "CrossDevice": 0,
+ "Device": 1,
+ "Workgroup": 2,
+ "Subgroup": 3,
+ "Invocation": 4
+ }
+ },
+ {
+ "Name": "GroupOperation",
+ "Type": "Value",
+ "Values":
+ {
+ "Reduce": 0,
+ "InclusiveScan": 1,
+ "ExclusiveScan": 2
+ }
+ },
+ {
+ "Name": "KernelEnqueueFlags",
+ "Type": "Value",
+ "Values":
+ {
+ "NoWait": 0,
+ "WaitKernel": 1,
+ "WaitWorkGroup": 2
+ }
+ },
+ {
+ "Name": "KernelProfilingInfo",
+ "Type": "Bit",
+ "Values":
+ {
+ "CmdExecTime": 0
+ }
+ },
+ {
+ "Name": "Capability",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "SubgroupBallotKHR": 4423,
+ "DrawParameters": 4427,
+ "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,
+ "ImageGatherBiasLodAMD": 5009,
+ "FragmentMaskAMD": 5010,
+ "StencilExportEXT": 5013,
+ "ImageReadWriteLodAMD": 5015,
+ "SampleMaskOverrideCoverageNV": 5249,
+ "GeometryShaderPassthroughNV": 5251,
+ "ShaderViewportIndexLayerEXT": 5254,
+ "ShaderViewportIndexLayerNV": 5254,
+ "ShaderViewportMaskNV": 5255,
+ "ShaderStereoViewNV": 5259,
+ "PerViewAttributesNV": 5260,
+ "SubgroupShuffleINTEL": 5568,
+ "SubgroupBufferBlockIOINTEL": 5569,
+ "SubgroupImageBlockIOINTEL": 5570
+ }
+ },
+ {
+ "Name": "Op",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "OpDecorateId": 332,
+ "OpSubgroupBallotKHR": 4421,
+ "OpSubgroupFirstInvocationKHR": 4422,
+ "OpSubgroupAllKHR": 4428,
+ "OpSubgroupAnyKHR": 4429,
+ "OpSubgroupAllEqualKHR": 4430,
+ "OpSubgroupReadInvocationKHR": 4432,
+ "OpGroupIAddNonUniformAMD": 5000,
+ "OpGroupFAddNonUniformAMD": 5001,
+ "OpGroupFMinNonUniformAMD": 5002,
+ "OpGroupUMinNonUniformAMD": 5003,
+ "OpGroupSMinNonUniformAMD": 5004,
+ "OpGroupFMaxNonUniformAMD": 5005,
+ "OpGroupUMaxNonUniformAMD": 5006,
+ "OpGroupSMaxNonUniformAMD": 5007,
+ "OpFragmentMaskFetchAMD": 5011,
+ "OpFragmentFetchAMD": 5012,
+ "OpSubgroupShuffleINTEL": 5571,
+ "OpSubgroupShuffleDownINTEL": 5572,
+ "OpSubgroupShuffleUpINTEL": 5573,
+ "OpSubgroupShuffleXorINTEL": 5574,
+ "OpSubgroupBlockReadINTEL": 5575,
+ "OpSubgroupBlockWriteINTEL": 5576,
+ "OpSubgroupImageBlockReadINTEL": 5577,
+ "OpSubgroupImageBlockWriteINTEL": 5578,
+ "OpDecorateStringGOOGLE": 5632,
+ "OpMemberDecorateStringGOOGLE": 5633
+ }
+ }
+ ]
+ }
+}
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.lua b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.lua
new file mode 100644
index 0000000000..2bd33ba082
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.lua
@@ -0,0 +1,949 @@
+-- Copyright (c) 2014-2018 The Khronos Group Inc.
+--
+-- Permission is hereby granted, free of charge, to any person obtaining a copy
+-- of this software and/or associated documentation files (the "Materials"),
+-- to deal in the Materials without restriction, including without limitation
+-- the rights to use, copy, modify, merge, publish, distribute, sublicense,
+-- and/or sell copies of the Materials, and to permit persons to whom the
+-- Materials are furnished to do so, subject to the following conditions:
+--
+-- The above copyright notice and this permission notice shall be included in
+-- all copies or substantial portions of the Materials.
+--
+-- MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+-- STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+-- HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+--
+-- THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+-- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+-- FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+-- IN THE MATERIALS.
+
+-- This header is automatically generated by the same tool that creates
+-- the Binary Section of the SPIR-V specification.
+
+-- Enumeration tokens for SPIR-V, in various styles:
+-- C, C++, C++11, JSON, Lua, Python
+--
+-- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+-- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+-- - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+-- - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+-- - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+--
+-- Some tokens act like mask values, which can be OR'd together,
+-- while others are mutually exclusive. The mask-like ones have
+-- "Mask" in their name, and a parallel enum that has the shift
+-- amount (1 << x) for each corresponding enumerant.
+
+spv = {
+ MagicNumber = 0x07230203,
+ Version = 0x00010000,
+ Revision = 12,
+ OpCodeMask = 0xffff,
+ WordCountShift = 16,
+
+ SourceLanguage = {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ },
+
+ ExecutionModel = {
+ Vertex = 0,
+ TessellationControl = 1,
+ TessellationEvaluation = 2,
+ Geometry = 3,
+ Fragment = 4,
+ GLCompute = 5,
+ Kernel = 6,
+ },
+
+ AddressingModel = {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ },
+
+ MemoryModel = {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ },
+
+ 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,
+ PostDepthCoverage = 4446,
+ StencilRefReplacingEXT = 5027,
+ },
+
+ 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,
+ },
+
+ Dim = {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ },
+
+ SamplerAddressingMode = {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ },
+
+ SamplerFilterMode = {
+ Nearest = 0,
+ Linear = 1,
+ },
+
+ ImageFormat = {
+ Unknown = 0,
+ Rgba32f = 1,
+ Rgba16f = 2,
+ R32f = 3,
+ Rgba8 = 4,
+ Rgba8Snorm = 5,
+ Rg32f = 6,
+ Rg16f = 7,
+ R11fG11fB10f = 8,
+ R16f = 9,
+ Rgba16 = 10,
+ Rgb10A2 = 11,
+ Rg16 = 12,
+ Rg8 = 13,
+ R16 = 14,
+ R8 = 15,
+ Rgba16Snorm = 16,
+ Rg16Snorm = 17,
+ Rg8Snorm = 18,
+ R16Snorm = 19,
+ R8Snorm = 20,
+ Rgba32i = 21,
+ Rgba16i = 22,
+ Rgba8i = 23,
+ R32i = 24,
+ Rg32i = 25,
+ Rg16i = 26,
+ Rg8i = 27,
+ R16i = 28,
+ R8i = 29,
+ Rgba32ui = 30,
+ Rgba16ui = 31,
+ Rgba8ui = 32,
+ R32ui = 33,
+ Rgb10a2ui = 34,
+ Rg32ui = 35,
+ Rg16ui = 36,
+ Rg8ui = 37,
+ R16ui = 38,
+ R8ui = 39,
+ },
+
+ 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,
+ },
+
+ 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,
+ },
+
+ ImageOperandsShift = {
+ Bias = 0,
+ Lod = 1,
+ Grad = 2,
+ ConstOffset = 3,
+ Offset = 4,
+ ConstOffsets = 5,
+ Sample = 6,
+ MinLod = 7,
+ },
+
+ ImageOperandsMask = {
+ MaskNone = 0,
+ Bias = 0x00000001,
+ Lod = 0x00000002,
+ Grad = 0x00000004,
+ ConstOffset = 0x00000008,
+ Offset = 0x00000010,
+ ConstOffsets = 0x00000020,
+ Sample = 0x00000040,
+ MinLod = 0x00000080,
+ },
+
+ FPFastMathModeShift = {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ },
+
+ FPFastMathModeMask = {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+ },
+
+ FPRoundingMode = {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ },
+
+ LinkageType = {
+ Export = 0,
+ Import = 1,
+ },
+
+ AccessQualifier = {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ },
+
+ FunctionParameterAttribute = {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ },
+
+ 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,
+ 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,
+ ExplicitInterpAMD = 4999,
+ OverrideCoverageNV = 5248,
+ PassthroughNV = 5250,
+ ViewportRelativeNV = 5252,
+ SecondaryViewportRelativeNV = 5256,
+ HlslCounterBufferGOOGLE = 5634,
+ HlslSemanticGOOGLE = 5635,
+ },
+
+ 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,
+ SubgroupEqMaskKHR = 4416,
+ SubgroupGeMaskKHR = 4417,
+ SubgroupGtMaskKHR = 4418,
+ SubgroupLeMaskKHR = 4419,
+ SubgroupLtMaskKHR = 4420,
+ BaseVertex = 4424,
+ BaseInstance = 4425,
+ DrawIndex = 4426,
+ DeviceIndex = 4438,
+ ViewIndex = 4440,
+ 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,
+ },
+
+ SelectionControlShift = {
+ Flatten = 0,
+ DontFlatten = 1,
+ },
+
+ SelectionControlMask = {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+ },
+
+ LoopControlShift = {
+ Unroll = 0,
+ DontUnroll = 1,
+ },
+
+ LoopControlMask = {
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+ },
+
+ FunctionControlShift = {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ },
+
+ FunctionControlMask = {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+ },
+
+ MemorySemanticsShift = {
+ Acquire = 1,
+ Release = 2,
+ AcquireRelease = 3,
+ SequentiallyConsistent = 4,
+ UniformMemory = 6,
+ SubgroupMemory = 7,
+ WorkgroupMemory = 8,
+ CrossWorkgroupMemory = 9,
+ AtomicCounterMemory = 10,
+ ImageMemory = 11,
+ },
+
+ MemorySemanticsMask = {
+ MaskNone = 0,
+ Acquire = 0x00000002,
+ Release = 0x00000004,
+ AcquireRelease = 0x00000008,
+ SequentiallyConsistent = 0x00000010,
+ UniformMemory = 0x00000040,
+ SubgroupMemory = 0x00000080,
+ WorkgroupMemory = 0x00000100,
+ CrossWorkgroupMemory = 0x00000200,
+ AtomicCounterMemory = 0x00000400,
+ ImageMemory = 0x00000800,
+ },
+
+ MemoryAccessShift = {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ },
+
+ MemoryAccessMask = {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+ },
+
+ Scope = {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ },
+
+ GroupOperation = {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ },
+
+ KernelEnqueueFlags = {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ },
+
+ KernelProfilingInfoShift = {
+ CmdExecTime = 0,
+ },
+
+ KernelProfilingInfoMask = {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+ },
+
+ 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,
+ SubgroupBallotKHR = 4423,
+ DrawParameters = 4427,
+ 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,
+ ImageGatherBiasLodAMD = 5009,
+ FragmentMaskAMD = 5010,
+ StencilExportEXT = 5013,
+ ImageReadWriteLodAMD = 5015,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerEXT = 5254,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ SubgroupShuffleINTEL = 5568,
+ SubgroupBufferBlockIOINTEL = 5569,
+ SubgroupImageBlockIOINTEL = 5570,
+ },
+
+ 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,
+ OpDecorateId = 332,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateStringGOOGLE = 5633,
+ },
+
+}
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.py b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.py
new file mode 100644
index 0000000000..8a200e7655
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.0/spirv.py
@@ -0,0 +1,949 @@
+# Copyright (c) 2014-2018 The Khronos Group Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and/or associated documentation files (the "Materials"),
+# to deal in the Materials without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Materials, and to permit persons to whom the
+# Materials are furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Materials.
+#
+# MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+# STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+# HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+#
+# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+# IN THE MATERIALS.
+
+# This header is automatically generated by the same tool that creates
+# the Binary Section of the SPIR-V specification.
+
+# Enumeration tokens for SPIR-V, in various styles:
+# C, C++, C++11, JSON, Lua, Python
+#
+# - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+# - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+# - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+# - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+# - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+#
+# Some tokens act like mask values, which can be OR'd together,
+# while others are mutually exclusive. The mask-like ones have
+# "Mask" in their name, and a parallel enum that has the shift
+# amount (1 << x) for each corresponding enumerant.
+
+spv = {
+ 'MagicNumber' : 0x07230203,
+ 'Version' : 0x00010000,
+ 'Revision' : 12,
+ 'OpCodeMask' : 0xffff,
+ 'WordCountShift' : 16,
+
+ 'SourceLanguage' : {
+ 'Unknown' : 0,
+ 'ESSL' : 1,
+ 'GLSL' : 2,
+ 'OpenCL_C' : 3,
+ 'OpenCL_CPP' : 4,
+ 'HLSL' : 5,
+ },
+
+ 'ExecutionModel' : {
+ 'Vertex' : 0,
+ 'TessellationControl' : 1,
+ 'TessellationEvaluation' : 2,
+ 'Geometry' : 3,
+ 'Fragment' : 4,
+ 'GLCompute' : 5,
+ 'Kernel' : 6,
+ },
+
+ 'AddressingModel' : {
+ 'Logical' : 0,
+ 'Physical32' : 1,
+ 'Physical64' : 2,
+ },
+
+ 'MemoryModel' : {
+ 'Simple' : 0,
+ 'GLSL450' : 1,
+ 'OpenCL' : 2,
+ },
+
+ '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,
+ 'PostDepthCoverage' : 4446,
+ 'StencilRefReplacingEXT' : 5027,
+ },
+
+ '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,
+ },
+
+ 'Dim' : {
+ 'Dim1D' : 0,
+ 'Dim2D' : 1,
+ 'Dim3D' : 2,
+ 'Cube' : 3,
+ 'Rect' : 4,
+ 'Buffer' : 5,
+ 'SubpassData' : 6,
+ },
+
+ 'SamplerAddressingMode' : {
+ 'None' : 0,
+ 'ClampToEdge' : 1,
+ 'Clamp' : 2,
+ 'Repeat' : 3,
+ 'RepeatMirrored' : 4,
+ },
+
+ 'SamplerFilterMode' : {
+ 'Nearest' : 0,
+ 'Linear' : 1,
+ },
+
+ 'ImageFormat' : {
+ 'Unknown' : 0,
+ 'Rgba32f' : 1,
+ 'Rgba16f' : 2,
+ 'R32f' : 3,
+ 'Rgba8' : 4,
+ 'Rgba8Snorm' : 5,
+ 'Rg32f' : 6,
+ 'Rg16f' : 7,
+ 'R11fG11fB10f' : 8,
+ 'R16f' : 9,
+ 'Rgba16' : 10,
+ 'Rgb10A2' : 11,
+ 'Rg16' : 12,
+ 'Rg8' : 13,
+ 'R16' : 14,
+ 'R8' : 15,
+ 'Rgba16Snorm' : 16,
+ 'Rg16Snorm' : 17,
+ 'Rg8Snorm' : 18,
+ 'R16Snorm' : 19,
+ 'R8Snorm' : 20,
+ 'Rgba32i' : 21,
+ 'Rgba16i' : 22,
+ 'Rgba8i' : 23,
+ 'R32i' : 24,
+ 'Rg32i' : 25,
+ 'Rg16i' : 26,
+ 'Rg8i' : 27,
+ 'R16i' : 28,
+ 'R8i' : 29,
+ 'Rgba32ui' : 30,
+ 'Rgba16ui' : 31,
+ 'Rgba8ui' : 32,
+ 'R32ui' : 33,
+ 'Rgb10a2ui' : 34,
+ 'Rg32ui' : 35,
+ 'Rg16ui' : 36,
+ 'Rg8ui' : 37,
+ 'R16ui' : 38,
+ 'R8ui' : 39,
+ },
+
+ '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,
+ },
+
+ '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,
+ },
+
+ 'ImageOperandsShift' : {
+ 'Bias' : 0,
+ 'Lod' : 1,
+ 'Grad' : 2,
+ 'ConstOffset' : 3,
+ 'Offset' : 4,
+ 'ConstOffsets' : 5,
+ 'Sample' : 6,
+ 'MinLod' : 7,
+ },
+
+ 'ImageOperandsMask' : {
+ 'MaskNone' : 0,
+ 'Bias' : 0x00000001,
+ 'Lod' : 0x00000002,
+ 'Grad' : 0x00000004,
+ 'ConstOffset' : 0x00000008,
+ 'Offset' : 0x00000010,
+ 'ConstOffsets' : 0x00000020,
+ 'Sample' : 0x00000040,
+ 'MinLod' : 0x00000080,
+ },
+
+ 'FPFastMathModeShift' : {
+ 'NotNaN' : 0,
+ 'NotInf' : 1,
+ 'NSZ' : 2,
+ 'AllowRecip' : 3,
+ 'Fast' : 4,
+ },
+
+ 'FPFastMathModeMask' : {
+ 'MaskNone' : 0,
+ 'NotNaN' : 0x00000001,
+ 'NotInf' : 0x00000002,
+ 'NSZ' : 0x00000004,
+ 'AllowRecip' : 0x00000008,
+ 'Fast' : 0x00000010,
+ },
+
+ 'FPRoundingMode' : {
+ 'RTE' : 0,
+ 'RTZ' : 1,
+ 'RTP' : 2,
+ 'RTN' : 3,
+ },
+
+ 'LinkageType' : {
+ 'Export' : 0,
+ 'Import' : 1,
+ },
+
+ 'AccessQualifier' : {
+ 'ReadOnly' : 0,
+ 'WriteOnly' : 1,
+ 'ReadWrite' : 2,
+ },
+
+ 'FunctionParameterAttribute' : {
+ 'Zext' : 0,
+ 'Sext' : 1,
+ 'ByVal' : 2,
+ 'Sret' : 3,
+ 'NoAlias' : 4,
+ 'NoCapture' : 5,
+ 'NoWrite' : 6,
+ 'NoReadWrite' : 7,
+ },
+
+ '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,
+ '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,
+ 'ExplicitInterpAMD' : 4999,
+ 'OverrideCoverageNV' : 5248,
+ 'PassthroughNV' : 5250,
+ 'ViewportRelativeNV' : 5252,
+ 'SecondaryViewportRelativeNV' : 5256,
+ 'HlslCounterBufferGOOGLE' : 5634,
+ 'HlslSemanticGOOGLE' : 5635,
+ },
+
+ '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,
+ 'SubgroupEqMaskKHR' : 4416,
+ 'SubgroupGeMaskKHR' : 4417,
+ 'SubgroupGtMaskKHR' : 4418,
+ 'SubgroupLeMaskKHR' : 4419,
+ 'SubgroupLtMaskKHR' : 4420,
+ 'BaseVertex' : 4424,
+ 'BaseInstance' : 4425,
+ 'DrawIndex' : 4426,
+ 'DeviceIndex' : 4438,
+ 'ViewIndex' : 4440,
+ '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,
+ },
+
+ 'SelectionControlShift' : {
+ 'Flatten' : 0,
+ 'DontFlatten' : 1,
+ },
+
+ 'SelectionControlMask' : {
+ 'MaskNone' : 0,
+ 'Flatten' : 0x00000001,
+ 'DontFlatten' : 0x00000002,
+ },
+
+ 'LoopControlShift' : {
+ 'Unroll' : 0,
+ 'DontUnroll' : 1,
+ },
+
+ 'LoopControlMask' : {
+ 'MaskNone' : 0,
+ 'Unroll' : 0x00000001,
+ 'DontUnroll' : 0x00000002,
+ },
+
+ 'FunctionControlShift' : {
+ 'Inline' : 0,
+ 'DontInline' : 1,
+ 'Pure' : 2,
+ 'Const' : 3,
+ },
+
+ 'FunctionControlMask' : {
+ 'MaskNone' : 0,
+ 'Inline' : 0x00000001,
+ 'DontInline' : 0x00000002,
+ 'Pure' : 0x00000004,
+ 'Const' : 0x00000008,
+ },
+
+ 'MemorySemanticsShift' : {
+ 'Acquire' : 1,
+ 'Release' : 2,
+ 'AcquireRelease' : 3,
+ 'SequentiallyConsistent' : 4,
+ 'UniformMemory' : 6,
+ 'SubgroupMemory' : 7,
+ 'WorkgroupMemory' : 8,
+ 'CrossWorkgroupMemory' : 9,
+ 'AtomicCounterMemory' : 10,
+ 'ImageMemory' : 11,
+ },
+
+ 'MemorySemanticsMask' : {
+ 'MaskNone' : 0,
+ 'Acquire' : 0x00000002,
+ 'Release' : 0x00000004,
+ 'AcquireRelease' : 0x00000008,
+ 'SequentiallyConsistent' : 0x00000010,
+ 'UniformMemory' : 0x00000040,
+ 'SubgroupMemory' : 0x00000080,
+ 'WorkgroupMemory' : 0x00000100,
+ 'CrossWorkgroupMemory' : 0x00000200,
+ 'AtomicCounterMemory' : 0x00000400,
+ 'ImageMemory' : 0x00000800,
+ },
+
+ 'MemoryAccessShift' : {
+ 'Volatile' : 0,
+ 'Aligned' : 1,
+ 'Nontemporal' : 2,
+ },
+
+ 'MemoryAccessMask' : {
+ 'MaskNone' : 0,
+ 'Volatile' : 0x00000001,
+ 'Aligned' : 0x00000002,
+ 'Nontemporal' : 0x00000004,
+ },
+
+ 'Scope' : {
+ 'CrossDevice' : 0,
+ 'Device' : 1,
+ 'Workgroup' : 2,
+ 'Subgroup' : 3,
+ 'Invocation' : 4,
+ },
+
+ 'GroupOperation' : {
+ 'Reduce' : 0,
+ 'InclusiveScan' : 1,
+ 'ExclusiveScan' : 2,
+ },
+
+ 'KernelEnqueueFlags' : {
+ 'NoWait' : 0,
+ 'WaitKernel' : 1,
+ 'WaitWorkGroup' : 2,
+ },
+
+ 'KernelProfilingInfoShift' : {
+ 'CmdExecTime' : 0,
+ },
+
+ 'KernelProfilingInfoMask' : {
+ 'MaskNone' : 0,
+ 'CmdExecTime' : 0x00000001,
+ },
+
+ '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,
+ 'SubgroupBallotKHR' : 4423,
+ 'DrawParameters' : 4427,
+ '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,
+ 'ImageGatherBiasLodAMD' : 5009,
+ 'FragmentMaskAMD' : 5010,
+ 'StencilExportEXT' : 5013,
+ 'ImageReadWriteLodAMD' : 5015,
+ 'SampleMaskOverrideCoverageNV' : 5249,
+ 'GeometryShaderPassthroughNV' : 5251,
+ 'ShaderViewportIndexLayerEXT' : 5254,
+ 'ShaderViewportIndexLayerNV' : 5254,
+ 'ShaderViewportMaskNV' : 5255,
+ 'ShaderStereoViewNV' : 5259,
+ 'PerViewAttributesNV' : 5260,
+ 'SubgroupShuffleINTEL' : 5568,
+ 'SubgroupBufferBlockIOINTEL' : 5569,
+ 'SubgroupImageBlockIOINTEL' : 5570,
+ },
+
+ '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,
+ 'OpDecorateId' : 332,
+ 'OpSubgroupBallotKHR' : 4421,
+ 'OpSubgroupFirstInvocationKHR' : 4422,
+ 'OpSubgroupAllKHR' : 4428,
+ 'OpSubgroupAnyKHR' : 4429,
+ 'OpSubgroupAllEqualKHR' : 4430,
+ 'OpSubgroupReadInvocationKHR' : 4432,
+ 'OpGroupIAddNonUniformAMD' : 5000,
+ 'OpGroupFAddNonUniformAMD' : 5001,
+ 'OpGroupFMinNonUniformAMD' : 5002,
+ 'OpGroupUMinNonUniformAMD' : 5003,
+ 'OpGroupSMinNonUniformAMD' : 5004,
+ 'OpGroupFMaxNonUniformAMD' : 5005,
+ 'OpGroupUMaxNonUniformAMD' : 5006,
+ 'OpGroupSMaxNonUniformAMD' : 5007,
+ 'OpFragmentMaskFetchAMD' : 5011,
+ 'OpFragmentFetchAMD' : 5012,
+ 'OpSubgroupShuffleINTEL' : 5571,
+ 'OpSubgroupShuffleDownINTEL' : 5572,
+ 'OpSubgroupShuffleUpINTEL' : 5573,
+ 'OpSubgroupShuffleXorINTEL' : 5574,
+ 'OpSubgroupBlockReadINTEL' : 5575,
+ 'OpSubgroupBlockWriteINTEL' : 5576,
+ 'OpSubgroupImageBlockReadINTEL' : 5577,
+ 'OpSubgroupImageBlockWriteINTEL' : 5578,
+ 'OpDecorateStringGOOGLE' : 5632,
+ 'OpMemberDecorateStringGOOGLE' : 5633,
+ },
+
+}
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/GLSL.std.450.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/GLSL.std.450.h
new file mode 100644
index 0000000000..54cc00e9a8
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/GLSL.std.450.h
@@ -0,0 +1,131 @@
+/*
+** Copyright (c) 2014-2016 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+#ifndef GLSLstd450_H
+#define GLSLstd450_H
+
+static const int GLSLstd450Version = 100;
+static const int GLSLstd450Revision = 3;
+
+enum GLSLstd450 {
+ GLSLstd450Bad = 0, // Don't use
+
+ GLSLstd450Round = 1,
+ GLSLstd450RoundEven = 2,
+ GLSLstd450Trunc = 3,
+ GLSLstd450FAbs = 4,
+ GLSLstd450SAbs = 5,
+ GLSLstd450FSign = 6,
+ GLSLstd450SSign = 7,
+ GLSLstd450Floor = 8,
+ GLSLstd450Ceil = 9,
+ GLSLstd450Fract = 10,
+
+ GLSLstd450Radians = 11,
+ GLSLstd450Degrees = 12,
+ GLSLstd450Sin = 13,
+ GLSLstd450Cos = 14,
+ GLSLstd450Tan = 15,
+ GLSLstd450Asin = 16,
+ GLSLstd450Acos = 17,
+ GLSLstd450Atan = 18,
+ GLSLstd450Sinh = 19,
+ GLSLstd450Cosh = 20,
+ GLSLstd450Tanh = 21,
+ GLSLstd450Asinh = 22,
+ GLSLstd450Acosh = 23,
+ GLSLstd450Atanh = 24,
+ GLSLstd450Atan2 = 25,
+
+ GLSLstd450Pow = 26,
+ GLSLstd450Exp = 27,
+ GLSLstd450Log = 28,
+ GLSLstd450Exp2 = 29,
+ GLSLstd450Log2 = 30,
+ GLSLstd450Sqrt = 31,
+ GLSLstd450InverseSqrt = 32,
+
+ GLSLstd450Determinant = 33,
+ GLSLstd450MatrixInverse = 34,
+
+ GLSLstd450Modf = 35, // second operand needs an OpVariable to write to
+ GLSLstd450ModfStruct = 36, // no OpVariable operand
+ GLSLstd450FMin = 37,
+ GLSLstd450UMin = 38,
+ GLSLstd450SMin = 39,
+ GLSLstd450FMax = 40,
+ GLSLstd450UMax = 41,
+ GLSLstd450SMax = 42,
+ GLSLstd450FClamp = 43,
+ GLSLstd450UClamp = 44,
+ GLSLstd450SClamp = 45,
+ GLSLstd450FMix = 46,
+ GLSLstd450IMix = 47, // Reserved
+ GLSLstd450Step = 48,
+ GLSLstd450SmoothStep = 49,
+
+ GLSLstd450Fma = 50,
+ GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to
+ GLSLstd450FrexpStruct = 52, // no OpVariable operand
+ GLSLstd450Ldexp = 53,
+
+ GLSLstd450PackSnorm4x8 = 54,
+ GLSLstd450PackUnorm4x8 = 55,
+ GLSLstd450PackSnorm2x16 = 56,
+ GLSLstd450PackUnorm2x16 = 57,
+ GLSLstd450PackHalf2x16 = 58,
+ GLSLstd450PackDouble2x32 = 59,
+ GLSLstd450UnpackSnorm2x16 = 60,
+ GLSLstd450UnpackUnorm2x16 = 61,
+ GLSLstd450UnpackHalf2x16 = 62,
+ GLSLstd450UnpackSnorm4x8 = 63,
+ GLSLstd450UnpackUnorm4x8 = 64,
+ GLSLstd450UnpackDouble2x32 = 65,
+
+ GLSLstd450Length = 66,
+ GLSLstd450Distance = 67,
+ GLSLstd450Cross = 68,
+ GLSLstd450Normalize = 69,
+ GLSLstd450FaceForward = 70,
+ GLSLstd450Reflect = 71,
+ GLSLstd450Refract = 72,
+
+ GLSLstd450FindILsb = 73,
+ GLSLstd450FindSMsb = 74,
+ GLSLstd450FindUMsb = 75,
+
+ GLSLstd450InterpolateAtCentroid = 76,
+ GLSLstd450InterpolateAtSample = 77,
+ GLSLstd450InterpolateAtOffset = 78,
+
+ GLSLstd450NMin = 79,
+ GLSLstd450NMax = 80,
+ GLSLstd450NClamp = 81,
+
+ GLSLstd450Count
+};
+
+#endif // #ifndef GLSLstd450_H
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/OpenCL.std.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/OpenCL.std.h
new file mode 100644
index 0000000000..19a6688490
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/OpenCL.std.h
@@ -0,0 +1,210 @@
+/*
+** Copyright (c) 2015-2017 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.
+*/
+
+namespace OpenCLLIB {
+
+enum Entrypoints {
+
+ // Section 2.1: Math extended instructions
+ Acos = 0,
+ Acosh = 1,
+ Acospi = 2,
+ Asin = 3,
+ Asinh = 4,
+ Asinpi = 5,
+ Atan = 6,
+ Atan2 = 7,
+ Atanh = 8,
+ Atanpi = 9,
+ Atan2pi = 10,
+ Cbrt = 11,
+ Ceil = 12,
+ Copysign = 13,
+ Cos = 14,
+ Cosh = 15,
+ Cospi = 16,
+ Erfc = 17,
+ Erf = 18,
+ Exp = 19,
+ Exp2 = 20,
+ Exp10 = 21,
+ Expm1 = 22,
+ Fabs = 23,
+ Fdim = 24,
+ Floor = 25,
+ Fma = 26,
+ Fmax = 27,
+ Fmin = 28,
+ Fmod = 29,
+ Fract = 30,
+ Frexp = 31,
+ Hypot = 32,
+ Ilogb = 33,
+ Ldexp = 34,
+ Lgamma = 35,
+ Lgamma_r = 36,
+ Log = 37,
+ Log2 = 38,
+ Log10 = 39,
+ Log1p = 40,
+ Logb = 41,
+ Mad = 42,
+ Maxmag = 43,
+ Minmag = 44,
+ Modf = 45,
+ Nan = 46,
+ Nextafter = 47,
+ Pow = 48,
+ Pown = 49,
+ Powr = 50,
+ Remainder = 51,
+ Remquo = 52,
+ Rint = 53,
+ Rootn = 54,
+ Round = 55,
+ Rsqrt = 56,
+ Sin = 57,
+ Sincos = 58,
+ Sinh = 59,
+ Sinpi = 60,
+ Sqrt = 61,
+ Tan = 62,
+ Tanh = 63,
+ Tanpi = 64,
+ Tgamma = 65,
+ Trunc = 66,
+ Half_cos = 67,
+ Half_divide = 68,
+ Half_exp = 69,
+ Half_exp2 = 70,
+ Half_exp10 = 71,
+ Half_log = 72,
+ Half_log2 = 73,
+ Half_log10 = 74,
+ Half_powr = 75,
+ Half_recip = 76,
+ Half_rsqrt = 77,
+ Half_sin = 78,
+ Half_sqrt = 79,
+ Half_tan = 80,
+ Native_cos = 81,
+ Native_divide = 82,
+ Native_exp = 83,
+ Native_exp2 = 84,
+ Native_exp10 = 85,
+ Native_log = 86,
+ Native_log2 = 87,
+ Native_log10 = 88,
+ Native_powr = 89,
+ Native_recip = 90,
+ Native_rsqrt = 91,
+ Native_sin = 92,
+ Native_sqrt = 93,
+ Native_tan = 94,
+
+ // Section 2.2: Integer instructions
+ SAbs = 141,
+ SAbs_diff = 142,
+ SAdd_sat = 143,
+ UAdd_sat = 144,
+ SHadd = 145,
+ UHadd = 146,
+ SRhadd = 147,
+ URhadd = 148,
+ SClamp = 149,
+ UClamp = 150,
+ Clz = 151,
+ Ctz = 152,
+ SMad_hi = 153,
+ UMad_sat = 154,
+ SMad_sat = 155,
+ SMax = 156,
+ UMax = 157,
+ SMin = 158,
+ UMin = 159,
+ SMul_hi = 160,
+ Rotate = 161,
+ SSub_sat = 162,
+ USub_sat = 163,
+ U_Upsample = 164,
+ S_Upsample = 165,
+ Popcount = 166,
+ SMad24 = 167,
+ UMad24 = 168,
+ SMul24 = 169,
+ UMul24 = 170,
+ UAbs = 201,
+ UAbs_diff = 202,
+ UMul_hi = 203,
+ UMad_hi = 204,
+
+ // Section 2.3: Common instructions
+ FClamp = 95,
+ Degrees = 96,
+ FMax_common = 97,
+ FMin_common = 98,
+ Mix = 99,
+ Radians = 100,
+ Step = 101,
+ Smoothstep = 102,
+ Sign = 103,
+
+ // Section 2.4: Geometric instructions
+ Cross = 104,
+ Distance = 105,
+ Length = 106,
+ Normalize = 107,
+ Fast_distance = 108,
+ Fast_length = 109,
+ Fast_normalize = 110,
+
+ // Section 2.5: Relational instructions
+ Bitselect = 186,
+ Select = 187,
+
+ // Section 2.6: Vector Data Load and Store instructions
+ Vloadn = 171,
+ Vstoren = 172,
+ Vload_half = 173,
+ Vload_halfn = 174,
+ Vstore_half = 175,
+ Vstore_half_r = 176,
+ Vstore_halfn = 177,
+ Vstore_halfn_r = 178,
+ Vloada_halfn = 179,
+ Vstorea_halfn = 180,
+ Vstorea_halfn_r = 181,
+
+ // Section 2.7: Miscellaneous Vector instructions
+ Shuffle = 182,
+ Shuffle2 = 183,
+
+ // Section 2.8: Misc instructions
+ Printf = 184,
+ Prefetch = 185,
+};
+
+} // end namespace OpenCLLIB
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/extinst.glsl.std.450.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/extinst.glsl.std.450.grammar.json
new file mode 100644
index 0000000000..3d9f39e76c
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/extinst.glsl.std.450.grammar.json
@@ -0,0 +1,642 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "Round",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "RoundEven",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Trunc",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FAbs",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SAbs",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FSign",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SSign",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Floor",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Ceil",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Fract",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Radians",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'degrees'" }
+ ]
+ },
+ {
+ "opname" : "Degrees",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'radians'" }
+ ]
+ },
+ {
+ "opname" : "Sin",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Cos",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Tan",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Asin",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Acos",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atan",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y_over_x'" }
+ ]
+ },
+ {
+ "opname" : "Sinh",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Cosh",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Tanh",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Asinh",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Acosh",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atanh",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atan2",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Pow",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "Exp",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Log",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Exp2",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Log2",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Sqrt",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "InverseSqrt",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Determinant",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "MatrixInverse",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Modf",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'i'" }
+ ]
+ },
+ {
+ "opname" : "ModfStruct",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FMin",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "UMin",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "SMin",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "FMax",
+ "opcode" : 40,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "UMax",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "SMax",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "FClamp",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "UClamp",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "SClamp",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "FMix",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "IMix",
+ "opcode" : 47,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "Step",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SmoothStep",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge0'" },
+ { "kind" : "IdRef", "name" : "'edge1'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Fma",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "Frexp",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "FrexpStruct",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Ldexp",
+ "opcode" : 53,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "PackSnorm4x8",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackUnorm4x8",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackSnorm2x16",
+ "opcode" : 56,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackUnorm2x16",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackHalf2x16",
+ "opcode" : 58,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackDouble2x32",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ],
+ "capabilities" : [ "Float64" ]
+ },
+ {
+ "opname" : "UnpackSnorm2x16",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackUnorm2x16",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackHalf2x16",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "UnpackSnorm4x8",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackUnorm4x8",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackDouble2x32",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ],
+ "capabilities" : [ "Float64" ]
+ },
+ {
+ "opname" : "Length",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Distance",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "Cross",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "Normalize",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FaceForward",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'N'" },
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'Nref'" }
+ ]
+ },
+ {
+ "opname" : "Reflect",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'N'" }
+ ]
+ },
+ {
+ "opname" : "Refract",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'N'" },
+ { "kind" : "IdRef", "name" : "'eta'" }
+ ]
+ },
+ {
+ "opname" : "FindILsb",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "FindSMsb",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "FindUMsb",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "InterpolateAtCentroid",
+ "opcode" : 76,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "InterpolateAtSample",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" },
+ { "kind" : "IdRef", "name" : "'sample'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "InterpolateAtOffset",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" },
+ { "kind" : "IdRef", "name" : "'offset'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "NMin",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "NMax",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "NClamp",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/extinst.opencl.std.100.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/extinst.opencl.std.100.grammar.json
new file mode 100644
index 0000000000..4fe45060bb
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/extinst.opencl.std.100.grammar.json
@@ -0,0 +1,1279 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "acos",
+ "opcode" : 0,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acosh",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acospi",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asin",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinh",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinpi",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanh",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanpi",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2pi",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cbrt",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ceil",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "copysign",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "cos",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cosh",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cospi",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erfc",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erf",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp2",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp10",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "expm1",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fabs",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fdim",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "floor",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fma",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fmax",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmod",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fract",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'ptr'" }
+ ]
+ },
+ {
+ "opname" : "frexp",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "hypot",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "ilogb",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ldexp",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'k'" }
+ ]
+ },
+ {
+ "opname" : "lgamma",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "lgamma_r",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'signp'" }
+ ]
+ },
+ {
+ "opname" : "log",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log2",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log10",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log1p",
+ "opcode" : 40,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "logb",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "mad",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "maxmag",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "minmag",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "modf",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'iptr'" }
+ ]
+ },
+ {
+ "opname" : "nan",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'nancode'" }
+ ]
+ },
+ {
+ "opname" : "nextafter",
+ "opcode" : 47,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "pow",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y" }
+ ]
+ },
+ {
+ "opname" : "pown",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "powr",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remainder",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remquo",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'quo'" }
+ ]
+ },
+ {
+ "opname" : "rint",
+ "opcode" : 53,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rootn",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "round",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rsqrt",
+ "opcode" : 56,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sin",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sincos",
+ "opcode" : 58,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'cosval'" }
+ ]
+ },
+ {
+ "opname" : "sinh",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sinpi",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sqrt",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tan",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanh",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanpi",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tgamma",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "trunc",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_cos",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_divide",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_exp",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp2",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp10",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log2",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log10",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_powr",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_recip",
+ "opcode" : 76,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_rsqrt",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sin",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sqrt",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_tan",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_cos",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_divide",
+ "opcode" : 82,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_exp",
+ "opcode" : 83,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp2",
+ "opcode" : 84,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp10",
+ "opcode" : 85,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log",
+ "opcode" : 86,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log2",
+ "opcode" : 87,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log10",
+ "opcode" : 88,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_powr",
+ "opcode" : 89,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_recip",
+ "opcode" : 90,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_rsqrt",
+ "opcode" : 91,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sin",
+ "opcode" : 92,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sqrt",
+ "opcode" : 93,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_tan",
+ "opcode" : 94,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs",
+ "opcode" : 141,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs_diff",
+ "opcode" : 142,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_add_sat",
+ "opcode" : 143,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_add_sat",
+ "opcode" : 144,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_hadd",
+ "opcode" : 145,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_hadd",
+ "opcode" : 146,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_rhadd",
+ "opcode" : 147,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_rhadd",
+ "opcode" : 148,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_clamp",
+ "opcode" : 149,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "u_clamp",
+ "opcode" : 150,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "clz",
+ "opcode" : 151,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ctz",
+ "opcode" : 152,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_hi",
+ "opcode" : 153,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_sat",
+ "opcode" : 154,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_sat",
+ "opcode" : 155,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_max",
+ "opcode" : 156,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_max",
+ "opcode" : 157,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_min",
+ "opcode" : 158,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_min",
+ "opcode" : 159,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_mul_hi",
+ "opcode" : 160,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "rotate",
+ "opcode" : 161,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" },
+ { "kind" : "IdRef", "name" : "'i'" }
+ ]
+ },
+ {
+ "opname" : "s_sub_sat",
+ "opcode" : 162,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_sub_sat",
+ "opcode" : 163,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_upsample",
+ "opcode" : 164,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "s_upsample",
+ "opcode" : 165,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "popcount",
+ "opcode" : 166,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad24",
+ "opcode" : 167,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "u_mad24",
+ "opcode" : 168,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mul24",
+ "opcode" : 169,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul24",
+ "opcode" : 170,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_abs",
+ "opcode" : 201,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "u_abs_diff",
+ "opcode" : 202,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul_hi",
+ "opcode" : 203,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_hi",
+ "opcode" : 204,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fclamp",
+ "opcode" : 95,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "degrees",
+ "opcode" :96,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'radians'" }
+ ]
+ },
+ {
+ "opname" : "fmax_common",
+ "opcode" : 97,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin_common",
+ "opcode" : 98,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "mix",
+ "opcode" : 99,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "radians",
+ "opcode" : 100,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'degrees'" }
+ ]
+ },
+ {
+ "opname" : "step",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "smoothstep",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge0'" },
+ { "kind" : "IdRef", "name" : "'edge1'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sign",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cross",
+ "opcode" : 104,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "distance",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "length",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "normalize",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_distance",
+ "opcode" : 108,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "fast_length",
+ "opcode" : 109,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_normalize",
+ "opcode" : 110,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "bitselect",
+ "opcode" : 186,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "select",
+ "opcode" : 187,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "vloadn",
+ "opcode" : 171,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstoren",
+ "opcode" : 172,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_half",
+ "opcode" : 173,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_halfn",
+ "opcode" : 174,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half",
+ "opcode" : 175,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half_r",
+ "opcode" : 176,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn",
+ "opcode" : 177,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn_r",
+ "opcode" : 178,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vloada_halfn",
+ "opcode" : 179,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn",
+ "opcode" : 180,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn_r",
+ "opcode" : 181,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "shuffle",
+ "opcode" : 182,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "shuffle2",
+ "opcode" : 183,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "printf",
+ "opcode" : 184,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'format'" },
+ { "kind" : "IdRef", "name" : "'additional arguments'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "prefetch",
+ "opcode" : 185,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'ptr'" },
+ { "kind" : "IdRef", "name" : "'num elements'" }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.core.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.core.grammar.json
new file mode 100644
index 0000000000..c142e60a17
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.core.grammar.json
@@ -0,0 +1,5938 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "magic_number" : "0x07230203",
+ "major_version" : 1,
+ "minor_version" : 1,
+ "revision" : 8,
+ "instructions" : [
+ {
+ "opname" : "OpNop",
+ "opcode" : 0
+ },
+ {
+ "opname" : "OpUndef",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSourceContinued",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Continued Source'" }
+ ]
+ },
+ {
+ "opname" : "OpSource",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "SourceLanguage" },
+ { "kind" : "LiteralInteger", "name" : "'Version'" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" },
+ { "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" }
+ ]
+ },
+ {
+ "opname" : "OpSourceExtension",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Extension'" }
+ ]
+ },
+ {
+ "opname" : "OpName",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpMemberName",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpString",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'String'" }
+ ]
+ },
+ {
+ "opname" : "OpLine",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'File'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "OpExtension",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpExtInstImport",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpExtInst",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Set'" },
+ { "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpMemoryModel",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "AddressingModel" },
+ { "kind" : "MemoryModel" }
+ ]
+ },
+ {
+ "opname" : "OpEntryPoint",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "ExecutionModel" },
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "LiteralString", "name" : "'Name'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" }
+ ]
+ },
+ {
+ "opname" : "OpExecutionMode",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "ExecutionMode", "name" : "'Mode'" }
+ ]
+ },
+ {
+ "opname" : "OpCapability",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "Capability", "name" : "'Capability'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeVoid",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeBool",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeInt",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Width'" },
+ { "kind" : "LiteralInteger", "name" : "'Signedness'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeFloat",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Width'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeVector",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Component Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Component Count'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeMatrix",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Column Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Column Count'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpTypeImage",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Type'" },
+ { "kind" : "Dim" },
+ { "kind" : "LiteralInteger", "name" : "'Depth'" },
+ { "kind" : "LiteralInteger", "name" : "'Arrayed'" },
+ { "kind" : "LiteralInteger", "name" : "'MS'" },
+ { "kind" : "LiteralInteger", "name" : "'Sampled'" },
+ { "kind" : "ImageFormat" },
+ { "kind" : "AccessQualifier", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpTypeSampler",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeSampledImage",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image Type'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeArray",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Element Type'" },
+ { "kind" : "IdRef", "name" : "'Length'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeRuntimeArray",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Element Type'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpTypeStruct",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpTypeOpaque",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "The name of the opaque type." }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpTypePointer",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "StorageClass" },
+ { "kind" : "IdRef", "name" : "'Type'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeFunction",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Return Type'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpTypeEvent",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpTypeDeviceEvent",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpTypeReserveId",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpTypeQueue",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpTypePipe",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "AccessQualifier", "name" : "'Qualifier'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpTypeForwardPointer",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer Type'" },
+ { "kind" : "StorageClass" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpConstantTrue",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpConstantFalse",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpConstant",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConstantComposite",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpConstantSampler",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "SamplerAddressingMode" },
+ { "kind" : "LiteralInteger", "name" : "'Param'" },
+ { "kind" : "SamplerFilterMode" }
+ ],
+ "capabilities" : [ "LiteralSampler" ]
+ },
+ {
+ "opname" : "OpConstantNull",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantTrue",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantFalse",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstant",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantComposite",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantOp",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" }
+ ]
+ },
+ {
+ "opname" : "OpFunction",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "FunctionControl" },
+ { "kind" : "IdRef", "name" : "'Function Type'" }
+ ]
+ },
+ {
+ "opname" : "OpFunctionParameter",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpFunctionEnd",
+ "opcode" : 56
+ },
+ {
+ "opname" : "OpFunctionCall",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Function'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpVariable",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "StorageClass" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" }
+ ]
+ },
+ {
+ "opname" : "OpImageTexelPointer",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Sample'" }
+ ]
+ },
+ {
+ "opname" : "OpLoad",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpStore",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Object'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpCopyMemory",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpCopyMemorySized",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpAccessChain",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpInBoundsAccessChain",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpPtrAccessChain",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Element'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ],
+ "capabilities" : [
+ "Addresses",
+ "VariablePointers",
+ "VariablePointersStorageBuffer"
+ ]
+ },
+ {
+ "opname" : "OpArrayLength",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Structure'" },
+ { "kind" : "LiteralInteger", "name" : "'Array member'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpGenericPtrMemSemantics",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpInBoundsPtrAccessChain",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Element'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpDecorate",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ]
+ },
+ {
+ "opname" : "OpMemberDecorate",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Structure Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "Decoration" }
+ ]
+ },
+ {
+ "opname" : "OpDecorationGroup",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpGroupDecorate",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Decoration Group'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" }
+ ]
+ },
+ {
+ "opname" : "OpGroupMemberDecorate",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Decoration Group'" },
+ { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorExtractDynamic",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorInsertDynamic",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorShuffle",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeConstruct",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeExtract",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Composite'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeInsert",
+ "opcode" : 82,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Object'" },
+ { "kind" : "IdRef", "name" : "'Composite'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpCopyObject",
+ "opcode" : 83,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpTranspose",
+ "opcode" : 84,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpSampledImage",
+ "opcode" : 86,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Sampler'" }
+ ]
+ },
+ {
+ "opname" : "OpImageSampleImplicitLod",
+ "opcode" : 87,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleExplicitLod",
+ "opcode" : 88,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ]
+ },
+ {
+ "opname" : "OpImageSampleDrefImplicitLod",
+ "opcode" : 89,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleDrefExplicitLod",
+ "opcode" : 90,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjImplicitLod",
+ "opcode" : 91,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjExplicitLod",
+ "opcode" : 92,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjDrefImplicitLod",
+ "opcode" : 93,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjDrefExplicitLod",
+ "opcode" : 94,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageFetch",
+ "opcode" : 95,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImageGather",
+ "opcode" : 96,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageDrefGather",
+ "opcode" : 97,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageRead",
+ "opcode" : 98,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImageWrite",
+ "opcode" : 99,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Texel'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImage",
+ "opcode" : 100,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" }
+ ]
+ },
+ {
+ "opname" : "OpImageQueryFormat",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageQueryOrder",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageQuerySizeLod",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Level of Detail'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQuerySize",
+ "opcode" : 104,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQueryLod",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQueryLevels",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQuerySamples",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpConvertFToU",
+ "opcode" : 109,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertFToS",
+ "opcode" : 110,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertSToF",
+ "opcode" : 111,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertUToF",
+ "opcode" : 112,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ]
+ },
+ {
+ "opname" : "OpUConvert",
+ "opcode" : 113,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ]
+ },
+ {
+ "opname" : "OpSConvert",
+ "opcode" : 114,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ]
+ },
+ {
+ "opname" : "OpFConvert",
+ "opcode" : 115,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpQuantizeToF16",
+ "opcode" : 116,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertPtrToU",
+ "opcode" : 117,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpSatConvertSToU",
+ "opcode" : 118,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpSatConvertUToS",
+ "opcode" : 119,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpConvertUToPtr",
+ "opcode" : 120,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Integer Value'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpPtrCastToGeneric",
+ "opcode" : 121,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGenericCastToPtr",
+ "opcode" : 122,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGenericCastToPtrExplicit",
+ "opcode" : 123,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "StorageClass", "name" : "'Storage'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpBitcast",
+ "opcode" : 124,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpSNegate",
+ "opcode" : 126,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpFNegate",
+ "opcode" : 127,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpIAdd",
+ "opcode" : 128,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFAdd",
+ "opcode" : 129,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpISub",
+ "opcode" : 130,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFSub",
+ "opcode" : 131,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIMul",
+ "opcode" : 132,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFMul",
+ "opcode" : 133,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUDiv",
+ "opcode" : 134,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSDiv",
+ "opcode" : 135,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFDiv",
+ "opcode" : 136,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUMod",
+ "opcode" : 137,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSRem",
+ "opcode" : 138,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSMod",
+ "opcode" : 139,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFRem",
+ "opcode" : 140,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFMod",
+ "opcode" : 141,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorTimesScalar",
+ "opcode" : 142,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Scalar'" }
+ ]
+ },
+ {
+ "opname" : "OpMatrixTimesScalar",
+ "opcode" : 143,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" },
+ { "kind" : "IdRef", "name" : "'Scalar'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpVectorTimesMatrix",
+ "opcode" : 144,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Matrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpMatrixTimesVector",
+ "opcode" : 145,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpMatrixTimesMatrix",
+ "opcode" : 146,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'LeftMatrix'" },
+ { "kind" : "IdRef", "name" : "'RightMatrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpOuterProduct",
+ "opcode" : 147,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpDot",
+ "opcode" : 148,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIAddCarry",
+ "opcode" : 149,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpISubBorrow",
+ "opcode" : 150,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUMulExtended",
+ "opcode" : 151,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSMulExtended",
+ "opcode" : 152,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpAny",
+ "opcode" : 154,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ]
+ },
+ {
+ "opname" : "OpAll",
+ "opcode" : 155,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ]
+ },
+ {
+ "opname" : "OpIsNan",
+ "opcode" : 156,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "OpIsInf",
+ "opcode" : 157,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "OpIsFinite",
+ "opcode" : 158,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpIsNormal",
+ "opcode" : 159,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpSignBitSet",
+ "opcode" : 160,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLessOrGreater",
+ "opcode" : 161,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpOrdered",
+ "opcode" : 162,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpUnordered",
+ "opcode" : 163,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLogicalEqual",
+ "opcode" : 164,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalNotEqual",
+ "opcode" : 165,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalOr",
+ "opcode" : 166,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalAnd",
+ "opcode" : 167,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalNot",
+ "opcode" : 168,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpSelect",
+ "opcode" : 169,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Condition'" },
+ { "kind" : "IdRef", "name" : "'Object 1'" },
+ { "kind" : "IdRef", "name" : "'Object 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIEqual",
+ "opcode" : 170,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpINotEqual",
+ "opcode" : 171,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUGreaterThan",
+ "opcode" : 172,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSGreaterThan",
+ "opcode" : 173,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUGreaterThanEqual",
+ "opcode" : 174,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSGreaterThanEqual",
+ "opcode" : 175,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpULessThan",
+ "opcode" : 176,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSLessThan",
+ "opcode" : 177,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpULessThanEqual",
+ "opcode" : 178,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSLessThanEqual",
+ "opcode" : 179,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdEqual",
+ "opcode" : 180,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordEqual",
+ "opcode" : 181,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdNotEqual",
+ "opcode" : 182,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordNotEqual",
+ "opcode" : 183,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdLessThan",
+ "opcode" : 184,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordLessThan",
+ "opcode" : 185,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdGreaterThan",
+ "opcode" : 186,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordGreaterThan",
+ "opcode" : 187,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdLessThanEqual",
+ "opcode" : 188,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordLessThanEqual",
+ "opcode" : 189,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdGreaterThanEqual",
+ "opcode" : 190,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordGreaterThanEqual",
+ "opcode" : 191,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftRightLogical",
+ "opcode" : 194,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftRightArithmetic",
+ "opcode" : 195,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftLeftLogical",
+ "opcode" : 196,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseOr",
+ "opcode" : 197,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseXor",
+ "opcode" : 198,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseAnd",
+ "opcode" : 199,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpNot",
+ "opcode" : 200,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpBitFieldInsert",
+ "opcode" : 201,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Insert'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitFieldSExtract",
+ "opcode" : 202,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitFieldUExtract",
+ "opcode" : 203,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitReverse",
+ "opcode" : 204,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitCount",
+ "opcode" : 205,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" }
+ ]
+ },
+ {
+ "opname" : "OpDPdx",
+ "opcode" : 207,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpDPdy",
+ "opcode" : 208,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpFwidth",
+ "opcode" : 209,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpDPdxFine",
+ "opcode" : 210,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdyFine",
+ "opcode" : 211,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpFwidthFine",
+ "opcode" : 212,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdxCoarse",
+ "opcode" : 213,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdyCoarse",
+ "opcode" : 214,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpFwidthCoarse",
+ "opcode" : 215,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpEmitVertex",
+ "opcode" : 218,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "opname" : "OpEndPrimitive",
+ "opcode" : 219,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "opname" : "OpEmitStreamVertex",
+ "opcode" : 220,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Stream'" }
+ ],
+ "capabilities" : [ "GeometryStreams" ]
+ },
+ {
+ "opname" : "OpEndStreamPrimitive",
+ "opcode" : 221,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Stream'" }
+ ],
+ "capabilities" : [ "GeometryStreams" ]
+ },
+ {
+ "opname" : "OpControlBarrier",
+ "opcode" : 224,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpMemoryBarrier",
+ "opcode" : 225,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicLoad",
+ "opcode" : 227,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicStore",
+ "opcode" : 228,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicExchange",
+ "opcode" : 229,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicCompareExchange",
+ "opcode" : 230,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Comparator'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicCompareExchangeWeak",
+ "opcode" : 231,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Comparator'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpAtomicIIncrement",
+ "opcode" : 232,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicIDecrement",
+ "opcode" : 233,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicIAdd",
+ "opcode" : 234,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicISub",
+ "opcode" : 235,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicSMin",
+ "opcode" : 236,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicUMin",
+ "opcode" : 237,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicSMax",
+ "opcode" : 238,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicUMax",
+ "opcode" : 239,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicAnd",
+ "opcode" : 240,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicOr",
+ "opcode" : 241,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicXor",
+ "opcode" : 242,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpPhi",
+ "opcode" : 245,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" }
+ ]
+ },
+ {
+ "opname" : "OpLoopMerge",
+ "opcode" : 246,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Merge Block'" },
+ { "kind" : "IdRef", "name" : "'Continue Target'" },
+ { "kind" : "LoopControl" }
+ ]
+ },
+ {
+ "opname" : "OpSelectionMerge",
+ "opcode" : 247,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Merge Block'" },
+ { "kind" : "SelectionControl" }
+ ]
+ },
+ {
+ "opname" : "OpLabel",
+ "opcode" : 248,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpBranch",
+ "opcode" : 249,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target Label'" }
+ ]
+ },
+ {
+ "opname" : "OpBranchConditional",
+ "opcode" : 250,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Condition'" },
+ { "kind" : "IdRef", "name" : "'True Label'" },
+ { "kind" : "IdRef", "name" : "'False Label'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" }
+ ]
+ },
+ {
+ "opname" : "OpSwitch",
+ "opcode" : 251,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Selector'" },
+ { "kind" : "IdRef", "name" : "'Default'" },
+ { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" }
+ ]
+ },
+ {
+ "opname" : "OpKill",
+ "opcode" : 252,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpReturn",
+ "opcode" : 253
+ },
+ {
+ "opname" : "OpReturnValue",
+ "opcode" : 254,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpUnreachable",
+ "opcode" : 255
+ },
+ {
+ "opname" : "OpLifetimeStart",
+ "opcode" : 256,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLifetimeStop",
+ "opcode" : 257,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupAsyncCopy",
+ "opcode" : 259,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Destination'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Num Elements'" },
+ { "kind" : "IdRef", "name" : "'Stride'" },
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupWaitEvents",
+ "opcode" : 260,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Events List'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupAll",
+ "opcode" : 261,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupAny",
+ "opcode" : 262,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupBroadcast",
+ "opcode" : 263,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'LocalId'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupIAdd",
+ "opcode" : 264,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFAdd",
+ "opcode" : 265,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMin",
+ "opcode" : 266,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMin",
+ "opcode" : 267,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMin",
+ "opcode" : 268,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMax",
+ "opcode" : 269,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMax",
+ "opcode" : 270,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMax",
+ "opcode" : 271,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpReadPipe",
+ "opcode" : 274,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpWritePipe",
+ "opcode" : 275,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReservedReadPipe",
+ "opcode" : 276,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Index'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReservedWritePipe",
+ "opcode" : 277,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Index'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReserveReadPipePackets",
+ "opcode" : 278,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReserveWritePipePackets",
+ "opcode" : 279,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpCommitReadPipe",
+ "opcode" : 280,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpCommitWritePipe",
+ "opcode" : 281,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpIsValidReserveId",
+ "opcode" : 282,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGetNumPipePackets",
+ "opcode" : 283,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGetMaxPipePackets",
+ "opcode" : 284,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupReserveReadPipePackets",
+ "opcode" : 285,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupReserveWritePipePackets",
+ "opcode" : 286,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupCommitReadPipe",
+ "opcode" : 287,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupCommitWritePipe",
+ "opcode" : 288,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpEnqueueMarker",
+ "opcode" : 291,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Queue'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Wait Events'" },
+ { "kind" : "IdRef", "name" : "'Ret Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpEnqueueKernel",
+ "opcode" : 292,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Queue'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Wait Events'" },
+ { "kind" : "IdRef", "name" : "'Ret Event'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Local Size'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelNDrangeSubGroupCount",
+ "opcode" : 293,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelNDrangeMaxSubGroupSize",
+ "opcode" : 294,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelWorkGroupSize",
+ "opcode" : 295,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple",
+ "opcode" : 296,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpRetainEvent",
+ "opcode" : 297,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpReleaseEvent",
+ "opcode" : 298,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpCreateUserEvent",
+ "opcode" : 299,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpIsValidEvent",
+ "opcode" : 300,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpSetUserEventStatus",
+ "opcode" : 301,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" },
+ { "kind" : "IdRef", "name" : "'Status'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpCaptureEventProfilingInfo",
+ "opcode" : 302,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" },
+ { "kind" : "IdRef", "name" : "'Profiling Info'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetDefaultQueue",
+ "opcode" : 303,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpBuildNDRange",
+ "opcode" : 304,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'GlobalWorkSize'" },
+ { "kind" : "IdRef", "name" : "'LocalWorkSize'" },
+ { "kind" : "IdRef", "name" : "'GlobalWorkOffset'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleImplicitLod",
+ "opcode" : 305,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleExplicitLod",
+ "opcode" : 306,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleDrefImplicitLod",
+ "opcode" : 307,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleDrefExplicitLod",
+ "opcode" : 308,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjImplicitLod",
+ "opcode" : 309,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjExplicitLod",
+ "opcode" : 310,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjDrefImplicitLod",
+ "opcode" : 311,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjDrefExplicitLod",
+ "opcode" : 312,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseFetch",
+ "opcode" : 313,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseGather",
+ "opcode" : 314,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseDrefGather",
+ "opcode" : 315,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseTexelsResident",
+ "opcode" : 316,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Resident Code'" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpNoLine",
+ "opcode" : 317
+ },
+ {
+ "opname" : "OpAtomicFlagTestAndSet",
+ "opcode" : 318,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpAtomicFlagClear",
+ "opcode" : 319,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageSparseRead",
+ "opcode" : 320,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpSizeOf",
+ "opcode" : 321,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpTypePipeStorage",
+ "opcode" : 322,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "PipeStorage" ]
+ },
+ {
+ "opname" : "OpConstantPipeStorage",
+ "opcode" : 323,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Packet Size'" },
+ { "kind" : "LiteralInteger", "name" : "'Packet Alignment'" },
+ { "kind" : "LiteralInteger", "name" : "'Capacity'" }
+ ],
+ "capabilities" : [ "PipeStorage" ]
+ },
+ {
+ "opname" : "OpCreatePipeFromPipeStorage",
+ "opcode" : 324,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe Storage'" }
+ ],
+ "capabilities" : [ "PipeStorage" ]
+ },
+ {
+ "opname" : "OpGetKernelLocalSizeForSubgroupCount",
+ "opcode" : 325,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Subgroup Count'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "SubgroupDispatch" ]
+ },
+ {
+ "opname" : "OpGetKernelMaxNumSubgroups",
+ "opcode" : 326,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "SubgroupDispatch" ]
+ },
+ {
+ "opname" : "OpTypeNamedBarrier",
+ "opcode" : 327,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "NamedBarrier" ]
+ },
+ {
+ "opname" : "OpNamedBarrierInitialize",
+ "opcode" : 328,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Subgroup Count'" }
+ ],
+ "capabilities" : [ "NamedBarrier" ]
+ },
+ {
+ "opname" : "OpMemoryNamedBarrier",
+ "opcode" : 329,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Named Barrier'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "NamedBarrier" ]
+ },
+ {
+ "opname" : "OpModuleProcessed",
+ "opcode" : 330,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Process'" }
+ ]
+ },
+ {
+ "opname" : "OpDecorateId",
+ "opcode" : 332,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ]
+ },
+ {
+ "opname" : "OpSubgroupBallotKHR",
+ "opcode" : 4421,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupFirstInvocationKHR",
+ "opcode" : 4422,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAllKHR",
+ "opcode" : 4428,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAnyKHR",
+ "opcode" : 4429,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAllEqualKHR",
+ "opcode" : 4430,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupReadInvocationKHR",
+ "opcode" : 4432,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpGroupIAddNonUniformAMD",
+ "opcode" : 5000,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFAddNonUniformAMD",
+ "opcode" : 5001,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMinNonUniformAMD",
+ "opcode" : 5002,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMinNonUniformAMD",
+ "opcode" : 5003,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMinNonUniformAMD",
+ "opcode" : 5004,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMaxNonUniformAMD",
+ "opcode" : 5005,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMaxNonUniformAMD",
+ "opcode" : 5006,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMaxNonUniformAMD",
+ "opcode" : 5007,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpFragmentMaskFetchAMD",
+ "opcode" : 5011,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "FragmentMaskAMD" ]
+ },
+ {
+ "opname" : "OpFragmentFetchAMD",
+ "opcode" : 5012,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Fragment Index'" }
+ ],
+ "capabilities" : [ "FragmentMaskAMD" ]
+ },
+ {
+ "opname" : "OpSubgroupShuffleINTEL",
+ "opcode" : 5571,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Data'" },
+ { "kind" : "IdRef", "name" : "'InvocationId'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupShuffleDownINTEL",
+ "opcode" : 5572,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Current'" },
+ { "kind" : "IdRef", "name" : "'Next'" },
+ { "kind" : "IdRef", "name" : "'Delta'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupShuffleUpINTEL",
+ "opcode" : 5573,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Previous'" },
+ { "kind" : "IdRef", "name" : "'Current'" },
+ { "kind" : "IdRef", "name" : "'Delta'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupShuffleXorINTEL",
+ "opcode" : 5574,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Data'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupBlockReadINTEL",
+ "opcode" : 5575,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Ptr'" }
+ ],
+ "capabilities" : [ "SubgroupBufferBlockIOINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupBlockWriteINTEL",
+ "opcode" : 5576,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Ptr'" },
+ { "kind" : "IdRef", "name" : "'Data'" }
+ ],
+ "capabilities" : [ "SubgroupBufferBlockIOINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupImageBlockReadINTEL",
+ "opcode" : 5577,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "SubgroupImageBlockIOINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupImageBlockWriteINTEL",
+ "opcode" : 5578,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Data'" }
+ ],
+ "capabilities" : [ "SubgroupImageBlockIOINTEL" ]
+ },
+ {
+ "opname" : "OpDecorateStringGOOGLE",
+ "opcode" : 5632,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_decorate_string" ]
+ },
+ {
+ "opname" : "OpMemberDecorateStringGOOGLE",
+ "opcode" : 5633,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Struct Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_decorate_string" ]
+ }
+ ],
+ "operand_kinds" : [
+ {
+ "category" : "BitEnum",
+ "kind" : "ImageOperands",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Bias",
+ "value" : "0x0001",
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Lod",
+ "value" : "0x0002",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Grad",
+ "value" : "0x0004",
+ "parameters" : [
+ { "kind" : "IdRef" },
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "ConstOffset",
+ "value" : "0x0008",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Offset",
+ "value" : "0x0010",
+ "capabilities" : [ "ImageGatherExtended" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "ConstOffsets",
+ "value" : "0x0020",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Sample",
+ "value" : "0x0040",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "MinLod",
+ "value" : "0x0080",
+ "capabilities" : [ "MinLod" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "FPFastMathMode",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "NotNaN",
+ "value" : "0x0001",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NotInf",
+ "value" : "0x0002",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NSZ",
+ "value" : "0x0004",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "AllowRecip",
+ "value" : "0x0008",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Fast",
+ "value" : "0x0010",
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "SelectionControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Flatten",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontFlatten",
+ "value" : "0x0002"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "LoopControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Unroll",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontUnroll",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "DependencyInfinite",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "DependencyLength",
+ "value" : "0x0008",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ]
+
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "FunctionControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Inline",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontInline",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "Pure",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "Const",
+ "value" : "0x0008"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "MemorySemantics",
+ "enumerants" : [
+ {
+ "enumerant" : "Relaxed",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Acquire",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "Release",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "AcquireRelease",
+ "value" : "0x0008"
+ },
+ {
+ "enumerant" : "SequentiallyConsistent",
+ "value" : "0x0010"
+ },
+ {
+ "enumerant" : "UniformMemory",
+ "value" : "0x0040",
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SubgroupMemory",
+ "value" : "0x0080"
+ },
+ {
+ "enumerant" : "WorkgroupMemory",
+ "value" : "0x0100"
+ },
+ {
+ "enumerant" : "CrossWorkgroupMemory",
+ "value" : "0x0200"
+ },
+ {
+ "enumerant" : "AtomicCounterMemory",
+ "value" : "0x0400",
+ "capabilities" : [ "AtomicStorage" ]
+ },
+ {
+ "enumerant" : "ImageMemory",
+ "value" : "0x0800"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "MemoryAccess",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Volatile",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "Aligned",
+ "value" : "0x0002",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ]
+ },
+ {
+ "enumerant" : "Nontemporal",
+ "value" : "0x0004"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "KernelProfilingInfo",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "CmdExecTime",
+ "value" : "0x0001",
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SourceLanguage",
+ "enumerants" : [
+ {
+ "enumerant" : "Unknown",
+ "value" : 0
+ },
+ {
+ "enumerant" : "ESSL",
+ "value" : 1
+ },
+ {
+ "enumerant" : "GLSL",
+ "value" : 2
+ },
+ {
+ "enumerant" : "OpenCL_C",
+ "value" : 3
+ },
+ {
+ "enumerant" : "OpenCL_CPP",
+ "value" : 4
+ },
+ {
+ "enumerant" : "HLSL",
+ "value" : 5
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ExecutionModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Vertex",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "TessellationControl",
+ "value" : 1,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessellationEvaluation",
+ "value" : 2,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Geometry",
+ "value" : 3,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Fragment",
+ "value" : 4,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLCompute",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Kernel",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "AddressingModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Logical",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Physical32",
+ "value" : 1,
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "enumerant" : "Physical64",
+ "value" : 2,
+ "capabilities" : [ "Addresses" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "MemoryModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Simple",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLSL450",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OpenCL",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ExecutionMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Invocations",
+ "value" : 0,
+ "capabilities" : [ "Geometry" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Number of <<Invocation,invocations>>'" }
+ ]
+ },
+ {
+ "enumerant" : "SpacingEqual",
+ "value" : 1,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "SpacingFractionalEven",
+ "value" : 2,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "SpacingFractionalOdd",
+ "value" : 3,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "VertexOrderCw",
+ "value" : 4,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "VertexOrderCcw",
+ "value" : 5,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "PixelCenterInteger",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OriginUpperLeft",
+ "value" : 7,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OriginLowerLeft",
+ "value" : 8,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "EarlyFragmentTests",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointMode",
+ "value" : 10,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Xfb",
+ "value" : 11,
+ "capabilities" : [ "TransformFeedback" ]
+ },
+ {
+ "enumerant" : "DepthReplacing",
+ "value" : 12,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthGreater",
+ "value" : 14,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthLess",
+ "value" : 15,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthUnchanged",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "LocalSize",
+ "value" : 17,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'x size'" },
+ { "kind" : "LiteralInteger", "name" : "'y size'" },
+ { "kind" : "LiteralInteger", "name" : "'z size'" }
+ ]
+ },
+ {
+ "enumerant" : "LocalSizeHint",
+ "value" : 18,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'x size'" },
+ { "kind" : "LiteralInteger", "name" : "'y size'" },
+ { "kind" : "LiteralInteger", "name" : "'z size'" }
+ ]
+ },
+ {
+ "enumerant" : "InputPoints",
+ "value" : 19,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "InputLines",
+ "value" : 20,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "InputLinesAdjacency",
+ "value" : 21,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Triangles",
+ "value" : 22,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "InputTrianglesAdjacency",
+ "value" : 23,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Quads",
+ "value" : 24,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Isolines",
+ "value" : 25,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "OutputVertices",
+ "value" : 26,
+ "capabilities" : [ "Geometry", "Tessellation" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
+ ]
+ },
+ {
+ "enumerant" : "OutputPoints",
+ "value" : 27,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "OutputLineStrip",
+ "value" : 28,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "OutputTriangleStrip",
+ "value" : 29,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "VecTypeHint",
+ "value" : 30,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Vector type'" }
+ ]
+ },
+ {
+ "enumerant" : "ContractionOff",
+ "value" : 31,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Initializer",
+ "value" : 33,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Finalizer",
+ "value" : 34,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupSize",
+ "value" : 35,
+ "capabilities" : [ "SubgroupDispatch" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" }
+ ]
+ },
+ {
+ "enumerant" : "SubgroupsPerWorkgroup",
+ "value" : 36,
+ "capabilities" : [ "SubgroupDispatch" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" }
+ ]
+ },
+ {
+ "enumerant" : "PostDepthCoverage",
+ "value" : 4446,
+ "capabilities" : [ "SampleMaskPostDepthCoverage" ]
+ },
+ {
+ "enumerant" : "StencilRefReplacingEXT",
+ "value" : 5027,
+ "capabilities" : [ "StencilExportEXT" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "StorageClass",
+ "enumerants" : [
+ {
+ "enumerant" : "UniformConstant",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Input",
+ "value" : 1
+ },
+ {
+ "enumerant" : "Uniform",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Output",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Workgroup",
+ "value" : 4
+ },
+ {
+ "enumerant" : "CrossWorkgroup",
+ "value" : 5
+ },
+ {
+ "enumerant" : "Private",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Function",
+ "value" : 7
+ },
+ {
+ "enumerant" : "Generic",
+ "value" : 8,
+ "capabilities" : [ "GenericPointer" ]
+ },
+ {
+ "enumerant" : "PushConstant",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "AtomicCounter",
+ "value" : 10,
+ "capabilities" : [ "AtomicStorage" ]
+ },
+ {
+ "enumerant" : "Image",
+ "value" : 11
+ },
+ {
+ "enumerant" : "StorageBuffer",
+ "value" : 12,
+ "extensions" : [
+ "SPV_KHR_storage_buffer_storage_class",
+ "SPV_KHR_variable_pointers"
+ ],
+ "capabilities" : [ "Shader" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Dim",
+ "enumerants" : [
+ {
+ "enumerant" : "1D",
+ "value" : 0,
+ "capabilities" : [ "Sampled1D" ]
+ },
+ {
+ "enumerant" : "2D",
+ "value" : 1
+ },
+ {
+ "enumerant" : "3D",
+ "value" : 2
+ },
+ {
+ "enumerant" : "Cube",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rect",
+ "value" : 4,
+ "capabilities" : [ "SampledRect" ]
+ },
+ {
+ "enumerant" : "Buffer",
+ "value" : 5,
+ "capabilities" : [ "SampledBuffer" ]
+ },
+ {
+ "enumerant" : "SubpassData",
+ "value" : 6,
+ "capabilities" : [ "InputAttachment" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SamplerAddressingMode",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ClampToEdge",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Clamp",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Repeat",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RepeatMirrored",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SamplerFilterMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Nearest",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Linear",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageFormat",
+ "enumerants" : [
+ {
+ "enumerant" : "Unknown",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Rgba32f",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16f",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32f",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8",
+ "value" : 4,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8Snorm",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rg32f",
+ "value" : 6,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16f",
+ "value" : 7,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R11fG11fB10f",
+ "value" : 8,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16f",
+ "value" : 9,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba16",
+ "value" : 10,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgb10A2",
+ "value" : 11,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16",
+ "value" : 12,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8",
+ "value" : 13,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16",
+ "value" : 14,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8",
+ "value" : 15,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba16Snorm",
+ "value" : 16,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16Snorm",
+ "value" : 17,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8Snorm",
+ "value" : 18,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16Snorm",
+ "value" : 19,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8Snorm",
+ "value" : 20,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba32i",
+ "value" : 21,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16i",
+ "value" : 22,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8i",
+ "value" : 23,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32i",
+ "value" : 24,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rg32i",
+ "value" : 25,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16i",
+ "value" : 26,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8i",
+ "value" : 27,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16i",
+ "value" : 28,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8i",
+ "value" : 29,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba32ui",
+ "value" : 30,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16ui",
+ "value" : 31,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8ui",
+ "value" : 32,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32ui",
+ "value" : 33,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgb10a2ui",
+ "value" : 34,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg32ui",
+ "value" : 35,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16ui",
+ "value" : 36,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8ui",
+ "value" : 37,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16ui",
+ "value" : 38,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8ui",
+ "value" : 39,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageChannelOrder",
+ "enumerants" : [
+ {
+ "enumerant" : "R",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "A",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RG",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RA",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGB",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGBA",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "BGRA",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ARGB",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Intensity",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Luminance",
+ "value" : 9,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Rx",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGx",
+ "value" : 11,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGBx",
+ "value" : 12,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Depth",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "DepthStencil",
+ "value" : 14,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGB",
+ "value" : 15,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGBx",
+ "value" : 16,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGBA",
+ "value" : 17,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sBGRA",
+ "value" : 18,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ABGR",
+ "value" : 19,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageChannelDataType",
+ "enumerants" : [
+ {
+ "enumerant" : "SnormInt8",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SnormInt16",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt8",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt16",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormShort565",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormShort555",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt101010",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt8",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt16",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt32",
+ "value" : 9,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt8",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt16",
+ "value" : 11,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt32",
+ "value" : 12,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "HalfFloat",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float",
+ "value" : 14,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt24",
+ "value" : 15,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt101010_2",
+ "value" : 16,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FPRoundingMode",
+ "enumerants" : [
+ {
+ "enumerant" : "RTE",
+ "value" : 0,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ },
+ {
+ "enumerant" : "RTZ",
+ "value" : 1,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ },
+ {
+ "enumerant" : "RTP",
+ "value" : 2,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ },
+ {
+ "enumerant" : "RTN",
+ "value" : 3,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "LinkageType",
+ "enumerants" : [
+ {
+ "enumerant" : "Export",
+ "value" : 0,
+ "capabilities" : [ "Linkage" ]
+ },
+ {
+ "enumerant" : "Import",
+ "value" : 1,
+ "capabilities" : [ "Linkage" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "AccessQualifier",
+ "enumerants" : [
+ {
+ "enumerant" : "ReadOnly",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WriteOnly",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ReadWrite",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FunctionParameterAttribute",
+ "enumerants" : [
+ {
+ "enumerant" : "Zext",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Sext",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ByVal",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Sret",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoAlias",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoCapture",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoWrite",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoReadWrite",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Decoration",
+ "enumerants" : [
+ {
+ "enumerant" : "RelaxedPrecision",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SpecId",
+ "value" : 1,
+ "capabilities" : [ "Shader", "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" }
+ ]
+ },
+ {
+ "enumerant" : "Block",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "BufferBlock",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "RowMajor",
+ "value" : 4,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "ColMajor",
+ "value" : 5,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "ArrayStride",
+ "value" : 6,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Array Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "MatrixStride",
+ "value" : 7,
+ "capabilities" : [ "Matrix" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "GLSLShared",
+ "value" : 8,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLSLPacked",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "CPacked",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "BuiltIn",
+ "value" : 11,
+ "parameters" : [
+ { "kind" : "BuiltIn" }
+ ]
+ },
+ {
+ "enumerant" : "NoPerspective",
+ "value" : 13,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Flat",
+ "value" : 14,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Patch",
+ "value" : 15,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Centroid",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Sample",
+ "value" : 17,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "Invariant",
+ "value" : 18,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Restrict",
+ "value" : 19
+ },
+ {
+ "enumerant" : "Aliased",
+ "value" : 20
+ },
+ {
+ "enumerant" : "Volatile",
+ "value" : 21
+ },
+ {
+ "enumerant" : "Constant",
+ "value" : 22,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Coherent",
+ "value" : 23
+ },
+ {
+ "enumerant" : "NonWritable",
+ "value" : 24
+ },
+ {
+ "enumerant" : "NonReadable",
+ "value" : 25
+ },
+ {
+ "enumerant" : "Uniform",
+ "value" : 26,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SaturatedConversion",
+ "value" : 28,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Stream",
+ "value" : 29,
+ "capabilities" : [ "GeometryStreams" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Stream Number'" }
+ ]
+ },
+ {
+ "enumerant" : "Location",
+ "value" : 30,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Location'" }
+ ]
+ },
+ {
+ "enumerant" : "Component",
+ "value" : 31,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Component'" }
+ ]
+ },
+ {
+ "enumerant" : "Index",
+ "value" : 32,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Index'" }
+ ]
+ },
+ {
+ "enumerant" : "Binding",
+ "value" : 33,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Binding Point'" }
+ ]
+ },
+ {
+ "enumerant" : "DescriptorSet",
+ "value" : 34,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" }
+ ]
+ },
+ {
+ "enumerant" : "Offset",
+ "value" : 35,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Byte Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "XfbBuffer",
+ "value" : 36,
+ "capabilities" : [ "TransformFeedback" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" }
+ ]
+ },
+ {
+ "enumerant" : "XfbStride",
+ "value" : 37,
+ "capabilities" : [ "TransformFeedback" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'XFB Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "FuncParamAttr",
+ "value" : 38,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" }
+ ]
+ },
+ {
+ "enumerant" : "FPRoundingMode",
+ "value" : 39,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ],
+ "parameters" : [
+ { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" }
+ ]
+ },
+ {
+ "enumerant" : "FPFastMathMode",
+ "value" : 40,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" }
+ ]
+ },
+ {
+ "enumerant" : "LinkageAttributes",
+ "value" : 41,
+ "capabilities" : [ "Linkage" ],
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Name'" },
+ { "kind" : "LinkageType", "name" : "'Linkage Type'" }
+ ]
+ },
+ {
+ "enumerant" : "NoContraction",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InputAttachmentIndex",
+ "value" : 43,
+ "capabilities" : [ "InputAttachment" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Attachment Index'" }
+ ]
+ },
+ {
+ "enumerant" : "Alignment",
+ "value" : 44,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Alignment'" }
+ ]
+ },
+ {
+ "enumerant" : "MaxByteOffset",
+ "value" : 45,
+ "capabilities" : [ "Addresses" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "ExplicitInterpAMD",
+ "value" : 4999
+ },
+ {
+ "enumerant" : "OverrideCoverageNV",
+ "value" : 5248,
+ "capabilities" : [ "SampleMaskOverrideCoverageNV" ]
+ },
+ {
+ "enumerant" : "PassthroughNV",
+ "value" : 5250,
+ "capabilities" : [ "GeometryShaderPassthroughNV" ]
+ },
+ {
+ "enumerant" : "ViewportRelativeNV",
+ "value" : 5252,
+ "capabilities" : [ "ShaderViewportMaskNV" ]
+ },
+ {
+ "enumerant" : "SecondaryViewportRelativeNV",
+ "value" : 5256,
+ "capabilities" : [ "ShaderStereoViewNV" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "HlslCounterBufferGOOGLE",
+ "value" : 5634,
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Counter Buffer'" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ]
+ },
+ {
+ "enumerant" : "HlslSemanticGOOGLE",
+ "value" : 5635,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Semantic'" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "BuiltIn",
+ "enumerants" : [
+ {
+ "enumerant" : "Position",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointSize",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ClipDistance",
+ "value" : 3,
+ "capabilities" : [ "ClipDistance" ]
+ },
+ {
+ "enumerant" : "CullDistance",
+ "value" : 4,
+ "capabilities" : [ "CullDistance" ]
+ },
+ {
+ "enumerant" : "VertexId",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InstanceId",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PrimitiveId",
+ "value" : 7,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "InvocationId",
+ "value" : 8,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "Layer",
+ "value" : 9,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "ViewportIndex",
+ "value" : 10,
+ "capabilities" : [ "MultiViewport" ]
+ },
+ {
+ "enumerant" : "TessLevelOuter",
+ "value" : 11,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessLevelInner",
+ "value" : 12,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessCoord",
+ "value" : 13,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "PatchVertices",
+ "value" : 14,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "FragCoord",
+ "value" : 15,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointCoord",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "FrontFacing",
+ "value" : 17,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampleId",
+ "value" : 18,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "SamplePosition",
+ "value" : 19,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "SampleMask",
+ "value" : 20,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "FragDepth",
+ "value" : 22,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "HelperInvocation",
+ "value" : 23,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "NumWorkgroups",
+ "value" : 24
+ },
+ {
+ "enumerant" : "WorkgroupSize",
+ "value" : 25
+ },
+ {
+ "enumerant" : "WorkgroupId",
+ "value" : 26
+ },
+ {
+ "enumerant" : "LocalInvocationId",
+ "value" : 27
+ },
+ {
+ "enumerant" : "GlobalInvocationId",
+ "value" : 28
+ },
+ {
+ "enumerant" : "LocalInvocationIndex",
+ "value" : 29
+ },
+ {
+ "enumerant" : "WorkDim",
+ "value" : 30,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalSize",
+ "value" : 31,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "EnqueuedWorkgroupSize",
+ "value" : 32,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalOffset",
+ "value" : 33,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalLinearId",
+ "value" : 34,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupSize",
+ "value" : 36,
+ "capabilities" : [ "Kernel", "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupMaxSize",
+ "value" : 37,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NumSubgroups",
+ "value" : 38,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NumEnqueuedSubgroups",
+ "value" : 39,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupId",
+ "value" : 40,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupLocalInvocationId",
+ "value" : 41,
+ "capabilities" : [ "Kernel", "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "VertexIndex",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InstanceIndex",
+ "value" : 43,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SubgroupEqMaskKHR",
+ "value" : 4416,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupGeMaskKHR",
+ "value" : 4417,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupGtMaskKHR",
+ "value" : 4418,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupLeMaskKHR",
+ "value" : 4419,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupLtMaskKHR",
+ "value" : 4420,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "BaseVertex",
+ "value" : 4424,
+ "capabilities" : [ "DrawParameters" ]
+ },
+ {
+ "enumerant" : "BaseInstance",
+ "value" : 4425,
+ "capabilities" : [ "DrawParameters" ]
+ },
+ {
+ "enumerant" : "DrawIndex",
+ "value" : 4426,
+ "capabilities" : [ "DrawParameters" ]
+ },
+ {
+ "enumerant" : "DeviceIndex",
+ "value" : 4438,
+ "capabilities" : [ "DeviceGroup" ]
+ },
+ {
+ "enumerant" : "ViewIndex",
+ "value" : 4440,
+ "capabilities" : [ "MultiView" ]
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspAMD",
+ "value" : 4992
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspCentroidAMD",
+ "value" : 4993
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspSampleAMD",
+ "value" : 4994
+ },
+ {
+ "enumerant" : "BaryCoordSmoothAMD",
+ "value" : 4995
+ },
+ {
+ "enumerant" : "BaryCoordSmoothCentroidAMD",
+ "value" : 4996
+ },
+ {
+ "enumerant" : "BaryCoordSmoothSampleAMD",
+ "value" : 4997
+ },
+ {
+ "enumerant" : "BaryCoordPullModelAMD",
+ "value" : 4998
+ },
+ {
+ "enumerant" : "FragStencilRefEXT",
+ "value" : 5014,
+ "capabilities" : [ "StencilExportEXT" ]
+ },
+ {
+ "enumerant" : "ViewportMaskNV",
+ "value" : 5253,
+ "capabilities" : [ "ShaderViewportMaskNV" ]
+ },
+ {
+ "enumerant" : "SecondaryPositionNV",
+ "value" : 5257,
+ "capabilities" : [ "ShaderStereoViewNV" ]
+ },
+ {
+ "enumerant" : "SecondaryViewportMaskNV",
+ "value" : 5258,
+ "capabilities" : [ "ShaderStereoViewNV" ]
+ },
+ {
+ "enumerant" : "PositionPerViewNV",
+ "value" : 5261,
+ "capabilities" : [ "PerViewAttributesNV" ]
+ },
+ {
+ "enumerant" : "ViewportMaskPerViewNV",
+ "value" : 5262,
+ "capabilities" : [ "PerViewAttributesNV" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Scope",
+ "enumerants" : [
+ {
+ "enumerant" : "CrossDevice",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Device",
+ "value" : 1
+ },
+ {
+ "enumerant" : "Workgroup",
+ "value" : 2
+ },
+ {
+ "enumerant" : "Subgroup",
+ "value" : 3
+ },
+ {
+ "enumerant" : "Invocation",
+ "value" : 4
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "GroupOperation",
+ "enumerants" : [
+ {
+ "enumerant" : "Reduce",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "InclusiveScan",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ExclusiveScan",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "KernelEnqueueFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "NoWait",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WaitKernel",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WaitWorkGroup",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Capability",
+ "enumerants" : [
+ {
+ "enumerant" : "Matrix",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Shader",
+ "value" : 1,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "Geometry",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Tessellation",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Addresses",
+ "value" : 4
+ },
+ {
+ "enumerant" : "Linkage",
+ "value" : 5
+ },
+ {
+ "enumerant" : "Kernel",
+ "value" : 6
+ },
+ {
+ "enumerant" : "Vector16",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float16Buffer",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float16",
+ "value" : 9
+ },
+ {
+ "enumerant" : "Float64",
+ "value" : 10
+ },
+ {
+ "enumerant" : "Int64",
+ "value" : 11
+ },
+ {
+ "enumerant" : "Int64Atomics",
+ "value" : 12,
+ "capabilities" : [ "Int64" ]
+ },
+ {
+ "enumerant" : "ImageBasic",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ImageReadWrite",
+ "value" : 14,
+ "capabilities" : [ "ImageBasic" ]
+ },
+ {
+ "enumerant" : "ImageMipmap",
+ "value" : 15,
+ "capabilities" : [ "ImageBasic" ]
+ },
+ {
+ "enumerant" : "Pipes",
+ "value" : 17,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Groups",
+ "value" : 18
+ },
+ {
+ "enumerant" : "DeviceEnqueue",
+ "value" : 19,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "LiteralSampler",
+ "value" : 20,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "AtomicStorage",
+ "value" : 21,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Int16",
+ "value" : 22
+ },
+ {
+ "enumerant" : "TessellationPointSize",
+ "value" : 23,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "GeometryPointSize",
+ "value" : 24,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "ImageGatherExtended",
+ "value" : 25,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageMultisample",
+ "value" : 27,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "UniformBufferArrayDynamicIndexing",
+ "value" : 28,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampledImageArrayDynamicIndexing",
+ "value" : 29,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageBufferArrayDynamicIndexing",
+ "value" : 30,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageArrayDynamicIndexing",
+ "value" : 31,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ClipDistance",
+ "value" : 32,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "CullDistance",
+ "value" : 33,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageCubeArray",
+ "value" : 34,
+ "capabilities" : [ "SampledCubeArray" ]
+ },
+ {
+ "enumerant" : "SampleRateShading",
+ "value" : 35,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageRect",
+ "value" : 36,
+ "capabilities" : [ "SampledRect" ]
+ },
+ {
+ "enumerant" : "SampledRect",
+ "value" : 37,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GenericPointer",
+ "value" : 38,
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "enumerant" : "Int8",
+ "value" : 39,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "InputAttachment",
+ "value" : 40,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SparseResidency",
+ "value" : 41,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "MinLod",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Sampled1D",
+ "value" : 43
+ },
+ {
+ "enumerant" : "Image1D",
+ "value" : 44,
+ "capabilities" : [ "Sampled1D" ]
+ },
+ {
+ "enumerant" : "SampledCubeArray",
+ "value" : 45,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampledBuffer",
+ "value" : 46
+ },
+ {
+ "enumerant" : "ImageBuffer",
+ "value" : 47,
+ "capabilities" : [ "SampledBuffer" ]
+ },
+ {
+ "enumerant" : "ImageMSArray",
+ "value" : 48,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageExtendedFormats",
+ "value" : 49,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageQuery",
+ "value" : 50,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DerivativeControl",
+ "value" : 51,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InterpolationFunction",
+ "value" : 52,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "TransformFeedback",
+ "value" : 53,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GeometryStreams",
+ "value" : 54,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "StorageImageReadWithoutFormat",
+ "value" : 55,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageWriteWithoutFormat",
+ "value" : 56,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "MultiViewport",
+ "value" : 57,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "SubgroupDispatch",
+ "value" : 58,
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "enumerant" : "NamedBarrier",
+ "value" : 59,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "PipeStorage",
+ "value" : 60,
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "enumerant" : "SubgroupBallotKHR",
+ "value" : 4423,
+ "extensions" : [ "SPV_KHR_shader_ballot" ]
+ },
+ {
+ "enumerant" : "DrawParameters",
+ "value" : 4427,
+ "extensions" : [ "SPV_KHR_shader_draw_parameters" ]
+ },
+ {
+ "enumerant" : "SubgroupVoteKHR",
+ "value" : 4431,
+ "extensions" : [ "SPV_KHR_subgroup_vote" ]
+ },
+ {
+ "enumerant" : "StorageBuffer16BitAccess",
+ "value" : 4433,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StorageUniformBufferBlock16",
+ "value" : 4433,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "UniformAndStorageBuffer16BitAccess",
+ "value" : 4434,
+ "capabilities" : [
+ "StorageBuffer16BitAccess",
+ "StorageUniformBufferBlock16"
+ ],
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StorageUniform16",
+ "value" : 4434,
+ "capabilities" : [
+ "StorageBuffer16BitAccess",
+ "StorageUniformBufferBlock16"
+ ],
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StoragePushConstant16",
+ "value" : 4435,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StorageInputOutput16",
+ "value" : 4436,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "DeviceGroup",
+ "value" : 4437,
+ "extensions" : [ "SPV_KHR_device_group" ]
+ },
+ {
+ "enumerant" : "MultiView",
+ "value" : 4439,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_multiview" ]
+ },
+ {
+ "enumerant" : "VariablePointersStorageBuffer",
+ "value" : 4441,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_variable_pointers" ]
+ },
+ {
+ "enumerant" : "VariablePointers",
+ "value" : 4442,
+ "capabilities" : [ "VariablePointersStorageBuffer" ],
+ "extensions" : [ "SPV_KHR_variable_pointers" ]
+ },
+ {
+ "enumerant": "AtomicStorageOps",
+ "value": 4445,
+ "extensions": [ "SPV_KHR_shader_atomic_counter_ops" ]
+ },
+ {
+ "enumerant" : "SampleMaskPostDepthCoverage",
+ "value" : 4447,
+ "extensions" : [ "SPV_KHR_post_depth_coverage" ]
+ },
+ {
+ "enumerant" : "ImageGatherBiasLodAMD",
+ "value" : 5009,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ]
+ },
+ {
+ "enumerant" : "FragmentMaskAMD",
+ "value" : 5010,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_shader_fragment_mask" ]
+ },
+ {
+ "enumerant" : "StencilExportEXT",
+ "value" : 5013,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_shader_stencil_export" ]
+ },
+ {
+ "enumerant" : "ImageReadWriteLodAMD",
+ "value" : 5015,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ]
+ },
+ {
+ "enumerant" : "SampleMaskOverrideCoverageNV",
+ "value" : 5249,
+ "capabilities" : [ "SampleRateShading" ],
+ "extensions" : [ "SPV_NV_sample_mask_override_coverage" ]
+ },
+ {
+ "enumerant" : "GeometryShaderPassthroughNV",
+ "value" : 5251,
+ "capabilities" : [ "Geometry" ],
+ "extensions" : [ "SPV_NV_geometry_shader_passthrough" ]
+ },
+ {
+ "enumerant" : "ShaderViewportIndexLayerEXT",
+ "value" : 5254,
+ "capabilities" : [ "MultiViewport" ],
+ "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ]
+ },
+ {
+ "enumerant" : "ShaderViewportIndexLayerNV",
+ "value" : 5254,
+ "capabilities" : [ "MultiViewport" ],
+ "extensions" : [ "SPV_NV_viewport_array2" ]
+ },
+ {
+ "enumerant" : "ShaderViewportMaskNV",
+ "value" : 5255,
+ "capabilities" : [ "ShaderViewportIndexLayerNV" ],
+ "extensions" : [ "SPV_NV_viewport_array2" ]
+ },
+ {
+ "enumerant" : "ShaderStereoViewNV",
+ "value" : 5259,
+ "capabilities" : [ "ShaderViewportMaskNV" ],
+ "extensions" : [ "SPV_NV_stereo_view_rendering" ]
+ },
+ {
+ "enumerant" : "PerViewAttributesNV",
+ "value" : 5260,
+ "capabilities" : [ "MultiView" ],
+ "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ]
+ },
+ {
+ "enumerant" : "SubgroupShuffleINTEL",
+ "value" : 5568,
+ "extensions" : [ "SPV_INTEL_subgroups" ]
+ },
+ {
+ "enumerant" : "SubgroupBufferBlockIOINTEL",
+ "value" : 5569,
+ "extensions" : [ "SPV_INTEL_subgroups" ]
+ },
+ {
+ "enumerant" : "SubgroupImageBlockIOINTEL",
+ "value" : 5570,
+ "extensions" : [ "SPV_INTEL_subgroups" ]
+ }
+ ]
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdResultType",
+ "doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdResult",
+ "doc" : "Definition of an <id> representing the result of the enclosing instruction"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdMemorySemantics",
+ "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the MemorySemantics operand kind"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdScope",
+ "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the Scope operand kind"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdRef",
+ "doc" : "Reference to an <id>"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralInteger",
+ "doc" : "An integer consuming one or more words"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralString",
+ "doc" : "A null-terminated stream of characters consuming an integral number of words"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralContextDependentNumber",
+ "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralExtInstInteger",
+ "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralSpecConstantOpInteger",
+ "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)"
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairLiteralIntegerIdRef",
+ "bases" : [ "LiteralInteger", "IdRef" ]
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairIdRefLiteralInteger",
+ "bases" : [ "IdRef", "LiteralInteger" ]
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairIdRefIdRef",
+ "bases" : [ "IdRef", "IdRef" ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.cs b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.cs
new file mode 100644
index 0000000000..99194e5145
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.cs
@@ -0,0 +1,1015 @@
+// Copyright (c) 2014-2018 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#
+//
+// - 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
+//
+// 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
+{
+
+ public static class Specification
+ {
+ public const uint MagicNumber = 0x07230203;
+ public const uint Version = 0x00010100;
+ public const uint Revision = 8;
+ public const uint OpCodeMask = 0xffff;
+ public const uint WordCountShift = 16;
+
+ public enum SourceLanguage
+ {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ }
+
+ public enum ExecutionModel
+ {
+ Vertex = 0,
+ TessellationControl = 1,
+ TessellationEvaluation = 2,
+ Geometry = 3,
+ Fragment = 4,
+ GLCompute = 5,
+ Kernel = 6,
+ }
+
+ public enum AddressingModel
+ {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ }
+
+ public enum MemoryModel
+ {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ }
+
+ 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,
+ PostDepthCoverage = 4446,
+ StencilRefReplacingEXT = 5027,
+ }
+
+ 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,
+ }
+
+ public enum Dim
+ {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ }
+
+ public enum SamplerAddressingMode
+ {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ }
+
+ public enum SamplerFilterMode
+ {
+ Nearest = 0,
+ Linear = 1,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ public enum ImageOperandsShift
+ {
+ Bias = 0,
+ Lod = 1,
+ Grad = 2,
+ ConstOffset = 3,
+ Offset = 4,
+ ConstOffsets = 5,
+ Sample = 6,
+ MinLod = 7,
+ }
+
+ public enum ImageOperandsMask
+ {
+ MaskNone = 0,
+ Bias = 0x00000001,
+ Lod = 0x00000002,
+ Grad = 0x00000004,
+ ConstOffset = 0x00000008,
+ Offset = 0x00000010,
+ ConstOffsets = 0x00000020,
+ Sample = 0x00000040,
+ MinLod = 0x00000080,
+ }
+
+ public enum FPFastMathModeShift
+ {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ }
+
+ public enum FPFastMathModeMask
+ {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+ }
+
+ public enum FPRoundingMode
+ {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ }
+
+ public enum LinkageType
+ {
+ Export = 0,
+ Import = 1,
+ }
+
+ public enum AccessQualifier
+ {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ }
+
+ public enum FunctionParameterAttribute
+ {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ }
+
+ 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,
+ 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,
+ ExplicitInterpAMD = 4999,
+ OverrideCoverageNV = 5248,
+ PassthroughNV = 5250,
+ ViewportRelativeNV = 5252,
+ SecondaryViewportRelativeNV = 5256,
+ HlslCounterBufferGOOGLE = 5634,
+ HlslSemanticGOOGLE = 5635,
+ }
+
+ 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,
+ SubgroupEqMaskKHR = 4416,
+ SubgroupGeMaskKHR = 4417,
+ SubgroupGtMaskKHR = 4418,
+ SubgroupLeMaskKHR = 4419,
+ SubgroupLtMaskKHR = 4420,
+ BaseVertex = 4424,
+ BaseInstance = 4425,
+ DrawIndex = 4426,
+ DeviceIndex = 4438,
+ ViewIndex = 4440,
+ 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,
+ }
+
+ public enum SelectionControlShift
+ {
+ Flatten = 0,
+ DontFlatten = 1,
+ }
+
+ public enum SelectionControlMask
+ {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+ }
+
+ public enum LoopControlShift
+ {
+ Unroll = 0,
+ DontUnroll = 1,
+ DependencyInfinite = 2,
+ DependencyLength = 3,
+ }
+
+ public enum LoopControlMask
+ {
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+ DependencyInfinite = 0x00000004,
+ DependencyLength = 0x00000008,
+ }
+
+ public enum FunctionControlShift
+ {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ }
+
+ public enum FunctionControlMask
+ {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+ }
+
+ public enum MemorySemanticsShift
+ {
+ Acquire = 1,
+ Release = 2,
+ AcquireRelease = 3,
+ SequentiallyConsistent = 4,
+ UniformMemory = 6,
+ SubgroupMemory = 7,
+ WorkgroupMemory = 8,
+ CrossWorkgroupMemory = 9,
+ AtomicCounterMemory = 10,
+ ImageMemory = 11,
+ }
+
+ 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,
+ }
+
+ public enum MemoryAccessShift
+ {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ }
+
+ public enum MemoryAccessMask
+ {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+ }
+
+ public enum Scope
+ {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ }
+
+ public enum GroupOperation
+ {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ }
+
+ public enum KernelEnqueueFlags
+ {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ }
+
+ public enum KernelProfilingInfoShift
+ {
+ CmdExecTime = 0,
+ }
+
+ public enum KernelProfilingInfoMask
+ {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+ }
+
+ 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,
+ SubgroupBallotKHR = 4423,
+ DrawParameters = 4427,
+ 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,
+ ImageGatherBiasLodAMD = 5009,
+ FragmentMaskAMD = 5010,
+ StencilExportEXT = 5013,
+ ImageReadWriteLodAMD = 5015,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerEXT = 5254,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ SubgroupShuffleINTEL = 5568,
+ SubgroupBufferBlockIOINTEL = 5569,
+ SubgroupImageBlockIOINTEL = 5570,
+ }
+
+ 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,
+ OpDecorateId = 332,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateStringGOOGLE = 5633,
+ }
+ }
+}
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.h
new file mode 100644
index 0000000000..971c3be6d2
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.h
@@ -0,0 +1,1015 @@
+/*
+** Copyright (c) 2014-2018 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+/*
+** This header is automatically generated by the same tool that creates
+** the Binary Section of the SPIR-V specification.
+*/
+
+/*
+** Enumeration tokens for SPIR-V, in various styles:
+** C, C++, C++11, JSON, Lua, Python
+**
+** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+**
+** Some tokens act like mask values, which can be OR'd together,
+** while others are mutually exclusive. The mask-like ones have
+** "Mask" in their name, and a parallel enum that has the shift
+** amount (1 << x) for each corresponding enumerant.
+*/
+
+#ifndef spirv_H
+#define spirv_H
+
+typedef unsigned int SpvId;
+
+#define SPV_VERSION 0x10100
+#define SPV_REVISION 8
+
+static const unsigned int SpvMagicNumber = 0x07230203;
+static const unsigned int SpvVersion = 0x00010100;
+static const unsigned int SpvRevision = 8;
+static const unsigned int SpvOpCodeMask = 0xffff;
+static const unsigned int SpvWordCountShift = 16;
+
+typedef enum SpvSourceLanguage_ {
+ SpvSourceLanguageUnknown = 0,
+ SpvSourceLanguageESSL = 1,
+ SpvSourceLanguageGLSL = 2,
+ SpvSourceLanguageOpenCL_C = 3,
+ SpvSourceLanguageOpenCL_CPP = 4,
+ SpvSourceLanguageHLSL = 5,
+ SpvSourceLanguageMax = 0x7fffffff,
+} SpvSourceLanguage;
+
+typedef enum SpvExecutionModel_ {
+ SpvExecutionModelVertex = 0,
+ SpvExecutionModelTessellationControl = 1,
+ SpvExecutionModelTessellationEvaluation = 2,
+ SpvExecutionModelGeometry = 3,
+ SpvExecutionModelFragment = 4,
+ SpvExecutionModelGLCompute = 5,
+ SpvExecutionModelKernel = 6,
+ SpvExecutionModelMax = 0x7fffffff,
+} SpvExecutionModel;
+
+typedef enum SpvAddressingModel_ {
+ SpvAddressingModelLogical = 0,
+ SpvAddressingModelPhysical32 = 1,
+ SpvAddressingModelPhysical64 = 2,
+ SpvAddressingModelMax = 0x7fffffff,
+} SpvAddressingModel;
+
+typedef enum SpvMemoryModel_ {
+ SpvMemoryModelSimple = 0,
+ SpvMemoryModelGLSL450 = 1,
+ SpvMemoryModelOpenCL = 2,
+ SpvMemoryModelMax = 0x7fffffff,
+} SpvMemoryModel;
+
+typedef enum SpvExecutionMode_ {
+ SpvExecutionModeInvocations = 0,
+ SpvExecutionModeSpacingEqual = 1,
+ SpvExecutionModeSpacingFractionalEven = 2,
+ SpvExecutionModeSpacingFractionalOdd = 3,
+ SpvExecutionModeVertexOrderCw = 4,
+ SpvExecutionModeVertexOrderCcw = 5,
+ SpvExecutionModePixelCenterInteger = 6,
+ SpvExecutionModeOriginUpperLeft = 7,
+ SpvExecutionModeOriginLowerLeft = 8,
+ SpvExecutionModeEarlyFragmentTests = 9,
+ SpvExecutionModePointMode = 10,
+ SpvExecutionModeXfb = 11,
+ SpvExecutionModeDepthReplacing = 12,
+ SpvExecutionModeDepthGreater = 14,
+ SpvExecutionModeDepthLess = 15,
+ SpvExecutionModeDepthUnchanged = 16,
+ SpvExecutionModeLocalSize = 17,
+ SpvExecutionModeLocalSizeHint = 18,
+ SpvExecutionModeInputPoints = 19,
+ SpvExecutionModeInputLines = 20,
+ SpvExecutionModeInputLinesAdjacency = 21,
+ SpvExecutionModeTriangles = 22,
+ SpvExecutionModeInputTrianglesAdjacency = 23,
+ SpvExecutionModeQuads = 24,
+ SpvExecutionModeIsolines = 25,
+ SpvExecutionModeOutputVertices = 26,
+ SpvExecutionModeOutputPoints = 27,
+ SpvExecutionModeOutputLineStrip = 28,
+ SpvExecutionModeOutputTriangleStrip = 29,
+ SpvExecutionModeVecTypeHint = 30,
+ SpvExecutionModeContractionOff = 31,
+ SpvExecutionModeInitializer = 33,
+ SpvExecutionModeFinalizer = 34,
+ SpvExecutionModeSubgroupSize = 35,
+ SpvExecutionModeSubgroupsPerWorkgroup = 36,
+ SpvExecutionModePostDepthCoverage = 4446,
+ SpvExecutionModeStencilRefReplacingEXT = 5027,
+ SpvExecutionModeMax = 0x7fffffff,
+} SpvExecutionMode;
+
+typedef enum SpvStorageClass_ {
+ SpvStorageClassUniformConstant = 0,
+ SpvStorageClassInput = 1,
+ SpvStorageClassUniform = 2,
+ SpvStorageClassOutput = 3,
+ SpvStorageClassWorkgroup = 4,
+ SpvStorageClassCrossWorkgroup = 5,
+ SpvStorageClassPrivate = 6,
+ SpvStorageClassFunction = 7,
+ SpvStorageClassGeneric = 8,
+ SpvStorageClassPushConstant = 9,
+ SpvStorageClassAtomicCounter = 10,
+ SpvStorageClassImage = 11,
+ SpvStorageClassStorageBuffer = 12,
+ SpvStorageClassMax = 0x7fffffff,
+} SpvStorageClass;
+
+typedef enum SpvDim_ {
+ SpvDim1D = 0,
+ SpvDim2D = 1,
+ SpvDim3D = 2,
+ SpvDimCube = 3,
+ SpvDimRect = 4,
+ SpvDimBuffer = 5,
+ SpvDimSubpassData = 6,
+ SpvDimMax = 0x7fffffff,
+} SpvDim;
+
+typedef enum SpvSamplerAddressingMode_ {
+ SpvSamplerAddressingModeNone = 0,
+ SpvSamplerAddressingModeClampToEdge = 1,
+ SpvSamplerAddressingModeClamp = 2,
+ SpvSamplerAddressingModeRepeat = 3,
+ SpvSamplerAddressingModeRepeatMirrored = 4,
+ SpvSamplerAddressingModeMax = 0x7fffffff,
+} SpvSamplerAddressingMode;
+
+typedef enum SpvSamplerFilterMode_ {
+ SpvSamplerFilterModeNearest = 0,
+ SpvSamplerFilterModeLinear = 1,
+ SpvSamplerFilterModeMax = 0x7fffffff,
+} SpvSamplerFilterMode;
+
+typedef enum SpvImageFormat_ {
+ SpvImageFormatUnknown = 0,
+ SpvImageFormatRgba32f = 1,
+ SpvImageFormatRgba16f = 2,
+ SpvImageFormatR32f = 3,
+ SpvImageFormatRgba8 = 4,
+ SpvImageFormatRgba8Snorm = 5,
+ SpvImageFormatRg32f = 6,
+ SpvImageFormatRg16f = 7,
+ SpvImageFormatR11fG11fB10f = 8,
+ SpvImageFormatR16f = 9,
+ SpvImageFormatRgba16 = 10,
+ SpvImageFormatRgb10A2 = 11,
+ SpvImageFormatRg16 = 12,
+ SpvImageFormatRg8 = 13,
+ SpvImageFormatR16 = 14,
+ SpvImageFormatR8 = 15,
+ SpvImageFormatRgba16Snorm = 16,
+ SpvImageFormatRg16Snorm = 17,
+ SpvImageFormatRg8Snorm = 18,
+ SpvImageFormatR16Snorm = 19,
+ SpvImageFormatR8Snorm = 20,
+ SpvImageFormatRgba32i = 21,
+ SpvImageFormatRgba16i = 22,
+ SpvImageFormatRgba8i = 23,
+ SpvImageFormatR32i = 24,
+ SpvImageFormatRg32i = 25,
+ SpvImageFormatRg16i = 26,
+ SpvImageFormatRg8i = 27,
+ SpvImageFormatR16i = 28,
+ SpvImageFormatR8i = 29,
+ SpvImageFormatRgba32ui = 30,
+ SpvImageFormatRgba16ui = 31,
+ SpvImageFormatRgba8ui = 32,
+ SpvImageFormatR32ui = 33,
+ SpvImageFormatRgb10a2ui = 34,
+ SpvImageFormatRg32ui = 35,
+ SpvImageFormatRg16ui = 36,
+ SpvImageFormatRg8ui = 37,
+ SpvImageFormatR16ui = 38,
+ SpvImageFormatR8ui = 39,
+ SpvImageFormatMax = 0x7fffffff,
+} SpvImageFormat;
+
+typedef enum SpvImageChannelOrder_ {
+ SpvImageChannelOrderR = 0,
+ SpvImageChannelOrderA = 1,
+ SpvImageChannelOrderRG = 2,
+ SpvImageChannelOrderRA = 3,
+ SpvImageChannelOrderRGB = 4,
+ SpvImageChannelOrderRGBA = 5,
+ SpvImageChannelOrderBGRA = 6,
+ SpvImageChannelOrderARGB = 7,
+ SpvImageChannelOrderIntensity = 8,
+ SpvImageChannelOrderLuminance = 9,
+ SpvImageChannelOrderRx = 10,
+ SpvImageChannelOrderRGx = 11,
+ SpvImageChannelOrderRGBx = 12,
+ SpvImageChannelOrderDepth = 13,
+ SpvImageChannelOrderDepthStencil = 14,
+ SpvImageChannelOrdersRGB = 15,
+ SpvImageChannelOrdersRGBx = 16,
+ SpvImageChannelOrdersRGBA = 17,
+ SpvImageChannelOrdersBGRA = 18,
+ SpvImageChannelOrderABGR = 19,
+ SpvImageChannelOrderMax = 0x7fffffff,
+} SpvImageChannelOrder;
+
+typedef enum SpvImageChannelDataType_ {
+ SpvImageChannelDataTypeSnormInt8 = 0,
+ SpvImageChannelDataTypeSnormInt16 = 1,
+ SpvImageChannelDataTypeUnormInt8 = 2,
+ SpvImageChannelDataTypeUnormInt16 = 3,
+ SpvImageChannelDataTypeUnormShort565 = 4,
+ SpvImageChannelDataTypeUnormShort555 = 5,
+ SpvImageChannelDataTypeUnormInt101010 = 6,
+ SpvImageChannelDataTypeSignedInt8 = 7,
+ SpvImageChannelDataTypeSignedInt16 = 8,
+ SpvImageChannelDataTypeSignedInt32 = 9,
+ SpvImageChannelDataTypeUnsignedInt8 = 10,
+ SpvImageChannelDataTypeUnsignedInt16 = 11,
+ SpvImageChannelDataTypeUnsignedInt32 = 12,
+ SpvImageChannelDataTypeHalfFloat = 13,
+ SpvImageChannelDataTypeFloat = 14,
+ SpvImageChannelDataTypeUnormInt24 = 15,
+ SpvImageChannelDataTypeUnormInt101010_2 = 16,
+ SpvImageChannelDataTypeMax = 0x7fffffff,
+} SpvImageChannelDataType;
+
+typedef enum SpvImageOperandsShift_ {
+ SpvImageOperandsBiasShift = 0,
+ SpvImageOperandsLodShift = 1,
+ SpvImageOperandsGradShift = 2,
+ SpvImageOperandsConstOffsetShift = 3,
+ SpvImageOperandsOffsetShift = 4,
+ SpvImageOperandsConstOffsetsShift = 5,
+ SpvImageOperandsSampleShift = 6,
+ SpvImageOperandsMinLodShift = 7,
+ SpvImageOperandsMax = 0x7fffffff,
+} SpvImageOperandsShift;
+
+typedef enum SpvImageOperandsMask_ {
+ SpvImageOperandsMaskNone = 0,
+ SpvImageOperandsBiasMask = 0x00000001,
+ SpvImageOperandsLodMask = 0x00000002,
+ SpvImageOperandsGradMask = 0x00000004,
+ SpvImageOperandsConstOffsetMask = 0x00000008,
+ SpvImageOperandsOffsetMask = 0x00000010,
+ SpvImageOperandsConstOffsetsMask = 0x00000020,
+ SpvImageOperandsSampleMask = 0x00000040,
+ SpvImageOperandsMinLodMask = 0x00000080,
+} SpvImageOperandsMask;
+
+typedef enum SpvFPFastMathModeShift_ {
+ SpvFPFastMathModeNotNaNShift = 0,
+ SpvFPFastMathModeNotInfShift = 1,
+ SpvFPFastMathModeNSZShift = 2,
+ SpvFPFastMathModeAllowRecipShift = 3,
+ SpvFPFastMathModeFastShift = 4,
+ SpvFPFastMathModeMax = 0x7fffffff,
+} SpvFPFastMathModeShift;
+
+typedef enum SpvFPFastMathModeMask_ {
+ SpvFPFastMathModeMaskNone = 0,
+ SpvFPFastMathModeNotNaNMask = 0x00000001,
+ SpvFPFastMathModeNotInfMask = 0x00000002,
+ SpvFPFastMathModeNSZMask = 0x00000004,
+ SpvFPFastMathModeAllowRecipMask = 0x00000008,
+ SpvFPFastMathModeFastMask = 0x00000010,
+} SpvFPFastMathModeMask;
+
+typedef enum SpvFPRoundingMode_ {
+ SpvFPRoundingModeRTE = 0,
+ SpvFPRoundingModeRTZ = 1,
+ SpvFPRoundingModeRTP = 2,
+ SpvFPRoundingModeRTN = 3,
+ SpvFPRoundingModeMax = 0x7fffffff,
+} SpvFPRoundingMode;
+
+typedef enum SpvLinkageType_ {
+ SpvLinkageTypeExport = 0,
+ SpvLinkageTypeImport = 1,
+ SpvLinkageTypeMax = 0x7fffffff,
+} SpvLinkageType;
+
+typedef enum SpvAccessQualifier_ {
+ SpvAccessQualifierReadOnly = 0,
+ SpvAccessQualifierWriteOnly = 1,
+ SpvAccessQualifierReadWrite = 2,
+ SpvAccessQualifierMax = 0x7fffffff,
+} SpvAccessQualifier;
+
+typedef enum SpvFunctionParameterAttribute_ {
+ SpvFunctionParameterAttributeZext = 0,
+ SpvFunctionParameterAttributeSext = 1,
+ SpvFunctionParameterAttributeByVal = 2,
+ SpvFunctionParameterAttributeSret = 3,
+ SpvFunctionParameterAttributeNoAlias = 4,
+ SpvFunctionParameterAttributeNoCapture = 5,
+ SpvFunctionParameterAttributeNoWrite = 6,
+ SpvFunctionParameterAttributeNoReadWrite = 7,
+ SpvFunctionParameterAttributeMax = 0x7fffffff,
+} SpvFunctionParameterAttribute;
+
+typedef enum SpvDecoration_ {
+ SpvDecorationRelaxedPrecision = 0,
+ SpvDecorationSpecId = 1,
+ SpvDecorationBlock = 2,
+ SpvDecorationBufferBlock = 3,
+ SpvDecorationRowMajor = 4,
+ SpvDecorationColMajor = 5,
+ SpvDecorationArrayStride = 6,
+ SpvDecorationMatrixStride = 7,
+ SpvDecorationGLSLShared = 8,
+ SpvDecorationGLSLPacked = 9,
+ SpvDecorationCPacked = 10,
+ SpvDecorationBuiltIn = 11,
+ SpvDecorationNoPerspective = 13,
+ SpvDecorationFlat = 14,
+ SpvDecorationPatch = 15,
+ SpvDecorationCentroid = 16,
+ SpvDecorationSample = 17,
+ SpvDecorationInvariant = 18,
+ SpvDecorationRestrict = 19,
+ SpvDecorationAliased = 20,
+ SpvDecorationVolatile = 21,
+ SpvDecorationConstant = 22,
+ SpvDecorationCoherent = 23,
+ SpvDecorationNonWritable = 24,
+ SpvDecorationNonReadable = 25,
+ SpvDecorationUniform = 26,
+ SpvDecorationSaturatedConversion = 28,
+ SpvDecorationStream = 29,
+ SpvDecorationLocation = 30,
+ SpvDecorationComponent = 31,
+ SpvDecorationIndex = 32,
+ SpvDecorationBinding = 33,
+ SpvDecorationDescriptorSet = 34,
+ SpvDecorationOffset = 35,
+ SpvDecorationXfbBuffer = 36,
+ SpvDecorationXfbStride = 37,
+ SpvDecorationFuncParamAttr = 38,
+ SpvDecorationFPRoundingMode = 39,
+ SpvDecorationFPFastMathMode = 40,
+ SpvDecorationLinkageAttributes = 41,
+ SpvDecorationNoContraction = 42,
+ SpvDecorationInputAttachmentIndex = 43,
+ SpvDecorationAlignment = 44,
+ SpvDecorationMaxByteOffset = 45,
+ SpvDecorationExplicitInterpAMD = 4999,
+ SpvDecorationOverrideCoverageNV = 5248,
+ SpvDecorationPassthroughNV = 5250,
+ SpvDecorationViewportRelativeNV = 5252,
+ SpvDecorationSecondaryViewportRelativeNV = 5256,
+ SpvDecorationHlslCounterBufferGOOGLE = 5634,
+ SpvDecorationHlslSemanticGOOGLE = 5635,
+ SpvDecorationMax = 0x7fffffff,
+} SpvDecoration;
+
+typedef enum SpvBuiltIn_ {
+ SpvBuiltInPosition = 0,
+ SpvBuiltInPointSize = 1,
+ SpvBuiltInClipDistance = 3,
+ SpvBuiltInCullDistance = 4,
+ SpvBuiltInVertexId = 5,
+ SpvBuiltInInstanceId = 6,
+ SpvBuiltInPrimitiveId = 7,
+ SpvBuiltInInvocationId = 8,
+ SpvBuiltInLayer = 9,
+ SpvBuiltInViewportIndex = 10,
+ SpvBuiltInTessLevelOuter = 11,
+ SpvBuiltInTessLevelInner = 12,
+ SpvBuiltInTessCoord = 13,
+ SpvBuiltInPatchVertices = 14,
+ SpvBuiltInFragCoord = 15,
+ SpvBuiltInPointCoord = 16,
+ SpvBuiltInFrontFacing = 17,
+ SpvBuiltInSampleId = 18,
+ SpvBuiltInSamplePosition = 19,
+ SpvBuiltInSampleMask = 20,
+ SpvBuiltInFragDepth = 22,
+ SpvBuiltInHelperInvocation = 23,
+ SpvBuiltInNumWorkgroups = 24,
+ SpvBuiltInWorkgroupSize = 25,
+ SpvBuiltInWorkgroupId = 26,
+ SpvBuiltInLocalInvocationId = 27,
+ SpvBuiltInGlobalInvocationId = 28,
+ SpvBuiltInLocalInvocationIndex = 29,
+ SpvBuiltInWorkDim = 30,
+ SpvBuiltInGlobalSize = 31,
+ SpvBuiltInEnqueuedWorkgroupSize = 32,
+ SpvBuiltInGlobalOffset = 33,
+ SpvBuiltInGlobalLinearId = 34,
+ SpvBuiltInSubgroupSize = 36,
+ SpvBuiltInSubgroupMaxSize = 37,
+ SpvBuiltInNumSubgroups = 38,
+ SpvBuiltInNumEnqueuedSubgroups = 39,
+ SpvBuiltInSubgroupId = 40,
+ SpvBuiltInSubgroupLocalInvocationId = 41,
+ SpvBuiltInVertexIndex = 42,
+ SpvBuiltInInstanceIndex = 43,
+ SpvBuiltInSubgroupEqMaskKHR = 4416,
+ SpvBuiltInSubgroupGeMaskKHR = 4417,
+ SpvBuiltInSubgroupGtMaskKHR = 4418,
+ SpvBuiltInSubgroupLeMaskKHR = 4419,
+ SpvBuiltInSubgroupLtMaskKHR = 4420,
+ SpvBuiltInBaseVertex = 4424,
+ SpvBuiltInBaseInstance = 4425,
+ SpvBuiltInDrawIndex = 4426,
+ SpvBuiltInDeviceIndex = 4438,
+ SpvBuiltInViewIndex = 4440,
+ SpvBuiltInBaryCoordNoPerspAMD = 4992,
+ SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
+ SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
+ SpvBuiltInBaryCoordSmoothAMD = 4995,
+ SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
+ SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
+ SpvBuiltInBaryCoordPullModelAMD = 4998,
+ SpvBuiltInFragStencilRefEXT = 5014,
+ SpvBuiltInViewportMaskNV = 5253,
+ SpvBuiltInSecondaryPositionNV = 5257,
+ SpvBuiltInSecondaryViewportMaskNV = 5258,
+ SpvBuiltInPositionPerViewNV = 5261,
+ SpvBuiltInViewportMaskPerViewNV = 5262,
+ SpvBuiltInMax = 0x7fffffff,
+} SpvBuiltIn;
+
+typedef enum SpvSelectionControlShift_ {
+ SpvSelectionControlFlattenShift = 0,
+ SpvSelectionControlDontFlattenShift = 1,
+ SpvSelectionControlMax = 0x7fffffff,
+} SpvSelectionControlShift;
+
+typedef enum SpvSelectionControlMask_ {
+ SpvSelectionControlMaskNone = 0,
+ SpvSelectionControlFlattenMask = 0x00000001,
+ SpvSelectionControlDontFlattenMask = 0x00000002,
+} SpvSelectionControlMask;
+
+typedef enum SpvLoopControlShift_ {
+ SpvLoopControlUnrollShift = 0,
+ SpvLoopControlDontUnrollShift = 1,
+ SpvLoopControlDependencyInfiniteShift = 2,
+ SpvLoopControlDependencyLengthShift = 3,
+ SpvLoopControlMax = 0x7fffffff,
+} SpvLoopControlShift;
+
+typedef enum SpvLoopControlMask_ {
+ SpvLoopControlMaskNone = 0,
+ SpvLoopControlUnrollMask = 0x00000001,
+ SpvLoopControlDontUnrollMask = 0x00000002,
+ SpvLoopControlDependencyInfiniteMask = 0x00000004,
+ SpvLoopControlDependencyLengthMask = 0x00000008,
+} SpvLoopControlMask;
+
+typedef enum SpvFunctionControlShift_ {
+ SpvFunctionControlInlineShift = 0,
+ SpvFunctionControlDontInlineShift = 1,
+ SpvFunctionControlPureShift = 2,
+ SpvFunctionControlConstShift = 3,
+ SpvFunctionControlMax = 0x7fffffff,
+} SpvFunctionControlShift;
+
+typedef enum SpvFunctionControlMask_ {
+ SpvFunctionControlMaskNone = 0,
+ SpvFunctionControlInlineMask = 0x00000001,
+ SpvFunctionControlDontInlineMask = 0x00000002,
+ SpvFunctionControlPureMask = 0x00000004,
+ SpvFunctionControlConstMask = 0x00000008,
+} SpvFunctionControlMask;
+
+typedef enum SpvMemorySemanticsShift_ {
+ SpvMemorySemanticsAcquireShift = 1,
+ SpvMemorySemanticsReleaseShift = 2,
+ SpvMemorySemanticsAcquireReleaseShift = 3,
+ SpvMemorySemanticsSequentiallyConsistentShift = 4,
+ SpvMemorySemanticsUniformMemoryShift = 6,
+ SpvMemorySemanticsSubgroupMemoryShift = 7,
+ SpvMemorySemanticsWorkgroupMemoryShift = 8,
+ SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
+ SpvMemorySemanticsAtomicCounterMemoryShift = 10,
+ SpvMemorySemanticsImageMemoryShift = 11,
+ SpvMemorySemanticsMax = 0x7fffffff,
+} SpvMemorySemanticsShift;
+
+typedef enum SpvMemorySemanticsMask_ {
+ SpvMemorySemanticsMaskNone = 0,
+ SpvMemorySemanticsAcquireMask = 0x00000002,
+ SpvMemorySemanticsReleaseMask = 0x00000004,
+ SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
+ SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
+ SpvMemorySemanticsUniformMemoryMask = 0x00000040,
+ SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
+ SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
+ SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
+ SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
+ SpvMemorySemanticsImageMemoryMask = 0x00000800,
+} SpvMemorySemanticsMask;
+
+typedef enum SpvMemoryAccessShift_ {
+ SpvMemoryAccessVolatileShift = 0,
+ SpvMemoryAccessAlignedShift = 1,
+ SpvMemoryAccessNontemporalShift = 2,
+ SpvMemoryAccessMax = 0x7fffffff,
+} SpvMemoryAccessShift;
+
+typedef enum SpvMemoryAccessMask_ {
+ SpvMemoryAccessMaskNone = 0,
+ SpvMemoryAccessVolatileMask = 0x00000001,
+ SpvMemoryAccessAlignedMask = 0x00000002,
+ SpvMemoryAccessNontemporalMask = 0x00000004,
+} SpvMemoryAccessMask;
+
+typedef enum SpvScope_ {
+ SpvScopeCrossDevice = 0,
+ SpvScopeDevice = 1,
+ SpvScopeWorkgroup = 2,
+ SpvScopeSubgroup = 3,
+ SpvScopeInvocation = 4,
+ SpvScopeMax = 0x7fffffff,
+} SpvScope;
+
+typedef enum SpvGroupOperation_ {
+ SpvGroupOperationReduce = 0,
+ SpvGroupOperationInclusiveScan = 1,
+ SpvGroupOperationExclusiveScan = 2,
+ SpvGroupOperationMax = 0x7fffffff,
+} SpvGroupOperation;
+
+typedef enum SpvKernelEnqueueFlags_ {
+ SpvKernelEnqueueFlagsNoWait = 0,
+ SpvKernelEnqueueFlagsWaitKernel = 1,
+ SpvKernelEnqueueFlagsWaitWorkGroup = 2,
+ SpvKernelEnqueueFlagsMax = 0x7fffffff,
+} SpvKernelEnqueueFlags;
+
+typedef enum SpvKernelProfilingInfoShift_ {
+ SpvKernelProfilingInfoCmdExecTimeShift = 0,
+ SpvKernelProfilingInfoMax = 0x7fffffff,
+} SpvKernelProfilingInfoShift;
+
+typedef enum SpvKernelProfilingInfoMask_ {
+ SpvKernelProfilingInfoMaskNone = 0,
+ SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
+} SpvKernelProfilingInfoMask;
+
+typedef enum SpvCapability_ {
+ SpvCapabilityMatrix = 0,
+ SpvCapabilityShader = 1,
+ SpvCapabilityGeometry = 2,
+ SpvCapabilityTessellation = 3,
+ SpvCapabilityAddresses = 4,
+ SpvCapabilityLinkage = 5,
+ SpvCapabilityKernel = 6,
+ SpvCapabilityVector16 = 7,
+ SpvCapabilityFloat16Buffer = 8,
+ SpvCapabilityFloat16 = 9,
+ SpvCapabilityFloat64 = 10,
+ SpvCapabilityInt64 = 11,
+ SpvCapabilityInt64Atomics = 12,
+ SpvCapabilityImageBasic = 13,
+ SpvCapabilityImageReadWrite = 14,
+ SpvCapabilityImageMipmap = 15,
+ SpvCapabilityPipes = 17,
+ SpvCapabilityGroups = 18,
+ SpvCapabilityDeviceEnqueue = 19,
+ SpvCapabilityLiteralSampler = 20,
+ SpvCapabilityAtomicStorage = 21,
+ SpvCapabilityInt16 = 22,
+ SpvCapabilityTessellationPointSize = 23,
+ SpvCapabilityGeometryPointSize = 24,
+ SpvCapabilityImageGatherExtended = 25,
+ SpvCapabilityStorageImageMultisample = 27,
+ SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
+ SpvCapabilitySampledImageArrayDynamicIndexing = 29,
+ SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
+ SpvCapabilityStorageImageArrayDynamicIndexing = 31,
+ SpvCapabilityClipDistance = 32,
+ SpvCapabilityCullDistance = 33,
+ SpvCapabilityImageCubeArray = 34,
+ SpvCapabilitySampleRateShading = 35,
+ SpvCapabilityImageRect = 36,
+ SpvCapabilitySampledRect = 37,
+ SpvCapabilityGenericPointer = 38,
+ SpvCapabilityInt8 = 39,
+ SpvCapabilityInputAttachment = 40,
+ SpvCapabilitySparseResidency = 41,
+ SpvCapabilityMinLod = 42,
+ SpvCapabilitySampled1D = 43,
+ SpvCapabilityImage1D = 44,
+ SpvCapabilitySampledCubeArray = 45,
+ SpvCapabilitySampledBuffer = 46,
+ SpvCapabilityImageBuffer = 47,
+ SpvCapabilityImageMSArray = 48,
+ SpvCapabilityStorageImageExtendedFormats = 49,
+ SpvCapabilityImageQuery = 50,
+ SpvCapabilityDerivativeControl = 51,
+ SpvCapabilityInterpolationFunction = 52,
+ SpvCapabilityTransformFeedback = 53,
+ SpvCapabilityGeometryStreams = 54,
+ SpvCapabilityStorageImageReadWithoutFormat = 55,
+ SpvCapabilityStorageImageWriteWithoutFormat = 56,
+ SpvCapabilityMultiViewport = 57,
+ SpvCapabilitySubgroupDispatch = 58,
+ SpvCapabilityNamedBarrier = 59,
+ SpvCapabilityPipeStorage = 60,
+ SpvCapabilitySubgroupBallotKHR = 4423,
+ SpvCapabilityDrawParameters = 4427,
+ SpvCapabilitySubgroupVoteKHR = 4431,
+ SpvCapabilityStorageBuffer16BitAccess = 4433,
+ SpvCapabilityStorageUniformBufferBlock16 = 4433,
+ SpvCapabilityStorageUniform16 = 4434,
+ SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
+ SpvCapabilityStoragePushConstant16 = 4435,
+ SpvCapabilityStorageInputOutput16 = 4436,
+ SpvCapabilityDeviceGroup = 4437,
+ SpvCapabilityMultiView = 4439,
+ SpvCapabilityVariablePointersStorageBuffer = 4441,
+ SpvCapabilityVariablePointers = 4442,
+ SpvCapabilityAtomicStorageOps = 4445,
+ SpvCapabilitySampleMaskPostDepthCoverage = 4447,
+ SpvCapabilityImageGatherBiasLodAMD = 5009,
+ SpvCapabilityFragmentMaskAMD = 5010,
+ SpvCapabilityStencilExportEXT = 5013,
+ SpvCapabilityImageReadWriteLodAMD = 5015,
+ SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
+ SpvCapabilityGeometryShaderPassthroughNV = 5251,
+ SpvCapabilityShaderViewportIndexLayerEXT = 5254,
+ SpvCapabilityShaderViewportIndexLayerNV = 5254,
+ SpvCapabilityShaderViewportMaskNV = 5255,
+ SpvCapabilityShaderStereoViewNV = 5259,
+ SpvCapabilityPerViewAttributesNV = 5260,
+ SpvCapabilitySubgroupShuffleINTEL = 5568,
+ SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
+ SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
+ SpvCapabilityMax = 0x7fffffff,
+} SpvCapability;
+
+typedef enum SpvOp_ {
+ SpvOpNop = 0,
+ SpvOpUndef = 1,
+ SpvOpSourceContinued = 2,
+ SpvOpSource = 3,
+ SpvOpSourceExtension = 4,
+ SpvOpName = 5,
+ SpvOpMemberName = 6,
+ SpvOpString = 7,
+ SpvOpLine = 8,
+ SpvOpExtension = 10,
+ SpvOpExtInstImport = 11,
+ SpvOpExtInst = 12,
+ SpvOpMemoryModel = 14,
+ SpvOpEntryPoint = 15,
+ SpvOpExecutionMode = 16,
+ SpvOpCapability = 17,
+ SpvOpTypeVoid = 19,
+ SpvOpTypeBool = 20,
+ SpvOpTypeInt = 21,
+ SpvOpTypeFloat = 22,
+ SpvOpTypeVector = 23,
+ SpvOpTypeMatrix = 24,
+ SpvOpTypeImage = 25,
+ SpvOpTypeSampler = 26,
+ SpvOpTypeSampledImage = 27,
+ SpvOpTypeArray = 28,
+ SpvOpTypeRuntimeArray = 29,
+ SpvOpTypeStruct = 30,
+ SpvOpTypeOpaque = 31,
+ SpvOpTypePointer = 32,
+ SpvOpTypeFunction = 33,
+ SpvOpTypeEvent = 34,
+ SpvOpTypeDeviceEvent = 35,
+ SpvOpTypeReserveId = 36,
+ SpvOpTypeQueue = 37,
+ SpvOpTypePipe = 38,
+ SpvOpTypeForwardPointer = 39,
+ SpvOpConstantTrue = 41,
+ SpvOpConstantFalse = 42,
+ SpvOpConstant = 43,
+ SpvOpConstantComposite = 44,
+ SpvOpConstantSampler = 45,
+ SpvOpConstantNull = 46,
+ SpvOpSpecConstantTrue = 48,
+ SpvOpSpecConstantFalse = 49,
+ SpvOpSpecConstant = 50,
+ SpvOpSpecConstantComposite = 51,
+ SpvOpSpecConstantOp = 52,
+ SpvOpFunction = 54,
+ SpvOpFunctionParameter = 55,
+ SpvOpFunctionEnd = 56,
+ SpvOpFunctionCall = 57,
+ SpvOpVariable = 59,
+ SpvOpImageTexelPointer = 60,
+ SpvOpLoad = 61,
+ SpvOpStore = 62,
+ SpvOpCopyMemory = 63,
+ SpvOpCopyMemorySized = 64,
+ SpvOpAccessChain = 65,
+ SpvOpInBoundsAccessChain = 66,
+ SpvOpPtrAccessChain = 67,
+ SpvOpArrayLength = 68,
+ SpvOpGenericPtrMemSemantics = 69,
+ SpvOpInBoundsPtrAccessChain = 70,
+ SpvOpDecorate = 71,
+ SpvOpMemberDecorate = 72,
+ SpvOpDecorationGroup = 73,
+ SpvOpGroupDecorate = 74,
+ SpvOpGroupMemberDecorate = 75,
+ SpvOpVectorExtractDynamic = 77,
+ SpvOpVectorInsertDynamic = 78,
+ SpvOpVectorShuffle = 79,
+ SpvOpCompositeConstruct = 80,
+ SpvOpCompositeExtract = 81,
+ SpvOpCompositeInsert = 82,
+ SpvOpCopyObject = 83,
+ SpvOpTranspose = 84,
+ SpvOpSampledImage = 86,
+ SpvOpImageSampleImplicitLod = 87,
+ SpvOpImageSampleExplicitLod = 88,
+ SpvOpImageSampleDrefImplicitLod = 89,
+ SpvOpImageSampleDrefExplicitLod = 90,
+ SpvOpImageSampleProjImplicitLod = 91,
+ SpvOpImageSampleProjExplicitLod = 92,
+ SpvOpImageSampleProjDrefImplicitLod = 93,
+ SpvOpImageSampleProjDrefExplicitLod = 94,
+ SpvOpImageFetch = 95,
+ SpvOpImageGather = 96,
+ SpvOpImageDrefGather = 97,
+ SpvOpImageRead = 98,
+ SpvOpImageWrite = 99,
+ SpvOpImage = 100,
+ SpvOpImageQueryFormat = 101,
+ SpvOpImageQueryOrder = 102,
+ SpvOpImageQuerySizeLod = 103,
+ SpvOpImageQuerySize = 104,
+ SpvOpImageQueryLod = 105,
+ SpvOpImageQueryLevels = 106,
+ SpvOpImageQuerySamples = 107,
+ SpvOpConvertFToU = 109,
+ SpvOpConvertFToS = 110,
+ SpvOpConvertSToF = 111,
+ SpvOpConvertUToF = 112,
+ SpvOpUConvert = 113,
+ SpvOpSConvert = 114,
+ SpvOpFConvert = 115,
+ SpvOpQuantizeToF16 = 116,
+ SpvOpConvertPtrToU = 117,
+ SpvOpSatConvertSToU = 118,
+ SpvOpSatConvertUToS = 119,
+ SpvOpConvertUToPtr = 120,
+ SpvOpPtrCastToGeneric = 121,
+ SpvOpGenericCastToPtr = 122,
+ SpvOpGenericCastToPtrExplicit = 123,
+ SpvOpBitcast = 124,
+ SpvOpSNegate = 126,
+ SpvOpFNegate = 127,
+ SpvOpIAdd = 128,
+ SpvOpFAdd = 129,
+ SpvOpISub = 130,
+ SpvOpFSub = 131,
+ SpvOpIMul = 132,
+ SpvOpFMul = 133,
+ SpvOpUDiv = 134,
+ SpvOpSDiv = 135,
+ SpvOpFDiv = 136,
+ SpvOpUMod = 137,
+ SpvOpSRem = 138,
+ SpvOpSMod = 139,
+ SpvOpFRem = 140,
+ SpvOpFMod = 141,
+ SpvOpVectorTimesScalar = 142,
+ SpvOpMatrixTimesScalar = 143,
+ SpvOpVectorTimesMatrix = 144,
+ SpvOpMatrixTimesVector = 145,
+ SpvOpMatrixTimesMatrix = 146,
+ SpvOpOuterProduct = 147,
+ SpvOpDot = 148,
+ SpvOpIAddCarry = 149,
+ SpvOpISubBorrow = 150,
+ SpvOpUMulExtended = 151,
+ SpvOpSMulExtended = 152,
+ SpvOpAny = 154,
+ SpvOpAll = 155,
+ SpvOpIsNan = 156,
+ SpvOpIsInf = 157,
+ SpvOpIsFinite = 158,
+ SpvOpIsNormal = 159,
+ SpvOpSignBitSet = 160,
+ SpvOpLessOrGreater = 161,
+ SpvOpOrdered = 162,
+ SpvOpUnordered = 163,
+ SpvOpLogicalEqual = 164,
+ SpvOpLogicalNotEqual = 165,
+ SpvOpLogicalOr = 166,
+ SpvOpLogicalAnd = 167,
+ SpvOpLogicalNot = 168,
+ SpvOpSelect = 169,
+ SpvOpIEqual = 170,
+ SpvOpINotEqual = 171,
+ SpvOpUGreaterThan = 172,
+ SpvOpSGreaterThan = 173,
+ SpvOpUGreaterThanEqual = 174,
+ SpvOpSGreaterThanEqual = 175,
+ SpvOpULessThan = 176,
+ SpvOpSLessThan = 177,
+ SpvOpULessThanEqual = 178,
+ SpvOpSLessThanEqual = 179,
+ SpvOpFOrdEqual = 180,
+ SpvOpFUnordEqual = 181,
+ SpvOpFOrdNotEqual = 182,
+ SpvOpFUnordNotEqual = 183,
+ SpvOpFOrdLessThan = 184,
+ SpvOpFUnordLessThan = 185,
+ SpvOpFOrdGreaterThan = 186,
+ SpvOpFUnordGreaterThan = 187,
+ SpvOpFOrdLessThanEqual = 188,
+ SpvOpFUnordLessThanEqual = 189,
+ SpvOpFOrdGreaterThanEqual = 190,
+ SpvOpFUnordGreaterThanEqual = 191,
+ SpvOpShiftRightLogical = 194,
+ SpvOpShiftRightArithmetic = 195,
+ SpvOpShiftLeftLogical = 196,
+ SpvOpBitwiseOr = 197,
+ SpvOpBitwiseXor = 198,
+ SpvOpBitwiseAnd = 199,
+ SpvOpNot = 200,
+ SpvOpBitFieldInsert = 201,
+ SpvOpBitFieldSExtract = 202,
+ SpvOpBitFieldUExtract = 203,
+ SpvOpBitReverse = 204,
+ SpvOpBitCount = 205,
+ SpvOpDPdx = 207,
+ SpvOpDPdy = 208,
+ SpvOpFwidth = 209,
+ SpvOpDPdxFine = 210,
+ SpvOpDPdyFine = 211,
+ SpvOpFwidthFine = 212,
+ SpvOpDPdxCoarse = 213,
+ SpvOpDPdyCoarse = 214,
+ SpvOpFwidthCoarse = 215,
+ SpvOpEmitVertex = 218,
+ SpvOpEndPrimitive = 219,
+ SpvOpEmitStreamVertex = 220,
+ SpvOpEndStreamPrimitive = 221,
+ SpvOpControlBarrier = 224,
+ SpvOpMemoryBarrier = 225,
+ SpvOpAtomicLoad = 227,
+ SpvOpAtomicStore = 228,
+ SpvOpAtomicExchange = 229,
+ SpvOpAtomicCompareExchange = 230,
+ SpvOpAtomicCompareExchangeWeak = 231,
+ SpvOpAtomicIIncrement = 232,
+ SpvOpAtomicIDecrement = 233,
+ SpvOpAtomicIAdd = 234,
+ SpvOpAtomicISub = 235,
+ SpvOpAtomicSMin = 236,
+ SpvOpAtomicUMin = 237,
+ SpvOpAtomicSMax = 238,
+ SpvOpAtomicUMax = 239,
+ SpvOpAtomicAnd = 240,
+ SpvOpAtomicOr = 241,
+ SpvOpAtomicXor = 242,
+ SpvOpPhi = 245,
+ SpvOpLoopMerge = 246,
+ SpvOpSelectionMerge = 247,
+ SpvOpLabel = 248,
+ SpvOpBranch = 249,
+ SpvOpBranchConditional = 250,
+ SpvOpSwitch = 251,
+ SpvOpKill = 252,
+ SpvOpReturn = 253,
+ SpvOpReturnValue = 254,
+ SpvOpUnreachable = 255,
+ SpvOpLifetimeStart = 256,
+ SpvOpLifetimeStop = 257,
+ SpvOpGroupAsyncCopy = 259,
+ SpvOpGroupWaitEvents = 260,
+ SpvOpGroupAll = 261,
+ SpvOpGroupAny = 262,
+ SpvOpGroupBroadcast = 263,
+ SpvOpGroupIAdd = 264,
+ SpvOpGroupFAdd = 265,
+ SpvOpGroupFMin = 266,
+ SpvOpGroupUMin = 267,
+ SpvOpGroupSMin = 268,
+ SpvOpGroupFMax = 269,
+ SpvOpGroupUMax = 270,
+ SpvOpGroupSMax = 271,
+ SpvOpReadPipe = 274,
+ SpvOpWritePipe = 275,
+ SpvOpReservedReadPipe = 276,
+ SpvOpReservedWritePipe = 277,
+ SpvOpReserveReadPipePackets = 278,
+ SpvOpReserveWritePipePackets = 279,
+ SpvOpCommitReadPipe = 280,
+ SpvOpCommitWritePipe = 281,
+ SpvOpIsValidReserveId = 282,
+ SpvOpGetNumPipePackets = 283,
+ SpvOpGetMaxPipePackets = 284,
+ SpvOpGroupReserveReadPipePackets = 285,
+ SpvOpGroupReserveWritePipePackets = 286,
+ SpvOpGroupCommitReadPipe = 287,
+ SpvOpGroupCommitWritePipe = 288,
+ SpvOpEnqueueMarker = 291,
+ SpvOpEnqueueKernel = 292,
+ SpvOpGetKernelNDrangeSubGroupCount = 293,
+ SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
+ SpvOpGetKernelWorkGroupSize = 295,
+ SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
+ SpvOpRetainEvent = 297,
+ SpvOpReleaseEvent = 298,
+ SpvOpCreateUserEvent = 299,
+ SpvOpIsValidEvent = 300,
+ SpvOpSetUserEventStatus = 301,
+ SpvOpCaptureEventProfilingInfo = 302,
+ SpvOpGetDefaultQueue = 303,
+ SpvOpBuildNDRange = 304,
+ SpvOpImageSparseSampleImplicitLod = 305,
+ SpvOpImageSparseSampleExplicitLod = 306,
+ SpvOpImageSparseSampleDrefImplicitLod = 307,
+ SpvOpImageSparseSampleDrefExplicitLod = 308,
+ SpvOpImageSparseSampleProjImplicitLod = 309,
+ SpvOpImageSparseSampleProjExplicitLod = 310,
+ SpvOpImageSparseSampleProjDrefImplicitLod = 311,
+ SpvOpImageSparseSampleProjDrefExplicitLod = 312,
+ SpvOpImageSparseFetch = 313,
+ SpvOpImageSparseGather = 314,
+ SpvOpImageSparseDrefGather = 315,
+ SpvOpImageSparseTexelsResident = 316,
+ SpvOpNoLine = 317,
+ SpvOpAtomicFlagTestAndSet = 318,
+ SpvOpAtomicFlagClear = 319,
+ SpvOpImageSparseRead = 320,
+ SpvOpSizeOf = 321,
+ SpvOpTypePipeStorage = 322,
+ SpvOpConstantPipeStorage = 323,
+ SpvOpCreatePipeFromPipeStorage = 324,
+ SpvOpGetKernelLocalSizeForSubgroupCount = 325,
+ SpvOpGetKernelMaxNumSubgroups = 326,
+ SpvOpTypeNamedBarrier = 327,
+ SpvOpNamedBarrierInitialize = 328,
+ SpvOpMemoryNamedBarrier = 329,
+ SpvOpModuleProcessed = 330,
+ SpvOpDecorateId = 332,
+ SpvOpSubgroupBallotKHR = 4421,
+ SpvOpSubgroupFirstInvocationKHR = 4422,
+ SpvOpSubgroupAllKHR = 4428,
+ SpvOpSubgroupAnyKHR = 4429,
+ SpvOpSubgroupAllEqualKHR = 4430,
+ SpvOpSubgroupReadInvocationKHR = 4432,
+ SpvOpGroupIAddNonUniformAMD = 5000,
+ SpvOpGroupFAddNonUniformAMD = 5001,
+ SpvOpGroupFMinNonUniformAMD = 5002,
+ SpvOpGroupUMinNonUniformAMD = 5003,
+ SpvOpGroupSMinNonUniformAMD = 5004,
+ SpvOpGroupFMaxNonUniformAMD = 5005,
+ SpvOpGroupUMaxNonUniformAMD = 5006,
+ SpvOpGroupSMaxNonUniformAMD = 5007,
+ SpvOpFragmentMaskFetchAMD = 5011,
+ SpvOpFragmentFetchAMD = 5012,
+ SpvOpSubgroupShuffleINTEL = 5571,
+ SpvOpSubgroupShuffleDownINTEL = 5572,
+ SpvOpSubgroupShuffleUpINTEL = 5573,
+ SpvOpSubgroupShuffleXorINTEL = 5574,
+ SpvOpSubgroupBlockReadINTEL = 5575,
+ SpvOpSubgroupBlockWriteINTEL = 5576,
+ SpvOpSubgroupImageBlockReadINTEL = 5577,
+ SpvOpSubgroupImageBlockWriteINTEL = 5578,
+ SpvOpDecorateStringGOOGLE = 5632,
+ SpvOpMemberDecorateStringGOOGLE = 5633,
+ SpvOpMax = 0x7fffffff,
+} SpvOp;
+
+#endif // #ifndef spirv_H
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.hpp b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.hpp
new file mode 100644
index 0000000000..c26ac1f26c
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.hpp
@@ -0,0 +1,1024 @@
+// Copyright (c) 2014-2018 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+// This header is automatically generated by the same tool that creates
+// the Binary Section of the SPIR-V specification.
+
+// Enumeration tokens for SPIR-V, in various styles:
+// C, C++, C++11, JSON, Lua, Python
+//
+// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+//
+// Some tokens act like mask values, which can be OR'd together,
+// while others are mutually exclusive. The mask-like ones have
+// "Mask" in their name, and a parallel enum that has the shift
+// amount (1 << x) for each corresponding enumerant.
+
+#ifndef spirv_HPP
+#define spirv_HPP
+
+namespace spv {
+
+typedef unsigned int Id;
+
+#define SPV_VERSION 0x10100
+#define SPV_REVISION 8
+
+static const unsigned int MagicNumber = 0x07230203;
+static const unsigned int Version = 0x00010100;
+static const unsigned int Revision = 8;
+static const unsigned int OpCodeMask = 0xffff;
+static const unsigned int WordCountShift = 16;
+
+enum SourceLanguage {
+ SourceLanguageUnknown = 0,
+ SourceLanguageESSL = 1,
+ SourceLanguageGLSL = 2,
+ SourceLanguageOpenCL_C = 3,
+ SourceLanguageOpenCL_CPP = 4,
+ SourceLanguageHLSL = 5,
+ SourceLanguageMax = 0x7fffffff,
+};
+
+enum ExecutionModel {
+ ExecutionModelVertex = 0,
+ ExecutionModelTessellationControl = 1,
+ ExecutionModelTessellationEvaluation = 2,
+ ExecutionModelGeometry = 3,
+ ExecutionModelFragment = 4,
+ ExecutionModelGLCompute = 5,
+ ExecutionModelKernel = 6,
+ ExecutionModelMax = 0x7fffffff,
+};
+
+enum AddressingModel {
+ AddressingModelLogical = 0,
+ AddressingModelPhysical32 = 1,
+ AddressingModelPhysical64 = 2,
+ AddressingModelMax = 0x7fffffff,
+};
+
+enum MemoryModel {
+ MemoryModelSimple = 0,
+ MemoryModelGLSL450 = 1,
+ MemoryModelOpenCL = 2,
+ MemoryModelMax = 0x7fffffff,
+};
+
+enum ExecutionMode {
+ ExecutionModeInvocations = 0,
+ ExecutionModeSpacingEqual = 1,
+ ExecutionModeSpacingFractionalEven = 2,
+ ExecutionModeSpacingFractionalOdd = 3,
+ ExecutionModeVertexOrderCw = 4,
+ ExecutionModeVertexOrderCcw = 5,
+ ExecutionModePixelCenterInteger = 6,
+ ExecutionModeOriginUpperLeft = 7,
+ ExecutionModeOriginLowerLeft = 8,
+ ExecutionModeEarlyFragmentTests = 9,
+ ExecutionModePointMode = 10,
+ ExecutionModeXfb = 11,
+ ExecutionModeDepthReplacing = 12,
+ ExecutionModeDepthGreater = 14,
+ ExecutionModeDepthLess = 15,
+ ExecutionModeDepthUnchanged = 16,
+ ExecutionModeLocalSize = 17,
+ ExecutionModeLocalSizeHint = 18,
+ ExecutionModeInputPoints = 19,
+ ExecutionModeInputLines = 20,
+ ExecutionModeInputLinesAdjacency = 21,
+ ExecutionModeTriangles = 22,
+ ExecutionModeInputTrianglesAdjacency = 23,
+ ExecutionModeQuads = 24,
+ ExecutionModeIsolines = 25,
+ ExecutionModeOutputVertices = 26,
+ ExecutionModeOutputPoints = 27,
+ ExecutionModeOutputLineStrip = 28,
+ ExecutionModeOutputTriangleStrip = 29,
+ ExecutionModeVecTypeHint = 30,
+ ExecutionModeContractionOff = 31,
+ ExecutionModeInitializer = 33,
+ ExecutionModeFinalizer = 34,
+ ExecutionModeSubgroupSize = 35,
+ ExecutionModeSubgroupsPerWorkgroup = 36,
+ ExecutionModePostDepthCoverage = 4446,
+ ExecutionModeStencilRefReplacingEXT = 5027,
+ ExecutionModeMax = 0x7fffffff,
+};
+
+enum StorageClass {
+ StorageClassUniformConstant = 0,
+ StorageClassInput = 1,
+ StorageClassUniform = 2,
+ StorageClassOutput = 3,
+ StorageClassWorkgroup = 4,
+ StorageClassCrossWorkgroup = 5,
+ StorageClassPrivate = 6,
+ StorageClassFunction = 7,
+ StorageClassGeneric = 8,
+ StorageClassPushConstant = 9,
+ StorageClassAtomicCounter = 10,
+ StorageClassImage = 11,
+ StorageClassStorageBuffer = 12,
+ StorageClassMax = 0x7fffffff,
+};
+
+enum Dim {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ DimCube = 3,
+ DimRect = 4,
+ DimBuffer = 5,
+ DimSubpassData = 6,
+ DimMax = 0x7fffffff,
+};
+
+enum SamplerAddressingMode {
+ SamplerAddressingModeNone = 0,
+ SamplerAddressingModeClampToEdge = 1,
+ SamplerAddressingModeClamp = 2,
+ SamplerAddressingModeRepeat = 3,
+ SamplerAddressingModeRepeatMirrored = 4,
+ SamplerAddressingModeMax = 0x7fffffff,
+};
+
+enum SamplerFilterMode {
+ SamplerFilterModeNearest = 0,
+ SamplerFilterModeLinear = 1,
+ SamplerFilterModeMax = 0x7fffffff,
+};
+
+enum ImageFormat {
+ ImageFormatUnknown = 0,
+ ImageFormatRgba32f = 1,
+ ImageFormatRgba16f = 2,
+ ImageFormatR32f = 3,
+ ImageFormatRgba8 = 4,
+ ImageFormatRgba8Snorm = 5,
+ ImageFormatRg32f = 6,
+ ImageFormatRg16f = 7,
+ ImageFormatR11fG11fB10f = 8,
+ ImageFormatR16f = 9,
+ ImageFormatRgba16 = 10,
+ ImageFormatRgb10A2 = 11,
+ ImageFormatRg16 = 12,
+ ImageFormatRg8 = 13,
+ ImageFormatR16 = 14,
+ ImageFormatR8 = 15,
+ ImageFormatRgba16Snorm = 16,
+ ImageFormatRg16Snorm = 17,
+ ImageFormatRg8Snorm = 18,
+ ImageFormatR16Snorm = 19,
+ ImageFormatR8Snorm = 20,
+ ImageFormatRgba32i = 21,
+ ImageFormatRgba16i = 22,
+ ImageFormatRgba8i = 23,
+ ImageFormatR32i = 24,
+ ImageFormatRg32i = 25,
+ ImageFormatRg16i = 26,
+ ImageFormatRg8i = 27,
+ ImageFormatR16i = 28,
+ ImageFormatR8i = 29,
+ ImageFormatRgba32ui = 30,
+ ImageFormatRgba16ui = 31,
+ ImageFormatRgba8ui = 32,
+ ImageFormatR32ui = 33,
+ ImageFormatRgb10a2ui = 34,
+ ImageFormatRg32ui = 35,
+ ImageFormatRg16ui = 36,
+ ImageFormatRg8ui = 37,
+ ImageFormatR16ui = 38,
+ ImageFormatR8ui = 39,
+ ImageFormatMax = 0x7fffffff,
+};
+
+enum ImageChannelOrder {
+ ImageChannelOrderR = 0,
+ ImageChannelOrderA = 1,
+ ImageChannelOrderRG = 2,
+ ImageChannelOrderRA = 3,
+ ImageChannelOrderRGB = 4,
+ ImageChannelOrderRGBA = 5,
+ ImageChannelOrderBGRA = 6,
+ ImageChannelOrderARGB = 7,
+ ImageChannelOrderIntensity = 8,
+ ImageChannelOrderLuminance = 9,
+ ImageChannelOrderRx = 10,
+ ImageChannelOrderRGx = 11,
+ ImageChannelOrderRGBx = 12,
+ ImageChannelOrderDepth = 13,
+ ImageChannelOrderDepthStencil = 14,
+ ImageChannelOrdersRGB = 15,
+ ImageChannelOrdersRGBx = 16,
+ ImageChannelOrdersRGBA = 17,
+ ImageChannelOrdersBGRA = 18,
+ ImageChannelOrderABGR = 19,
+ ImageChannelOrderMax = 0x7fffffff,
+};
+
+enum ImageChannelDataType {
+ ImageChannelDataTypeSnormInt8 = 0,
+ ImageChannelDataTypeSnormInt16 = 1,
+ ImageChannelDataTypeUnormInt8 = 2,
+ ImageChannelDataTypeUnormInt16 = 3,
+ ImageChannelDataTypeUnormShort565 = 4,
+ ImageChannelDataTypeUnormShort555 = 5,
+ ImageChannelDataTypeUnormInt101010 = 6,
+ ImageChannelDataTypeSignedInt8 = 7,
+ ImageChannelDataTypeSignedInt16 = 8,
+ ImageChannelDataTypeSignedInt32 = 9,
+ ImageChannelDataTypeUnsignedInt8 = 10,
+ ImageChannelDataTypeUnsignedInt16 = 11,
+ ImageChannelDataTypeUnsignedInt32 = 12,
+ ImageChannelDataTypeHalfFloat = 13,
+ ImageChannelDataTypeFloat = 14,
+ ImageChannelDataTypeUnormInt24 = 15,
+ ImageChannelDataTypeUnormInt101010_2 = 16,
+ ImageChannelDataTypeMax = 0x7fffffff,
+};
+
+enum ImageOperandsShift {
+ ImageOperandsBiasShift = 0,
+ ImageOperandsLodShift = 1,
+ ImageOperandsGradShift = 2,
+ ImageOperandsConstOffsetShift = 3,
+ ImageOperandsOffsetShift = 4,
+ ImageOperandsConstOffsetsShift = 5,
+ ImageOperandsSampleShift = 6,
+ ImageOperandsMinLodShift = 7,
+ ImageOperandsMax = 0x7fffffff,
+};
+
+enum ImageOperandsMask {
+ ImageOperandsMaskNone = 0,
+ ImageOperandsBiasMask = 0x00000001,
+ ImageOperandsLodMask = 0x00000002,
+ ImageOperandsGradMask = 0x00000004,
+ ImageOperandsConstOffsetMask = 0x00000008,
+ ImageOperandsOffsetMask = 0x00000010,
+ ImageOperandsConstOffsetsMask = 0x00000020,
+ ImageOperandsSampleMask = 0x00000040,
+ ImageOperandsMinLodMask = 0x00000080,
+};
+
+enum FPFastMathModeShift {
+ FPFastMathModeNotNaNShift = 0,
+ FPFastMathModeNotInfShift = 1,
+ FPFastMathModeNSZShift = 2,
+ FPFastMathModeAllowRecipShift = 3,
+ FPFastMathModeFastShift = 4,
+ FPFastMathModeMax = 0x7fffffff,
+};
+
+enum FPFastMathModeMask {
+ FPFastMathModeMaskNone = 0,
+ FPFastMathModeNotNaNMask = 0x00000001,
+ FPFastMathModeNotInfMask = 0x00000002,
+ FPFastMathModeNSZMask = 0x00000004,
+ FPFastMathModeAllowRecipMask = 0x00000008,
+ FPFastMathModeFastMask = 0x00000010,
+};
+
+enum FPRoundingMode {
+ FPRoundingModeRTE = 0,
+ FPRoundingModeRTZ = 1,
+ FPRoundingModeRTP = 2,
+ FPRoundingModeRTN = 3,
+ FPRoundingModeMax = 0x7fffffff,
+};
+
+enum LinkageType {
+ LinkageTypeExport = 0,
+ LinkageTypeImport = 1,
+ LinkageTypeMax = 0x7fffffff,
+};
+
+enum AccessQualifier {
+ AccessQualifierReadOnly = 0,
+ AccessQualifierWriteOnly = 1,
+ AccessQualifierReadWrite = 2,
+ AccessQualifierMax = 0x7fffffff,
+};
+
+enum FunctionParameterAttribute {
+ FunctionParameterAttributeZext = 0,
+ FunctionParameterAttributeSext = 1,
+ FunctionParameterAttributeByVal = 2,
+ FunctionParameterAttributeSret = 3,
+ FunctionParameterAttributeNoAlias = 4,
+ FunctionParameterAttributeNoCapture = 5,
+ FunctionParameterAttributeNoWrite = 6,
+ FunctionParameterAttributeNoReadWrite = 7,
+ FunctionParameterAttributeMax = 0x7fffffff,
+};
+
+enum Decoration {
+ DecorationRelaxedPrecision = 0,
+ DecorationSpecId = 1,
+ DecorationBlock = 2,
+ DecorationBufferBlock = 3,
+ DecorationRowMajor = 4,
+ DecorationColMajor = 5,
+ DecorationArrayStride = 6,
+ DecorationMatrixStride = 7,
+ DecorationGLSLShared = 8,
+ DecorationGLSLPacked = 9,
+ DecorationCPacked = 10,
+ DecorationBuiltIn = 11,
+ DecorationNoPerspective = 13,
+ DecorationFlat = 14,
+ DecorationPatch = 15,
+ DecorationCentroid = 16,
+ DecorationSample = 17,
+ DecorationInvariant = 18,
+ DecorationRestrict = 19,
+ DecorationAliased = 20,
+ DecorationVolatile = 21,
+ DecorationConstant = 22,
+ DecorationCoherent = 23,
+ DecorationNonWritable = 24,
+ DecorationNonReadable = 25,
+ DecorationUniform = 26,
+ DecorationSaturatedConversion = 28,
+ DecorationStream = 29,
+ DecorationLocation = 30,
+ DecorationComponent = 31,
+ DecorationIndex = 32,
+ DecorationBinding = 33,
+ DecorationDescriptorSet = 34,
+ DecorationOffset = 35,
+ DecorationXfbBuffer = 36,
+ DecorationXfbStride = 37,
+ DecorationFuncParamAttr = 38,
+ DecorationFPRoundingMode = 39,
+ DecorationFPFastMathMode = 40,
+ DecorationLinkageAttributes = 41,
+ DecorationNoContraction = 42,
+ DecorationInputAttachmentIndex = 43,
+ DecorationAlignment = 44,
+ DecorationMaxByteOffset = 45,
+ DecorationExplicitInterpAMD = 4999,
+ DecorationOverrideCoverageNV = 5248,
+ DecorationPassthroughNV = 5250,
+ DecorationViewportRelativeNV = 5252,
+ DecorationSecondaryViewportRelativeNV = 5256,
+ DecorationHlslCounterBufferGOOGLE = 5634,
+ DecorationHlslSemanticGOOGLE = 5635,
+ DecorationMax = 0x7fffffff,
+};
+
+enum BuiltIn {
+ BuiltInPosition = 0,
+ BuiltInPointSize = 1,
+ BuiltInClipDistance = 3,
+ BuiltInCullDistance = 4,
+ BuiltInVertexId = 5,
+ BuiltInInstanceId = 6,
+ BuiltInPrimitiveId = 7,
+ BuiltInInvocationId = 8,
+ BuiltInLayer = 9,
+ BuiltInViewportIndex = 10,
+ BuiltInTessLevelOuter = 11,
+ BuiltInTessLevelInner = 12,
+ BuiltInTessCoord = 13,
+ BuiltInPatchVertices = 14,
+ BuiltInFragCoord = 15,
+ BuiltInPointCoord = 16,
+ BuiltInFrontFacing = 17,
+ BuiltInSampleId = 18,
+ BuiltInSamplePosition = 19,
+ BuiltInSampleMask = 20,
+ BuiltInFragDepth = 22,
+ BuiltInHelperInvocation = 23,
+ BuiltInNumWorkgroups = 24,
+ BuiltInWorkgroupSize = 25,
+ BuiltInWorkgroupId = 26,
+ BuiltInLocalInvocationId = 27,
+ BuiltInGlobalInvocationId = 28,
+ BuiltInLocalInvocationIndex = 29,
+ BuiltInWorkDim = 30,
+ BuiltInGlobalSize = 31,
+ BuiltInEnqueuedWorkgroupSize = 32,
+ BuiltInGlobalOffset = 33,
+ BuiltInGlobalLinearId = 34,
+ BuiltInSubgroupSize = 36,
+ BuiltInSubgroupMaxSize = 37,
+ BuiltInNumSubgroups = 38,
+ BuiltInNumEnqueuedSubgroups = 39,
+ BuiltInSubgroupId = 40,
+ BuiltInSubgroupLocalInvocationId = 41,
+ BuiltInVertexIndex = 42,
+ BuiltInInstanceIndex = 43,
+ BuiltInSubgroupEqMaskKHR = 4416,
+ BuiltInSubgroupGeMaskKHR = 4417,
+ BuiltInSubgroupGtMaskKHR = 4418,
+ BuiltInSubgroupLeMaskKHR = 4419,
+ BuiltInSubgroupLtMaskKHR = 4420,
+ BuiltInBaseVertex = 4424,
+ BuiltInBaseInstance = 4425,
+ BuiltInDrawIndex = 4426,
+ BuiltInDeviceIndex = 4438,
+ BuiltInViewIndex = 4440,
+ BuiltInBaryCoordNoPerspAMD = 4992,
+ BuiltInBaryCoordNoPerspCentroidAMD = 4993,
+ BuiltInBaryCoordNoPerspSampleAMD = 4994,
+ BuiltInBaryCoordSmoothAMD = 4995,
+ BuiltInBaryCoordSmoothCentroidAMD = 4996,
+ BuiltInBaryCoordSmoothSampleAMD = 4997,
+ BuiltInBaryCoordPullModelAMD = 4998,
+ BuiltInFragStencilRefEXT = 5014,
+ BuiltInViewportMaskNV = 5253,
+ BuiltInSecondaryPositionNV = 5257,
+ BuiltInSecondaryViewportMaskNV = 5258,
+ BuiltInPositionPerViewNV = 5261,
+ BuiltInViewportMaskPerViewNV = 5262,
+ BuiltInMax = 0x7fffffff,
+};
+
+enum SelectionControlShift {
+ SelectionControlFlattenShift = 0,
+ SelectionControlDontFlattenShift = 1,
+ SelectionControlMax = 0x7fffffff,
+};
+
+enum SelectionControlMask {
+ SelectionControlMaskNone = 0,
+ SelectionControlFlattenMask = 0x00000001,
+ SelectionControlDontFlattenMask = 0x00000002,
+};
+
+enum LoopControlShift {
+ LoopControlUnrollShift = 0,
+ LoopControlDontUnrollShift = 1,
+ LoopControlDependencyInfiniteShift = 2,
+ LoopControlDependencyLengthShift = 3,
+ LoopControlMax = 0x7fffffff,
+};
+
+enum LoopControlMask {
+ LoopControlMaskNone = 0,
+ LoopControlUnrollMask = 0x00000001,
+ LoopControlDontUnrollMask = 0x00000002,
+ LoopControlDependencyInfiniteMask = 0x00000004,
+ LoopControlDependencyLengthMask = 0x00000008,
+};
+
+enum FunctionControlShift {
+ FunctionControlInlineShift = 0,
+ FunctionControlDontInlineShift = 1,
+ FunctionControlPureShift = 2,
+ FunctionControlConstShift = 3,
+ FunctionControlMax = 0x7fffffff,
+};
+
+enum FunctionControlMask {
+ FunctionControlMaskNone = 0,
+ FunctionControlInlineMask = 0x00000001,
+ FunctionControlDontInlineMask = 0x00000002,
+ FunctionControlPureMask = 0x00000004,
+ FunctionControlConstMask = 0x00000008,
+};
+
+enum MemorySemanticsShift {
+ MemorySemanticsAcquireShift = 1,
+ MemorySemanticsReleaseShift = 2,
+ MemorySemanticsAcquireReleaseShift = 3,
+ MemorySemanticsSequentiallyConsistentShift = 4,
+ MemorySemanticsUniformMemoryShift = 6,
+ MemorySemanticsSubgroupMemoryShift = 7,
+ MemorySemanticsWorkgroupMemoryShift = 8,
+ MemorySemanticsCrossWorkgroupMemoryShift = 9,
+ MemorySemanticsAtomicCounterMemoryShift = 10,
+ MemorySemanticsImageMemoryShift = 11,
+ MemorySemanticsMax = 0x7fffffff,
+};
+
+enum MemorySemanticsMask {
+ MemorySemanticsMaskNone = 0,
+ MemorySemanticsAcquireMask = 0x00000002,
+ MemorySemanticsReleaseMask = 0x00000004,
+ MemorySemanticsAcquireReleaseMask = 0x00000008,
+ MemorySemanticsSequentiallyConsistentMask = 0x00000010,
+ MemorySemanticsUniformMemoryMask = 0x00000040,
+ MemorySemanticsSubgroupMemoryMask = 0x00000080,
+ MemorySemanticsWorkgroupMemoryMask = 0x00000100,
+ MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
+ MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
+ MemorySemanticsImageMemoryMask = 0x00000800,
+};
+
+enum MemoryAccessShift {
+ MemoryAccessVolatileShift = 0,
+ MemoryAccessAlignedShift = 1,
+ MemoryAccessNontemporalShift = 2,
+ MemoryAccessMax = 0x7fffffff,
+};
+
+enum MemoryAccessMask {
+ MemoryAccessMaskNone = 0,
+ MemoryAccessVolatileMask = 0x00000001,
+ MemoryAccessAlignedMask = 0x00000002,
+ MemoryAccessNontemporalMask = 0x00000004,
+};
+
+enum Scope {
+ ScopeCrossDevice = 0,
+ ScopeDevice = 1,
+ ScopeWorkgroup = 2,
+ ScopeSubgroup = 3,
+ ScopeInvocation = 4,
+ ScopeMax = 0x7fffffff,
+};
+
+enum GroupOperation {
+ GroupOperationReduce = 0,
+ GroupOperationInclusiveScan = 1,
+ GroupOperationExclusiveScan = 2,
+ GroupOperationMax = 0x7fffffff,
+};
+
+enum KernelEnqueueFlags {
+ KernelEnqueueFlagsNoWait = 0,
+ KernelEnqueueFlagsWaitKernel = 1,
+ KernelEnqueueFlagsWaitWorkGroup = 2,
+ KernelEnqueueFlagsMax = 0x7fffffff,
+};
+
+enum KernelProfilingInfoShift {
+ KernelProfilingInfoCmdExecTimeShift = 0,
+ KernelProfilingInfoMax = 0x7fffffff,
+};
+
+enum KernelProfilingInfoMask {
+ KernelProfilingInfoMaskNone = 0,
+ KernelProfilingInfoCmdExecTimeMask = 0x00000001,
+};
+
+enum Capability {
+ CapabilityMatrix = 0,
+ CapabilityShader = 1,
+ CapabilityGeometry = 2,
+ CapabilityTessellation = 3,
+ CapabilityAddresses = 4,
+ CapabilityLinkage = 5,
+ CapabilityKernel = 6,
+ CapabilityVector16 = 7,
+ CapabilityFloat16Buffer = 8,
+ CapabilityFloat16 = 9,
+ CapabilityFloat64 = 10,
+ CapabilityInt64 = 11,
+ CapabilityInt64Atomics = 12,
+ CapabilityImageBasic = 13,
+ CapabilityImageReadWrite = 14,
+ CapabilityImageMipmap = 15,
+ CapabilityPipes = 17,
+ CapabilityGroups = 18,
+ CapabilityDeviceEnqueue = 19,
+ CapabilityLiteralSampler = 20,
+ CapabilityAtomicStorage = 21,
+ CapabilityInt16 = 22,
+ CapabilityTessellationPointSize = 23,
+ CapabilityGeometryPointSize = 24,
+ CapabilityImageGatherExtended = 25,
+ CapabilityStorageImageMultisample = 27,
+ CapabilityUniformBufferArrayDynamicIndexing = 28,
+ CapabilitySampledImageArrayDynamicIndexing = 29,
+ CapabilityStorageBufferArrayDynamicIndexing = 30,
+ CapabilityStorageImageArrayDynamicIndexing = 31,
+ CapabilityClipDistance = 32,
+ CapabilityCullDistance = 33,
+ CapabilityImageCubeArray = 34,
+ CapabilitySampleRateShading = 35,
+ CapabilityImageRect = 36,
+ CapabilitySampledRect = 37,
+ CapabilityGenericPointer = 38,
+ CapabilityInt8 = 39,
+ CapabilityInputAttachment = 40,
+ CapabilitySparseResidency = 41,
+ CapabilityMinLod = 42,
+ CapabilitySampled1D = 43,
+ CapabilityImage1D = 44,
+ CapabilitySampledCubeArray = 45,
+ CapabilitySampledBuffer = 46,
+ CapabilityImageBuffer = 47,
+ CapabilityImageMSArray = 48,
+ CapabilityStorageImageExtendedFormats = 49,
+ CapabilityImageQuery = 50,
+ CapabilityDerivativeControl = 51,
+ CapabilityInterpolationFunction = 52,
+ CapabilityTransformFeedback = 53,
+ CapabilityGeometryStreams = 54,
+ CapabilityStorageImageReadWithoutFormat = 55,
+ CapabilityStorageImageWriteWithoutFormat = 56,
+ CapabilityMultiViewport = 57,
+ CapabilitySubgroupDispatch = 58,
+ CapabilityNamedBarrier = 59,
+ CapabilityPipeStorage = 60,
+ CapabilitySubgroupBallotKHR = 4423,
+ CapabilityDrawParameters = 4427,
+ CapabilitySubgroupVoteKHR = 4431,
+ CapabilityStorageBuffer16BitAccess = 4433,
+ CapabilityStorageUniformBufferBlock16 = 4433,
+ CapabilityStorageUniform16 = 4434,
+ CapabilityUniformAndStorageBuffer16BitAccess = 4434,
+ CapabilityStoragePushConstant16 = 4435,
+ CapabilityStorageInputOutput16 = 4436,
+ CapabilityDeviceGroup = 4437,
+ CapabilityMultiView = 4439,
+ CapabilityVariablePointersStorageBuffer = 4441,
+ CapabilityVariablePointers = 4442,
+ CapabilityAtomicStorageOps = 4445,
+ CapabilitySampleMaskPostDepthCoverage = 4447,
+ CapabilityImageGatherBiasLodAMD = 5009,
+ CapabilityFragmentMaskAMD = 5010,
+ CapabilityStencilExportEXT = 5013,
+ CapabilityImageReadWriteLodAMD = 5015,
+ CapabilitySampleMaskOverrideCoverageNV = 5249,
+ CapabilityGeometryShaderPassthroughNV = 5251,
+ CapabilityShaderViewportIndexLayerEXT = 5254,
+ CapabilityShaderViewportIndexLayerNV = 5254,
+ CapabilityShaderViewportMaskNV = 5255,
+ CapabilityShaderStereoViewNV = 5259,
+ CapabilityPerViewAttributesNV = 5260,
+ CapabilitySubgroupShuffleINTEL = 5568,
+ CapabilitySubgroupBufferBlockIOINTEL = 5569,
+ CapabilitySubgroupImageBlockIOINTEL = 5570,
+ CapabilityMax = 0x7fffffff,
+};
+
+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,
+ OpDecorateId = 332,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateStringGOOGLE = 5633,
+ OpMax = 0x7fffffff,
+};
+
+// Overload operator| for mask bit combining
+
+inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
+inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
+inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
+inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
+inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
+inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
+inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
+inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+
+} // end namespace spv
+
+#endif // #ifndef spirv_HPP
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.hpp11 b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.hpp11
new file mode 100644
index 0000000000..992d43b5f5
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.hpp11
@@ -0,0 +1,1024 @@
+// Copyright (c) 2014-2018 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+// This header is automatically generated by the same tool that creates
+// the Binary Section of the SPIR-V specification.
+
+// Enumeration tokens for SPIR-V, in various styles:
+// C, C++, C++11, JSON, Lua, Python
+//
+// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+//
+// Some tokens act like mask values, which can be OR'd together,
+// while others are mutually exclusive. The mask-like ones have
+// "Mask" in their name, and a parallel enum that has the shift
+// amount (1 << x) for each corresponding enumerant.
+
+#ifndef spirv_HPP
+#define spirv_HPP
+
+namespace spv {
+
+typedef unsigned int Id;
+
+#define SPV_VERSION 0x10100
+#define SPV_REVISION 8
+
+static const unsigned int MagicNumber = 0x07230203;
+static const unsigned int Version = 0x00010100;
+static const unsigned int Revision = 8;
+static const unsigned int OpCodeMask = 0xffff;
+static const unsigned int WordCountShift = 16;
+
+enum class SourceLanguage : unsigned {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ Max = 0x7fffffff,
+};
+
+enum class ExecutionModel : unsigned {
+ Vertex = 0,
+ TessellationControl = 1,
+ TessellationEvaluation = 2,
+ Geometry = 3,
+ Fragment = 4,
+ GLCompute = 5,
+ Kernel = 6,
+ Max = 0x7fffffff,
+};
+
+enum class AddressingModel : unsigned {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ Max = 0x7fffffff,
+};
+
+enum class MemoryModel : unsigned {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ Max = 0x7fffffff,
+};
+
+enum class ExecutionMode : unsigned {
+ 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,
+ PostDepthCoverage = 4446,
+ StencilRefReplacingEXT = 5027,
+ Max = 0x7fffffff,
+};
+
+enum class StorageClass : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class Dim : unsigned {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ Max = 0x7fffffff,
+};
+
+enum class SamplerAddressingMode : unsigned {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ Max = 0x7fffffff,
+};
+
+enum class SamplerFilterMode : unsigned {
+ Nearest = 0,
+ Linear = 1,
+ Max = 0x7fffffff,
+};
+
+enum class ImageFormat : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageChannelOrder : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageChannelDataType : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageOperandsShift : unsigned {
+ Bias = 0,
+ Lod = 1,
+ Grad = 2,
+ ConstOffset = 3,
+ Offset = 4,
+ ConstOffsets = 5,
+ Sample = 6,
+ MinLod = 7,
+ Max = 0x7fffffff,
+};
+
+enum class ImageOperandsMask : unsigned {
+ MaskNone = 0,
+ Bias = 0x00000001,
+ Lod = 0x00000002,
+ Grad = 0x00000004,
+ ConstOffset = 0x00000008,
+ Offset = 0x00000010,
+ ConstOffsets = 0x00000020,
+ Sample = 0x00000040,
+ MinLod = 0x00000080,
+};
+
+enum class FPFastMathModeShift : unsigned {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ Max = 0x7fffffff,
+};
+
+enum class FPFastMathModeMask : unsigned {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+};
+
+enum class FPRoundingMode : unsigned {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ Max = 0x7fffffff,
+};
+
+enum class LinkageType : unsigned {
+ Export = 0,
+ Import = 1,
+ Max = 0x7fffffff,
+};
+
+enum class AccessQualifier : unsigned {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ Max = 0x7fffffff,
+};
+
+enum class FunctionParameterAttribute : unsigned {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ Max = 0x7fffffff,
+};
+
+enum class Decoration : unsigned {
+ 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,
+ 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,
+ ExplicitInterpAMD = 4999,
+ OverrideCoverageNV = 5248,
+ PassthroughNV = 5250,
+ ViewportRelativeNV = 5252,
+ SecondaryViewportRelativeNV = 5256,
+ HlslCounterBufferGOOGLE = 5634,
+ HlslSemanticGOOGLE = 5635,
+ Max = 0x7fffffff,
+};
+
+enum class BuiltIn : unsigned {
+ 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,
+ SubgroupEqMaskKHR = 4416,
+ SubgroupGeMaskKHR = 4417,
+ SubgroupGtMaskKHR = 4418,
+ SubgroupLeMaskKHR = 4419,
+ SubgroupLtMaskKHR = 4420,
+ BaseVertex = 4424,
+ BaseInstance = 4425,
+ DrawIndex = 4426,
+ DeviceIndex = 4438,
+ ViewIndex = 4440,
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class SelectionControlShift : unsigned {
+ Flatten = 0,
+ DontFlatten = 1,
+ Max = 0x7fffffff,
+};
+
+enum class SelectionControlMask : unsigned {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+};
+
+enum class LoopControlShift : unsigned {
+ Unroll = 0,
+ DontUnroll = 1,
+ DependencyInfinite = 2,
+ DependencyLength = 3,
+ Max = 0x7fffffff,
+};
+
+enum class LoopControlMask : unsigned {
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+ DependencyInfinite = 0x00000004,
+ DependencyLength = 0x00000008,
+};
+
+enum class FunctionControlShift : unsigned {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ Max = 0x7fffffff,
+};
+
+enum class FunctionControlMask : unsigned {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+};
+
+enum class MemorySemanticsShift : unsigned {
+ Acquire = 1,
+ Release = 2,
+ AcquireRelease = 3,
+ SequentiallyConsistent = 4,
+ UniformMemory = 6,
+ SubgroupMemory = 7,
+ WorkgroupMemory = 8,
+ CrossWorkgroupMemory = 9,
+ AtomicCounterMemory = 10,
+ ImageMemory = 11,
+ Max = 0x7fffffff,
+};
+
+enum class MemorySemanticsMask : unsigned {
+ MaskNone = 0,
+ Acquire = 0x00000002,
+ Release = 0x00000004,
+ AcquireRelease = 0x00000008,
+ SequentiallyConsistent = 0x00000010,
+ UniformMemory = 0x00000040,
+ SubgroupMemory = 0x00000080,
+ WorkgroupMemory = 0x00000100,
+ CrossWorkgroupMemory = 0x00000200,
+ AtomicCounterMemory = 0x00000400,
+ ImageMemory = 0x00000800,
+};
+
+enum class MemoryAccessShift : unsigned {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ Max = 0x7fffffff,
+};
+
+enum class MemoryAccessMask : unsigned {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+};
+
+enum class Scope : unsigned {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ Max = 0x7fffffff,
+};
+
+enum class GroupOperation : unsigned {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ Max = 0x7fffffff,
+};
+
+enum class KernelEnqueueFlags : unsigned {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ Max = 0x7fffffff,
+};
+
+enum class KernelProfilingInfoShift : unsigned {
+ CmdExecTime = 0,
+ Max = 0x7fffffff,
+};
+
+enum class KernelProfilingInfoMask : unsigned {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+};
+
+enum class Capability : unsigned {
+ 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,
+ SubgroupBallotKHR = 4423,
+ DrawParameters = 4427,
+ 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,
+ ImageGatherBiasLodAMD = 5009,
+ FragmentMaskAMD = 5010,
+ StencilExportEXT = 5013,
+ ImageReadWriteLodAMD = 5015,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerEXT = 5254,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ SubgroupShuffleINTEL = 5568,
+ SubgroupBufferBlockIOINTEL = 5569,
+ SubgroupImageBlockIOINTEL = 5570,
+ Max = 0x7fffffff,
+};
+
+enum class Op : unsigned {
+ 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,
+ OpDecorateId = 332,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateStringGOOGLE = 5633,
+ Max = 0x7fffffff,
+};
+
+// Overload operator| for mask bit combining
+
+inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
+inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
+inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
+inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
+inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
+inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
+inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
+inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+
+} // end namespace spv
+
+#endif // #ifndef spirv_HPP
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.json
new file mode 100644
index 0000000000..4c18e0192a
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.json
@@ -0,0 +1,1040 @@
+{
+ "spv":
+ {
+ "meta":
+ {
+ "Comment":
+ [
+ [
+ "Copyright (c) 2014-2018 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ [
+ "This header is automatically generated by the same tool that creates",
+ "the Binary Section of the SPIR-V specification."
+ ],
+ [
+ "Enumeration tokens for SPIR-V, in various styles:",
+ " C, C++, C++11, JSON, Lua, Python",
+ "",
+ "- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL",
+ "- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL",
+ "- C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL",
+ "- Lua will use tables, e.g.: spv.SourceLanguage.GLSL",
+ "- Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']",
+ "",
+ "Some tokens act like mask values, which can be OR'd together,",
+ "while others are mutually exclusive. The mask-like ones have",
+ "\"Mask\" in their name, and a parallel enum that has the shift",
+ "amount (1 << x) for each corresponding enumerant."
+ ]
+ ],
+ "MagicNumber": 119734787,
+ "Version": 65792,
+ "Revision": 8,
+ "OpCodeMask": 65535,
+ "WordCountShift": 16
+ },
+ "enum":
+ [
+ {
+ "Name": "SourceLanguage",
+ "Type": "Value",
+ "Values":
+ {
+ "Unknown": 0,
+ "ESSL": 1,
+ "GLSL": 2,
+ "OpenCL_C": 3,
+ "OpenCL_CPP": 4,
+ "HLSL": 5
+ }
+ },
+ {
+ "Name": "ExecutionModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Vertex": 0,
+ "TessellationControl": 1,
+ "TessellationEvaluation": 2,
+ "Geometry": 3,
+ "Fragment": 4,
+ "GLCompute": 5,
+ "Kernel": 6
+ }
+ },
+ {
+ "Name": "AddressingModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Logical": 0,
+ "Physical32": 1,
+ "Physical64": 2
+ }
+ },
+ {
+ "Name": "MemoryModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Simple": 0,
+ "GLSL450": 1,
+ "OpenCL": 2
+ }
+ },
+ {
+ "Name": "ExecutionMode",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "PostDepthCoverage": 4446,
+ "StencilRefReplacingEXT": 5027
+ }
+ },
+ {
+ "Name": "StorageClass",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "Dim",
+ "Type": "Value",
+ "Values":
+ {
+ "Dim1D": 0,
+ "Dim2D": 1,
+ "Dim3D": 2,
+ "Cube": 3,
+ "Rect": 4,
+ "Buffer": 5,
+ "SubpassData": 6
+ }
+ },
+ {
+ "Name": "SamplerAddressingMode",
+ "Type": "Value",
+ "Values":
+ {
+ "None": 0,
+ "ClampToEdge": 1,
+ "Clamp": 2,
+ "Repeat": 3,
+ "RepeatMirrored": 4
+ }
+ },
+ {
+ "Name": "SamplerFilterMode",
+ "Type": "Value",
+ "Values":
+ {
+ "Nearest": 0,
+ "Linear": 1
+ }
+ },
+ {
+ "Name": "ImageFormat",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "ImageChannelOrder",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "ImageChannelDataType",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "ImageOperands",
+ "Type": "Bit",
+ "Values":
+ {
+ "Bias": 0,
+ "Lod": 1,
+ "Grad": 2,
+ "ConstOffset": 3,
+ "Offset": 4,
+ "ConstOffsets": 5,
+ "Sample": 6,
+ "MinLod": 7
+ }
+ },
+ {
+ "Name": "FPFastMathMode",
+ "Type": "Bit",
+ "Values":
+ {
+ "NotNaN": 0,
+ "NotInf": 1,
+ "NSZ": 2,
+ "AllowRecip": 3,
+ "Fast": 4
+ }
+ },
+ {
+ "Name": "FPRoundingMode",
+ "Type": "Value",
+ "Values":
+ {
+ "RTE": 0,
+ "RTZ": 1,
+ "RTP": 2,
+ "RTN": 3
+ }
+ },
+ {
+ "Name": "LinkageType",
+ "Type": "Value",
+ "Values":
+ {
+ "Export": 0,
+ "Import": 1
+ }
+ },
+ {
+ "Name": "AccessQualifier",
+ "Type": "Value",
+ "Values":
+ {
+ "ReadOnly": 0,
+ "WriteOnly": 1,
+ "ReadWrite": 2
+ }
+ },
+ {
+ "Name": "FunctionParameterAttribute",
+ "Type": "Value",
+ "Values":
+ {
+ "Zext": 0,
+ "Sext": 1,
+ "ByVal": 2,
+ "Sret": 3,
+ "NoAlias": 4,
+ "NoCapture": 5,
+ "NoWrite": 6,
+ "NoReadWrite": 7
+ }
+ },
+ {
+ "Name": "Decoration",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "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,
+ "ExplicitInterpAMD": 4999,
+ "OverrideCoverageNV": 5248,
+ "PassthroughNV": 5250,
+ "ViewportRelativeNV": 5252,
+ "SecondaryViewportRelativeNV": 5256,
+ "HlslCounterBufferGOOGLE": 5634,
+ "HlslSemanticGOOGLE": 5635
+ }
+ },
+ {
+ "Name": "BuiltIn",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "SubgroupEqMaskKHR": 4416,
+ "SubgroupGeMaskKHR": 4417,
+ "SubgroupGtMaskKHR": 4418,
+ "SubgroupLeMaskKHR": 4419,
+ "SubgroupLtMaskKHR": 4420,
+ "BaseVertex": 4424,
+ "BaseInstance": 4425,
+ "DrawIndex": 4426,
+ "DeviceIndex": 4438,
+ "ViewIndex": 4440,
+ "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
+ }
+ },
+ {
+ "Name": "SelectionControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Flatten": 0,
+ "DontFlatten": 1
+ }
+ },
+ {
+ "Name": "LoopControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Unroll": 0,
+ "DontUnroll": 1,
+ "DependencyInfinite": 2,
+ "DependencyLength": 3
+ }
+ },
+ {
+ "Name": "FunctionControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Inline": 0,
+ "DontInline": 1,
+ "Pure": 2,
+ "Const": 3
+ }
+ },
+ {
+ "Name": "MemorySemantics",
+ "Type": "Bit",
+ "Values":
+ {
+ "Acquire": 1,
+ "Release": 2,
+ "AcquireRelease": 3,
+ "SequentiallyConsistent": 4,
+ "UniformMemory": 6,
+ "SubgroupMemory": 7,
+ "WorkgroupMemory": 8,
+ "CrossWorkgroupMemory": 9,
+ "AtomicCounterMemory": 10,
+ "ImageMemory": 11
+ }
+ },
+ {
+ "Name": "MemoryAccess",
+ "Type": "Bit",
+ "Values":
+ {
+ "Volatile": 0,
+ "Aligned": 1,
+ "Nontemporal": 2
+ }
+ },
+ {
+ "Name": "Scope",
+ "Type": "Value",
+ "Values":
+ {
+ "CrossDevice": 0,
+ "Device": 1,
+ "Workgroup": 2,
+ "Subgroup": 3,
+ "Invocation": 4
+ }
+ },
+ {
+ "Name": "GroupOperation",
+ "Type": "Value",
+ "Values":
+ {
+ "Reduce": 0,
+ "InclusiveScan": 1,
+ "ExclusiveScan": 2
+ }
+ },
+ {
+ "Name": "KernelEnqueueFlags",
+ "Type": "Value",
+ "Values":
+ {
+ "NoWait": 0,
+ "WaitKernel": 1,
+ "WaitWorkGroup": 2
+ }
+ },
+ {
+ "Name": "KernelProfilingInfo",
+ "Type": "Bit",
+ "Values":
+ {
+ "CmdExecTime": 0
+ }
+ },
+ {
+ "Name": "Capability",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "SubgroupBallotKHR": 4423,
+ "DrawParameters": 4427,
+ "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,
+ "ImageGatherBiasLodAMD": 5009,
+ "FragmentMaskAMD": 5010,
+ "StencilExportEXT": 5013,
+ "ImageReadWriteLodAMD": 5015,
+ "SampleMaskOverrideCoverageNV": 5249,
+ "GeometryShaderPassthroughNV": 5251,
+ "ShaderViewportIndexLayerEXT": 5254,
+ "ShaderViewportIndexLayerNV": 5254,
+ "ShaderViewportMaskNV": 5255,
+ "ShaderStereoViewNV": 5259,
+ "PerViewAttributesNV": 5260,
+ "SubgroupShuffleINTEL": 5568,
+ "SubgroupBufferBlockIOINTEL": 5569,
+ "SubgroupImageBlockIOINTEL": 5570
+ }
+ },
+ {
+ "Name": "Op",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "OpDecorateId": 332,
+ "OpSubgroupBallotKHR": 4421,
+ "OpSubgroupFirstInvocationKHR": 4422,
+ "OpSubgroupAllKHR": 4428,
+ "OpSubgroupAnyKHR": 4429,
+ "OpSubgroupAllEqualKHR": 4430,
+ "OpSubgroupReadInvocationKHR": 4432,
+ "OpGroupIAddNonUniformAMD": 5000,
+ "OpGroupFAddNonUniformAMD": 5001,
+ "OpGroupFMinNonUniformAMD": 5002,
+ "OpGroupUMinNonUniformAMD": 5003,
+ "OpGroupSMinNonUniformAMD": 5004,
+ "OpGroupFMaxNonUniformAMD": 5005,
+ "OpGroupUMaxNonUniformAMD": 5006,
+ "OpGroupSMaxNonUniformAMD": 5007,
+ "OpFragmentMaskFetchAMD": 5011,
+ "OpFragmentFetchAMD": 5012,
+ "OpSubgroupShuffleINTEL": 5571,
+ "OpSubgroupShuffleDownINTEL": 5572,
+ "OpSubgroupShuffleUpINTEL": 5573,
+ "OpSubgroupShuffleXorINTEL": 5574,
+ "OpSubgroupBlockReadINTEL": 5575,
+ "OpSubgroupBlockWriteINTEL": 5576,
+ "OpSubgroupImageBlockReadINTEL": 5577,
+ "OpSubgroupImageBlockWriteINTEL": 5578,
+ "OpDecorateStringGOOGLE": 5632,
+ "OpMemberDecorateStringGOOGLE": 5633
+ }
+ }
+ ]
+ }
+}
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.lua b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.lua
new file mode 100644
index 0000000000..ad34e0abe9
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.lua
@@ -0,0 +1,971 @@
+-- Copyright (c) 2014-2018 The Khronos Group Inc.
+--
+-- Permission is hereby granted, free of charge, to any person obtaining a copy
+-- of this software and/or associated documentation files (the "Materials"),
+-- to deal in the Materials without restriction, including without limitation
+-- the rights to use, copy, modify, merge, publish, distribute, sublicense,
+-- and/or sell copies of the Materials, and to permit persons to whom the
+-- Materials are furnished to do so, subject to the following conditions:
+--
+-- The above copyright notice and this permission notice shall be included in
+-- all copies or substantial portions of the Materials.
+--
+-- MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+-- STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+-- HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+--
+-- THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+-- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+-- FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+-- IN THE MATERIALS.
+
+-- This header is automatically generated by the same tool that creates
+-- the Binary Section of the SPIR-V specification.
+
+-- Enumeration tokens for SPIR-V, in various styles:
+-- C, C++, C++11, JSON, Lua, Python
+--
+-- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+-- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+-- - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+-- - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+-- - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+--
+-- Some tokens act like mask values, which can be OR'd together,
+-- while others are mutually exclusive. The mask-like ones have
+-- "Mask" in their name, and a parallel enum that has the shift
+-- amount (1 << x) for each corresponding enumerant.
+
+spv = {
+ MagicNumber = 0x07230203,
+ Version = 0x00010100,
+ Revision = 8,
+ OpCodeMask = 0xffff,
+ WordCountShift = 16,
+
+ SourceLanguage = {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ },
+
+ ExecutionModel = {
+ Vertex = 0,
+ TessellationControl = 1,
+ TessellationEvaluation = 2,
+ Geometry = 3,
+ Fragment = 4,
+ GLCompute = 5,
+ Kernel = 6,
+ },
+
+ AddressingModel = {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ },
+
+ MemoryModel = {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ },
+
+ 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,
+ PostDepthCoverage = 4446,
+ StencilRefReplacingEXT = 5027,
+ },
+
+ 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,
+ },
+
+ Dim = {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ },
+
+ SamplerAddressingMode = {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ },
+
+ SamplerFilterMode = {
+ Nearest = 0,
+ Linear = 1,
+ },
+
+ ImageFormat = {
+ Unknown = 0,
+ Rgba32f = 1,
+ Rgba16f = 2,
+ R32f = 3,
+ Rgba8 = 4,
+ Rgba8Snorm = 5,
+ Rg32f = 6,
+ Rg16f = 7,
+ R11fG11fB10f = 8,
+ R16f = 9,
+ Rgba16 = 10,
+ Rgb10A2 = 11,
+ Rg16 = 12,
+ Rg8 = 13,
+ R16 = 14,
+ R8 = 15,
+ Rgba16Snorm = 16,
+ Rg16Snorm = 17,
+ Rg8Snorm = 18,
+ R16Snorm = 19,
+ R8Snorm = 20,
+ Rgba32i = 21,
+ Rgba16i = 22,
+ Rgba8i = 23,
+ R32i = 24,
+ Rg32i = 25,
+ Rg16i = 26,
+ Rg8i = 27,
+ R16i = 28,
+ R8i = 29,
+ Rgba32ui = 30,
+ Rgba16ui = 31,
+ Rgba8ui = 32,
+ R32ui = 33,
+ Rgb10a2ui = 34,
+ Rg32ui = 35,
+ Rg16ui = 36,
+ Rg8ui = 37,
+ R16ui = 38,
+ R8ui = 39,
+ },
+
+ 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,
+ },
+
+ 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,
+ },
+
+ ImageOperandsShift = {
+ Bias = 0,
+ Lod = 1,
+ Grad = 2,
+ ConstOffset = 3,
+ Offset = 4,
+ ConstOffsets = 5,
+ Sample = 6,
+ MinLod = 7,
+ },
+
+ ImageOperandsMask = {
+ MaskNone = 0,
+ Bias = 0x00000001,
+ Lod = 0x00000002,
+ Grad = 0x00000004,
+ ConstOffset = 0x00000008,
+ Offset = 0x00000010,
+ ConstOffsets = 0x00000020,
+ Sample = 0x00000040,
+ MinLod = 0x00000080,
+ },
+
+ FPFastMathModeShift = {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ },
+
+ FPFastMathModeMask = {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+ },
+
+ FPRoundingMode = {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ },
+
+ LinkageType = {
+ Export = 0,
+ Import = 1,
+ },
+
+ AccessQualifier = {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ },
+
+ FunctionParameterAttribute = {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ },
+
+ 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,
+ 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,
+ ExplicitInterpAMD = 4999,
+ OverrideCoverageNV = 5248,
+ PassthroughNV = 5250,
+ ViewportRelativeNV = 5252,
+ SecondaryViewportRelativeNV = 5256,
+ HlslCounterBufferGOOGLE = 5634,
+ HlslSemanticGOOGLE = 5635,
+ },
+
+ 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,
+ SubgroupEqMaskKHR = 4416,
+ SubgroupGeMaskKHR = 4417,
+ SubgroupGtMaskKHR = 4418,
+ SubgroupLeMaskKHR = 4419,
+ SubgroupLtMaskKHR = 4420,
+ BaseVertex = 4424,
+ BaseInstance = 4425,
+ DrawIndex = 4426,
+ DeviceIndex = 4438,
+ ViewIndex = 4440,
+ 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,
+ },
+
+ SelectionControlShift = {
+ Flatten = 0,
+ DontFlatten = 1,
+ },
+
+ SelectionControlMask = {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+ },
+
+ LoopControlShift = {
+ Unroll = 0,
+ DontUnroll = 1,
+ DependencyInfinite = 2,
+ DependencyLength = 3,
+ },
+
+ LoopControlMask = {
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+ DependencyInfinite = 0x00000004,
+ DependencyLength = 0x00000008,
+ },
+
+ FunctionControlShift = {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ },
+
+ FunctionControlMask = {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+ },
+
+ MemorySemanticsShift = {
+ Acquire = 1,
+ Release = 2,
+ AcquireRelease = 3,
+ SequentiallyConsistent = 4,
+ UniformMemory = 6,
+ SubgroupMemory = 7,
+ WorkgroupMemory = 8,
+ CrossWorkgroupMemory = 9,
+ AtomicCounterMemory = 10,
+ ImageMemory = 11,
+ },
+
+ MemorySemanticsMask = {
+ MaskNone = 0,
+ Acquire = 0x00000002,
+ Release = 0x00000004,
+ AcquireRelease = 0x00000008,
+ SequentiallyConsistent = 0x00000010,
+ UniformMemory = 0x00000040,
+ SubgroupMemory = 0x00000080,
+ WorkgroupMemory = 0x00000100,
+ CrossWorkgroupMemory = 0x00000200,
+ AtomicCounterMemory = 0x00000400,
+ ImageMemory = 0x00000800,
+ },
+
+ MemoryAccessShift = {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ },
+
+ MemoryAccessMask = {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+ },
+
+ Scope = {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ },
+
+ GroupOperation = {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ },
+
+ KernelEnqueueFlags = {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ },
+
+ KernelProfilingInfoShift = {
+ CmdExecTime = 0,
+ },
+
+ KernelProfilingInfoMask = {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+ },
+
+ 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,
+ SubgroupBallotKHR = 4423,
+ DrawParameters = 4427,
+ 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,
+ ImageGatherBiasLodAMD = 5009,
+ FragmentMaskAMD = 5010,
+ StencilExportEXT = 5013,
+ ImageReadWriteLodAMD = 5015,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerEXT = 5254,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ SubgroupShuffleINTEL = 5568,
+ SubgroupBufferBlockIOINTEL = 5569,
+ SubgroupImageBlockIOINTEL = 5570,
+ },
+
+ 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,
+ OpDecorateId = 332,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateStringGOOGLE = 5633,
+ },
+
+}
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.py b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.py
new file mode 100644
index 0000000000..519a59710d
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.1/spirv.py
@@ -0,0 +1,971 @@
+# Copyright (c) 2014-2018 The Khronos Group Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and/or associated documentation files (the "Materials"),
+# to deal in the Materials without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Materials, and to permit persons to whom the
+# Materials are furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Materials.
+#
+# MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+# STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+# HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+#
+# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+# IN THE MATERIALS.
+
+# This header is automatically generated by the same tool that creates
+# the Binary Section of the SPIR-V specification.
+
+# Enumeration tokens for SPIR-V, in various styles:
+# C, C++, C++11, JSON, Lua, Python
+#
+# - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+# - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+# - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+# - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+# - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+#
+# Some tokens act like mask values, which can be OR'd together,
+# while others are mutually exclusive. The mask-like ones have
+# "Mask" in their name, and a parallel enum that has the shift
+# amount (1 << x) for each corresponding enumerant.
+
+spv = {
+ 'MagicNumber' : 0x07230203,
+ 'Version' : 0x00010100,
+ 'Revision' : 8,
+ 'OpCodeMask' : 0xffff,
+ 'WordCountShift' : 16,
+
+ 'SourceLanguage' : {
+ 'Unknown' : 0,
+ 'ESSL' : 1,
+ 'GLSL' : 2,
+ 'OpenCL_C' : 3,
+ 'OpenCL_CPP' : 4,
+ 'HLSL' : 5,
+ },
+
+ 'ExecutionModel' : {
+ 'Vertex' : 0,
+ 'TessellationControl' : 1,
+ 'TessellationEvaluation' : 2,
+ 'Geometry' : 3,
+ 'Fragment' : 4,
+ 'GLCompute' : 5,
+ 'Kernel' : 6,
+ },
+
+ 'AddressingModel' : {
+ 'Logical' : 0,
+ 'Physical32' : 1,
+ 'Physical64' : 2,
+ },
+
+ 'MemoryModel' : {
+ 'Simple' : 0,
+ 'GLSL450' : 1,
+ 'OpenCL' : 2,
+ },
+
+ '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,
+ 'PostDepthCoverage' : 4446,
+ 'StencilRefReplacingEXT' : 5027,
+ },
+
+ '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,
+ },
+
+ 'Dim' : {
+ 'Dim1D' : 0,
+ 'Dim2D' : 1,
+ 'Dim3D' : 2,
+ 'Cube' : 3,
+ 'Rect' : 4,
+ 'Buffer' : 5,
+ 'SubpassData' : 6,
+ },
+
+ 'SamplerAddressingMode' : {
+ 'None' : 0,
+ 'ClampToEdge' : 1,
+ 'Clamp' : 2,
+ 'Repeat' : 3,
+ 'RepeatMirrored' : 4,
+ },
+
+ 'SamplerFilterMode' : {
+ 'Nearest' : 0,
+ 'Linear' : 1,
+ },
+
+ 'ImageFormat' : {
+ 'Unknown' : 0,
+ 'Rgba32f' : 1,
+ 'Rgba16f' : 2,
+ 'R32f' : 3,
+ 'Rgba8' : 4,
+ 'Rgba8Snorm' : 5,
+ 'Rg32f' : 6,
+ 'Rg16f' : 7,
+ 'R11fG11fB10f' : 8,
+ 'R16f' : 9,
+ 'Rgba16' : 10,
+ 'Rgb10A2' : 11,
+ 'Rg16' : 12,
+ 'Rg8' : 13,
+ 'R16' : 14,
+ 'R8' : 15,
+ 'Rgba16Snorm' : 16,
+ 'Rg16Snorm' : 17,
+ 'Rg8Snorm' : 18,
+ 'R16Snorm' : 19,
+ 'R8Snorm' : 20,
+ 'Rgba32i' : 21,
+ 'Rgba16i' : 22,
+ 'Rgba8i' : 23,
+ 'R32i' : 24,
+ 'Rg32i' : 25,
+ 'Rg16i' : 26,
+ 'Rg8i' : 27,
+ 'R16i' : 28,
+ 'R8i' : 29,
+ 'Rgba32ui' : 30,
+ 'Rgba16ui' : 31,
+ 'Rgba8ui' : 32,
+ 'R32ui' : 33,
+ 'Rgb10a2ui' : 34,
+ 'Rg32ui' : 35,
+ 'Rg16ui' : 36,
+ 'Rg8ui' : 37,
+ 'R16ui' : 38,
+ 'R8ui' : 39,
+ },
+
+ '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,
+ },
+
+ '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,
+ },
+
+ 'ImageOperandsShift' : {
+ 'Bias' : 0,
+ 'Lod' : 1,
+ 'Grad' : 2,
+ 'ConstOffset' : 3,
+ 'Offset' : 4,
+ 'ConstOffsets' : 5,
+ 'Sample' : 6,
+ 'MinLod' : 7,
+ },
+
+ 'ImageOperandsMask' : {
+ 'MaskNone' : 0,
+ 'Bias' : 0x00000001,
+ 'Lod' : 0x00000002,
+ 'Grad' : 0x00000004,
+ 'ConstOffset' : 0x00000008,
+ 'Offset' : 0x00000010,
+ 'ConstOffsets' : 0x00000020,
+ 'Sample' : 0x00000040,
+ 'MinLod' : 0x00000080,
+ },
+
+ 'FPFastMathModeShift' : {
+ 'NotNaN' : 0,
+ 'NotInf' : 1,
+ 'NSZ' : 2,
+ 'AllowRecip' : 3,
+ 'Fast' : 4,
+ },
+
+ 'FPFastMathModeMask' : {
+ 'MaskNone' : 0,
+ 'NotNaN' : 0x00000001,
+ 'NotInf' : 0x00000002,
+ 'NSZ' : 0x00000004,
+ 'AllowRecip' : 0x00000008,
+ 'Fast' : 0x00000010,
+ },
+
+ 'FPRoundingMode' : {
+ 'RTE' : 0,
+ 'RTZ' : 1,
+ 'RTP' : 2,
+ 'RTN' : 3,
+ },
+
+ 'LinkageType' : {
+ 'Export' : 0,
+ 'Import' : 1,
+ },
+
+ 'AccessQualifier' : {
+ 'ReadOnly' : 0,
+ 'WriteOnly' : 1,
+ 'ReadWrite' : 2,
+ },
+
+ 'FunctionParameterAttribute' : {
+ 'Zext' : 0,
+ 'Sext' : 1,
+ 'ByVal' : 2,
+ 'Sret' : 3,
+ 'NoAlias' : 4,
+ 'NoCapture' : 5,
+ 'NoWrite' : 6,
+ 'NoReadWrite' : 7,
+ },
+
+ '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,
+ '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,
+ 'ExplicitInterpAMD' : 4999,
+ 'OverrideCoverageNV' : 5248,
+ 'PassthroughNV' : 5250,
+ 'ViewportRelativeNV' : 5252,
+ 'SecondaryViewportRelativeNV' : 5256,
+ 'HlslCounterBufferGOOGLE' : 5634,
+ 'HlslSemanticGOOGLE' : 5635,
+ },
+
+ '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,
+ 'SubgroupEqMaskKHR' : 4416,
+ 'SubgroupGeMaskKHR' : 4417,
+ 'SubgroupGtMaskKHR' : 4418,
+ 'SubgroupLeMaskKHR' : 4419,
+ 'SubgroupLtMaskKHR' : 4420,
+ 'BaseVertex' : 4424,
+ 'BaseInstance' : 4425,
+ 'DrawIndex' : 4426,
+ 'DeviceIndex' : 4438,
+ 'ViewIndex' : 4440,
+ '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,
+ },
+
+ 'SelectionControlShift' : {
+ 'Flatten' : 0,
+ 'DontFlatten' : 1,
+ },
+
+ 'SelectionControlMask' : {
+ 'MaskNone' : 0,
+ 'Flatten' : 0x00000001,
+ 'DontFlatten' : 0x00000002,
+ },
+
+ 'LoopControlShift' : {
+ 'Unroll' : 0,
+ 'DontUnroll' : 1,
+ 'DependencyInfinite' : 2,
+ 'DependencyLength' : 3,
+ },
+
+ 'LoopControlMask' : {
+ 'MaskNone' : 0,
+ 'Unroll' : 0x00000001,
+ 'DontUnroll' : 0x00000002,
+ 'DependencyInfinite' : 0x00000004,
+ 'DependencyLength' : 0x00000008,
+ },
+
+ 'FunctionControlShift' : {
+ 'Inline' : 0,
+ 'DontInline' : 1,
+ 'Pure' : 2,
+ 'Const' : 3,
+ },
+
+ 'FunctionControlMask' : {
+ 'MaskNone' : 0,
+ 'Inline' : 0x00000001,
+ 'DontInline' : 0x00000002,
+ 'Pure' : 0x00000004,
+ 'Const' : 0x00000008,
+ },
+
+ 'MemorySemanticsShift' : {
+ 'Acquire' : 1,
+ 'Release' : 2,
+ 'AcquireRelease' : 3,
+ 'SequentiallyConsistent' : 4,
+ 'UniformMemory' : 6,
+ 'SubgroupMemory' : 7,
+ 'WorkgroupMemory' : 8,
+ 'CrossWorkgroupMemory' : 9,
+ 'AtomicCounterMemory' : 10,
+ 'ImageMemory' : 11,
+ },
+
+ 'MemorySemanticsMask' : {
+ 'MaskNone' : 0,
+ 'Acquire' : 0x00000002,
+ 'Release' : 0x00000004,
+ 'AcquireRelease' : 0x00000008,
+ 'SequentiallyConsistent' : 0x00000010,
+ 'UniformMemory' : 0x00000040,
+ 'SubgroupMemory' : 0x00000080,
+ 'WorkgroupMemory' : 0x00000100,
+ 'CrossWorkgroupMemory' : 0x00000200,
+ 'AtomicCounterMemory' : 0x00000400,
+ 'ImageMemory' : 0x00000800,
+ },
+
+ 'MemoryAccessShift' : {
+ 'Volatile' : 0,
+ 'Aligned' : 1,
+ 'Nontemporal' : 2,
+ },
+
+ 'MemoryAccessMask' : {
+ 'MaskNone' : 0,
+ 'Volatile' : 0x00000001,
+ 'Aligned' : 0x00000002,
+ 'Nontemporal' : 0x00000004,
+ },
+
+ 'Scope' : {
+ 'CrossDevice' : 0,
+ 'Device' : 1,
+ 'Workgroup' : 2,
+ 'Subgroup' : 3,
+ 'Invocation' : 4,
+ },
+
+ 'GroupOperation' : {
+ 'Reduce' : 0,
+ 'InclusiveScan' : 1,
+ 'ExclusiveScan' : 2,
+ },
+
+ 'KernelEnqueueFlags' : {
+ 'NoWait' : 0,
+ 'WaitKernel' : 1,
+ 'WaitWorkGroup' : 2,
+ },
+
+ 'KernelProfilingInfoShift' : {
+ 'CmdExecTime' : 0,
+ },
+
+ 'KernelProfilingInfoMask' : {
+ 'MaskNone' : 0,
+ 'CmdExecTime' : 0x00000001,
+ },
+
+ '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,
+ 'SubgroupBallotKHR' : 4423,
+ 'DrawParameters' : 4427,
+ '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,
+ 'ImageGatherBiasLodAMD' : 5009,
+ 'FragmentMaskAMD' : 5010,
+ 'StencilExportEXT' : 5013,
+ 'ImageReadWriteLodAMD' : 5015,
+ 'SampleMaskOverrideCoverageNV' : 5249,
+ 'GeometryShaderPassthroughNV' : 5251,
+ 'ShaderViewportIndexLayerEXT' : 5254,
+ 'ShaderViewportIndexLayerNV' : 5254,
+ 'ShaderViewportMaskNV' : 5255,
+ 'ShaderStereoViewNV' : 5259,
+ 'PerViewAttributesNV' : 5260,
+ 'SubgroupShuffleINTEL' : 5568,
+ 'SubgroupBufferBlockIOINTEL' : 5569,
+ 'SubgroupImageBlockIOINTEL' : 5570,
+ },
+
+ '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,
+ 'OpDecorateId' : 332,
+ 'OpSubgroupBallotKHR' : 4421,
+ 'OpSubgroupFirstInvocationKHR' : 4422,
+ 'OpSubgroupAllKHR' : 4428,
+ 'OpSubgroupAnyKHR' : 4429,
+ 'OpSubgroupAllEqualKHR' : 4430,
+ 'OpSubgroupReadInvocationKHR' : 4432,
+ 'OpGroupIAddNonUniformAMD' : 5000,
+ 'OpGroupFAddNonUniformAMD' : 5001,
+ 'OpGroupFMinNonUniformAMD' : 5002,
+ 'OpGroupUMinNonUniformAMD' : 5003,
+ 'OpGroupSMinNonUniformAMD' : 5004,
+ 'OpGroupFMaxNonUniformAMD' : 5005,
+ 'OpGroupUMaxNonUniformAMD' : 5006,
+ 'OpGroupSMaxNonUniformAMD' : 5007,
+ 'OpFragmentMaskFetchAMD' : 5011,
+ 'OpFragmentFetchAMD' : 5012,
+ 'OpSubgroupShuffleINTEL' : 5571,
+ 'OpSubgroupShuffleDownINTEL' : 5572,
+ 'OpSubgroupShuffleUpINTEL' : 5573,
+ 'OpSubgroupShuffleXorINTEL' : 5574,
+ 'OpSubgroupBlockReadINTEL' : 5575,
+ 'OpSubgroupBlockWriteINTEL' : 5576,
+ 'OpSubgroupImageBlockReadINTEL' : 5577,
+ 'OpSubgroupImageBlockWriteINTEL' : 5578,
+ 'OpDecorateStringGOOGLE' : 5632,
+ 'OpMemberDecorateStringGOOGLE' : 5633,
+ },
+
+}
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/GLSL.std.450.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/GLSL.std.450.h
new file mode 100644
index 0000000000..54cc00e9a8
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/GLSL.std.450.h
@@ -0,0 +1,131 @@
+/*
+** Copyright (c) 2014-2016 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+#ifndef GLSLstd450_H
+#define GLSLstd450_H
+
+static const int GLSLstd450Version = 100;
+static const int GLSLstd450Revision = 3;
+
+enum GLSLstd450 {
+ GLSLstd450Bad = 0, // Don't use
+
+ GLSLstd450Round = 1,
+ GLSLstd450RoundEven = 2,
+ GLSLstd450Trunc = 3,
+ GLSLstd450FAbs = 4,
+ GLSLstd450SAbs = 5,
+ GLSLstd450FSign = 6,
+ GLSLstd450SSign = 7,
+ GLSLstd450Floor = 8,
+ GLSLstd450Ceil = 9,
+ GLSLstd450Fract = 10,
+
+ GLSLstd450Radians = 11,
+ GLSLstd450Degrees = 12,
+ GLSLstd450Sin = 13,
+ GLSLstd450Cos = 14,
+ GLSLstd450Tan = 15,
+ GLSLstd450Asin = 16,
+ GLSLstd450Acos = 17,
+ GLSLstd450Atan = 18,
+ GLSLstd450Sinh = 19,
+ GLSLstd450Cosh = 20,
+ GLSLstd450Tanh = 21,
+ GLSLstd450Asinh = 22,
+ GLSLstd450Acosh = 23,
+ GLSLstd450Atanh = 24,
+ GLSLstd450Atan2 = 25,
+
+ GLSLstd450Pow = 26,
+ GLSLstd450Exp = 27,
+ GLSLstd450Log = 28,
+ GLSLstd450Exp2 = 29,
+ GLSLstd450Log2 = 30,
+ GLSLstd450Sqrt = 31,
+ GLSLstd450InverseSqrt = 32,
+
+ GLSLstd450Determinant = 33,
+ GLSLstd450MatrixInverse = 34,
+
+ GLSLstd450Modf = 35, // second operand needs an OpVariable to write to
+ GLSLstd450ModfStruct = 36, // no OpVariable operand
+ GLSLstd450FMin = 37,
+ GLSLstd450UMin = 38,
+ GLSLstd450SMin = 39,
+ GLSLstd450FMax = 40,
+ GLSLstd450UMax = 41,
+ GLSLstd450SMax = 42,
+ GLSLstd450FClamp = 43,
+ GLSLstd450UClamp = 44,
+ GLSLstd450SClamp = 45,
+ GLSLstd450FMix = 46,
+ GLSLstd450IMix = 47, // Reserved
+ GLSLstd450Step = 48,
+ GLSLstd450SmoothStep = 49,
+
+ GLSLstd450Fma = 50,
+ GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to
+ GLSLstd450FrexpStruct = 52, // no OpVariable operand
+ GLSLstd450Ldexp = 53,
+
+ GLSLstd450PackSnorm4x8 = 54,
+ GLSLstd450PackUnorm4x8 = 55,
+ GLSLstd450PackSnorm2x16 = 56,
+ GLSLstd450PackUnorm2x16 = 57,
+ GLSLstd450PackHalf2x16 = 58,
+ GLSLstd450PackDouble2x32 = 59,
+ GLSLstd450UnpackSnorm2x16 = 60,
+ GLSLstd450UnpackUnorm2x16 = 61,
+ GLSLstd450UnpackHalf2x16 = 62,
+ GLSLstd450UnpackSnorm4x8 = 63,
+ GLSLstd450UnpackUnorm4x8 = 64,
+ GLSLstd450UnpackDouble2x32 = 65,
+
+ GLSLstd450Length = 66,
+ GLSLstd450Distance = 67,
+ GLSLstd450Cross = 68,
+ GLSLstd450Normalize = 69,
+ GLSLstd450FaceForward = 70,
+ GLSLstd450Reflect = 71,
+ GLSLstd450Refract = 72,
+
+ GLSLstd450FindILsb = 73,
+ GLSLstd450FindSMsb = 74,
+ GLSLstd450FindUMsb = 75,
+
+ GLSLstd450InterpolateAtCentroid = 76,
+ GLSLstd450InterpolateAtSample = 77,
+ GLSLstd450InterpolateAtOffset = 78,
+
+ GLSLstd450NMin = 79,
+ GLSLstd450NMax = 80,
+ GLSLstd450NClamp = 81,
+
+ GLSLstd450Count
+};
+
+#endif // #ifndef GLSLstd450_H
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/OpenCL.std.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/OpenCL.std.h
new file mode 100644
index 0000000000..19a6688490
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/OpenCL.std.h
@@ -0,0 +1,210 @@
+/*
+** Copyright (c) 2015-2017 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.
+*/
+
+namespace OpenCLLIB {
+
+enum Entrypoints {
+
+ // Section 2.1: Math extended instructions
+ Acos = 0,
+ Acosh = 1,
+ Acospi = 2,
+ Asin = 3,
+ Asinh = 4,
+ Asinpi = 5,
+ Atan = 6,
+ Atan2 = 7,
+ Atanh = 8,
+ Atanpi = 9,
+ Atan2pi = 10,
+ Cbrt = 11,
+ Ceil = 12,
+ Copysign = 13,
+ Cos = 14,
+ Cosh = 15,
+ Cospi = 16,
+ Erfc = 17,
+ Erf = 18,
+ Exp = 19,
+ Exp2 = 20,
+ Exp10 = 21,
+ Expm1 = 22,
+ Fabs = 23,
+ Fdim = 24,
+ Floor = 25,
+ Fma = 26,
+ Fmax = 27,
+ Fmin = 28,
+ Fmod = 29,
+ Fract = 30,
+ Frexp = 31,
+ Hypot = 32,
+ Ilogb = 33,
+ Ldexp = 34,
+ Lgamma = 35,
+ Lgamma_r = 36,
+ Log = 37,
+ Log2 = 38,
+ Log10 = 39,
+ Log1p = 40,
+ Logb = 41,
+ Mad = 42,
+ Maxmag = 43,
+ Minmag = 44,
+ Modf = 45,
+ Nan = 46,
+ Nextafter = 47,
+ Pow = 48,
+ Pown = 49,
+ Powr = 50,
+ Remainder = 51,
+ Remquo = 52,
+ Rint = 53,
+ Rootn = 54,
+ Round = 55,
+ Rsqrt = 56,
+ Sin = 57,
+ Sincos = 58,
+ Sinh = 59,
+ Sinpi = 60,
+ Sqrt = 61,
+ Tan = 62,
+ Tanh = 63,
+ Tanpi = 64,
+ Tgamma = 65,
+ Trunc = 66,
+ Half_cos = 67,
+ Half_divide = 68,
+ Half_exp = 69,
+ Half_exp2 = 70,
+ Half_exp10 = 71,
+ Half_log = 72,
+ Half_log2 = 73,
+ Half_log10 = 74,
+ Half_powr = 75,
+ Half_recip = 76,
+ Half_rsqrt = 77,
+ Half_sin = 78,
+ Half_sqrt = 79,
+ Half_tan = 80,
+ Native_cos = 81,
+ Native_divide = 82,
+ Native_exp = 83,
+ Native_exp2 = 84,
+ Native_exp10 = 85,
+ Native_log = 86,
+ Native_log2 = 87,
+ Native_log10 = 88,
+ Native_powr = 89,
+ Native_recip = 90,
+ Native_rsqrt = 91,
+ Native_sin = 92,
+ Native_sqrt = 93,
+ Native_tan = 94,
+
+ // Section 2.2: Integer instructions
+ SAbs = 141,
+ SAbs_diff = 142,
+ SAdd_sat = 143,
+ UAdd_sat = 144,
+ SHadd = 145,
+ UHadd = 146,
+ SRhadd = 147,
+ URhadd = 148,
+ SClamp = 149,
+ UClamp = 150,
+ Clz = 151,
+ Ctz = 152,
+ SMad_hi = 153,
+ UMad_sat = 154,
+ SMad_sat = 155,
+ SMax = 156,
+ UMax = 157,
+ SMin = 158,
+ UMin = 159,
+ SMul_hi = 160,
+ Rotate = 161,
+ SSub_sat = 162,
+ USub_sat = 163,
+ U_Upsample = 164,
+ S_Upsample = 165,
+ Popcount = 166,
+ SMad24 = 167,
+ UMad24 = 168,
+ SMul24 = 169,
+ UMul24 = 170,
+ UAbs = 201,
+ UAbs_diff = 202,
+ UMul_hi = 203,
+ UMad_hi = 204,
+
+ // Section 2.3: Common instructions
+ FClamp = 95,
+ Degrees = 96,
+ FMax_common = 97,
+ FMin_common = 98,
+ Mix = 99,
+ Radians = 100,
+ Step = 101,
+ Smoothstep = 102,
+ Sign = 103,
+
+ // Section 2.4: Geometric instructions
+ Cross = 104,
+ Distance = 105,
+ Length = 106,
+ Normalize = 107,
+ Fast_distance = 108,
+ Fast_length = 109,
+ Fast_normalize = 110,
+
+ // Section 2.5: Relational instructions
+ Bitselect = 186,
+ Select = 187,
+
+ // Section 2.6: Vector Data Load and Store instructions
+ Vloadn = 171,
+ Vstoren = 172,
+ Vload_half = 173,
+ Vload_halfn = 174,
+ Vstore_half = 175,
+ Vstore_half_r = 176,
+ Vstore_halfn = 177,
+ Vstore_halfn_r = 178,
+ Vloada_halfn = 179,
+ Vstorea_halfn = 180,
+ Vstorea_halfn_r = 181,
+
+ // Section 2.7: Miscellaneous Vector instructions
+ Shuffle = 182,
+ Shuffle2 = 183,
+
+ // Section 2.8: Misc instructions
+ Printf = 184,
+ Prefetch = 185,
+};
+
+} // end namespace OpenCLLIB
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/extinst.glsl.std.450.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/extinst.glsl.std.450.grammar.json
new file mode 100644
index 0000000000..3d9f39e76c
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/extinst.glsl.std.450.grammar.json
@@ -0,0 +1,642 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "Round",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "RoundEven",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Trunc",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FAbs",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SAbs",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FSign",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SSign",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Floor",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Ceil",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Fract",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Radians",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'degrees'" }
+ ]
+ },
+ {
+ "opname" : "Degrees",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'radians'" }
+ ]
+ },
+ {
+ "opname" : "Sin",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Cos",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Tan",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Asin",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Acos",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atan",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y_over_x'" }
+ ]
+ },
+ {
+ "opname" : "Sinh",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Cosh",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Tanh",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Asinh",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Acosh",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atanh",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atan2",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Pow",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "Exp",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Log",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Exp2",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Log2",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Sqrt",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "InverseSqrt",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Determinant",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "MatrixInverse",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Modf",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'i'" }
+ ]
+ },
+ {
+ "opname" : "ModfStruct",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FMin",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "UMin",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "SMin",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "FMax",
+ "opcode" : 40,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "UMax",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "SMax",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "FClamp",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "UClamp",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "SClamp",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "FMix",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "IMix",
+ "opcode" : 47,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "Step",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SmoothStep",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge0'" },
+ { "kind" : "IdRef", "name" : "'edge1'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Fma",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "Frexp",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "FrexpStruct",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Ldexp",
+ "opcode" : 53,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "PackSnorm4x8",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackUnorm4x8",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackSnorm2x16",
+ "opcode" : 56,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackUnorm2x16",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackHalf2x16",
+ "opcode" : 58,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackDouble2x32",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ],
+ "capabilities" : [ "Float64" ]
+ },
+ {
+ "opname" : "UnpackSnorm2x16",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackUnorm2x16",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackHalf2x16",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "UnpackSnorm4x8",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackUnorm4x8",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackDouble2x32",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ],
+ "capabilities" : [ "Float64" ]
+ },
+ {
+ "opname" : "Length",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Distance",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "Cross",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "Normalize",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FaceForward",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'N'" },
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'Nref'" }
+ ]
+ },
+ {
+ "opname" : "Reflect",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'N'" }
+ ]
+ },
+ {
+ "opname" : "Refract",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'N'" },
+ { "kind" : "IdRef", "name" : "'eta'" }
+ ]
+ },
+ {
+ "opname" : "FindILsb",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "FindSMsb",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "FindUMsb",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "InterpolateAtCentroid",
+ "opcode" : 76,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "InterpolateAtSample",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" },
+ { "kind" : "IdRef", "name" : "'sample'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "InterpolateAtOffset",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" },
+ { "kind" : "IdRef", "name" : "'offset'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "NMin",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "NMax",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "NClamp",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/extinst.opencl.std.100.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/extinst.opencl.std.100.grammar.json
new file mode 100644
index 0000000000..4fe45060bb
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/extinst.opencl.std.100.grammar.json
@@ -0,0 +1,1279 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "acos",
+ "opcode" : 0,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acosh",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acospi",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asin",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinh",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinpi",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanh",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanpi",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2pi",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cbrt",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ceil",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "copysign",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "cos",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cosh",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cospi",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erfc",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erf",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp2",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp10",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "expm1",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fabs",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fdim",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "floor",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fma",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fmax",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmod",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fract",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'ptr'" }
+ ]
+ },
+ {
+ "opname" : "frexp",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "hypot",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "ilogb",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ldexp",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'k'" }
+ ]
+ },
+ {
+ "opname" : "lgamma",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "lgamma_r",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'signp'" }
+ ]
+ },
+ {
+ "opname" : "log",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log2",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log10",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log1p",
+ "opcode" : 40,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "logb",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "mad",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "maxmag",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "minmag",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "modf",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'iptr'" }
+ ]
+ },
+ {
+ "opname" : "nan",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'nancode'" }
+ ]
+ },
+ {
+ "opname" : "nextafter",
+ "opcode" : 47,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "pow",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y" }
+ ]
+ },
+ {
+ "opname" : "pown",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "powr",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remainder",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remquo",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'quo'" }
+ ]
+ },
+ {
+ "opname" : "rint",
+ "opcode" : 53,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rootn",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "round",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rsqrt",
+ "opcode" : 56,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sin",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sincos",
+ "opcode" : 58,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'cosval'" }
+ ]
+ },
+ {
+ "opname" : "sinh",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sinpi",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sqrt",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tan",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanh",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanpi",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tgamma",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "trunc",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_cos",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_divide",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_exp",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp2",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp10",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log2",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log10",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_powr",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_recip",
+ "opcode" : 76,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_rsqrt",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sin",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sqrt",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_tan",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_cos",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_divide",
+ "opcode" : 82,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_exp",
+ "opcode" : 83,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp2",
+ "opcode" : 84,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp10",
+ "opcode" : 85,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log",
+ "opcode" : 86,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log2",
+ "opcode" : 87,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log10",
+ "opcode" : 88,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_powr",
+ "opcode" : 89,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_recip",
+ "opcode" : 90,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_rsqrt",
+ "opcode" : 91,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sin",
+ "opcode" : 92,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sqrt",
+ "opcode" : 93,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_tan",
+ "opcode" : 94,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs",
+ "opcode" : 141,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs_diff",
+ "opcode" : 142,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_add_sat",
+ "opcode" : 143,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_add_sat",
+ "opcode" : 144,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_hadd",
+ "opcode" : 145,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_hadd",
+ "opcode" : 146,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_rhadd",
+ "opcode" : 147,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_rhadd",
+ "opcode" : 148,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_clamp",
+ "opcode" : 149,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "u_clamp",
+ "opcode" : 150,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "clz",
+ "opcode" : 151,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ctz",
+ "opcode" : 152,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_hi",
+ "opcode" : 153,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_sat",
+ "opcode" : 154,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_sat",
+ "opcode" : 155,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_max",
+ "opcode" : 156,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_max",
+ "opcode" : 157,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_min",
+ "opcode" : 158,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_min",
+ "opcode" : 159,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_mul_hi",
+ "opcode" : 160,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "rotate",
+ "opcode" : 161,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" },
+ { "kind" : "IdRef", "name" : "'i'" }
+ ]
+ },
+ {
+ "opname" : "s_sub_sat",
+ "opcode" : 162,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_sub_sat",
+ "opcode" : 163,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_upsample",
+ "opcode" : 164,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "s_upsample",
+ "opcode" : 165,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "popcount",
+ "opcode" : 166,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad24",
+ "opcode" : 167,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "u_mad24",
+ "opcode" : 168,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mul24",
+ "opcode" : 169,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul24",
+ "opcode" : 170,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_abs",
+ "opcode" : 201,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "u_abs_diff",
+ "opcode" : 202,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul_hi",
+ "opcode" : 203,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_hi",
+ "opcode" : 204,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fclamp",
+ "opcode" : 95,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "degrees",
+ "opcode" :96,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'radians'" }
+ ]
+ },
+ {
+ "opname" : "fmax_common",
+ "opcode" : 97,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin_common",
+ "opcode" : 98,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "mix",
+ "opcode" : 99,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "radians",
+ "opcode" : 100,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'degrees'" }
+ ]
+ },
+ {
+ "opname" : "step",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "smoothstep",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge0'" },
+ { "kind" : "IdRef", "name" : "'edge1'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sign",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cross",
+ "opcode" : 104,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "distance",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "length",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "normalize",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_distance",
+ "opcode" : 108,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "fast_length",
+ "opcode" : 109,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_normalize",
+ "opcode" : 110,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "bitselect",
+ "opcode" : 186,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "select",
+ "opcode" : 187,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "vloadn",
+ "opcode" : 171,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstoren",
+ "opcode" : 172,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_half",
+ "opcode" : 173,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_halfn",
+ "opcode" : 174,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half",
+ "opcode" : 175,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half_r",
+ "opcode" : 176,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn",
+ "opcode" : 177,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn_r",
+ "opcode" : 178,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vloada_halfn",
+ "opcode" : 179,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn",
+ "opcode" : 180,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn_r",
+ "opcode" : 181,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "shuffle",
+ "opcode" : 182,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "shuffle2",
+ "opcode" : 183,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "printf",
+ "opcode" : 184,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'format'" },
+ { "kind" : "IdRef", "name" : "'additional arguments'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "prefetch",
+ "opcode" : 185,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'ptr'" },
+ { "kind" : "IdRef", "name" : "'num elements'" }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.core.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.core.grammar.json
new file mode 100644
index 0000000000..393ee3c849
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.core.grammar.json
@@ -0,0 +1,5986 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "magic_number" : "0x07230203",
+ "major_version" : 1,
+ "minor_version" : 2,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "OpNop",
+ "opcode" : 0
+ },
+ {
+ "opname" : "OpUndef",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSourceContinued",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Continued Source'" }
+ ]
+ },
+ {
+ "opname" : "OpSource",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "SourceLanguage" },
+ { "kind" : "LiteralInteger", "name" : "'Version'" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" },
+ { "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" }
+ ]
+ },
+ {
+ "opname" : "OpSourceExtension",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Extension'" }
+ ]
+ },
+ {
+ "opname" : "OpName",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpMemberName",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpString",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'String'" }
+ ]
+ },
+ {
+ "opname" : "OpLine",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'File'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "OpExtension",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpExtInstImport",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpExtInst",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Set'" },
+ { "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpMemoryModel",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "AddressingModel" },
+ { "kind" : "MemoryModel" }
+ ]
+ },
+ {
+ "opname" : "OpEntryPoint",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "ExecutionModel" },
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "LiteralString", "name" : "'Name'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" }
+ ]
+ },
+ {
+ "opname" : "OpExecutionMode",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "ExecutionMode", "name" : "'Mode'" }
+ ]
+ },
+ {
+ "opname" : "OpCapability",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "Capability", "name" : "'Capability'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeVoid",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeBool",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeInt",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Width'" },
+ { "kind" : "LiteralInteger", "name" : "'Signedness'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeFloat",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Width'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeVector",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Component Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Component Count'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeMatrix",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Column Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Column Count'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpTypeImage",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Type'" },
+ { "kind" : "Dim" },
+ { "kind" : "LiteralInteger", "name" : "'Depth'" },
+ { "kind" : "LiteralInteger", "name" : "'Arrayed'" },
+ { "kind" : "LiteralInteger", "name" : "'MS'" },
+ { "kind" : "LiteralInteger", "name" : "'Sampled'" },
+ { "kind" : "ImageFormat" },
+ { "kind" : "AccessQualifier", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpTypeSampler",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeSampledImage",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image Type'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeArray",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Element Type'" },
+ { "kind" : "IdRef", "name" : "'Length'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeRuntimeArray",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Element Type'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpTypeStruct",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpTypeOpaque",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "The name of the opaque type." }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpTypePointer",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "StorageClass" },
+ { "kind" : "IdRef", "name" : "'Type'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeFunction",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Return Type'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpTypeEvent",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpTypeDeviceEvent",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpTypeReserveId",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpTypeQueue",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpTypePipe",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "AccessQualifier", "name" : "'Qualifier'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpTypeForwardPointer",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer Type'" },
+ { "kind" : "StorageClass" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpConstantTrue",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpConstantFalse",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpConstant",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConstantComposite",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpConstantSampler",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "SamplerAddressingMode" },
+ { "kind" : "LiteralInteger", "name" : "'Param'" },
+ { "kind" : "SamplerFilterMode" }
+ ],
+ "capabilities" : [ "LiteralSampler" ]
+ },
+ {
+ "opname" : "OpConstantNull",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantTrue",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantFalse",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstant",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantComposite",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantOp",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" }
+ ]
+ },
+ {
+ "opname" : "OpFunction",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "FunctionControl" },
+ { "kind" : "IdRef", "name" : "'Function Type'" }
+ ]
+ },
+ {
+ "opname" : "OpFunctionParameter",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpFunctionEnd",
+ "opcode" : 56
+ },
+ {
+ "opname" : "OpFunctionCall",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Function'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpVariable",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "StorageClass" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" }
+ ]
+ },
+ {
+ "opname" : "OpImageTexelPointer",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Sample'" }
+ ]
+ },
+ {
+ "opname" : "OpLoad",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpStore",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Object'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpCopyMemory",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpCopyMemorySized",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpAccessChain",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpInBoundsAccessChain",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpPtrAccessChain",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Element'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ],
+ "capabilities" : [
+ "Addresses",
+ "VariablePointers",
+ "VariablePointersStorageBuffer"
+ ]
+ },
+ {
+ "opname" : "OpArrayLength",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Structure'" },
+ { "kind" : "LiteralInteger", "name" : "'Array member'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpGenericPtrMemSemantics",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpInBoundsPtrAccessChain",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Element'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpDecorate",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ]
+ },
+ {
+ "opname" : "OpMemberDecorate",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Structure Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "Decoration" }
+ ]
+ },
+ {
+ "opname" : "OpDecorationGroup",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpGroupDecorate",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Decoration Group'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" }
+ ]
+ },
+ {
+ "opname" : "OpGroupMemberDecorate",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Decoration Group'" },
+ { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorExtractDynamic",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorInsertDynamic",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorShuffle",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeConstruct",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeExtract",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Composite'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeInsert",
+ "opcode" : 82,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Object'" },
+ { "kind" : "IdRef", "name" : "'Composite'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpCopyObject",
+ "opcode" : 83,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpTranspose",
+ "opcode" : 84,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpSampledImage",
+ "opcode" : 86,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Sampler'" }
+ ]
+ },
+ {
+ "opname" : "OpImageSampleImplicitLod",
+ "opcode" : 87,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleExplicitLod",
+ "opcode" : 88,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ]
+ },
+ {
+ "opname" : "OpImageSampleDrefImplicitLod",
+ "opcode" : 89,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleDrefExplicitLod",
+ "opcode" : 90,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjImplicitLod",
+ "opcode" : 91,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjExplicitLod",
+ "opcode" : 92,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjDrefImplicitLod",
+ "opcode" : 93,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjDrefExplicitLod",
+ "opcode" : 94,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageFetch",
+ "opcode" : 95,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImageGather",
+ "opcode" : 96,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageDrefGather",
+ "opcode" : 97,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageRead",
+ "opcode" : 98,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImageWrite",
+ "opcode" : 99,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Texel'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImage",
+ "opcode" : 100,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" }
+ ]
+ },
+ {
+ "opname" : "OpImageQueryFormat",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageQueryOrder",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageQuerySizeLod",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Level of Detail'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQuerySize",
+ "opcode" : 104,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQueryLod",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQueryLevels",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQuerySamples",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpConvertFToU",
+ "opcode" : 109,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertFToS",
+ "opcode" : 110,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertSToF",
+ "opcode" : 111,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertUToF",
+ "opcode" : 112,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ]
+ },
+ {
+ "opname" : "OpUConvert",
+ "opcode" : 113,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ]
+ },
+ {
+ "opname" : "OpSConvert",
+ "opcode" : 114,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ]
+ },
+ {
+ "opname" : "OpFConvert",
+ "opcode" : 115,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpQuantizeToF16",
+ "opcode" : 116,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertPtrToU",
+ "opcode" : 117,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpSatConvertSToU",
+ "opcode" : 118,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpSatConvertUToS",
+ "opcode" : 119,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpConvertUToPtr",
+ "opcode" : 120,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Integer Value'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpPtrCastToGeneric",
+ "opcode" : 121,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGenericCastToPtr",
+ "opcode" : 122,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGenericCastToPtrExplicit",
+ "opcode" : 123,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "StorageClass", "name" : "'Storage'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpBitcast",
+ "opcode" : 124,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpSNegate",
+ "opcode" : 126,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpFNegate",
+ "opcode" : 127,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpIAdd",
+ "opcode" : 128,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFAdd",
+ "opcode" : 129,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpISub",
+ "opcode" : 130,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFSub",
+ "opcode" : 131,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIMul",
+ "opcode" : 132,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFMul",
+ "opcode" : 133,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUDiv",
+ "opcode" : 134,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSDiv",
+ "opcode" : 135,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFDiv",
+ "opcode" : 136,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUMod",
+ "opcode" : 137,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSRem",
+ "opcode" : 138,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSMod",
+ "opcode" : 139,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFRem",
+ "opcode" : 140,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFMod",
+ "opcode" : 141,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorTimesScalar",
+ "opcode" : 142,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Scalar'" }
+ ]
+ },
+ {
+ "opname" : "OpMatrixTimesScalar",
+ "opcode" : 143,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" },
+ { "kind" : "IdRef", "name" : "'Scalar'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpVectorTimesMatrix",
+ "opcode" : 144,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Matrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpMatrixTimesVector",
+ "opcode" : 145,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpMatrixTimesMatrix",
+ "opcode" : 146,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'LeftMatrix'" },
+ { "kind" : "IdRef", "name" : "'RightMatrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpOuterProduct",
+ "opcode" : 147,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpDot",
+ "opcode" : 148,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIAddCarry",
+ "opcode" : 149,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpISubBorrow",
+ "opcode" : 150,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUMulExtended",
+ "opcode" : 151,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSMulExtended",
+ "opcode" : 152,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpAny",
+ "opcode" : 154,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ]
+ },
+ {
+ "opname" : "OpAll",
+ "opcode" : 155,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ]
+ },
+ {
+ "opname" : "OpIsNan",
+ "opcode" : 156,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "OpIsInf",
+ "opcode" : 157,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "OpIsFinite",
+ "opcode" : 158,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpIsNormal",
+ "opcode" : 159,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpSignBitSet",
+ "opcode" : 160,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLessOrGreater",
+ "opcode" : 161,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpOrdered",
+ "opcode" : 162,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpUnordered",
+ "opcode" : 163,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLogicalEqual",
+ "opcode" : 164,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalNotEqual",
+ "opcode" : 165,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalOr",
+ "opcode" : 166,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalAnd",
+ "opcode" : 167,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalNot",
+ "opcode" : 168,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpSelect",
+ "opcode" : 169,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Condition'" },
+ { "kind" : "IdRef", "name" : "'Object 1'" },
+ { "kind" : "IdRef", "name" : "'Object 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIEqual",
+ "opcode" : 170,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpINotEqual",
+ "opcode" : 171,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUGreaterThan",
+ "opcode" : 172,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSGreaterThan",
+ "opcode" : 173,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUGreaterThanEqual",
+ "opcode" : 174,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSGreaterThanEqual",
+ "opcode" : 175,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpULessThan",
+ "opcode" : 176,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSLessThan",
+ "opcode" : 177,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpULessThanEqual",
+ "opcode" : 178,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSLessThanEqual",
+ "opcode" : 179,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdEqual",
+ "opcode" : 180,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordEqual",
+ "opcode" : 181,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdNotEqual",
+ "opcode" : 182,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordNotEqual",
+ "opcode" : 183,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdLessThan",
+ "opcode" : 184,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordLessThan",
+ "opcode" : 185,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdGreaterThan",
+ "opcode" : 186,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordGreaterThan",
+ "opcode" : 187,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdLessThanEqual",
+ "opcode" : 188,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordLessThanEqual",
+ "opcode" : 189,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdGreaterThanEqual",
+ "opcode" : 190,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordGreaterThanEqual",
+ "opcode" : 191,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftRightLogical",
+ "opcode" : 194,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftRightArithmetic",
+ "opcode" : 195,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftLeftLogical",
+ "opcode" : 196,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseOr",
+ "opcode" : 197,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseXor",
+ "opcode" : 198,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseAnd",
+ "opcode" : 199,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpNot",
+ "opcode" : 200,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpBitFieldInsert",
+ "opcode" : 201,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Insert'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitFieldSExtract",
+ "opcode" : 202,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitFieldUExtract",
+ "opcode" : 203,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitReverse",
+ "opcode" : 204,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpBitCount",
+ "opcode" : 205,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" }
+ ]
+ },
+ {
+ "opname" : "OpDPdx",
+ "opcode" : 207,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpDPdy",
+ "opcode" : 208,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpFwidth",
+ "opcode" : 209,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpDPdxFine",
+ "opcode" : 210,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdyFine",
+ "opcode" : 211,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpFwidthFine",
+ "opcode" : 212,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdxCoarse",
+ "opcode" : 213,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdyCoarse",
+ "opcode" : 214,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpFwidthCoarse",
+ "opcode" : 215,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpEmitVertex",
+ "opcode" : 218,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "opname" : "OpEndPrimitive",
+ "opcode" : 219,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "opname" : "OpEmitStreamVertex",
+ "opcode" : 220,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Stream'" }
+ ],
+ "capabilities" : [ "GeometryStreams" ]
+ },
+ {
+ "opname" : "OpEndStreamPrimitive",
+ "opcode" : 221,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Stream'" }
+ ],
+ "capabilities" : [ "GeometryStreams" ]
+ },
+ {
+ "opname" : "OpControlBarrier",
+ "opcode" : 224,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpMemoryBarrier",
+ "opcode" : 225,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicLoad",
+ "opcode" : 227,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicStore",
+ "opcode" : 228,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicExchange",
+ "opcode" : 229,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicCompareExchange",
+ "opcode" : 230,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Comparator'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicCompareExchangeWeak",
+ "opcode" : 231,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Comparator'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpAtomicIIncrement",
+ "opcode" : 232,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicIDecrement",
+ "opcode" : 233,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicIAdd",
+ "opcode" : 234,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicISub",
+ "opcode" : 235,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicSMin",
+ "opcode" : 236,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicUMin",
+ "opcode" : 237,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicSMax",
+ "opcode" : 238,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicUMax",
+ "opcode" : 239,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicAnd",
+ "opcode" : 240,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicOr",
+ "opcode" : 241,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicXor",
+ "opcode" : 242,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpPhi",
+ "opcode" : 245,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" }
+ ]
+ },
+ {
+ "opname" : "OpLoopMerge",
+ "opcode" : 246,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Merge Block'" },
+ { "kind" : "IdRef", "name" : "'Continue Target'" },
+ { "kind" : "LoopControl" }
+ ]
+ },
+ {
+ "opname" : "OpSelectionMerge",
+ "opcode" : 247,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Merge Block'" },
+ { "kind" : "SelectionControl" }
+ ]
+ },
+ {
+ "opname" : "OpLabel",
+ "opcode" : 248,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpBranch",
+ "opcode" : 249,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target Label'" }
+ ]
+ },
+ {
+ "opname" : "OpBranchConditional",
+ "opcode" : 250,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Condition'" },
+ { "kind" : "IdRef", "name" : "'True Label'" },
+ { "kind" : "IdRef", "name" : "'False Label'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" }
+ ]
+ },
+ {
+ "opname" : "OpSwitch",
+ "opcode" : 251,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Selector'" },
+ { "kind" : "IdRef", "name" : "'Default'" },
+ { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" }
+ ]
+ },
+ {
+ "opname" : "OpKill",
+ "opcode" : 252,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpReturn",
+ "opcode" : 253
+ },
+ {
+ "opname" : "OpReturnValue",
+ "opcode" : 254,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpUnreachable",
+ "opcode" : 255
+ },
+ {
+ "opname" : "OpLifetimeStart",
+ "opcode" : 256,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLifetimeStop",
+ "opcode" : 257,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupAsyncCopy",
+ "opcode" : 259,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Destination'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Num Elements'" },
+ { "kind" : "IdRef", "name" : "'Stride'" },
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupWaitEvents",
+ "opcode" : 260,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Events List'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupAll",
+ "opcode" : 261,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupAny",
+ "opcode" : 262,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupBroadcast",
+ "opcode" : 263,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'LocalId'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupIAdd",
+ "opcode" : 264,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFAdd",
+ "opcode" : 265,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMin",
+ "opcode" : 266,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMin",
+ "opcode" : 267,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMin",
+ "opcode" : 268,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMax",
+ "opcode" : 269,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMax",
+ "opcode" : 270,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMax",
+ "opcode" : 271,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpReadPipe",
+ "opcode" : 274,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpWritePipe",
+ "opcode" : 275,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReservedReadPipe",
+ "opcode" : 276,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Index'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReservedWritePipe",
+ "opcode" : 277,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Index'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReserveReadPipePackets",
+ "opcode" : 278,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReserveWritePipePackets",
+ "opcode" : 279,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpCommitReadPipe",
+ "opcode" : 280,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpCommitWritePipe",
+ "opcode" : 281,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpIsValidReserveId",
+ "opcode" : 282,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGetNumPipePackets",
+ "opcode" : 283,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGetMaxPipePackets",
+ "opcode" : 284,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupReserveReadPipePackets",
+ "opcode" : 285,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupReserveWritePipePackets",
+ "opcode" : 286,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupCommitReadPipe",
+ "opcode" : 287,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupCommitWritePipe",
+ "opcode" : 288,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpEnqueueMarker",
+ "opcode" : 291,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Queue'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Wait Events'" },
+ { "kind" : "IdRef", "name" : "'Ret Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpEnqueueKernel",
+ "opcode" : 292,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Queue'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Wait Events'" },
+ { "kind" : "IdRef", "name" : "'Ret Event'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Local Size'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelNDrangeSubGroupCount",
+ "opcode" : 293,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelNDrangeMaxSubGroupSize",
+ "opcode" : 294,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelWorkGroupSize",
+ "opcode" : 295,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple",
+ "opcode" : 296,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpRetainEvent",
+ "opcode" : 297,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpReleaseEvent",
+ "opcode" : 298,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpCreateUserEvent",
+ "opcode" : 299,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpIsValidEvent",
+ "opcode" : 300,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpSetUserEventStatus",
+ "opcode" : 301,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" },
+ { "kind" : "IdRef", "name" : "'Status'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpCaptureEventProfilingInfo",
+ "opcode" : 302,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" },
+ { "kind" : "IdRef", "name" : "'Profiling Info'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetDefaultQueue",
+ "opcode" : 303,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpBuildNDRange",
+ "opcode" : 304,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'GlobalWorkSize'" },
+ { "kind" : "IdRef", "name" : "'LocalWorkSize'" },
+ { "kind" : "IdRef", "name" : "'GlobalWorkOffset'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleImplicitLod",
+ "opcode" : 305,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleExplicitLod",
+ "opcode" : 306,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleDrefImplicitLod",
+ "opcode" : 307,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleDrefExplicitLod",
+ "opcode" : 308,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjImplicitLod",
+ "opcode" : 309,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjExplicitLod",
+ "opcode" : 310,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjDrefImplicitLod",
+ "opcode" : 311,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjDrefExplicitLod",
+ "opcode" : 312,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseFetch",
+ "opcode" : 313,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseGather",
+ "opcode" : 314,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseDrefGather",
+ "opcode" : 315,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseTexelsResident",
+ "opcode" : 316,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Resident Code'" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpNoLine",
+ "opcode" : 317
+ },
+ {
+ "opname" : "OpAtomicFlagTestAndSet",
+ "opcode" : 318,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpAtomicFlagClear",
+ "opcode" : 319,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageSparseRead",
+ "opcode" : 320,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpSizeOf",
+ "opcode" : 321,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpTypePipeStorage",
+ "opcode" : 322,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "PipeStorage" ]
+ },
+ {
+ "opname" : "OpConstantPipeStorage",
+ "opcode" : 323,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Packet Size'" },
+ { "kind" : "LiteralInteger", "name" : "'Packet Alignment'" },
+ { "kind" : "LiteralInteger", "name" : "'Capacity'" }
+ ],
+ "capabilities" : [ "PipeStorage" ]
+ },
+ {
+ "opname" : "OpCreatePipeFromPipeStorage",
+ "opcode" : 324,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe Storage'" }
+ ],
+ "capabilities" : [ "PipeStorage" ]
+ },
+ {
+ "opname" : "OpGetKernelLocalSizeForSubgroupCount",
+ "opcode" : 325,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Subgroup Count'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "SubgroupDispatch" ]
+ },
+ {
+ "opname" : "OpGetKernelMaxNumSubgroups",
+ "opcode" : 326,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "SubgroupDispatch" ]
+ },
+ {
+ "opname" : "OpTypeNamedBarrier",
+ "opcode" : 327,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "NamedBarrier" ]
+ },
+ {
+ "opname" : "OpNamedBarrierInitialize",
+ "opcode" : 328,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Subgroup Count'" }
+ ],
+ "capabilities" : [ "NamedBarrier" ]
+ },
+ {
+ "opname" : "OpMemoryNamedBarrier",
+ "opcode" : 329,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Named Barrier'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "NamedBarrier" ]
+ },
+ {
+ "opname" : "OpModuleProcessed",
+ "opcode" : 330,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Process'" }
+ ]
+ },
+ {
+ "opname" : "OpExecutionModeId",
+ "opcode" : 331,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "ExecutionMode", "name" : "'Mode'" }
+ ]
+ },
+ {
+ "opname" : "OpDecorateId",
+ "opcode" : 332,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ]
+ },
+ {
+ "opname" : "OpSubgroupBallotKHR",
+ "opcode" : 4421,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupFirstInvocationKHR",
+ "opcode" : 4422,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAllKHR",
+ "opcode" : 4428,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAnyKHR",
+ "opcode" : 4429,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAllEqualKHR",
+ "opcode" : 4430,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupReadInvocationKHR",
+ "opcode" : 4432,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpGroupIAddNonUniformAMD",
+ "opcode" : 5000,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFAddNonUniformAMD",
+ "opcode" : 5001,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMinNonUniformAMD",
+ "opcode" : 5002,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMinNonUniformAMD",
+ "opcode" : 5003,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMinNonUniformAMD",
+ "opcode" : 5004,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMaxNonUniformAMD",
+ "opcode" : 5005,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMaxNonUniformAMD",
+ "opcode" : 5006,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMaxNonUniformAMD",
+ "opcode" : 5007,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpFragmentMaskFetchAMD",
+ "opcode" : 5011,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "FragmentMaskAMD" ]
+ },
+ {
+ "opname" : "OpFragmentFetchAMD",
+ "opcode" : 5012,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Fragment Index'" }
+ ],
+ "capabilities" : [ "FragmentMaskAMD" ]
+ },
+ {
+ "opname" : "OpSubgroupShuffleINTEL",
+ "opcode" : 5571,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Data'" },
+ { "kind" : "IdRef", "name" : "'InvocationId'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupShuffleDownINTEL",
+ "opcode" : 5572,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Current'" },
+ { "kind" : "IdRef", "name" : "'Next'" },
+ { "kind" : "IdRef", "name" : "'Delta'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupShuffleUpINTEL",
+ "opcode" : 5573,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Previous'" },
+ { "kind" : "IdRef", "name" : "'Current'" },
+ { "kind" : "IdRef", "name" : "'Delta'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupShuffleXorINTEL",
+ "opcode" : 5574,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Data'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupBlockReadINTEL",
+ "opcode" : 5575,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Ptr'" }
+ ],
+ "capabilities" : [ "SubgroupBufferBlockIOINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupBlockWriteINTEL",
+ "opcode" : 5576,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Ptr'" },
+ { "kind" : "IdRef", "name" : "'Data'" }
+ ],
+ "capabilities" : [ "SubgroupBufferBlockIOINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupImageBlockReadINTEL",
+ "opcode" : 5577,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "SubgroupImageBlockIOINTEL" ]
+ },
+ {
+ "opname" : "OpSubgroupImageBlockWriteINTEL",
+ "opcode" : 5578,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Data'" }
+ ],
+ "capabilities" : [ "SubgroupImageBlockIOINTEL" ]
+ },
+ {
+ "opname" : "OpDecorateStringGOOGLE",
+ "opcode" : 5632,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_decorate_string" ]
+ },
+ {
+ "opname" : "OpMemberDecorateStringGOOGLE",
+ "opcode" : 5633,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Struct Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_decorate_string" ]
+ }
+ ],
+ "operand_kinds" : [
+ {
+ "category" : "BitEnum",
+ "kind" : "ImageOperands",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Bias",
+ "value" : "0x0001",
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Lod",
+ "value" : "0x0002",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Grad",
+ "value" : "0x0004",
+ "parameters" : [
+ { "kind" : "IdRef" },
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "ConstOffset",
+ "value" : "0x0008",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Offset",
+ "value" : "0x0010",
+ "capabilities" : [ "ImageGatherExtended" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "ConstOffsets",
+ "value" : "0x0020",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Sample",
+ "value" : "0x0040",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "MinLod",
+ "value" : "0x0080",
+ "capabilities" : [ "MinLod" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "FPFastMathMode",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "NotNaN",
+ "value" : "0x0001",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NotInf",
+ "value" : "0x0002",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NSZ",
+ "value" : "0x0004",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "AllowRecip",
+ "value" : "0x0008",
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Fast",
+ "value" : "0x0010",
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "SelectionControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Flatten",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontFlatten",
+ "value" : "0x0002"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "LoopControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Unroll",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontUnroll",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "DependencyInfinite",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "DependencyLength",
+ "value" : "0x0008",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ]
+
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "FunctionControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Inline",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontInline",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "Pure",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "Const",
+ "value" : "0x0008"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "MemorySemantics",
+ "enumerants" : [
+ {
+ "enumerant" : "Relaxed",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Acquire",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "Release",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "AcquireRelease",
+ "value" : "0x0008"
+ },
+ {
+ "enumerant" : "SequentiallyConsistent",
+ "value" : "0x0010"
+ },
+ {
+ "enumerant" : "UniformMemory",
+ "value" : "0x0040",
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SubgroupMemory",
+ "value" : "0x0080"
+ },
+ {
+ "enumerant" : "WorkgroupMemory",
+ "value" : "0x0100"
+ },
+ {
+ "enumerant" : "CrossWorkgroupMemory",
+ "value" : "0x0200"
+ },
+ {
+ "enumerant" : "AtomicCounterMemory",
+ "value" : "0x0400",
+ "capabilities" : [ "AtomicStorage" ]
+ },
+ {
+ "enumerant" : "ImageMemory",
+ "value" : "0x0800"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "MemoryAccess",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Volatile",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "Aligned",
+ "value" : "0x0002",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ]
+ },
+ {
+ "enumerant" : "Nontemporal",
+ "value" : "0x0004"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "KernelProfilingInfo",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "CmdExecTime",
+ "value" : "0x0001",
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SourceLanguage",
+ "enumerants" : [
+ {
+ "enumerant" : "Unknown",
+ "value" : 0
+ },
+ {
+ "enumerant" : "ESSL",
+ "value" : 1
+ },
+ {
+ "enumerant" : "GLSL",
+ "value" : 2
+ },
+ {
+ "enumerant" : "OpenCL_C",
+ "value" : 3
+ },
+ {
+ "enumerant" : "OpenCL_CPP",
+ "value" : 4
+ },
+ {
+ "enumerant" : "HLSL",
+ "value" : 5
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ExecutionModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Vertex",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "TessellationControl",
+ "value" : 1,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessellationEvaluation",
+ "value" : 2,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Geometry",
+ "value" : 3,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Fragment",
+ "value" : 4,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLCompute",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Kernel",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "AddressingModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Logical",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Physical32",
+ "value" : 1,
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "enumerant" : "Physical64",
+ "value" : 2,
+ "capabilities" : [ "Addresses" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "MemoryModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Simple",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLSL450",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OpenCL",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ExecutionMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Invocations",
+ "value" : 0,
+ "capabilities" : [ "Geometry" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Number of <<Invocation,invocations>>'" }
+ ]
+ },
+ {
+ "enumerant" : "SpacingEqual",
+ "value" : 1,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "SpacingFractionalEven",
+ "value" : 2,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "SpacingFractionalOdd",
+ "value" : 3,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "VertexOrderCw",
+ "value" : 4,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "VertexOrderCcw",
+ "value" : 5,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "PixelCenterInteger",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OriginUpperLeft",
+ "value" : 7,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OriginLowerLeft",
+ "value" : 8,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "EarlyFragmentTests",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointMode",
+ "value" : 10,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Xfb",
+ "value" : 11,
+ "capabilities" : [ "TransformFeedback" ]
+ },
+ {
+ "enumerant" : "DepthReplacing",
+ "value" : 12,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthGreater",
+ "value" : 14,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthLess",
+ "value" : 15,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthUnchanged",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "LocalSize",
+ "value" : 17,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'x size'" },
+ { "kind" : "LiteralInteger", "name" : "'y size'" },
+ { "kind" : "LiteralInteger", "name" : "'z size'" }
+ ]
+ },
+ {
+ "enumerant" : "LocalSizeHint",
+ "value" : 18,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'x size'" },
+ { "kind" : "LiteralInteger", "name" : "'y size'" },
+ { "kind" : "LiteralInteger", "name" : "'z size'" }
+ ]
+ },
+ {
+ "enumerant" : "InputPoints",
+ "value" : 19,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "InputLines",
+ "value" : 20,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "InputLinesAdjacency",
+ "value" : 21,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Triangles",
+ "value" : 22,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "InputTrianglesAdjacency",
+ "value" : 23,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Quads",
+ "value" : 24,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Isolines",
+ "value" : 25,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "OutputVertices",
+ "value" : 26,
+ "capabilities" : [ "Geometry", "Tessellation" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
+ ]
+ },
+ {
+ "enumerant" : "OutputPoints",
+ "value" : 27,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "OutputLineStrip",
+ "value" : 28,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "OutputTriangleStrip",
+ "value" : 29,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "VecTypeHint",
+ "value" : 30,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Vector type'" }
+ ]
+ },
+ {
+ "enumerant" : "ContractionOff",
+ "value" : 31,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Initializer",
+ "value" : 33,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Finalizer",
+ "value" : 34,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupSize",
+ "value" : 35,
+ "capabilities" : [ "SubgroupDispatch" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" }
+ ]
+ },
+ {
+ "enumerant" : "SubgroupsPerWorkgroup",
+ "value" : 36,
+ "capabilities" : [ "SubgroupDispatch" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" }
+ ]
+ },
+ {
+ "enumerant" : "SubgroupsPerWorkgroupId",
+ "value" : 37,
+ "capabilities" : [ "SubgroupDispatch" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Subgroups Per Workgroup'" }
+ ]
+ },
+ {
+ "enumerant" : "LocalSizeId",
+ "value" : 38,
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'x size'" },
+ { "kind" : "IdRef", "name" : "'y size'" },
+ { "kind" : "IdRef", "name" : "'z size'" }
+ ]
+ },
+ {
+ "enumerant" : "LocalSizeHintId",
+ "value" : 39,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Local Size Hint'" }
+ ]
+ },
+ {
+ "enumerant" : "PostDepthCoverage",
+ "value" : 4446,
+ "capabilities" : [ "SampleMaskPostDepthCoverage" ]
+ },
+ {
+ "enumerant" : "StencilRefReplacingEXT",
+ "value" : 5027,
+ "capabilities" : [ "StencilExportEXT" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "StorageClass",
+ "enumerants" : [
+ {
+ "enumerant" : "UniformConstant",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Input",
+ "value" : 1
+ },
+ {
+ "enumerant" : "Uniform",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Output",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Workgroup",
+ "value" : 4
+ },
+ {
+ "enumerant" : "CrossWorkgroup",
+ "value" : 5
+ },
+ {
+ "enumerant" : "Private",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Function",
+ "value" : 7
+ },
+ {
+ "enumerant" : "Generic",
+ "value" : 8,
+ "capabilities" : [ "GenericPointer" ]
+ },
+ {
+ "enumerant" : "PushConstant",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "AtomicCounter",
+ "value" : 10,
+ "capabilities" : [ "AtomicStorage" ]
+ },
+ {
+ "enumerant" : "Image",
+ "value" : 11
+ },
+ {
+ "enumerant" : "StorageBuffer",
+ "value" : 12,
+ "extensions" : [
+ "SPV_KHR_storage_buffer_storage_class",
+ "SPV_KHR_variable_pointers"
+ ],
+ "capabilities" : [ "Shader" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Dim",
+ "enumerants" : [
+ {
+ "enumerant" : "1D",
+ "value" : 0,
+ "capabilities" : [ "Sampled1D" ]
+ },
+ {
+ "enumerant" : "2D",
+ "value" : 1
+ },
+ {
+ "enumerant" : "3D",
+ "value" : 2
+ },
+ {
+ "enumerant" : "Cube",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rect",
+ "value" : 4,
+ "capabilities" : [ "SampledRect" ]
+ },
+ {
+ "enumerant" : "Buffer",
+ "value" : 5,
+ "capabilities" : [ "SampledBuffer" ]
+ },
+ {
+ "enumerant" : "SubpassData",
+ "value" : 6,
+ "capabilities" : [ "InputAttachment" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SamplerAddressingMode",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ClampToEdge",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Clamp",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Repeat",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RepeatMirrored",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SamplerFilterMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Nearest",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Linear",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageFormat",
+ "enumerants" : [
+ {
+ "enumerant" : "Unknown",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Rgba32f",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16f",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32f",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8",
+ "value" : 4,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8Snorm",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rg32f",
+ "value" : 6,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16f",
+ "value" : 7,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R11fG11fB10f",
+ "value" : 8,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16f",
+ "value" : 9,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba16",
+ "value" : 10,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgb10A2",
+ "value" : 11,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16",
+ "value" : 12,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8",
+ "value" : 13,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16",
+ "value" : 14,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8",
+ "value" : 15,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba16Snorm",
+ "value" : 16,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16Snorm",
+ "value" : 17,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8Snorm",
+ "value" : 18,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16Snorm",
+ "value" : 19,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8Snorm",
+ "value" : 20,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba32i",
+ "value" : 21,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16i",
+ "value" : 22,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8i",
+ "value" : 23,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32i",
+ "value" : 24,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rg32i",
+ "value" : 25,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16i",
+ "value" : 26,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8i",
+ "value" : 27,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16i",
+ "value" : 28,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8i",
+ "value" : 29,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba32ui",
+ "value" : 30,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16ui",
+ "value" : 31,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8ui",
+ "value" : 32,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32ui",
+ "value" : 33,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgb10a2ui",
+ "value" : 34,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg32ui",
+ "value" : 35,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16ui",
+ "value" : 36,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8ui",
+ "value" : 37,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16ui",
+ "value" : 38,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8ui",
+ "value" : 39,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageChannelOrder",
+ "enumerants" : [
+ {
+ "enumerant" : "R",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "A",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RG",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RA",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGB",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGBA",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "BGRA",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ARGB",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Intensity",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Luminance",
+ "value" : 9,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Rx",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGx",
+ "value" : 11,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGBx",
+ "value" : 12,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Depth",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "DepthStencil",
+ "value" : 14,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGB",
+ "value" : 15,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGBx",
+ "value" : 16,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGBA",
+ "value" : 17,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sBGRA",
+ "value" : 18,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ABGR",
+ "value" : 19,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageChannelDataType",
+ "enumerants" : [
+ {
+ "enumerant" : "SnormInt8",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SnormInt16",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt8",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt16",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormShort565",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormShort555",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt101010",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt8",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt16",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt32",
+ "value" : 9,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt8",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt16",
+ "value" : 11,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt32",
+ "value" : 12,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "HalfFloat",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float",
+ "value" : 14,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt24",
+ "value" : 15,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt101010_2",
+ "value" : 16,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FPRoundingMode",
+ "enumerants" : [
+ {
+ "enumerant" : "RTE",
+ "value" : 0,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ },
+ {
+ "enumerant" : "RTZ",
+ "value" : 1,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ },
+ {
+ "enumerant" : "RTP",
+ "value" : 2,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ },
+ {
+ "enumerant" : "RTN",
+ "value" : 3,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "LinkageType",
+ "enumerants" : [
+ {
+ "enumerant" : "Export",
+ "value" : 0,
+ "capabilities" : [ "Linkage" ]
+ },
+ {
+ "enumerant" : "Import",
+ "value" : 1,
+ "capabilities" : [ "Linkage" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "AccessQualifier",
+ "enumerants" : [
+ {
+ "enumerant" : "ReadOnly",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WriteOnly",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ReadWrite",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FunctionParameterAttribute",
+ "enumerants" : [
+ {
+ "enumerant" : "Zext",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Sext",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ByVal",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Sret",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoAlias",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoCapture",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoWrite",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoReadWrite",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Decoration",
+ "enumerants" : [
+ {
+ "enumerant" : "RelaxedPrecision",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SpecId",
+ "value" : 1,
+ "capabilities" : [ "Shader", "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" }
+ ]
+ },
+ {
+ "enumerant" : "Block",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "BufferBlock",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "RowMajor",
+ "value" : 4,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "ColMajor",
+ "value" : 5,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "ArrayStride",
+ "value" : 6,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Array Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "MatrixStride",
+ "value" : 7,
+ "capabilities" : [ "Matrix" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "GLSLShared",
+ "value" : 8,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLSLPacked",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "CPacked",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "BuiltIn",
+ "value" : 11,
+ "parameters" : [
+ { "kind" : "BuiltIn" }
+ ]
+ },
+ {
+ "enumerant" : "NoPerspective",
+ "value" : 13,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Flat",
+ "value" : 14,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Patch",
+ "value" : 15,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Centroid",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Sample",
+ "value" : 17,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "Invariant",
+ "value" : 18,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Restrict",
+ "value" : 19
+ },
+ {
+ "enumerant" : "Aliased",
+ "value" : 20
+ },
+ {
+ "enumerant" : "Volatile",
+ "value" : 21
+ },
+ {
+ "enumerant" : "Constant",
+ "value" : 22,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Coherent",
+ "value" : 23
+ },
+ {
+ "enumerant" : "NonWritable",
+ "value" : 24
+ },
+ {
+ "enumerant" : "NonReadable",
+ "value" : 25
+ },
+ {
+ "enumerant" : "Uniform",
+ "value" : 26,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SaturatedConversion",
+ "value" : 28,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Stream",
+ "value" : 29,
+ "capabilities" : [ "GeometryStreams" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Stream Number'" }
+ ]
+ },
+ {
+ "enumerant" : "Location",
+ "value" : 30,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Location'" }
+ ]
+ },
+ {
+ "enumerant" : "Component",
+ "value" : 31,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Component'" }
+ ]
+ },
+ {
+ "enumerant" : "Index",
+ "value" : 32,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Index'" }
+ ]
+ },
+ {
+ "enumerant" : "Binding",
+ "value" : 33,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Binding Point'" }
+ ]
+ },
+ {
+ "enumerant" : "DescriptorSet",
+ "value" : 34,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" }
+ ]
+ },
+ {
+ "enumerant" : "Offset",
+ "value" : 35,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Byte Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "XfbBuffer",
+ "value" : 36,
+ "capabilities" : [ "TransformFeedback" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" }
+ ]
+ },
+ {
+ "enumerant" : "XfbStride",
+ "value" : 37,
+ "capabilities" : [ "TransformFeedback" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'XFB Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "FuncParamAttr",
+ "value" : 38,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" }
+ ]
+ },
+ {
+ "enumerant" : "FPRoundingMode",
+ "value" : 39,
+ "capabilities" : [
+ "Kernel",
+ "StorageUniformBufferBlock16",
+ "StorageUniform16",
+ "StoragePushConstant16",
+ "StorageInputOutput16"
+ ],
+ "parameters" : [
+ { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" }
+ ]
+ },
+ {
+ "enumerant" : "FPFastMathMode",
+ "value" : 40,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" }
+ ]
+ },
+ {
+ "enumerant" : "LinkageAttributes",
+ "value" : 41,
+ "capabilities" : [ "Linkage" ],
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Name'" },
+ { "kind" : "LinkageType", "name" : "'Linkage Type'" }
+ ]
+ },
+ {
+ "enumerant" : "NoContraction",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InputAttachmentIndex",
+ "value" : 43,
+ "capabilities" : [ "InputAttachment" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Attachment Index'" }
+ ]
+ },
+ {
+ "enumerant" : "Alignment",
+ "value" : 44,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Alignment'" }
+ ]
+ },
+ {
+ "enumerant" : "MaxByteOffset",
+ "value" : 45,
+ "capabilities" : [ "Addresses" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "AlignmentId",
+ "value" : 46,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Alignment'" }
+ ]
+ },
+ {
+ "enumerant" : "MaxByteOffsetId",
+ "value" : 47,
+ "capabilities" : [ "Addresses" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Max Byte Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "ExplicitInterpAMD",
+ "value" : 4999
+ },
+ {
+ "enumerant" : "OverrideCoverageNV",
+ "value" : 5248,
+ "capabilities" : [ "SampleMaskOverrideCoverageNV" ]
+ },
+ {
+ "enumerant" : "PassthroughNV",
+ "value" : 5250,
+ "capabilities" : [ "GeometryShaderPassthroughNV" ]
+ },
+ {
+ "enumerant" : "ViewportRelativeNV",
+ "value" : 5252,
+ "capabilities" : [ "ShaderViewportMaskNV" ]
+ },
+ {
+ "enumerant" : "SecondaryViewportRelativeNV",
+ "value" : 5256,
+ "capabilities" : [ "ShaderStereoViewNV" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "HlslCounterBufferGOOGLE",
+ "value" : 5634,
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Counter Buffer'" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ]
+ },
+ {
+ "enumerant" : "HlslSemanticGOOGLE",
+ "value" : 5635,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Semantic'" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "BuiltIn",
+ "enumerants" : [
+ {
+ "enumerant" : "Position",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointSize",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ClipDistance",
+ "value" : 3,
+ "capabilities" : [ "ClipDistance" ]
+ },
+ {
+ "enumerant" : "CullDistance",
+ "value" : 4,
+ "capabilities" : [ "CullDistance" ]
+ },
+ {
+ "enumerant" : "VertexId",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InstanceId",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PrimitiveId",
+ "value" : 7,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "InvocationId",
+ "value" : 8,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "Layer",
+ "value" : 9,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "ViewportIndex",
+ "value" : 10,
+ "capabilities" : [ "MultiViewport" ]
+ },
+ {
+ "enumerant" : "TessLevelOuter",
+ "value" : 11,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessLevelInner",
+ "value" : 12,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessCoord",
+ "value" : 13,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "PatchVertices",
+ "value" : 14,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "FragCoord",
+ "value" : 15,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointCoord",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "FrontFacing",
+ "value" : 17,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampleId",
+ "value" : 18,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "SamplePosition",
+ "value" : 19,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "SampleMask",
+ "value" : 20,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "FragDepth",
+ "value" : 22,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "HelperInvocation",
+ "value" : 23,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "NumWorkgroups",
+ "value" : 24
+ },
+ {
+ "enumerant" : "WorkgroupSize",
+ "value" : 25
+ },
+ {
+ "enumerant" : "WorkgroupId",
+ "value" : 26
+ },
+ {
+ "enumerant" : "LocalInvocationId",
+ "value" : 27
+ },
+ {
+ "enumerant" : "GlobalInvocationId",
+ "value" : 28
+ },
+ {
+ "enumerant" : "LocalInvocationIndex",
+ "value" : 29
+ },
+ {
+ "enumerant" : "WorkDim",
+ "value" : 30,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalSize",
+ "value" : 31,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "EnqueuedWorkgroupSize",
+ "value" : 32,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalOffset",
+ "value" : 33,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalLinearId",
+ "value" : 34,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupSize",
+ "value" : 36,
+ "capabilities" : [ "Kernel", "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupMaxSize",
+ "value" : 37,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NumSubgroups",
+ "value" : 38,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NumEnqueuedSubgroups",
+ "value" : 39,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupId",
+ "value" : 40,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupLocalInvocationId",
+ "value" : 41,
+ "capabilities" : [ "Kernel", "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "VertexIndex",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InstanceIndex",
+ "value" : 43,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SubgroupEqMaskKHR",
+ "value" : 4416,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupGeMaskKHR",
+ "value" : 4417,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupGtMaskKHR",
+ "value" : 4418,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupLeMaskKHR",
+ "value" : 4419,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupLtMaskKHR",
+ "value" : 4420,
+ "capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "BaseVertex",
+ "value" : 4424,
+ "capabilities" : [ "DrawParameters" ]
+ },
+ {
+ "enumerant" : "BaseInstance",
+ "value" : 4425,
+ "capabilities" : [ "DrawParameters" ]
+ },
+ {
+ "enumerant" : "DrawIndex",
+ "value" : 4426,
+ "capabilities" : [ "DrawParameters" ]
+ },
+ {
+ "enumerant" : "DeviceIndex",
+ "value" : 4438,
+ "capabilities" : [ "DeviceGroup" ]
+ },
+ {
+ "enumerant" : "ViewIndex",
+ "value" : 4440,
+ "capabilities" : [ "MultiView" ]
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspAMD",
+ "value" : 4992
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspCentroidAMD",
+ "value" : 4993
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspSampleAMD",
+ "value" : 4994
+ },
+ {
+ "enumerant" : "BaryCoordSmoothAMD",
+ "value" : 4995
+ },
+ {
+ "enumerant" : "BaryCoordSmoothCentroidAMD",
+ "value" : 4996
+ },
+ {
+ "enumerant" : "BaryCoordSmoothSampleAMD",
+ "value" : 4997
+ },
+ {
+ "enumerant" : "BaryCoordPullModelAMD",
+ "value" : 4998
+ },
+ {
+ "enumerant" : "FragStencilRefEXT",
+ "value" : 5014,
+ "capabilities" : [ "StencilExportEXT" ]
+ },
+ {
+ "enumerant" : "ViewportMaskNV",
+ "value" : 5253,
+ "capabilities" : [ "ShaderViewportMaskNV" ]
+ },
+ {
+ "enumerant" : "SecondaryPositionNV",
+ "value" : 5257,
+ "capabilities" : [ "ShaderStereoViewNV" ]
+ },
+ {
+ "enumerant" : "SecondaryViewportMaskNV",
+ "value" : 5258,
+ "capabilities" : [ "ShaderStereoViewNV" ]
+ },
+ {
+ "enumerant" : "PositionPerViewNV",
+ "value" : 5261,
+ "capabilities" : [ "PerViewAttributesNV" ]
+ },
+ {
+ "enumerant" : "ViewportMaskPerViewNV",
+ "value" : 5262,
+ "capabilities" : [ "PerViewAttributesNV" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Scope",
+ "enumerants" : [
+ {
+ "enumerant" : "CrossDevice",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Device",
+ "value" : 1
+ },
+ {
+ "enumerant" : "Workgroup",
+ "value" : 2
+ },
+ {
+ "enumerant" : "Subgroup",
+ "value" : 3
+ },
+ {
+ "enumerant" : "Invocation",
+ "value" : 4
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "GroupOperation",
+ "enumerants" : [
+ {
+ "enumerant" : "Reduce",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "InclusiveScan",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ExclusiveScan",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "KernelEnqueueFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "NoWait",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WaitKernel",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WaitWorkGroup",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Capability",
+ "enumerants" : [
+ {
+ "enumerant" : "Matrix",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Shader",
+ "value" : 1,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "Geometry",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Tessellation",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Addresses",
+ "value" : 4
+ },
+ {
+ "enumerant" : "Linkage",
+ "value" : 5
+ },
+ {
+ "enumerant" : "Kernel",
+ "value" : 6
+ },
+ {
+ "enumerant" : "Vector16",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float16Buffer",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float16",
+ "value" : 9
+ },
+ {
+ "enumerant" : "Float64",
+ "value" : 10
+ },
+ {
+ "enumerant" : "Int64",
+ "value" : 11
+ },
+ {
+ "enumerant" : "Int64Atomics",
+ "value" : 12,
+ "capabilities" : [ "Int64" ]
+ },
+ {
+ "enumerant" : "ImageBasic",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ImageReadWrite",
+ "value" : 14,
+ "capabilities" : [ "ImageBasic" ]
+ },
+ {
+ "enumerant" : "ImageMipmap",
+ "value" : 15,
+ "capabilities" : [ "ImageBasic" ]
+ },
+ {
+ "enumerant" : "Pipes",
+ "value" : 17,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Groups",
+ "value" : 18
+ },
+ {
+ "enumerant" : "DeviceEnqueue",
+ "value" : 19,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "LiteralSampler",
+ "value" : 20,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "AtomicStorage",
+ "value" : 21,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Int16",
+ "value" : 22
+ },
+ {
+ "enumerant" : "TessellationPointSize",
+ "value" : 23,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "GeometryPointSize",
+ "value" : 24,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "ImageGatherExtended",
+ "value" : 25,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageMultisample",
+ "value" : 27,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "UniformBufferArrayDynamicIndexing",
+ "value" : 28,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampledImageArrayDynamicIndexing",
+ "value" : 29,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageBufferArrayDynamicIndexing",
+ "value" : 30,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageArrayDynamicIndexing",
+ "value" : 31,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ClipDistance",
+ "value" : 32,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "CullDistance",
+ "value" : 33,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageCubeArray",
+ "value" : 34,
+ "capabilities" : [ "SampledCubeArray" ]
+ },
+ {
+ "enumerant" : "SampleRateShading",
+ "value" : 35,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageRect",
+ "value" : 36,
+ "capabilities" : [ "SampledRect" ]
+ },
+ {
+ "enumerant" : "SampledRect",
+ "value" : 37,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GenericPointer",
+ "value" : 38,
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "enumerant" : "Int8",
+ "value" : 39,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "InputAttachment",
+ "value" : 40,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SparseResidency",
+ "value" : 41,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "MinLod",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Sampled1D",
+ "value" : 43
+ },
+ {
+ "enumerant" : "Image1D",
+ "value" : 44,
+ "capabilities" : [ "Sampled1D" ]
+ },
+ {
+ "enumerant" : "SampledCubeArray",
+ "value" : 45,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampledBuffer",
+ "value" : 46
+ },
+ {
+ "enumerant" : "ImageBuffer",
+ "value" : 47,
+ "capabilities" : [ "SampledBuffer" ]
+ },
+ {
+ "enumerant" : "ImageMSArray",
+ "value" : 48,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageExtendedFormats",
+ "value" : 49,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageQuery",
+ "value" : 50,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DerivativeControl",
+ "value" : 51,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InterpolationFunction",
+ "value" : 52,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "TransformFeedback",
+ "value" : 53,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GeometryStreams",
+ "value" : 54,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "StorageImageReadWithoutFormat",
+ "value" : 55,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageWriteWithoutFormat",
+ "value" : 56,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "MultiViewport",
+ "value" : 57,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "SubgroupDispatch",
+ "value" : 58,
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "enumerant" : "NamedBarrier",
+ "value" : 59,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "PipeStorage",
+ "value" : 60,
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "enumerant" : "SubgroupBallotKHR",
+ "value" : 4423,
+ "extensions" : [ "SPV_KHR_shader_ballot" ]
+ },
+ {
+ "enumerant" : "DrawParameters",
+ "value" : 4427,
+ "extensions" : [ "SPV_KHR_shader_draw_parameters" ]
+ },
+ {
+ "enumerant" : "SubgroupVoteKHR",
+ "value" : 4431,
+ "extensions" : [ "SPV_KHR_subgroup_vote" ]
+ },
+ {
+ "enumerant" : "StorageBuffer16BitAccess",
+ "value" : 4433,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StorageUniformBufferBlock16",
+ "value" : 4433,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "UniformAndStorageBuffer16BitAccess",
+ "value" : 4434,
+ "capabilities" : [
+ "StorageBuffer16BitAccess",
+ "StorageUniformBufferBlock16"
+ ],
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StorageUniform16",
+ "value" : 4434,
+ "capabilities" : [
+ "StorageBuffer16BitAccess",
+ "StorageUniformBufferBlock16"
+ ],
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StoragePushConstant16",
+ "value" : 4435,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "StorageInputOutput16",
+ "value" : 4436,
+ "extensions" : [ "SPV_KHR_16bit_storage" ]
+ },
+ {
+ "enumerant" : "DeviceGroup",
+ "value" : 4437,
+ "extensions" : [ "SPV_KHR_device_group" ]
+ },
+ {
+ "enumerant" : "MultiView",
+ "value" : 4439,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_multiview" ]
+ },
+ {
+ "enumerant" : "VariablePointersStorageBuffer",
+ "value" : 4441,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_variable_pointers" ]
+ },
+ {
+ "enumerant" : "VariablePointers",
+ "value" : 4442,
+ "capabilities" : [ "VariablePointersStorageBuffer" ],
+ "extensions" : [ "SPV_KHR_variable_pointers" ]
+ },
+ {
+ "enumerant": "AtomicStorageOps",
+ "value": 4445,
+ "extensions": [ "SPV_KHR_shader_atomic_counter_ops" ]
+ },
+ {
+ "enumerant" : "SampleMaskPostDepthCoverage",
+ "value" : 4447,
+ "extensions" : [ "SPV_KHR_post_depth_coverage" ]
+ },
+ {
+ "enumerant" : "ImageGatherBiasLodAMD",
+ "value" : 5009,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ]
+ },
+ {
+ "enumerant" : "FragmentMaskAMD",
+ "value" : 5010,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_shader_fragment_mask" ]
+ },
+ {
+ "enumerant" : "StencilExportEXT",
+ "value" : 5013,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_shader_stencil_export" ]
+ },
+ {
+ "enumerant" : "ImageReadWriteLodAMD",
+ "value" : 5015,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ]
+ },
+ {
+ "enumerant" : "SampleMaskOverrideCoverageNV",
+ "value" : 5249,
+ "capabilities" : [ "SampleRateShading" ],
+ "extensions" : [ "SPV_NV_sample_mask_override_coverage" ]
+ },
+ {
+ "enumerant" : "GeometryShaderPassthroughNV",
+ "value" : 5251,
+ "capabilities" : [ "Geometry" ],
+ "extensions" : [ "SPV_NV_geometry_shader_passthrough" ]
+ },
+ {
+ "enumerant" : "ShaderViewportIndexLayerEXT",
+ "value" : 5254,
+ "capabilities" : [ "MultiViewport" ],
+ "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ]
+ },
+ {
+ "enumerant" : "ShaderViewportIndexLayerNV",
+ "value" : 5254,
+ "capabilities" : [ "MultiViewport" ],
+ "extensions" : [ "SPV_NV_viewport_array2" ]
+ },
+ {
+ "enumerant" : "ShaderViewportMaskNV",
+ "value" : 5255,
+ "capabilities" : [ "ShaderViewportIndexLayerNV" ],
+ "extensions" : [ "SPV_NV_viewport_array2" ]
+ },
+ {
+ "enumerant" : "ShaderStereoViewNV",
+ "value" : 5259,
+ "capabilities" : [ "ShaderViewportMaskNV" ],
+ "extensions" : [ "SPV_NV_stereo_view_rendering" ]
+ },
+ {
+ "enumerant" : "PerViewAttributesNV",
+ "value" : 5260,
+ "capabilities" : [ "MultiView" ],
+ "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ]
+ },
+ {
+ "enumerant" : "SubgroupShuffleINTEL",
+ "value" : 5568,
+ "extensions" : [ "SPV_INTEL_subgroups" ]
+ },
+ {
+ "enumerant" : "SubgroupBufferBlockIOINTEL",
+ "value" : 5569,
+ "extensions" : [ "SPV_INTEL_subgroups" ]
+ },
+ {
+ "enumerant" : "SubgroupImageBlockIOINTEL",
+ "value" : 5570,
+ "extensions" : [ "SPV_INTEL_subgroups" ]
+ }
+ ]
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdResultType",
+ "doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdResult",
+ "doc" : "Definition of an <id> representing the result of the enclosing instruction"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdMemorySemantics",
+ "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the MemorySemantics operand kind"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdScope",
+ "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the Scope operand kind"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdRef",
+ "doc" : "Reference to an <id>"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralInteger",
+ "doc" : "An integer consuming one or more words"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralString",
+ "doc" : "A null-terminated stream of characters consuming an integral number of words"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralContextDependentNumber",
+ "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralExtInstInteger",
+ "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralSpecConstantOpInteger",
+ "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)"
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairLiteralIntegerIdRef",
+ "bases" : [ "LiteralInteger", "IdRef" ]
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairIdRefLiteralInteger",
+ "bases" : [ "IdRef", "LiteralInteger" ]
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairIdRefIdRef",
+ "bases" : [ "IdRef", "IdRef" ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.cs b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.cs
new file mode 100644
index 0000000000..493303d6ab
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.cs
@@ -0,0 +1,1021 @@
+// Copyright (c) 2014-2018 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#
+//
+// - 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
+//
+// 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
+{
+
+ public static class Specification
+ {
+ public const uint MagicNumber = 0x07230203;
+ public const uint Version = 0x00010200;
+ public const uint Revision = 2;
+ public const uint OpCodeMask = 0xffff;
+ public const uint WordCountShift = 16;
+
+ public enum SourceLanguage
+ {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ }
+
+ public enum ExecutionModel
+ {
+ Vertex = 0,
+ TessellationControl = 1,
+ TessellationEvaluation = 2,
+ Geometry = 3,
+ Fragment = 4,
+ GLCompute = 5,
+ Kernel = 6,
+ }
+
+ public enum AddressingModel
+ {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ }
+
+ public enum MemoryModel
+ {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ }
+
+ 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,
+ PostDepthCoverage = 4446,
+ StencilRefReplacingEXT = 5027,
+ }
+
+ 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,
+ }
+
+ public enum Dim
+ {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ }
+
+ public enum SamplerAddressingMode
+ {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ }
+
+ public enum SamplerFilterMode
+ {
+ Nearest = 0,
+ Linear = 1,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ public enum ImageOperandsShift
+ {
+ Bias = 0,
+ Lod = 1,
+ Grad = 2,
+ ConstOffset = 3,
+ Offset = 4,
+ ConstOffsets = 5,
+ Sample = 6,
+ MinLod = 7,
+ }
+
+ public enum ImageOperandsMask
+ {
+ MaskNone = 0,
+ Bias = 0x00000001,
+ Lod = 0x00000002,
+ Grad = 0x00000004,
+ ConstOffset = 0x00000008,
+ Offset = 0x00000010,
+ ConstOffsets = 0x00000020,
+ Sample = 0x00000040,
+ MinLod = 0x00000080,
+ }
+
+ public enum FPFastMathModeShift
+ {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ }
+
+ public enum FPFastMathModeMask
+ {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+ }
+
+ public enum FPRoundingMode
+ {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ }
+
+ public enum LinkageType
+ {
+ Export = 0,
+ Import = 1,
+ }
+
+ public enum AccessQualifier
+ {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ }
+
+ public enum FunctionParameterAttribute
+ {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ }
+
+ 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,
+ 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,
+ ExplicitInterpAMD = 4999,
+ OverrideCoverageNV = 5248,
+ PassthroughNV = 5250,
+ ViewportRelativeNV = 5252,
+ SecondaryViewportRelativeNV = 5256,
+ HlslCounterBufferGOOGLE = 5634,
+ HlslSemanticGOOGLE = 5635,
+ }
+
+ 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,
+ SubgroupEqMaskKHR = 4416,
+ SubgroupGeMaskKHR = 4417,
+ SubgroupGtMaskKHR = 4418,
+ SubgroupLeMaskKHR = 4419,
+ SubgroupLtMaskKHR = 4420,
+ BaseVertex = 4424,
+ BaseInstance = 4425,
+ DrawIndex = 4426,
+ DeviceIndex = 4438,
+ ViewIndex = 4440,
+ 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,
+ }
+
+ public enum SelectionControlShift
+ {
+ Flatten = 0,
+ DontFlatten = 1,
+ }
+
+ public enum SelectionControlMask
+ {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+ }
+
+ public enum LoopControlShift
+ {
+ Unroll = 0,
+ DontUnroll = 1,
+ DependencyInfinite = 2,
+ DependencyLength = 3,
+ }
+
+ public enum LoopControlMask
+ {
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+ DependencyInfinite = 0x00000004,
+ DependencyLength = 0x00000008,
+ }
+
+ public enum FunctionControlShift
+ {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ }
+
+ public enum FunctionControlMask
+ {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+ }
+
+ public enum MemorySemanticsShift
+ {
+ Acquire = 1,
+ Release = 2,
+ AcquireRelease = 3,
+ SequentiallyConsistent = 4,
+ UniformMemory = 6,
+ SubgroupMemory = 7,
+ WorkgroupMemory = 8,
+ CrossWorkgroupMemory = 9,
+ AtomicCounterMemory = 10,
+ ImageMemory = 11,
+ }
+
+ 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,
+ }
+
+ public enum MemoryAccessShift
+ {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ }
+
+ public enum MemoryAccessMask
+ {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+ }
+
+ public enum Scope
+ {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ }
+
+ public enum GroupOperation
+ {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ }
+
+ public enum KernelEnqueueFlags
+ {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ }
+
+ public enum KernelProfilingInfoShift
+ {
+ CmdExecTime = 0,
+ }
+
+ public enum KernelProfilingInfoMask
+ {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+ }
+
+ 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,
+ SubgroupBallotKHR = 4423,
+ DrawParameters = 4427,
+ 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,
+ ImageGatherBiasLodAMD = 5009,
+ FragmentMaskAMD = 5010,
+ StencilExportEXT = 5013,
+ ImageReadWriteLodAMD = 5015,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerEXT = 5254,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ SubgroupShuffleINTEL = 5568,
+ SubgroupBufferBlockIOINTEL = 5569,
+ SubgroupImageBlockIOINTEL = 5570,
+ }
+
+ 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,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateStringGOOGLE = 5633,
+ }
+ }
+}
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.h
new file mode 100644
index 0000000000..7c6d884d8e
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.h
@@ -0,0 +1,1021 @@
+/*
+** Copyright (c) 2014-2018 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+/*
+** This header is automatically generated by the same tool that creates
+** the Binary Section of the SPIR-V specification.
+*/
+
+/*
+** Enumeration tokens for SPIR-V, in various styles:
+** C, C++, C++11, JSON, Lua, Python
+**
+** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+**
+** Some tokens act like mask values, which can be OR'd together,
+** while others are mutually exclusive. The mask-like ones have
+** "Mask" in their name, and a parallel enum that has the shift
+** amount (1 << x) for each corresponding enumerant.
+*/
+
+#ifndef spirv_H
+#define spirv_H
+
+typedef unsigned int SpvId;
+
+#define SPV_VERSION 0x10200
+#define SPV_REVISION 2
+
+static const unsigned int SpvMagicNumber = 0x07230203;
+static const unsigned int SpvVersion = 0x00010200;
+static const unsigned int SpvRevision = 2;
+static const unsigned int SpvOpCodeMask = 0xffff;
+static const unsigned int SpvWordCountShift = 16;
+
+typedef enum SpvSourceLanguage_ {
+ SpvSourceLanguageUnknown = 0,
+ SpvSourceLanguageESSL = 1,
+ SpvSourceLanguageGLSL = 2,
+ SpvSourceLanguageOpenCL_C = 3,
+ SpvSourceLanguageOpenCL_CPP = 4,
+ SpvSourceLanguageHLSL = 5,
+ SpvSourceLanguageMax = 0x7fffffff,
+} SpvSourceLanguage;
+
+typedef enum SpvExecutionModel_ {
+ SpvExecutionModelVertex = 0,
+ SpvExecutionModelTessellationControl = 1,
+ SpvExecutionModelTessellationEvaluation = 2,
+ SpvExecutionModelGeometry = 3,
+ SpvExecutionModelFragment = 4,
+ SpvExecutionModelGLCompute = 5,
+ SpvExecutionModelKernel = 6,
+ SpvExecutionModelMax = 0x7fffffff,
+} SpvExecutionModel;
+
+typedef enum SpvAddressingModel_ {
+ SpvAddressingModelLogical = 0,
+ SpvAddressingModelPhysical32 = 1,
+ SpvAddressingModelPhysical64 = 2,
+ SpvAddressingModelMax = 0x7fffffff,
+} SpvAddressingModel;
+
+typedef enum SpvMemoryModel_ {
+ SpvMemoryModelSimple = 0,
+ SpvMemoryModelGLSL450 = 1,
+ SpvMemoryModelOpenCL = 2,
+ SpvMemoryModelMax = 0x7fffffff,
+} SpvMemoryModel;
+
+typedef enum SpvExecutionMode_ {
+ SpvExecutionModeInvocations = 0,
+ SpvExecutionModeSpacingEqual = 1,
+ SpvExecutionModeSpacingFractionalEven = 2,
+ SpvExecutionModeSpacingFractionalOdd = 3,
+ SpvExecutionModeVertexOrderCw = 4,
+ SpvExecutionModeVertexOrderCcw = 5,
+ SpvExecutionModePixelCenterInteger = 6,
+ SpvExecutionModeOriginUpperLeft = 7,
+ SpvExecutionModeOriginLowerLeft = 8,
+ SpvExecutionModeEarlyFragmentTests = 9,
+ SpvExecutionModePointMode = 10,
+ SpvExecutionModeXfb = 11,
+ SpvExecutionModeDepthReplacing = 12,
+ SpvExecutionModeDepthGreater = 14,
+ SpvExecutionModeDepthLess = 15,
+ SpvExecutionModeDepthUnchanged = 16,
+ SpvExecutionModeLocalSize = 17,
+ SpvExecutionModeLocalSizeHint = 18,
+ SpvExecutionModeInputPoints = 19,
+ SpvExecutionModeInputLines = 20,
+ SpvExecutionModeInputLinesAdjacency = 21,
+ SpvExecutionModeTriangles = 22,
+ SpvExecutionModeInputTrianglesAdjacency = 23,
+ SpvExecutionModeQuads = 24,
+ SpvExecutionModeIsolines = 25,
+ SpvExecutionModeOutputVertices = 26,
+ SpvExecutionModeOutputPoints = 27,
+ SpvExecutionModeOutputLineStrip = 28,
+ SpvExecutionModeOutputTriangleStrip = 29,
+ SpvExecutionModeVecTypeHint = 30,
+ SpvExecutionModeContractionOff = 31,
+ SpvExecutionModeInitializer = 33,
+ SpvExecutionModeFinalizer = 34,
+ SpvExecutionModeSubgroupSize = 35,
+ SpvExecutionModeSubgroupsPerWorkgroup = 36,
+ SpvExecutionModeSubgroupsPerWorkgroupId = 37,
+ SpvExecutionModeLocalSizeId = 38,
+ SpvExecutionModeLocalSizeHintId = 39,
+ SpvExecutionModePostDepthCoverage = 4446,
+ SpvExecutionModeStencilRefReplacingEXT = 5027,
+ SpvExecutionModeMax = 0x7fffffff,
+} SpvExecutionMode;
+
+typedef enum SpvStorageClass_ {
+ SpvStorageClassUniformConstant = 0,
+ SpvStorageClassInput = 1,
+ SpvStorageClassUniform = 2,
+ SpvStorageClassOutput = 3,
+ SpvStorageClassWorkgroup = 4,
+ SpvStorageClassCrossWorkgroup = 5,
+ SpvStorageClassPrivate = 6,
+ SpvStorageClassFunction = 7,
+ SpvStorageClassGeneric = 8,
+ SpvStorageClassPushConstant = 9,
+ SpvStorageClassAtomicCounter = 10,
+ SpvStorageClassImage = 11,
+ SpvStorageClassStorageBuffer = 12,
+ SpvStorageClassMax = 0x7fffffff,
+} SpvStorageClass;
+
+typedef enum SpvDim_ {
+ SpvDim1D = 0,
+ SpvDim2D = 1,
+ SpvDim3D = 2,
+ SpvDimCube = 3,
+ SpvDimRect = 4,
+ SpvDimBuffer = 5,
+ SpvDimSubpassData = 6,
+ SpvDimMax = 0x7fffffff,
+} SpvDim;
+
+typedef enum SpvSamplerAddressingMode_ {
+ SpvSamplerAddressingModeNone = 0,
+ SpvSamplerAddressingModeClampToEdge = 1,
+ SpvSamplerAddressingModeClamp = 2,
+ SpvSamplerAddressingModeRepeat = 3,
+ SpvSamplerAddressingModeRepeatMirrored = 4,
+ SpvSamplerAddressingModeMax = 0x7fffffff,
+} SpvSamplerAddressingMode;
+
+typedef enum SpvSamplerFilterMode_ {
+ SpvSamplerFilterModeNearest = 0,
+ SpvSamplerFilterModeLinear = 1,
+ SpvSamplerFilterModeMax = 0x7fffffff,
+} SpvSamplerFilterMode;
+
+typedef enum SpvImageFormat_ {
+ SpvImageFormatUnknown = 0,
+ SpvImageFormatRgba32f = 1,
+ SpvImageFormatRgba16f = 2,
+ SpvImageFormatR32f = 3,
+ SpvImageFormatRgba8 = 4,
+ SpvImageFormatRgba8Snorm = 5,
+ SpvImageFormatRg32f = 6,
+ SpvImageFormatRg16f = 7,
+ SpvImageFormatR11fG11fB10f = 8,
+ SpvImageFormatR16f = 9,
+ SpvImageFormatRgba16 = 10,
+ SpvImageFormatRgb10A2 = 11,
+ SpvImageFormatRg16 = 12,
+ SpvImageFormatRg8 = 13,
+ SpvImageFormatR16 = 14,
+ SpvImageFormatR8 = 15,
+ SpvImageFormatRgba16Snorm = 16,
+ SpvImageFormatRg16Snorm = 17,
+ SpvImageFormatRg8Snorm = 18,
+ SpvImageFormatR16Snorm = 19,
+ SpvImageFormatR8Snorm = 20,
+ SpvImageFormatRgba32i = 21,
+ SpvImageFormatRgba16i = 22,
+ SpvImageFormatRgba8i = 23,
+ SpvImageFormatR32i = 24,
+ SpvImageFormatRg32i = 25,
+ SpvImageFormatRg16i = 26,
+ SpvImageFormatRg8i = 27,
+ SpvImageFormatR16i = 28,
+ SpvImageFormatR8i = 29,
+ SpvImageFormatRgba32ui = 30,
+ SpvImageFormatRgba16ui = 31,
+ SpvImageFormatRgba8ui = 32,
+ SpvImageFormatR32ui = 33,
+ SpvImageFormatRgb10a2ui = 34,
+ SpvImageFormatRg32ui = 35,
+ SpvImageFormatRg16ui = 36,
+ SpvImageFormatRg8ui = 37,
+ SpvImageFormatR16ui = 38,
+ SpvImageFormatR8ui = 39,
+ SpvImageFormatMax = 0x7fffffff,
+} SpvImageFormat;
+
+typedef enum SpvImageChannelOrder_ {
+ SpvImageChannelOrderR = 0,
+ SpvImageChannelOrderA = 1,
+ SpvImageChannelOrderRG = 2,
+ SpvImageChannelOrderRA = 3,
+ SpvImageChannelOrderRGB = 4,
+ SpvImageChannelOrderRGBA = 5,
+ SpvImageChannelOrderBGRA = 6,
+ SpvImageChannelOrderARGB = 7,
+ SpvImageChannelOrderIntensity = 8,
+ SpvImageChannelOrderLuminance = 9,
+ SpvImageChannelOrderRx = 10,
+ SpvImageChannelOrderRGx = 11,
+ SpvImageChannelOrderRGBx = 12,
+ SpvImageChannelOrderDepth = 13,
+ SpvImageChannelOrderDepthStencil = 14,
+ SpvImageChannelOrdersRGB = 15,
+ SpvImageChannelOrdersRGBx = 16,
+ SpvImageChannelOrdersRGBA = 17,
+ SpvImageChannelOrdersBGRA = 18,
+ SpvImageChannelOrderABGR = 19,
+ SpvImageChannelOrderMax = 0x7fffffff,
+} SpvImageChannelOrder;
+
+typedef enum SpvImageChannelDataType_ {
+ SpvImageChannelDataTypeSnormInt8 = 0,
+ SpvImageChannelDataTypeSnormInt16 = 1,
+ SpvImageChannelDataTypeUnormInt8 = 2,
+ SpvImageChannelDataTypeUnormInt16 = 3,
+ SpvImageChannelDataTypeUnormShort565 = 4,
+ SpvImageChannelDataTypeUnormShort555 = 5,
+ SpvImageChannelDataTypeUnormInt101010 = 6,
+ SpvImageChannelDataTypeSignedInt8 = 7,
+ SpvImageChannelDataTypeSignedInt16 = 8,
+ SpvImageChannelDataTypeSignedInt32 = 9,
+ SpvImageChannelDataTypeUnsignedInt8 = 10,
+ SpvImageChannelDataTypeUnsignedInt16 = 11,
+ SpvImageChannelDataTypeUnsignedInt32 = 12,
+ SpvImageChannelDataTypeHalfFloat = 13,
+ SpvImageChannelDataTypeFloat = 14,
+ SpvImageChannelDataTypeUnormInt24 = 15,
+ SpvImageChannelDataTypeUnormInt101010_2 = 16,
+ SpvImageChannelDataTypeMax = 0x7fffffff,
+} SpvImageChannelDataType;
+
+typedef enum SpvImageOperandsShift_ {
+ SpvImageOperandsBiasShift = 0,
+ SpvImageOperandsLodShift = 1,
+ SpvImageOperandsGradShift = 2,
+ SpvImageOperandsConstOffsetShift = 3,
+ SpvImageOperandsOffsetShift = 4,
+ SpvImageOperandsConstOffsetsShift = 5,
+ SpvImageOperandsSampleShift = 6,
+ SpvImageOperandsMinLodShift = 7,
+ SpvImageOperandsMax = 0x7fffffff,
+} SpvImageOperandsShift;
+
+typedef enum SpvImageOperandsMask_ {
+ SpvImageOperandsMaskNone = 0,
+ SpvImageOperandsBiasMask = 0x00000001,
+ SpvImageOperandsLodMask = 0x00000002,
+ SpvImageOperandsGradMask = 0x00000004,
+ SpvImageOperandsConstOffsetMask = 0x00000008,
+ SpvImageOperandsOffsetMask = 0x00000010,
+ SpvImageOperandsConstOffsetsMask = 0x00000020,
+ SpvImageOperandsSampleMask = 0x00000040,
+ SpvImageOperandsMinLodMask = 0x00000080,
+} SpvImageOperandsMask;
+
+typedef enum SpvFPFastMathModeShift_ {
+ SpvFPFastMathModeNotNaNShift = 0,
+ SpvFPFastMathModeNotInfShift = 1,
+ SpvFPFastMathModeNSZShift = 2,
+ SpvFPFastMathModeAllowRecipShift = 3,
+ SpvFPFastMathModeFastShift = 4,
+ SpvFPFastMathModeMax = 0x7fffffff,
+} SpvFPFastMathModeShift;
+
+typedef enum SpvFPFastMathModeMask_ {
+ SpvFPFastMathModeMaskNone = 0,
+ SpvFPFastMathModeNotNaNMask = 0x00000001,
+ SpvFPFastMathModeNotInfMask = 0x00000002,
+ SpvFPFastMathModeNSZMask = 0x00000004,
+ SpvFPFastMathModeAllowRecipMask = 0x00000008,
+ SpvFPFastMathModeFastMask = 0x00000010,
+} SpvFPFastMathModeMask;
+
+typedef enum SpvFPRoundingMode_ {
+ SpvFPRoundingModeRTE = 0,
+ SpvFPRoundingModeRTZ = 1,
+ SpvFPRoundingModeRTP = 2,
+ SpvFPRoundingModeRTN = 3,
+ SpvFPRoundingModeMax = 0x7fffffff,
+} SpvFPRoundingMode;
+
+typedef enum SpvLinkageType_ {
+ SpvLinkageTypeExport = 0,
+ SpvLinkageTypeImport = 1,
+ SpvLinkageTypeMax = 0x7fffffff,
+} SpvLinkageType;
+
+typedef enum SpvAccessQualifier_ {
+ SpvAccessQualifierReadOnly = 0,
+ SpvAccessQualifierWriteOnly = 1,
+ SpvAccessQualifierReadWrite = 2,
+ SpvAccessQualifierMax = 0x7fffffff,
+} SpvAccessQualifier;
+
+typedef enum SpvFunctionParameterAttribute_ {
+ SpvFunctionParameterAttributeZext = 0,
+ SpvFunctionParameterAttributeSext = 1,
+ SpvFunctionParameterAttributeByVal = 2,
+ SpvFunctionParameterAttributeSret = 3,
+ SpvFunctionParameterAttributeNoAlias = 4,
+ SpvFunctionParameterAttributeNoCapture = 5,
+ SpvFunctionParameterAttributeNoWrite = 6,
+ SpvFunctionParameterAttributeNoReadWrite = 7,
+ SpvFunctionParameterAttributeMax = 0x7fffffff,
+} SpvFunctionParameterAttribute;
+
+typedef enum SpvDecoration_ {
+ SpvDecorationRelaxedPrecision = 0,
+ SpvDecorationSpecId = 1,
+ SpvDecorationBlock = 2,
+ SpvDecorationBufferBlock = 3,
+ SpvDecorationRowMajor = 4,
+ SpvDecorationColMajor = 5,
+ SpvDecorationArrayStride = 6,
+ SpvDecorationMatrixStride = 7,
+ SpvDecorationGLSLShared = 8,
+ SpvDecorationGLSLPacked = 9,
+ SpvDecorationCPacked = 10,
+ SpvDecorationBuiltIn = 11,
+ SpvDecorationNoPerspective = 13,
+ SpvDecorationFlat = 14,
+ SpvDecorationPatch = 15,
+ SpvDecorationCentroid = 16,
+ SpvDecorationSample = 17,
+ SpvDecorationInvariant = 18,
+ SpvDecorationRestrict = 19,
+ SpvDecorationAliased = 20,
+ SpvDecorationVolatile = 21,
+ SpvDecorationConstant = 22,
+ SpvDecorationCoherent = 23,
+ SpvDecorationNonWritable = 24,
+ SpvDecorationNonReadable = 25,
+ SpvDecorationUniform = 26,
+ SpvDecorationSaturatedConversion = 28,
+ SpvDecorationStream = 29,
+ SpvDecorationLocation = 30,
+ SpvDecorationComponent = 31,
+ SpvDecorationIndex = 32,
+ SpvDecorationBinding = 33,
+ SpvDecorationDescriptorSet = 34,
+ SpvDecorationOffset = 35,
+ SpvDecorationXfbBuffer = 36,
+ SpvDecorationXfbStride = 37,
+ SpvDecorationFuncParamAttr = 38,
+ SpvDecorationFPRoundingMode = 39,
+ SpvDecorationFPFastMathMode = 40,
+ SpvDecorationLinkageAttributes = 41,
+ SpvDecorationNoContraction = 42,
+ SpvDecorationInputAttachmentIndex = 43,
+ SpvDecorationAlignment = 44,
+ SpvDecorationMaxByteOffset = 45,
+ SpvDecorationAlignmentId = 46,
+ SpvDecorationMaxByteOffsetId = 47,
+ SpvDecorationExplicitInterpAMD = 4999,
+ SpvDecorationOverrideCoverageNV = 5248,
+ SpvDecorationPassthroughNV = 5250,
+ SpvDecorationViewportRelativeNV = 5252,
+ SpvDecorationSecondaryViewportRelativeNV = 5256,
+ SpvDecorationHlslCounterBufferGOOGLE = 5634,
+ SpvDecorationHlslSemanticGOOGLE = 5635,
+ SpvDecorationMax = 0x7fffffff,
+} SpvDecoration;
+
+typedef enum SpvBuiltIn_ {
+ SpvBuiltInPosition = 0,
+ SpvBuiltInPointSize = 1,
+ SpvBuiltInClipDistance = 3,
+ SpvBuiltInCullDistance = 4,
+ SpvBuiltInVertexId = 5,
+ SpvBuiltInInstanceId = 6,
+ SpvBuiltInPrimitiveId = 7,
+ SpvBuiltInInvocationId = 8,
+ SpvBuiltInLayer = 9,
+ SpvBuiltInViewportIndex = 10,
+ SpvBuiltInTessLevelOuter = 11,
+ SpvBuiltInTessLevelInner = 12,
+ SpvBuiltInTessCoord = 13,
+ SpvBuiltInPatchVertices = 14,
+ SpvBuiltInFragCoord = 15,
+ SpvBuiltInPointCoord = 16,
+ SpvBuiltInFrontFacing = 17,
+ SpvBuiltInSampleId = 18,
+ SpvBuiltInSamplePosition = 19,
+ SpvBuiltInSampleMask = 20,
+ SpvBuiltInFragDepth = 22,
+ SpvBuiltInHelperInvocation = 23,
+ SpvBuiltInNumWorkgroups = 24,
+ SpvBuiltInWorkgroupSize = 25,
+ SpvBuiltInWorkgroupId = 26,
+ SpvBuiltInLocalInvocationId = 27,
+ SpvBuiltInGlobalInvocationId = 28,
+ SpvBuiltInLocalInvocationIndex = 29,
+ SpvBuiltInWorkDim = 30,
+ SpvBuiltInGlobalSize = 31,
+ SpvBuiltInEnqueuedWorkgroupSize = 32,
+ SpvBuiltInGlobalOffset = 33,
+ SpvBuiltInGlobalLinearId = 34,
+ SpvBuiltInSubgroupSize = 36,
+ SpvBuiltInSubgroupMaxSize = 37,
+ SpvBuiltInNumSubgroups = 38,
+ SpvBuiltInNumEnqueuedSubgroups = 39,
+ SpvBuiltInSubgroupId = 40,
+ SpvBuiltInSubgroupLocalInvocationId = 41,
+ SpvBuiltInVertexIndex = 42,
+ SpvBuiltInInstanceIndex = 43,
+ SpvBuiltInSubgroupEqMaskKHR = 4416,
+ SpvBuiltInSubgroupGeMaskKHR = 4417,
+ SpvBuiltInSubgroupGtMaskKHR = 4418,
+ SpvBuiltInSubgroupLeMaskKHR = 4419,
+ SpvBuiltInSubgroupLtMaskKHR = 4420,
+ SpvBuiltInBaseVertex = 4424,
+ SpvBuiltInBaseInstance = 4425,
+ SpvBuiltInDrawIndex = 4426,
+ SpvBuiltInDeviceIndex = 4438,
+ SpvBuiltInViewIndex = 4440,
+ SpvBuiltInBaryCoordNoPerspAMD = 4992,
+ SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
+ SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
+ SpvBuiltInBaryCoordSmoothAMD = 4995,
+ SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
+ SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
+ SpvBuiltInBaryCoordPullModelAMD = 4998,
+ SpvBuiltInFragStencilRefEXT = 5014,
+ SpvBuiltInViewportMaskNV = 5253,
+ SpvBuiltInSecondaryPositionNV = 5257,
+ SpvBuiltInSecondaryViewportMaskNV = 5258,
+ SpvBuiltInPositionPerViewNV = 5261,
+ SpvBuiltInViewportMaskPerViewNV = 5262,
+ SpvBuiltInMax = 0x7fffffff,
+} SpvBuiltIn;
+
+typedef enum SpvSelectionControlShift_ {
+ SpvSelectionControlFlattenShift = 0,
+ SpvSelectionControlDontFlattenShift = 1,
+ SpvSelectionControlMax = 0x7fffffff,
+} SpvSelectionControlShift;
+
+typedef enum SpvSelectionControlMask_ {
+ SpvSelectionControlMaskNone = 0,
+ SpvSelectionControlFlattenMask = 0x00000001,
+ SpvSelectionControlDontFlattenMask = 0x00000002,
+} SpvSelectionControlMask;
+
+typedef enum SpvLoopControlShift_ {
+ SpvLoopControlUnrollShift = 0,
+ SpvLoopControlDontUnrollShift = 1,
+ SpvLoopControlDependencyInfiniteShift = 2,
+ SpvLoopControlDependencyLengthShift = 3,
+ SpvLoopControlMax = 0x7fffffff,
+} SpvLoopControlShift;
+
+typedef enum SpvLoopControlMask_ {
+ SpvLoopControlMaskNone = 0,
+ SpvLoopControlUnrollMask = 0x00000001,
+ SpvLoopControlDontUnrollMask = 0x00000002,
+ SpvLoopControlDependencyInfiniteMask = 0x00000004,
+ SpvLoopControlDependencyLengthMask = 0x00000008,
+} SpvLoopControlMask;
+
+typedef enum SpvFunctionControlShift_ {
+ SpvFunctionControlInlineShift = 0,
+ SpvFunctionControlDontInlineShift = 1,
+ SpvFunctionControlPureShift = 2,
+ SpvFunctionControlConstShift = 3,
+ SpvFunctionControlMax = 0x7fffffff,
+} SpvFunctionControlShift;
+
+typedef enum SpvFunctionControlMask_ {
+ SpvFunctionControlMaskNone = 0,
+ SpvFunctionControlInlineMask = 0x00000001,
+ SpvFunctionControlDontInlineMask = 0x00000002,
+ SpvFunctionControlPureMask = 0x00000004,
+ SpvFunctionControlConstMask = 0x00000008,
+} SpvFunctionControlMask;
+
+typedef enum SpvMemorySemanticsShift_ {
+ SpvMemorySemanticsAcquireShift = 1,
+ SpvMemorySemanticsReleaseShift = 2,
+ SpvMemorySemanticsAcquireReleaseShift = 3,
+ SpvMemorySemanticsSequentiallyConsistentShift = 4,
+ SpvMemorySemanticsUniformMemoryShift = 6,
+ SpvMemorySemanticsSubgroupMemoryShift = 7,
+ SpvMemorySemanticsWorkgroupMemoryShift = 8,
+ SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
+ SpvMemorySemanticsAtomicCounterMemoryShift = 10,
+ SpvMemorySemanticsImageMemoryShift = 11,
+ SpvMemorySemanticsMax = 0x7fffffff,
+} SpvMemorySemanticsShift;
+
+typedef enum SpvMemorySemanticsMask_ {
+ SpvMemorySemanticsMaskNone = 0,
+ SpvMemorySemanticsAcquireMask = 0x00000002,
+ SpvMemorySemanticsReleaseMask = 0x00000004,
+ SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
+ SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
+ SpvMemorySemanticsUniformMemoryMask = 0x00000040,
+ SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
+ SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
+ SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
+ SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
+ SpvMemorySemanticsImageMemoryMask = 0x00000800,
+} SpvMemorySemanticsMask;
+
+typedef enum SpvMemoryAccessShift_ {
+ SpvMemoryAccessVolatileShift = 0,
+ SpvMemoryAccessAlignedShift = 1,
+ SpvMemoryAccessNontemporalShift = 2,
+ SpvMemoryAccessMax = 0x7fffffff,
+} SpvMemoryAccessShift;
+
+typedef enum SpvMemoryAccessMask_ {
+ SpvMemoryAccessMaskNone = 0,
+ SpvMemoryAccessVolatileMask = 0x00000001,
+ SpvMemoryAccessAlignedMask = 0x00000002,
+ SpvMemoryAccessNontemporalMask = 0x00000004,
+} SpvMemoryAccessMask;
+
+typedef enum SpvScope_ {
+ SpvScopeCrossDevice = 0,
+ SpvScopeDevice = 1,
+ SpvScopeWorkgroup = 2,
+ SpvScopeSubgroup = 3,
+ SpvScopeInvocation = 4,
+ SpvScopeMax = 0x7fffffff,
+} SpvScope;
+
+typedef enum SpvGroupOperation_ {
+ SpvGroupOperationReduce = 0,
+ SpvGroupOperationInclusiveScan = 1,
+ SpvGroupOperationExclusiveScan = 2,
+ SpvGroupOperationMax = 0x7fffffff,
+} SpvGroupOperation;
+
+typedef enum SpvKernelEnqueueFlags_ {
+ SpvKernelEnqueueFlagsNoWait = 0,
+ SpvKernelEnqueueFlagsWaitKernel = 1,
+ SpvKernelEnqueueFlagsWaitWorkGroup = 2,
+ SpvKernelEnqueueFlagsMax = 0x7fffffff,
+} SpvKernelEnqueueFlags;
+
+typedef enum SpvKernelProfilingInfoShift_ {
+ SpvKernelProfilingInfoCmdExecTimeShift = 0,
+ SpvKernelProfilingInfoMax = 0x7fffffff,
+} SpvKernelProfilingInfoShift;
+
+typedef enum SpvKernelProfilingInfoMask_ {
+ SpvKernelProfilingInfoMaskNone = 0,
+ SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
+} SpvKernelProfilingInfoMask;
+
+typedef enum SpvCapability_ {
+ SpvCapabilityMatrix = 0,
+ SpvCapabilityShader = 1,
+ SpvCapabilityGeometry = 2,
+ SpvCapabilityTessellation = 3,
+ SpvCapabilityAddresses = 4,
+ SpvCapabilityLinkage = 5,
+ SpvCapabilityKernel = 6,
+ SpvCapabilityVector16 = 7,
+ SpvCapabilityFloat16Buffer = 8,
+ SpvCapabilityFloat16 = 9,
+ SpvCapabilityFloat64 = 10,
+ SpvCapabilityInt64 = 11,
+ SpvCapabilityInt64Atomics = 12,
+ SpvCapabilityImageBasic = 13,
+ SpvCapabilityImageReadWrite = 14,
+ SpvCapabilityImageMipmap = 15,
+ SpvCapabilityPipes = 17,
+ SpvCapabilityGroups = 18,
+ SpvCapabilityDeviceEnqueue = 19,
+ SpvCapabilityLiteralSampler = 20,
+ SpvCapabilityAtomicStorage = 21,
+ SpvCapabilityInt16 = 22,
+ SpvCapabilityTessellationPointSize = 23,
+ SpvCapabilityGeometryPointSize = 24,
+ SpvCapabilityImageGatherExtended = 25,
+ SpvCapabilityStorageImageMultisample = 27,
+ SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
+ SpvCapabilitySampledImageArrayDynamicIndexing = 29,
+ SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
+ SpvCapabilityStorageImageArrayDynamicIndexing = 31,
+ SpvCapabilityClipDistance = 32,
+ SpvCapabilityCullDistance = 33,
+ SpvCapabilityImageCubeArray = 34,
+ SpvCapabilitySampleRateShading = 35,
+ SpvCapabilityImageRect = 36,
+ SpvCapabilitySampledRect = 37,
+ SpvCapabilityGenericPointer = 38,
+ SpvCapabilityInt8 = 39,
+ SpvCapabilityInputAttachment = 40,
+ SpvCapabilitySparseResidency = 41,
+ SpvCapabilityMinLod = 42,
+ SpvCapabilitySampled1D = 43,
+ SpvCapabilityImage1D = 44,
+ SpvCapabilitySampledCubeArray = 45,
+ SpvCapabilitySampledBuffer = 46,
+ SpvCapabilityImageBuffer = 47,
+ SpvCapabilityImageMSArray = 48,
+ SpvCapabilityStorageImageExtendedFormats = 49,
+ SpvCapabilityImageQuery = 50,
+ SpvCapabilityDerivativeControl = 51,
+ SpvCapabilityInterpolationFunction = 52,
+ SpvCapabilityTransformFeedback = 53,
+ SpvCapabilityGeometryStreams = 54,
+ SpvCapabilityStorageImageReadWithoutFormat = 55,
+ SpvCapabilityStorageImageWriteWithoutFormat = 56,
+ SpvCapabilityMultiViewport = 57,
+ SpvCapabilitySubgroupDispatch = 58,
+ SpvCapabilityNamedBarrier = 59,
+ SpvCapabilityPipeStorage = 60,
+ SpvCapabilitySubgroupBallotKHR = 4423,
+ SpvCapabilityDrawParameters = 4427,
+ SpvCapabilitySubgroupVoteKHR = 4431,
+ SpvCapabilityStorageBuffer16BitAccess = 4433,
+ SpvCapabilityStorageUniformBufferBlock16 = 4433,
+ SpvCapabilityStorageUniform16 = 4434,
+ SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
+ SpvCapabilityStoragePushConstant16 = 4435,
+ SpvCapabilityStorageInputOutput16 = 4436,
+ SpvCapabilityDeviceGroup = 4437,
+ SpvCapabilityMultiView = 4439,
+ SpvCapabilityVariablePointersStorageBuffer = 4441,
+ SpvCapabilityVariablePointers = 4442,
+ SpvCapabilityAtomicStorageOps = 4445,
+ SpvCapabilitySampleMaskPostDepthCoverage = 4447,
+ SpvCapabilityImageGatherBiasLodAMD = 5009,
+ SpvCapabilityFragmentMaskAMD = 5010,
+ SpvCapabilityStencilExportEXT = 5013,
+ SpvCapabilityImageReadWriteLodAMD = 5015,
+ SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
+ SpvCapabilityGeometryShaderPassthroughNV = 5251,
+ SpvCapabilityShaderViewportIndexLayerEXT = 5254,
+ SpvCapabilityShaderViewportIndexLayerNV = 5254,
+ SpvCapabilityShaderViewportMaskNV = 5255,
+ SpvCapabilityShaderStereoViewNV = 5259,
+ SpvCapabilityPerViewAttributesNV = 5260,
+ SpvCapabilitySubgroupShuffleINTEL = 5568,
+ SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
+ SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
+ SpvCapabilityMax = 0x7fffffff,
+} SpvCapability;
+
+typedef enum SpvOp_ {
+ SpvOpNop = 0,
+ SpvOpUndef = 1,
+ SpvOpSourceContinued = 2,
+ SpvOpSource = 3,
+ SpvOpSourceExtension = 4,
+ SpvOpName = 5,
+ SpvOpMemberName = 6,
+ SpvOpString = 7,
+ SpvOpLine = 8,
+ SpvOpExtension = 10,
+ SpvOpExtInstImport = 11,
+ SpvOpExtInst = 12,
+ SpvOpMemoryModel = 14,
+ SpvOpEntryPoint = 15,
+ SpvOpExecutionMode = 16,
+ SpvOpCapability = 17,
+ SpvOpTypeVoid = 19,
+ SpvOpTypeBool = 20,
+ SpvOpTypeInt = 21,
+ SpvOpTypeFloat = 22,
+ SpvOpTypeVector = 23,
+ SpvOpTypeMatrix = 24,
+ SpvOpTypeImage = 25,
+ SpvOpTypeSampler = 26,
+ SpvOpTypeSampledImage = 27,
+ SpvOpTypeArray = 28,
+ SpvOpTypeRuntimeArray = 29,
+ SpvOpTypeStruct = 30,
+ SpvOpTypeOpaque = 31,
+ SpvOpTypePointer = 32,
+ SpvOpTypeFunction = 33,
+ SpvOpTypeEvent = 34,
+ SpvOpTypeDeviceEvent = 35,
+ SpvOpTypeReserveId = 36,
+ SpvOpTypeQueue = 37,
+ SpvOpTypePipe = 38,
+ SpvOpTypeForwardPointer = 39,
+ SpvOpConstantTrue = 41,
+ SpvOpConstantFalse = 42,
+ SpvOpConstant = 43,
+ SpvOpConstantComposite = 44,
+ SpvOpConstantSampler = 45,
+ SpvOpConstantNull = 46,
+ SpvOpSpecConstantTrue = 48,
+ SpvOpSpecConstantFalse = 49,
+ SpvOpSpecConstant = 50,
+ SpvOpSpecConstantComposite = 51,
+ SpvOpSpecConstantOp = 52,
+ SpvOpFunction = 54,
+ SpvOpFunctionParameter = 55,
+ SpvOpFunctionEnd = 56,
+ SpvOpFunctionCall = 57,
+ SpvOpVariable = 59,
+ SpvOpImageTexelPointer = 60,
+ SpvOpLoad = 61,
+ SpvOpStore = 62,
+ SpvOpCopyMemory = 63,
+ SpvOpCopyMemorySized = 64,
+ SpvOpAccessChain = 65,
+ SpvOpInBoundsAccessChain = 66,
+ SpvOpPtrAccessChain = 67,
+ SpvOpArrayLength = 68,
+ SpvOpGenericPtrMemSemantics = 69,
+ SpvOpInBoundsPtrAccessChain = 70,
+ SpvOpDecorate = 71,
+ SpvOpMemberDecorate = 72,
+ SpvOpDecorationGroup = 73,
+ SpvOpGroupDecorate = 74,
+ SpvOpGroupMemberDecorate = 75,
+ SpvOpVectorExtractDynamic = 77,
+ SpvOpVectorInsertDynamic = 78,
+ SpvOpVectorShuffle = 79,
+ SpvOpCompositeConstruct = 80,
+ SpvOpCompositeExtract = 81,
+ SpvOpCompositeInsert = 82,
+ SpvOpCopyObject = 83,
+ SpvOpTranspose = 84,
+ SpvOpSampledImage = 86,
+ SpvOpImageSampleImplicitLod = 87,
+ SpvOpImageSampleExplicitLod = 88,
+ SpvOpImageSampleDrefImplicitLod = 89,
+ SpvOpImageSampleDrefExplicitLod = 90,
+ SpvOpImageSampleProjImplicitLod = 91,
+ SpvOpImageSampleProjExplicitLod = 92,
+ SpvOpImageSampleProjDrefImplicitLod = 93,
+ SpvOpImageSampleProjDrefExplicitLod = 94,
+ SpvOpImageFetch = 95,
+ SpvOpImageGather = 96,
+ SpvOpImageDrefGather = 97,
+ SpvOpImageRead = 98,
+ SpvOpImageWrite = 99,
+ SpvOpImage = 100,
+ SpvOpImageQueryFormat = 101,
+ SpvOpImageQueryOrder = 102,
+ SpvOpImageQuerySizeLod = 103,
+ SpvOpImageQuerySize = 104,
+ SpvOpImageQueryLod = 105,
+ SpvOpImageQueryLevels = 106,
+ SpvOpImageQuerySamples = 107,
+ SpvOpConvertFToU = 109,
+ SpvOpConvertFToS = 110,
+ SpvOpConvertSToF = 111,
+ SpvOpConvertUToF = 112,
+ SpvOpUConvert = 113,
+ SpvOpSConvert = 114,
+ SpvOpFConvert = 115,
+ SpvOpQuantizeToF16 = 116,
+ SpvOpConvertPtrToU = 117,
+ SpvOpSatConvertSToU = 118,
+ SpvOpSatConvertUToS = 119,
+ SpvOpConvertUToPtr = 120,
+ SpvOpPtrCastToGeneric = 121,
+ SpvOpGenericCastToPtr = 122,
+ SpvOpGenericCastToPtrExplicit = 123,
+ SpvOpBitcast = 124,
+ SpvOpSNegate = 126,
+ SpvOpFNegate = 127,
+ SpvOpIAdd = 128,
+ SpvOpFAdd = 129,
+ SpvOpISub = 130,
+ SpvOpFSub = 131,
+ SpvOpIMul = 132,
+ SpvOpFMul = 133,
+ SpvOpUDiv = 134,
+ SpvOpSDiv = 135,
+ SpvOpFDiv = 136,
+ SpvOpUMod = 137,
+ SpvOpSRem = 138,
+ SpvOpSMod = 139,
+ SpvOpFRem = 140,
+ SpvOpFMod = 141,
+ SpvOpVectorTimesScalar = 142,
+ SpvOpMatrixTimesScalar = 143,
+ SpvOpVectorTimesMatrix = 144,
+ SpvOpMatrixTimesVector = 145,
+ SpvOpMatrixTimesMatrix = 146,
+ SpvOpOuterProduct = 147,
+ SpvOpDot = 148,
+ SpvOpIAddCarry = 149,
+ SpvOpISubBorrow = 150,
+ SpvOpUMulExtended = 151,
+ SpvOpSMulExtended = 152,
+ SpvOpAny = 154,
+ SpvOpAll = 155,
+ SpvOpIsNan = 156,
+ SpvOpIsInf = 157,
+ SpvOpIsFinite = 158,
+ SpvOpIsNormal = 159,
+ SpvOpSignBitSet = 160,
+ SpvOpLessOrGreater = 161,
+ SpvOpOrdered = 162,
+ SpvOpUnordered = 163,
+ SpvOpLogicalEqual = 164,
+ SpvOpLogicalNotEqual = 165,
+ SpvOpLogicalOr = 166,
+ SpvOpLogicalAnd = 167,
+ SpvOpLogicalNot = 168,
+ SpvOpSelect = 169,
+ SpvOpIEqual = 170,
+ SpvOpINotEqual = 171,
+ SpvOpUGreaterThan = 172,
+ SpvOpSGreaterThan = 173,
+ SpvOpUGreaterThanEqual = 174,
+ SpvOpSGreaterThanEqual = 175,
+ SpvOpULessThan = 176,
+ SpvOpSLessThan = 177,
+ SpvOpULessThanEqual = 178,
+ SpvOpSLessThanEqual = 179,
+ SpvOpFOrdEqual = 180,
+ SpvOpFUnordEqual = 181,
+ SpvOpFOrdNotEqual = 182,
+ SpvOpFUnordNotEqual = 183,
+ SpvOpFOrdLessThan = 184,
+ SpvOpFUnordLessThan = 185,
+ SpvOpFOrdGreaterThan = 186,
+ SpvOpFUnordGreaterThan = 187,
+ SpvOpFOrdLessThanEqual = 188,
+ SpvOpFUnordLessThanEqual = 189,
+ SpvOpFOrdGreaterThanEqual = 190,
+ SpvOpFUnordGreaterThanEqual = 191,
+ SpvOpShiftRightLogical = 194,
+ SpvOpShiftRightArithmetic = 195,
+ SpvOpShiftLeftLogical = 196,
+ SpvOpBitwiseOr = 197,
+ SpvOpBitwiseXor = 198,
+ SpvOpBitwiseAnd = 199,
+ SpvOpNot = 200,
+ SpvOpBitFieldInsert = 201,
+ SpvOpBitFieldSExtract = 202,
+ SpvOpBitFieldUExtract = 203,
+ SpvOpBitReverse = 204,
+ SpvOpBitCount = 205,
+ SpvOpDPdx = 207,
+ SpvOpDPdy = 208,
+ SpvOpFwidth = 209,
+ SpvOpDPdxFine = 210,
+ SpvOpDPdyFine = 211,
+ SpvOpFwidthFine = 212,
+ SpvOpDPdxCoarse = 213,
+ SpvOpDPdyCoarse = 214,
+ SpvOpFwidthCoarse = 215,
+ SpvOpEmitVertex = 218,
+ SpvOpEndPrimitive = 219,
+ SpvOpEmitStreamVertex = 220,
+ SpvOpEndStreamPrimitive = 221,
+ SpvOpControlBarrier = 224,
+ SpvOpMemoryBarrier = 225,
+ SpvOpAtomicLoad = 227,
+ SpvOpAtomicStore = 228,
+ SpvOpAtomicExchange = 229,
+ SpvOpAtomicCompareExchange = 230,
+ SpvOpAtomicCompareExchangeWeak = 231,
+ SpvOpAtomicIIncrement = 232,
+ SpvOpAtomicIDecrement = 233,
+ SpvOpAtomicIAdd = 234,
+ SpvOpAtomicISub = 235,
+ SpvOpAtomicSMin = 236,
+ SpvOpAtomicUMin = 237,
+ SpvOpAtomicSMax = 238,
+ SpvOpAtomicUMax = 239,
+ SpvOpAtomicAnd = 240,
+ SpvOpAtomicOr = 241,
+ SpvOpAtomicXor = 242,
+ SpvOpPhi = 245,
+ SpvOpLoopMerge = 246,
+ SpvOpSelectionMerge = 247,
+ SpvOpLabel = 248,
+ SpvOpBranch = 249,
+ SpvOpBranchConditional = 250,
+ SpvOpSwitch = 251,
+ SpvOpKill = 252,
+ SpvOpReturn = 253,
+ SpvOpReturnValue = 254,
+ SpvOpUnreachable = 255,
+ SpvOpLifetimeStart = 256,
+ SpvOpLifetimeStop = 257,
+ SpvOpGroupAsyncCopy = 259,
+ SpvOpGroupWaitEvents = 260,
+ SpvOpGroupAll = 261,
+ SpvOpGroupAny = 262,
+ SpvOpGroupBroadcast = 263,
+ SpvOpGroupIAdd = 264,
+ SpvOpGroupFAdd = 265,
+ SpvOpGroupFMin = 266,
+ SpvOpGroupUMin = 267,
+ SpvOpGroupSMin = 268,
+ SpvOpGroupFMax = 269,
+ SpvOpGroupUMax = 270,
+ SpvOpGroupSMax = 271,
+ SpvOpReadPipe = 274,
+ SpvOpWritePipe = 275,
+ SpvOpReservedReadPipe = 276,
+ SpvOpReservedWritePipe = 277,
+ SpvOpReserveReadPipePackets = 278,
+ SpvOpReserveWritePipePackets = 279,
+ SpvOpCommitReadPipe = 280,
+ SpvOpCommitWritePipe = 281,
+ SpvOpIsValidReserveId = 282,
+ SpvOpGetNumPipePackets = 283,
+ SpvOpGetMaxPipePackets = 284,
+ SpvOpGroupReserveReadPipePackets = 285,
+ SpvOpGroupReserveWritePipePackets = 286,
+ SpvOpGroupCommitReadPipe = 287,
+ SpvOpGroupCommitWritePipe = 288,
+ SpvOpEnqueueMarker = 291,
+ SpvOpEnqueueKernel = 292,
+ SpvOpGetKernelNDrangeSubGroupCount = 293,
+ SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
+ SpvOpGetKernelWorkGroupSize = 295,
+ SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
+ SpvOpRetainEvent = 297,
+ SpvOpReleaseEvent = 298,
+ SpvOpCreateUserEvent = 299,
+ SpvOpIsValidEvent = 300,
+ SpvOpSetUserEventStatus = 301,
+ SpvOpCaptureEventProfilingInfo = 302,
+ SpvOpGetDefaultQueue = 303,
+ SpvOpBuildNDRange = 304,
+ SpvOpImageSparseSampleImplicitLod = 305,
+ SpvOpImageSparseSampleExplicitLod = 306,
+ SpvOpImageSparseSampleDrefImplicitLod = 307,
+ SpvOpImageSparseSampleDrefExplicitLod = 308,
+ SpvOpImageSparseSampleProjImplicitLod = 309,
+ SpvOpImageSparseSampleProjExplicitLod = 310,
+ SpvOpImageSparseSampleProjDrefImplicitLod = 311,
+ SpvOpImageSparseSampleProjDrefExplicitLod = 312,
+ SpvOpImageSparseFetch = 313,
+ SpvOpImageSparseGather = 314,
+ SpvOpImageSparseDrefGather = 315,
+ SpvOpImageSparseTexelsResident = 316,
+ SpvOpNoLine = 317,
+ SpvOpAtomicFlagTestAndSet = 318,
+ SpvOpAtomicFlagClear = 319,
+ SpvOpImageSparseRead = 320,
+ SpvOpSizeOf = 321,
+ SpvOpTypePipeStorage = 322,
+ SpvOpConstantPipeStorage = 323,
+ SpvOpCreatePipeFromPipeStorage = 324,
+ SpvOpGetKernelLocalSizeForSubgroupCount = 325,
+ SpvOpGetKernelMaxNumSubgroups = 326,
+ SpvOpTypeNamedBarrier = 327,
+ SpvOpNamedBarrierInitialize = 328,
+ SpvOpMemoryNamedBarrier = 329,
+ SpvOpModuleProcessed = 330,
+ SpvOpExecutionModeId = 331,
+ SpvOpDecorateId = 332,
+ SpvOpSubgroupBallotKHR = 4421,
+ SpvOpSubgroupFirstInvocationKHR = 4422,
+ SpvOpSubgroupAllKHR = 4428,
+ SpvOpSubgroupAnyKHR = 4429,
+ SpvOpSubgroupAllEqualKHR = 4430,
+ SpvOpSubgroupReadInvocationKHR = 4432,
+ SpvOpGroupIAddNonUniformAMD = 5000,
+ SpvOpGroupFAddNonUniformAMD = 5001,
+ SpvOpGroupFMinNonUniformAMD = 5002,
+ SpvOpGroupUMinNonUniformAMD = 5003,
+ SpvOpGroupSMinNonUniformAMD = 5004,
+ SpvOpGroupFMaxNonUniformAMD = 5005,
+ SpvOpGroupUMaxNonUniformAMD = 5006,
+ SpvOpGroupSMaxNonUniformAMD = 5007,
+ SpvOpFragmentMaskFetchAMD = 5011,
+ SpvOpFragmentFetchAMD = 5012,
+ SpvOpSubgroupShuffleINTEL = 5571,
+ SpvOpSubgroupShuffleDownINTEL = 5572,
+ SpvOpSubgroupShuffleUpINTEL = 5573,
+ SpvOpSubgroupShuffleXorINTEL = 5574,
+ SpvOpSubgroupBlockReadINTEL = 5575,
+ SpvOpSubgroupBlockWriteINTEL = 5576,
+ SpvOpSubgroupImageBlockReadINTEL = 5577,
+ SpvOpSubgroupImageBlockWriteINTEL = 5578,
+ SpvOpDecorateStringGOOGLE = 5632,
+ SpvOpMemberDecorateStringGOOGLE = 5633,
+ SpvOpMax = 0x7fffffff,
+} SpvOp;
+
+#endif // #ifndef spirv_H
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.hpp b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.hpp
new file mode 100644
index 0000000000..57bd97a021
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.hpp
@@ -0,0 +1,1030 @@
+// Copyright (c) 2014-2018 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+// This header is automatically generated by the same tool that creates
+// the Binary Section of the SPIR-V specification.
+
+// Enumeration tokens for SPIR-V, in various styles:
+// C, C++, C++11, JSON, Lua, Python
+//
+// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+//
+// Some tokens act like mask values, which can be OR'd together,
+// while others are mutually exclusive. The mask-like ones have
+// "Mask" in their name, and a parallel enum that has the shift
+// amount (1 << x) for each corresponding enumerant.
+
+#ifndef spirv_HPP
+#define spirv_HPP
+
+namespace spv {
+
+typedef unsigned int Id;
+
+#define SPV_VERSION 0x10200
+#define SPV_REVISION 2
+
+static const unsigned int MagicNumber = 0x07230203;
+static const unsigned int Version = 0x00010200;
+static const unsigned int Revision = 2;
+static const unsigned int OpCodeMask = 0xffff;
+static const unsigned int WordCountShift = 16;
+
+enum SourceLanguage {
+ SourceLanguageUnknown = 0,
+ SourceLanguageESSL = 1,
+ SourceLanguageGLSL = 2,
+ SourceLanguageOpenCL_C = 3,
+ SourceLanguageOpenCL_CPP = 4,
+ SourceLanguageHLSL = 5,
+ SourceLanguageMax = 0x7fffffff,
+};
+
+enum ExecutionModel {
+ ExecutionModelVertex = 0,
+ ExecutionModelTessellationControl = 1,
+ ExecutionModelTessellationEvaluation = 2,
+ ExecutionModelGeometry = 3,
+ ExecutionModelFragment = 4,
+ ExecutionModelGLCompute = 5,
+ ExecutionModelKernel = 6,
+ ExecutionModelMax = 0x7fffffff,
+};
+
+enum AddressingModel {
+ AddressingModelLogical = 0,
+ AddressingModelPhysical32 = 1,
+ AddressingModelPhysical64 = 2,
+ AddressingModelMax = 0x7fffffff,
+};
+
+enum MemoryModel {
+ MemoryModelSimple = 0,
+ MemoryModelGLSL450 = 1,
+ MemoryModelOpenCL = 2,
+ MemoryModelMax = 0x7fffffff,
+};
+
+enum ExecutionMode {
+ ExecutionModeInvocations = 0,
+ ExecutionModeSpacingEqual = 1,
+ ExecutionModeSpacingFractionalEven = 2,
+ ExecutionModeSpacingFractionalOdd = 3,
+ ExecutionModeVertexOrderCw = 4,
+ ExecutionModeVertexOrderCcw = 5,
+ ExecutionModePixelCenterInteger = 6,
+ ExecutionModeOriginUpperLeft = 7,
+ ExecutionModeOriginLowerLeft = 8,
+ ExecutionModeEarlyFragmentTests = 9,
+ ExecutionModePointMode = 10,
+ ExecutionModeXfb = 11,
+ ExecutionModeDepthReplacing = 12,
+ ExecutionModeDepthGreater = 14,
+ ExecutionModeDepthLess = 15,
+ ExecutionModeDepthUnchanged = 16,
+ ExecutionModeLocalSize = 17,
+ ExecutionModeLocalSizeHint = 18,
+ ExecutionModeInputPoints = 19,
+ ExecutionModeInputLines = 20,
+ ExecutionModeInputLinesAdjacency = 21,
+ ExecutionModeTriangles = 22,
+ ExecutionModeInputTrianglesAdjacency = 23,
+ ExecutionModeQuads = 24,
+ ExecutionModeIsolines = 25,
+ ExecutionModeOutputVertices = 26,
+ ExecutionModeOutputPoints = 27,
+ ExecutionModeOutputLineStrip = 28,
+ ExecutionModeOutputTriangleStrip = 29,
+ ExecutionModeVecTypeHint = 30,
+ ExecutionModeContractionOff = 31,
+ ExecutionModeInitializer = 33,
+ ExecutionModeFinalizer = 34,
+ ExecutionModeSubgroupSize = 35,
+ ExecutionModeSubgroupsPerWorkgroup = 36,
+ ExecutionModeSubgroupsPerWorkgroupId = 37,
+ ExecutionModeLocalSizeId = 38,
+ ExecutionModeLocalSizeHintId = 39,
+ ExecutionModePostDepthCoverage = 4446,
+ ExecutionModeStencilRefReplacingEXT = 5027,
+ ExecutionModeMax = 0x7fffffff,
+};
+
+enum StorageClass {
+ StorageClassUniformConstant = 0,
+ StorageClassInput = 1,
+ StorageClassUniform = 2,
+ StorageClassOutput = 3,
+ StorageClassWorkgroup = 4,
+ StorageClassCrossWorkgroup = 5,
+ StorageClassPrivate = 6,
+ StorageClassFunction = 7,
+ StorageClassGeneric = 8,
+ StorageClassPushConstant = 9,
+ StorageClassAtomicCounter = 10,
+ StorageClassImage = 11,
+ StorageClassStorageBuffer = 12,
+ StorageClassMax = 0x7fffffff,
+};
+
+enum Dim {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ DimCube = 3,
+ DimRect = 4,
+ DimBuffer = 5,
+ DimSubpassData = 6,
+ DimMax = 0x7fffffff,
+};
+
+enum SamplerAddressingMode {
+ SamplerAddressingModeNone = 0,
+ SamplerAddressingModeClampToEdge = 1,
+ SamplerAddressingModeClamp = 2,
+ SamplerAddressingModeRepeat = 3,
+ SamplerAddressingModeRepeatMirrored = 4,
+ SamplerAddressingModeMax = 0x7fffffff,
+};
+
+enum SamplerFilterMode {
+ SamplerFilterModeNearest = 0,
+ SamplerFilterModeLinear = 1,
+ SamplerFilterModeMax = 0x7fffffff,
+};
+
+enum ImageFormat {
+ ImageFormatUnknown = 0,
+ ImageFormatRgba32f = 1,
+ ImageFormatRgba16f = 2,
+ ImageFormatR32f = 3,
+ ImageFormatRgba8 = 4,
+ ImageFormatRgba8Snorm = 5,
+ ImageFormatRg32f = 6,
+ ImageFormatRg16f = 7,
+ ImageFormatR11fG11fB10f = 8,
+ ImageFormatR16f = 9,
+ ImageFormatRgba16 = 10,
+ ImageFormatRgb10A2 = 11,
+ ImageFormatRg16 = 12,
+ ImageFormatRg8 = 13,
+ ImageFormatR16 = 14,
+ ImageFormatR8 = 15,
+ ImageFormatRgba16Snorm = 16,
+ ImageFormatRg16Snorm = 17,
+ ImageFormatRg8Snorm = 18,
+ ImageFormatR16Snorm = 19,
+ ImageFormatR8Snorm = 20,
+ ImageFormatRgba32i = 21,
+ ImageFormatRgba16i = 22,
+ ImageFormatRgba8i = 23,
+ ImageFormatR32i = 24,
+ ImageFormatRg32i = 25,
+ ImageFormatRg16i = 26,
+ ImageFormatRg8i = 27,
+ ImageFormatR16i = 28,
+ ImageFormatR8i = 29,
+ ImageFormatRgba32ui = 30,
+ ImageFormatRgba16ui = 31,
+ ImageFormatRgba8ui = 32,
+ ImageFormatR32ui = 33,
+ ImageFormatRgb10a2ui = 34,
+ ImageFormatRg32ui = 35,
+ ImageFormatRg16ui = 36,
+ ImageFormatRg8ui = 37,
+ ImageFormatR16ui = 38,
+ ImageFormatR8ui = 39,
+ ImageFormatMax = 0x7fffffff,
+};
+
+enum ImageChannelOrder {
+ ImageChannelOrderR = 0,
+ ImageChannelOrderA = 1,
+ ImageChannelOrderRG = 2,
+ ImageChannelOrderRA = 3,
+ ImageChannelOrderRGB = 4,
+ ImageChannelOrderRGBA = 5,
+ ImageChannelOrderBGRA = 6,
+ ImageChannelOrderARGB = 7,
+ ImageChannelOrderIntensity = 8,
+ ImageChannelOrderLuminance = 9,
+ ImageChannelOrderRx = 10,
+ ImageChannelOrderRGx = 11,
+ ImageChannelOrderRGBx = 12,
+ ImageChannelOrderDepth = 13,
+ ImageChannelOrderDepthStencil = 14,
+ ImageChannelOrdersRGB = 15,
+ ImageChannelOrdersRGBx = 16,
+ ImageChannelOrdersRGBA = 17,
+ ImageChannelOrdersBGRA = 18,
+ ImageChannelOrderABGR = 19,
+ ImageChannelOrderMax = 0x7fffffff,
+};
+
+enum ImageChannelDataType {
+ ImageChannelDataTypeSnormInt8 = 0,
+ ImageChannelDataTypeSnormInt16 = 1,
+ ImageChannelDataTypeUnormInt8 = 2,
+ ImageChannelDataTypeUnormInt16 = 3,
+ ImageChannelDataTypeUnormShort565 = 4,
+ ImageChannelDataTypeUnormShort555 = 5,
+ ImageChannelDataTypeUnormInt101010 = 6,
+ ImageChannelDataTypeSignedInt8 = 7,
+ ImageChannelDataTypeSignedInt16 = 8,
+ ImageChannelDataTypeSignedInt32 = 9,
+ ImageChannelDataTypeUnsignedInt8 = 10,
+ ImageChannelDataTypeUnsignedInt16 = 11,
+ ImageChannelDataTypeUnsignedInt32 = 12,
+ ImageChannelDataTypeHalfFloat = 13,
+ ImageChannelDataTypeFloat = 14,
+ ImageChannelDataTypeUnormInt24 = 15,
+ ImageChannelDataTypeUnormInt101010_2 = 16,
+ ImageChannelDataTypeMax = 0x7fffffff,
+};
+
+enum ImageOperandsShift {
+ ImageOperandsBiasShift = 0,
+ ImageOperandsLodShift = 1,
+ ImageOperandsGradShift = 2,
+ ImageOperandsConstOffsetShift = 3,
+ ImageOperandsOffsetShift = 4,
+ ImageOperandsConstOffsetsShift = 5,
+ ImageOperandsSampleShift = 6,
+ ImageOperandsMinLodShift = 7,
+ ImageOperandsMax = 0x7fffffff,
+};
+
+enum ImageOperandsMask {
+ ImageOperandsMaskNone = 0,
+ ImageOperandsBiasMask = 0x00000001,
+ ImageOperandsLodMask = 0x00000002,
+ ImageOperandsGradMask = 0x00000004,
+ ImageOperandsConstOffsetMask = 0x00000008,
+ ImageOperandsOffsetMask = 0x00000010,
+ ImageOperandsConstOffsetsMask = 0x00000020,
+ ImageOperandsSampleMask = 0x00000040,
+ ImageOperandsMinLodMask = 0x00000080,
+};
+
+enum FPFastMathModeShift {
+ FPFastMathModeNotNaNShift = 0,
+ FPFastMathModeNotInfShift = 1,
+ FPFastMathModeNSZShift = 2,
+ FPFastMathModeAllowRecipShift = 3,
+ FPFastMathModeFastShift = 4,
+ FPFastMathModeMax = 0x7fffffff,
+};
+
+enum FPFastMathModeMask {
+ FPFastMathModeMaskNone = 0,
+ FPFastMathModeNotNaNMask = 0x00000001,
+ FPFastMathModeNotInfMask = 0x00000002,
+ FPFastMathModeNSZMask = 0x00000004,
+ FPFastMathModeAllowRecipMask = 0x00000008,
+ FPFastMathModeFastMask = 0x00000010,
+};
+
+enum FPRoundingMode {
+ FPRoundingModeRTE = 0,
+ FPRoundingModeRTZ = 1,
+ FPRoundingModeRTP = 2,
+ FPRoundingModeRTN = 3,
+ FPRoundingModeMax = 0x7fffffff,
+};
+
+enum LinkageType {
+ LinkageTypeExport = 0,
+ LinkageTypeImport = 1,
+ LinkageTypeMax = 0x7fffffff,
+};
+
+enum AccessQualifier {
+ AccessQualifierReadOnly = 0,
+ AccessQualifierWriteOnly = 1,
+ AccessQualifierReadWrite = 2,
+ AccessQualifierMax = 0x7fffffff,
+};
+
+enum FunctionParameterAttribute {
+ FunctionParameterAttributeZext = 0,
+ FunctionParameterAttributeSext = 1,
+ FunctionParameterAttributeByVal = 2,
+ FunctionParameterAttributeSret = 3,
+ FunctionParameterAttributeNoAlias = 4,
+ FunctionParameterAttributeNoCapture = 5,
+ FunctionParameterAttributeNoWrite = 6,
+ FunctionParameterAttributeNoReadWrite = 7,
+ FunctionParameterAttributeMax = 0x7fffffff,
+};
+
+enum Decoration {
+ DecorationRelaxedPrecision = 0,
+ DecorationSpecId = 1,
+ DecorationBlock = 2,
+ DecorationBufferBlock = 3,
+ DecorationRowMajor = 4,
+ DecorationColMajor = 5,
+ DecorationArrayStride = 6,
+ DecorationMatrixStride = 7,
+ DecorationGLSLShared = 8,
+ DecorationGLSLPacked = 9,
+ DecorationCPacked = 10,
+ DecorationBuiltIn = 11,
+ DecorationNoPerspective = 13,
+ DecorationFlat = 14,
+ DecorationPatch = 15,
+ DecorationCentroid = 16,
+ DecorationSample = 17,
+ DecorationInvariant = 18,
+ DecorationRestrict = 19,
+ DecorationAliased = 20,
+ DecorationVolatile = 21,
+ DecorationConstant = 22,
+ DecorationCoherent = 23,
+ DecorationNonWritable = 24,
+ DecorationNonReadable = 25,
+ DecorationUniform = 26,
+ DecorationSaturatedConversion = 28,
+ DecorationStream = 29,
+ DecorationLocation = 30,
+ DecorationComponent = 31,
+ DecorationIndex = 32,
+ DecorationBinding = 33,
+ DecorationDescriptorSet = 34,
+ DecorationOffset = 35,
+ DecorationXfbBuffer = 36,
+ DecorationXfbStride = 37,
+ DecorationFuncParamAttr = 38,
+ DecorationFPRoundingMode = 39,
+ DecorationFPFastMathMode = 40,
+ DecorationLinkageAttributes = 41,
+ DecorationNoContraction = 42,
+ DecorationInputAttachmentIndex = 43,
+ DecorationAlignment = 44,
+ DecorationMaxByteOffset = 45,
+ DecorationAlignmentId = 46,
+ DecorationMaxByteOffsetId = 47,
+ DecorationExplicitInterpAMD = 4999,
+ DecorationOverrideCoverageNV = 5248,
+ DecorationPassthroughNV = 5250,
+ DecorationViewportRelativeNV = 5252,
+ DecorationSecondaryViewportRelativeNV = 5256,
+ DecorationHlslCounterBufferGOOGLE = 5634,
+ DecorationHlslSemanticGOOGLE = 5635,
+ DecorationMax = 0x7fffffff,
+};
+
+enum BuiltIn {
+ BuiltInPosition = 0,
+ BuiltInPointSize = 1,
+ BuiltInClipDistance = 3,
+ BuiltInCullDistance = 4,
+ BuiltInVertexId = 5,
+ BuiltInInstanceId = 6,
+ BuiltInPrimitiveId = 7,
+ BuiltInInvocationId = 8,
+ BuiltInLayer = 9,
+ BuiltInViewportIndex = 10,
+ BuiltInTessLevelOuter = 11,
+ BuiltInTessLevelInner = 12,
+ BuiltInTessCoord = 13,
+ BuiltInPatchVertices = 14,
+ BuiltInFragCoord = 15,
+ BuiltInPointCoord = 16,
+ BuiltInFrontFacing = 17,
+ BuiltInSampleId = 18,
+ BuiltInSamplePosition = 19,
+ BuiltInSampleMask = 20,
+ BuiltInFragDepth = 22,
+ BuiltInHelperInvocation = 23,
+ BuiltInNumWorkgroups = 24,
+ BuiltInWorkgroupSize = 25,
+ BuiltInWorkgroupId = 26,
+ BuiltInLocalInvocationId = 27,
+ BuiltInGlobalInvocationId = 28,
+ BuiltInLocalInvocationIndex = 29,
+ BuiltInWorkDim = 30,
+ BuiltInGlobalSize = 31,
+ BuiltInEnqueuedWorkgroupSize = 32,
+ BuiltInGlobalOffset = 33,
+ BuiltInGlobalLinearId = 34,
+ BuiltInSubgroupSize = 36,
+ BuiltInSubgroupMaxSize = 37,
+ BuiltInNumSubgroups = 38,
+ BuiltInNumEnqueuedSubgroups = 39,
+ BuiltInSubgroupId = 40,
+ BuiltInSubgroupLocalInvocationId = 41,
+ BuiltInVertexIndex = 42,
+ BuiltInInstanceIndex = 43,
+ BuiltInSubgroupEqMaskKHR = 4416,
+ BuiltInSubgroupGeMaskKHR = 4417,
+ BuiltInSubgroupGtMaskKHR = 4418,
+ BuiltInSubgroupLeMaskKHR = 4419,
+ BuiltInSubgroupLtMaskKHR = 4420,
+ BuiltInBaseVertex = 4424,
+ BuiltInBaseInstance = 4425,
+ BuiltInDrawIndex = 4426,
+ BuiltInDeviceIndex = 4438,
+ BuiltInViewIndex = 4440,
+ BuiltInBaryCoordNoPerspAMD = 4992,
+ BuiltInBaryCoordNoPerspCentroidAMD = 4993,
+ BuiltInBaryCoordNoPerspSampleAMD = 4994,
+ BuiltInBaryCoordSmoothAMD = 4995,
+ BuiltInBaryCoordSmoothCentroidAMD = 4996,
+ BuiltInBaryCoordSmoothSampleAMD = 4997,
+ BuiltInBaryCoordPullModelAMD = 4998,
+ BuiltInFragStencilRefEXT = 5014,
+ BuiltInViewportMaskNV = 5253,
+ BuiltInSecondaryPositionNV = 5257,
+ BuiltInSecondaryViewportMaskNV = 5258,
+ BuiltInPositionPerViewNV = 5261,
+ BuiltInViewportMaskPerViewNV = 5262,
+ BuiltInMax = 0x7fffffff,
+};
+
+enum SelectionControlShift {
+ SelectionControlFlattenShift = 0,
+ SelectionControlDontFlattenShift = 1,
+ SelectionControlMax = 0x7fffffff,
+};
+
+enum SelectionControlMask {
+ SelectionControlMaskNone = 0,
+ SelectionControlFlattenMask = 0x00000001,
+ SelectionControlDontFlattenMask = 0x00000002,
+};
+
+enum LoopControlShift {
+ LoopControlUnrollShift = 0,
+ LoopControlDontUnrollShift = 1,
+ LoopControlDependencyInfiniteShift = 2,
+ LoopControlDependencyLengthShift = 3,
+ LoopControlMax = 0x7fffffff,
+};
+
+enum LoopControlMask {
+ LoopControlMaskNone = 0,
+ LoopControlUnrollMask = 0x00000001,
+ LoopControlDontUnrollMask = 0x00000002,
+ LoopControlDependencyInfiniteMask = 0x00000004,
+ LoopControlDependencyLengthMask = 0x00000008,
+};
+
+enum FunctionControlShift {
+ FunctionControlInlineShift = 0,
+ FunctionControlDontInlineShift = 1,
+ FunctionControlPureShift = 2,
+ FunctionControlConstShift = 3,
+ FunctionControlMax = 0x7fffffff,
+};
+
+enum FunctionControlMask {
+ FunctionControlMaskNone = 0,
+ FunctionControlInlineMask = 0x00000001,
+ FunctionControlDontInlineMask = 0x00000002,
+ FunctionControlPureMask = 0x00000004,
+ FunctionControlConstMask = 0x00000008,
+};
+
+enum MemorySemanticsShift {
+ MemorySemanticsAcquireShift = 1,
+ MemorySemanticsReleaseShift = 2,
+ MemorySemanticsAcquireReleaseShift = 3,
+ MemorySemanticsSequentiallyConsistentShift = 4,
+ MemorySemanticsUniformMemoryShift = 6,
+ MemorySemanticsSubgroupMemoryShift = 7,
+ MemorySemanticsWorkgroupMemoryShift = 8,
+ MemorySemanticsCrossWorkgroupMemoryShift = 9,
+ MemorySemanticsAtomicCounterMemoryShift = 10,
+ MemorySemanticsImageMemoryShift = 11,
+ MemorySemanticsMax = 0x7fffffff,
+};
+
+enum MemorySemanticsMask {
+ MemorySemanticsMaskNone = 0,
+ MemorySemanticsAcquireMask = 0x00000002,
+ MemorySemanticsReleaseMask = 0x00000004,
+ MemorySemanticsAcquireReleaseMask = 0x00000008,
+ MemorySemanticsSequentiallyConsistentMask = 0x00000010,
+ MemorySemanticsUniformMemoryMask = 0x00000040,
+ MemorySemanticsSubgroupMemoryMask = 0x00000080,
+ MemorySemanticsWorkgroupMemoryMask = 0x00000100,
+ MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
+ MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
+ MemorySemanticsImageMemoryMask = 0x00000800,
+};
+
+enum MemoryAccessShift {
+ MemoryAccessVolatileShift = 0,
+ MemoryAccessAlignedShift = 1,
+ MemoryAccessNontemporalShift = 2,
+ MemoryAccessMax = 0x7fffffff,
+};
+
+enum MemoryAccessMask {
+ MemoryAccessMaskNone = 0,
+ MemoryAccessVolatileMask = 0x00000001,
+ MemoryAccessAlignedMask = 0x00000002,
+ MemoryAccessNontemporalMask = 0x00000004,
+};
+
+enum Scope {
+ ScopeCrossDevice = 0,
+ ScopeDevice = 1,
+ ScopeWorkgroup = 2,
+ ScopeSubgroup = 3,
+ ScopeInvocation = 4,
+ ScopeMax = 0x7fffffff,
+};
+
+enum GroupOperation {
+ GroupOperationReduce = 0,
+ GroupOperationInclusiveScan = 1,
+ GroupOperationExclusiveScan = 2,
+ GroupOperationMax = 0x7fffffff,
+};
+
+enum KernelEnqueueFlags {
+ KernelEnqueueFlagsNoWait = 0,
+ KernelEnqueueFlagsWaitKernel = 1,
+ KernelEnqueueFlagsWaitWorkGroup = 2,
+ KernelEnqueueFlagsMax = 0x7fffffff,
+};
+
+enum KernelProfilingInfoShift {
+ KernelProfilingInfoCmdExecTimeShift = 0,
+ KernelProfilingInfoMax = 0x7fffffff,
+};
+
+enum KernelProfilingInfoMask {
+ KernelProfilingInfoMaskNone = 0,
+ KernelProfilingInfoCmdExecTimeMask = 0x00000001,
+};
+
+enum Capability {
+ CapabilityMatrix = 0,
+ CapabilityShader = 1,
+ CapabilityGeometry = 2,
+ CapabilityTessellation = 3,
+ CapabilityAddresses = 4,
+ CapabilityLinkage = 5,
+ CapabilityKernel = 6,
+ CapabilityVector16 = 7,
+ CapabilityFloat16Buffer = 8,
+ CapabilityFloat16 = 9,
+ CapabilityFloat64 = 10,
+ CapabilityInt64 = 11,
+ CapabilityInt64Atomics = 12,
+ CapabilityImageBasic = 13,
+ CapabilityImageReadWrite = 14,
+ CapabilityImageMipmap = 15,
+ CapabilityPipes = 17,
+ CapabilityGroups = 18,
+ CapabilityDeviceEnqueue = 19,
+ CapabilityLiteralSampler = 20,
+ CapabilityAtomicStorage = 21,
+ CapabilityInt16 = 22,
+ CapabilityTessellationPointSize = 23,
+ CapabilityGeometryPointSize = 24,
+ CapabilityImageGatherExtended = 25,
+ CapabilityStorageImageMultisample = 27,
+ CapabilityUniformBufferArrayDynamicIndexing = 28,
+ CapabilitySampledImageArrayDynamicIndexing = 29,
+ CapabilityStorageBufferArrayDynamicIndexing = 30,
+ CapabilityStorageImageArrayDynamicIndexing = 31,
+ CapabilityClipDistance = 32,
+ CapabilityCullDistance = 33,
+ CapabilityImageCubeArray = 34,
+ CapabilitySampleRateShading = 35,
+ CapabilityImageRect = 36,
+ CapabilitySampledRect = 37,
+ CapabilityGenericPointer = 38,
+ CapabilityInt8 = 39,
+ CapabilityInputAttachment = 40,
+ CapabilitySparseResidency = 41,
+ CapabilityMinLod = 42,
+ CapabilitySampled1D = 43,
+ CapabilityImage1D = 44,
+ CapabilitySampledCubeArray = 45,
+ CapabilitySampledBuffer = 46,
+ CapabilityImageBuffer = 47,
+ CapabilityImageMSArray = 48,
+ CapabilityStorageImageExtendedFormats = 49,
+ CapabilityImageQuery = 50,
+ CapabilityDerivativeControl = 51,
+ CapabilityInterpolationFunction = 52,
+ CapabilityTransformFeedback = 53,
+ CapabilityGeometryStreams = 54,
+ CapabilityStorageImageReadWithoutFormat = 55,
+ CapabilityStorageImageWriteWithoutFormat = 56,
+ CapabilityMultiViewport = 57,
+ CapabilitySubgroupDispatch = 58,
+ CapabilityNamedBarrier = 59,
+ CapabilityPipeStorage = 60,
+ CapabilitySubgroupBallotKHR = 4423,
+ CapabilityDrawParameters = 4427,
+ CapabilitySubgroupVoteKHR = 4431,
+ CapabilityStorageBuffer16BitAccess = 4433,
+ CapabilityStorageUniformBufferBlock16 = 4433,
+ CapabilityStorageUniform16 = 4434,
+ CapabilityUniformAndStorageBuffer16BitAccess = 4434,
+ CapabilityStoragePushConstant16 = 4435,
+ CapabilityStorageInputOutput16 = 4436,
+ CapabilityDeviceGroup = 4437,
+ CapabilityMultiView = 4439,
+ CapabilityVariablePointersStorageBuffer = 4441,
+ CapabilityVariablePointers = 4442,
+ CapabilityAtomicStorageOps = 4445,
+ CapabilitySampleMaskPostDepthCoverage = 4447,
+ CapabilityImageGatherBiasLodAMD = 5009,
+ CapabilityFragmentMaskAMD = 5010,
+ CapabilityStencilExportEXT = 5013,
+ CapabilityImageReadWriteLodAMD = 5015,
+ CapabilitySampleMaskOverrideCoverageNV = 5249,
+ CapabilityGeometryShaderPassthroughNV = 5251,
+ CapabilityShaderViewportIndexLayerEXT = 5254,
+ CapabilityShaderViewportIndexLayerNV = 5254,
+ CapabilityShaderViewportMaskNV = 5255,
+ CapabilityShaderStereoViewNV = 5259,
+ CapabilityPerViewAttributesNV = 5260,
+ CapabilitySubgroupShuffleINTEL = 5568,
+ CapabilitySubgroupBufferBlockIOINTEL = 5569,
+ CapabilitySubgroupImageBlockIOINTEL = 5570,
+ CapabilityMax = 0x7fffffff,
+};
+
+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,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateStringGOOGLE = 5633,
+ OpMax = 0x7fffffff,
+};
+
+// Overload operator| for mask bit combining
+
+inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
+inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
+inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
+inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
+inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
+inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
+inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
+inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+
+} // end namespace spv
+
+#endif // #ifndef spirv_HPP
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.hpp11 b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.hpp11
new file mode 100644
index 0000000000..7a875fdb16
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.hpp11
@@ -0,0 +1,1030 @@
+// Copyright (c) 2014-2018 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+// This header is automatically generated by the same tool that creates
+// the Binary Section of the SPIR-V specification.
+
+// Enumeration tokens for SPIR-V, in various styles:
+// C, C++, C++11, JSON, Lua, Python
+//
+// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+//
+// Some tokens act like mask values, which can be OR'd together,
+// while others are mutually exclusive. The mask-like ones have
+// "Mask" in their name, and a parallel enum that has the shift
+// amount (1 << x) for each corresponding enumerant.
+
+#ifndef spirv_HPP
+#define spirv_HPP
+
+namespace spv {
+
+typedef unsigned int Id;
+
+#define SPV_VERSION 0x10200
+#define SPV_REVISION 2
+
+static const unsigned int MagicNumber = 0x07230203;
+static const unsigned int Version = 0x00010200;
+static const unsigned int Revision = 2;
+static const unsigned int OpCodeMask = 0xffff;
+static const unsigned int WordCountShift = 16;
+
+enum class SourceLanguage : unsigned {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ Max = 0x7fffffff,
+};
+
+enum class ExecutionModel : unsigned {
+ Vertex = 0,
+ TessellationControl = 1,
+ TessellationEvaluation = 2,
+ Geometry = 3,
+ Fragment = 4,
+ GLCompute = 5,
+ Kernel = 6,
+ Max = 0x7fffffff,
+};
+
+enum class AddressingModel : unsigned {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ Max = 0x7fffffff,
+};
+
+enum class MemoryModel : unsigned {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ Max = 0x7fffffff,
+};
+
+enum class ExecutionMode : unsigned {
+ 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,
+ PostDepthCoverage = 4446,
+ StencilRefReplacingEXT = 5027,
+ Max = 0x7fffffff,
+};
+
+enum class StorageClass : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class Dim : unsigned {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ Max = 0x7fffffff,
+};
+
+enum class SamplerAddressingMode : unsigned {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ Max = 0x7fffffff,
+};
+
+enum class SamplerFilterMode : unsigned {
+ Nearest = 0,
+ Linear = 1,
+ Max = 0x7fffffff,
+};
+
+enum class ImageFormat : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageChannelOrder : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageChannelDataType : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageOperandsShift : unsigned {
+ Bias = 0,
+ Lod = 1,
+ Grad = 2,
+ ConstOffset = 3,
+ Offset = 4,
+ ConstOffsets = 5,
+ Sample = 6,
+ MinLod = 7,
+ Max = 0x7fffffff,
+};
+
+enum class ImageOperandsMask : unsigned {
+ MaskNone = 0,
+ Bias = 0x00000001,
+ Lod = 0x00000002,
+ Grad = 0x00000004,
+ ConstOffset = 0x00000008,
+ Offset = 0x00000010,
+ ConstOffsets = 0x00000020,
+ Sample = 0x00000040,
+ MinLod = 0x00000080,
+};
+
+enum class FPFastMathModeShift : unsigned {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ Max = 0x7fffffff,
+};
+
+enum class FPFastMathModeMask : unsigned {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+};
+
+enum class FPRoundingMode : unsigned {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ Max = 0x7fffffff,
+};
+
+enum class LinkageType : unsigned {
+ Export = 0,
+ Import = 1,
+ Max = 0x7fffffff,
+};
+
+enum class AccessQualifier : unsigned {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ Max = 0x7fffffff,
+};
+
+enum class FunctionParameterAttribute : unsigned {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ Max = 0x7fffffff,
+};
+
+enum class Decoration : unsigned {
+ 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,
+ 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,
+ ExplicitInterpAMD = 4999,
+ OverrideCoverageNV = 5248,
+ PassthroughNV = 5250,
+ ViewportRelativeNV = 5252,
+ SecondaryViewportRelativeNV = 5256,
+ HlslCounterBufferGOOGLE = 5634,
+ HlslSemanticGOOGLE = 5635,
+ Max = 0x7fffffff,
+};
+
+enum class BuiltIn : unsigned {
+ 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,
+ SubgroupEqMaskKHR = 4416,
+ SubgroupGeMaskKHR = 4417,
+ SubgroupGtMaskKHR = 4418,
+ SubgroupLeMaskKHR = 4419,
+ SubgroupLtMaskKHR = 4420,
+ BaseVertex = 4424,
+ BaseInstance = 4425,
+ DrawIndex = 4426,
+ DeviceIndex = 4438,
+ ViewIndex = 4440,
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class SelectionControlShift : unsigned {
+ Flatten = 0,
+ DontFlatten = 1,
+ Max = 0x7fffffff,
+};
+
+enum class SelectionControlMask : unsigned {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+};
+
+enum class LoopControlShift : unsigned {
+ Unroll = 0,
+ DontUnroll = 1,
+ DependencyInfinite = 2,
+ DependencyLength = 3,
+ Max = 0x7fffffff,
+};
+
+enum class LoopControlMask : unsigned {
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+ DependencyInfinite = 0x00000004,
+ DependencyLength = 0x00000008,
+};
+
+enum class FunctionControlShift : unsigned {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ Max = 0x7fffffff,
+};
+
+enum class FunctionControlMask : unsigned {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+};
+
+enum class MemorySemanticsShift : unsigned {
+ Acquire = 1,
+ Release = 2,
+ AcquireRelease = 3,
+ SequentiallyConsistent = 4,
+ UniformMemory = 6,
+ SubgroupMemory = 7,
+ WorkgroupMemory = 8,
+ CrossWorkgroupMemory = 9,
+ AtomicCounterMemory = 10,
+ ImageMemory = 11,
+ Max = 0x7fffffff,
+};
+
+enum class MemorySemanticsMask : unsigned {
+ MaskNone = 0,
+ Acquire = 0x00000002,
+ Release = 0x00000004,
+ AcquireRelease = 0x00000008,
+ SequentiallyConsistent = 0x00000010,
+ UniformMemory = 0x00000040,
+ SubgroupMemory = 0x00000080,
+ WorkgroupMemory = 0x00000100,
+ CrossWorkgroupMemory = 0x00000200,
+ AtomicCounterMemory = 0x00000400,
+ ImageMemory = 0x00000800,
+};
+
+enum class MemoryAccessShift : unsigned {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ Max = 0x7fffffff,
+};
+
+enum class MemoryAccessMask : unsigned {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+};
+
+enum class Scope : unsigned {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ Max = 0x7fffffff,
+};
+
+enum class GroupOperation : unsigned {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ Max = 0x7fffffff,
+};
+
+enum class KernelEnqueueFlags : unsigned {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ Max = 0x7fffffff,
+};
+
+enum class KernelProfilingInfoShift : unsigned {
+ CmdExecTime = 0,
+ Max = 0x7fffffff,
+};
+
+enum class KernelProfilingInfoMask : unsigned {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+};
+
+enum class Capability : unsigned {
+ 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,
+ SubgroupBallotKHR = 4423,
+ DrawParameters = 4427,
+ 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,
+ ImageGatherBiasLodAMD = 5009,
+ FragmentMaskAMD = 5010,
+ StencilExportEXT = 5013,
+ ImageReadWriteLodAMD = 5015,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerEXT = 5254,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ SubgroupShuffleINTEL = 5568,
+ SubgroupBufferBlockIOINTEL = 5569,
+ SubgroupImageBlockIOINTEL = 5570,
+ Max = 0x7fffffff,
+};
+
+enum class Op : unsigned {
+ 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,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateStringGOOGLE = 5633,
+ Max = 0x7fffffff,
+};
+
+// Overload operator| for mask bit combining
+
+inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
+inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
+inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
+inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
+inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
+inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
+inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
+inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+
+} // end namespace spv
+
+#endif // #ifndef spirv_HPP
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.json
new file mode 100644
index 0000000000..9c0ff0a43e
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.json
@@ -0,0 +1,1046 @@
+{
+ "spv":
+ {
+ "meta":
+ {
+ "Comment":
+ [
+ [
+ "Copyright (c) 2014-2018 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ [
+ "This header is automatically generated by the same tool that creates",
+ "the Binary Section of the SPIR-V specification."
+ ],
+ [
+ "Enumeration tokens for SPIR-V, in various styles:",
+ " C, C++, C++11, JSON, Lua, Python",
+ "",
+ "- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL",
+ "- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL",
+ "- C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL",
+ "- Lua will use tables, e.g.: spv.SourceLanguage.GLSL",
+ "- Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']",
+ "",
+ "Some tokens act like mask values, which can be OR'd together,",
+ "while others are mutually exclusive. The mask-like ones have",
+ "\"Mask\" in their name, and a parallel enum that has the shift",
+ "amount (1 << x) for each corresponding enumerant."
+ ]
+ ],
+ "MagicNumber": 119734787,
+ "Version": 66048,
+ "Revision": 2,
+ "OpCodeMask": 65535,
+ "WordCountShift": 16
+ },
+ "enum":
+ [
+ {
+ "Name": "SourceLanguage",
+ "Type": "Value",
+ "Values":
+ {
+ "Unknown": 0,
+ "ESSL": 1,
+ "GLSL": 2,
+ "OpenCL_C": 3,
+ "OpenCL_CPP": 4,
+ "HLSL": 5
+ }
+ },
+ {
+ "Name": "ExecutionModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Vertex": 0,
+ "TessellationControl": 1,
+ "TessellationEvaluation": 2,
+ "Geometry": 3,
+ "Fragment": 4,
+ "GLCompute": 5,
+ "Kernel": 6
+ }
+ },
+ {
+ "Name": "AddressingModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Logical": 0,
+ "Physical32": 1,
+ "Physical64": 2
+ }
+ },
+ {
+ "Name": "MemoryModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Simple": 0,
+ "GLSL450": 1,
+ "OpenCL": 2
+ }
+ },
+ {
+ "Name": "ExecutionMode",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "PostDepthCoverage": 4446,
+ "StencilRefReplacingEXT": 5027
+ }
+ },
+ {
+ "Name": "StorageClass",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "Dim",
+ "Type": "Value",
+ "Values":
+ {
+ "Dim1D": 0,
+ "Dim2D": 1,
+ "Dim3D": 2,
+ "Cube": 3,
+ "Rect": 4,
+ "Buffer": 5,
+ "SubpassData": 6
+ }
+ },
+ {
+ "Name": "SamplerAddressingMode",
+ "Type": "Value",
+ "Values":
+ {
+ "None": 0,
+ "ClampToEdge": 1,
+ "Clamp": 2,
+ "Repeat": 3,
+ "RepeatMirrored": 4
+ }
+ },
+ {
+ "Name": "SamplerFilterMode",
+ "Type": "Value",
+ "Values":
+ {
+ "Nearest": 0,
+ "Linear": 1
+ }
+ },
+ {
+ "Name": "ImageFormat",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "ImageChannelOrder",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "ImageChannelDataType",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "ImageOperands",
+ "Type": "Bit",
+ "Values":
+ {
+ "Bias": 0,
+ "Lod": 1,
+ "Grad": 2,
+ "ConstOffset": 3,
+ "Offset": 4,
+ "ConstOffsets": 5,
+ "Sample": 6,
+ "MinLod": 7
+ }
+ },
+ {
+ "Name": "FPFastMathMode",
+ "Type": "Bit",
+ "Values":
+ {
+ "NotNaN": 0,
+ "NotInf": 1,
+ "NSZ": 2,
+ "AllowRecip": 3,
+ "Fast": 4
+ }
+ },
+ {
+ "Name": "FPRoundingMode",
+ "Type": "Value",
+ "Values":
+ {
+ "RTE": 0,
+ "RTZ": 1,
+ "RTP": 2,
+ "RTN": 3
+ }
+ },
+ {
+ "Name": "LinkageType",
+ "Type": "Value",
+ "Values":
+ {
+ "Export": 0,
+ "Import": 1
+ }
+ },
+ {
+ "Name": "AccessQualifier",
+ "Type": "Value",
+ "Values":
+ {
+ "ReadOnly": 0,
+ "WriteOnly": 1,
+ "ReadWrite": 2
+ }
+ },
+ {
+ "Name": "FunctionParameterAttribute",
+ "Type": "Value",
+ "Values":
+ {
+ "Zext": 0,
+ "Sext": 1,
+ "ByVal": 2,
+ "Sret": 3,
+ "NoAlias": 4,
+ "NoCapture": 5,
+ "NoWrite": 6,
+ "NoReadWrite": 7
+ }
+ },
+ {
+ "Name": "Decoration",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "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,
+ "ExplicitInterpAMD": 4999,
+ "OverrideCoverageNV": 5248,
+ "PassthroughNV": 5250,
+ "ViewportRelativeNV": 5252,
+ "SecondaryViewportRelativeNV": 5256,
+ "HlslCounterBufferGOOGLE": 5634,
+ "HlslSemanticGOOGLE": 5635
+ }
+ },
+ {
+ "Name": "BuiltIn",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "SubgroupEqMaskKHR": 4416,
+ "SubgroupGeMaskKHR": 4417,
+ "SubgroupGtMaskKHR": 4418,
+ "SubgroupLeMaskKHR": 4419,
+ "SubgroupLtMaskKHR": 4420,
+ "BaseVertex": 4424,
+ "BaseInstance": 4425,
+ "DrawIndex": 4426,
+ "DeviceIndex": 4438,
+ "ViewIndex": 4440,
+ "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
+ }
+ },
+ {
+ "Name": "SelectionControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Flatten": 0,
+ "DontFlatten": 1
+ }
+ },
+ {
+ "Name": "LoopControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Unroll": 0,
+ "DontUnroll": 1,
+ "DependencyInfinite": 2,
+ "DependencyLength": 3
+ }
+ },
+ {
+ "Name": "FunctionControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Inline": 0,
+ "DontInline": 1,
+ "Pure": 2,
+ "Const": 3
+ }
+ },
+ {
+ "Name": "MemorySemantics",
+ "Type": "Bit",
+ "Values":
+ {
+ "Acquire": 1,
+ "Release": 2,
+ "AcquireRelease": 3,
+ "SequentiallyConsistent": 4,
+ "UniformMemory": 6,
+ "SubgroupMemory": 7,
+ "WorkgroupMemory": 8,
+ "CrossWorkgroupMemory": 9,
+ "AtomicCounterMemory": 10,
+ "ImageMemory": 11
+ }
+ },
+ {
+ "Name": "MemoryAccess",
+ "Type": "Bit",
+ "Values":
+ {
+ "Volatile": 0,
+ "Aligned": 1,
+ "Nontemporal": 2
+ }
+ },
+ {
+ "Name": "Scope",
+ "Type": "Value",
+ "Values":
+ {
+ "CrossDevice": 0,
+ "Device": 1,
+ "Workgroup": 2,
+ "Subgroup": 3,
+ "Invocation": 4
+ }
+ },
+ {
+ "Name": "GroupOperation",
+ "Type": "Value",
+ "Values":
+ {
+ "Reduce": 0,
+ "InclusiveScan": 1,
+ "ExclusiveScan": 2
+ }
+ },
+ {
+ "Name": "KernelEnqueueFlags",
+ "Type": "Value",
+ "Values":
+ {
+ "NoWait": 0,
+ "WaitKernel": 1,
+ "WaitWorkGroup": 2
+ }
+ },
+ {
+ "Name": "KernelProfilingInfo",
+ "Type": "Bit",
+ "Values":
+ {
+ "CmdExecTime": 0
+ }
+ },
+ {
+ "Name": "Capability",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "SubgroupBallotKHR": 4423,
+ "DrawParameters": 4427,
+ "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,
+ "ImageGatherBiasLodAMD": 5009,
+ "FragmentMaskAMD": 5010,
+ "StencilExportEXT": 5013,
+ "ImageReadWriteLodAMD": 5015,
+ "SampleMaskOverrideCoverageNV": 5249,
+ "GeometryShaderPassthroughNV": 5251,
+ "ShaderViewportIndexLayerEXT": 5254,
+ "ShaderViewportIndexLayerNV": 5254,
+ "ShaderViewportMaskNV": 5255,
+ "ShaderStereoViewNV": 5259,
+ "PerViewAttributesNV": 5260,
+ "SubgroupShuffleINTEL": 5568,
+ "SubgroupBufferBlockIOINTEL": 5569,
+ "SubgroupImageBlockIOINTEL": 5570
+ }
+ },
+ {
+ "Name": "Op",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "OpSubgroupBallotKHR": 4421,
+ "OpSubgroupFirstInvocationKHR": 4422,
+ "OpSubgroupAllKHR": 4428,
+ "OpSubgroupAnyKHR": 4429,
+ "OpSubgroupAllEqualKHR": 4430,
+ "OpSubgroupReadInvocationKHR": 4432,
+ "OpGroupIAddNonUniformAMD": 5000,
+ "OpGroupFAddNonUniformAMD": 5001,
+ "OpGroupFMinNonUniformAMD": 5002,
+ "OpGroupUMinNonUniformAMD": 5003,
+ "OpGroupSMinNonUniformAMD": 5004,
+ "OpGroupFMaxNonUniformAMD": 5005,
+ "OpGroupUMaxNonUniformAMD": 5006,
+ "OpGroupSMaxNonUniformAMD": 5007,
+ "OpFragmentMaskFetchAMD": 5011,
+ "OpFragmentFetchAMD": 5012,
+ "OpSubgroupShuffleINTEL": 5571,
+ "OpSubgroupShuffleDownINTEL": 5572,
+ "OpSubgroupShuffleUpINTEL": 5573,
+ "OpSubgroupShuffleXorINTEL": 5574,
+ "OpSubgroupBlockReadINTEL": 5575,
+ "OpSubgroupBlockWriteINTEL": 5576,
+ "OpSubgroupImageBlockReadINTEL": 5577,
+ "OpSubgroupImageBlockWriteINTEL": 5578,
+ "OpDecorateStringGOOGLE": 5632,
+ "OpMemberDecorateStringGOOGLE": 5633
+ }
+ }
+ ]
+ }
+}
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.lua b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.lua
new file mode 100644
index 0000000000..0de507d5c9
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.lua
@@ -0,0 +1,977 @@
+-- Copyright (c) 2014-2018 The Khronos Group Inc.
+--
+-- Permission is hereby granted, free of charge, to any person obtaining a copy
+-- of this software and/or associated documentation files (the "Materials"),
+-- to deal in the Materials without restriction, including without limitation
+-- the rights to use, copy, modify, merge, publish, distribute, sublicense,
+-- and/or sell copies of the Materials, and to permit persons to whom the
+-- Materials are furnished to do so, subject to the following conditions:
+--
+-- The above copyright notice and this permission notice shall be included in
+-- all copies or substantial portions of the Materials.
+--
+-- MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+-- STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+-- HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+--
+-- THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+-- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+-- FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+-- IN THE MATERIALS.
+
+-- This header is automatically generated by the same tool that creates
+-- the Binary Section of the SPIR-V specification.
+
+-- Enumeration tokens for SPIR-V, in various styles:
+-- C, C++, C++11, JSON, Lua, Python
+--
+-- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+-- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+-- - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+-- - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+-- - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+--
+-- Some tokens act like mask values, which can be OR'd together,
+-- while others are mutually exclusive. The mask-like ones have
+-- "Mask" in their name, and a parallel enum that has the shift
+-- amount (1 << x) for each corresponding enumerant.
+
+spv = {
+ MagicNumber = 0x07230203,
+ Version = 0x00010200,
+ Revision = 2,
+ OpCodeMask = 0xffff,
+ WordCountShift = 16,
+
+ SourceLanguage = {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ },
+
+ ExecutionModel = {
+ Vertex = 0,
+ TessellationControl = 1,
+ TessellationEvaluation = 2,
+ Geometry = 3,
+ Fragment = 4,
+ GLCompute = 5,
+ Kernel = 6,
+ },
+
+ AddressingModel = {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ },
+
+ MemoryModel = {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ },
+
+ 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,
+ PostDepthCoverage = 4446,
+ StencilRefReplacingEXT = 5027,
+ },
+
+ 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,
+ },
+
+ Dim = {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ },
+
+ SamplerAddressingMode = {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ },
+
+ SamplerFilterMode = {
+ Nearest = 0,
+ Linear = 1,
+ },
+
+ ImageFormat = {
+ Unknown = 0,
+ Rgba32f = 1,
+ Rgba16f = 2,
+ R32f = 3,
+ Rgba8 = 4,
+ Rgba8Snorm = 5,
+ Rg32f = 6,
+ Rg16f = 7,
+ R11fG11fB10f = 8,
+ R16f = 9,
+ Rgba16 = 10,
+ Rgb10A2 = 11,
+ Rg16 = 12,
+ Rg8 = 13,
+ R16 = 14,
+ R8 = 15,
+ Rgba16Snorm = 16,
+ Rg16Snorm = 17,
+ Rg8Snorm = 18,
+ R16Snorm = 19,
+ R8Snorm = 20,
+ Rgba32i = 21,
+ Rgba16i = 22,
+ Rgba8i = 23,
+ R32i = 24,
+ Rg32i = 25,
+ Rg16i = 26,
+ Rg8i = 27,
+ R16i = 28,
+ R8i = 29,
+ Rgba32ui = 30,
+ Rgba16ui = 31,
+ Rgba8ui = 32,
+ R32ui = 33,
+ Rgb10a2ui = 34,
+ Rg32ui = 35,
+ Rg16ui = 36,
+ Rg8ui = 37,
+ R16ui = 38,
+ R8ui = 39,
+ },
+
+ 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,
+ },
+
+ 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,
+ },
+
+ ImageOperandsShift = {
+ Bias = 0,
+ Lod = 1,
+ Grad = 2,
+ ConstOffset = 3,
+ Offset = 4,
+ ConstOffsets = 5,
+ Sample = 6,
+ MinLod = 7,
+ },
+
+ ImageOperandsMask = {
+ MaskNone = 0,
+ Bias = 0x00000001,
+ Lod = 0x00000002,
+ Grad = 0x00000004,
+ ConstOffset = 0x00000008,
+ Offset = 0x00000010,
+ ConstOffsets = 0x00000020,
+ Sample = 0x00000040,
+ MinLod = 0x00000080,
+ },
+
+ FPFastMathModeShift = {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ },
+
+ FPFastMathModeMask = {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+ },
+
+ FPRoundingMode = {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ },
+
+ LinkageType = {
+ Export = 0,
+ Import = 1,
+ },
+
+ AccessQualifier = {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ },
+
+ FunctionParameterAttribute = {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ },
+
+ 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,
+ 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,
+ ExplicitInterpAMD = 4999,
+ OverrideCoverageNV = 5248,
+ PassthroughNV = 5250,
+ ViewportRelativeNV = 5252,
+ SecondaryViewportRelativeNV = 5256,
+ HlslCounterBufferGOOGLE = 5634,
+ HlslSemanticGOOGLE = 5635,
+ },
+
+ 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,
+ SubgroupEqMaskKHR = 4416,
+ SubgroupGeMaskKHR = 4417,
+ SubgroupGtMaskKHR = 4418,
+ SubgroupLeMaskKHR = 4419,
+ SubgroupLtMaskKHR = 4420,
+ BaseVertex = 4424,
+ BaseInstance = 4425,
+ DrawIndex = 4426,
+ DeviceIndex = 4438,
+ ViewIndex = 4440,
+ 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,
+ },
+
+ SelectionControlShift = {
+ Flatten = 0,
+ DontFlatten = 1,
+ },
+
+ SelectionControlMask = {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+ },
+
+ LoopControlShift = {
+ Unroll = 0,
+ DontUnroll = 1,
+ DependencyInfinite = 2,
+ DependencyLength = 3,
+ },
+
+ LoopControlMask = {
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+ DependencyInfinite = 0x00000004,
+ DependencyLength = 0x00000008,
+ },
+
+ FunctionControlShift = {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ },
+
+ FunctionControlMask = {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+ },
+
+ MemorySemanticsShift = {
+ Acquire = 1,
+ Release = 2,
+ AcquireRelease = 3,
+ SequentiallyConsistent = 4,
+ UniformMemory = 6,
+ SubgroupMemory = 7,
+ WorkgroupMemory = 8,
+ CrossWorkgroupMemory = 9,
+ AtomicCounterMemory = 10,
+ ImageMemory = 11,
+ },
+
+ MemorySemanticsMask = {
+ MaskNone = 0,
+ Acquire = 0x00000002,
+ Release = 0x00000004,
+ AcquireRelease = 0x00000008,
+ SequentiallyConsistent = 0x00000010,
+ UniformMemory = 0x00000040,
+ SubgroupMemory = 0x00000080,
+ WorkgroupMemory = 0x00000100,
+ CrossWorkgroupMemory = 0x00000200,
+ AtomicCounterMemory = 0x00000400,
+ ImageMemory = 0x00000800,
+ },
+
+ MemoryAccessShift = {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ },
+
+ MemoryAccessMask = {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+ },
+
+ Scope = {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ },
+
+ GroupOperation = {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ },
+
+ KernelEnqueueFlags = {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ },
+
+ KernelProfilingInfoShift = {
+ CmdExecTime = 0,
+ },
+
+ KernelProfilingInfoMask = {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+ },
+
+ 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,
+ SubgroupBallotKHR = 4423,
+ DrawParameters = 4427,
+ 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,
+ ImageGatherBiasLodAMD = 5009,
+ FragmentMaskAMD = 5010,
+ StencilExportEXT = 5013,
+ ImageReadWriteLodAMD = 5015,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerEXT = 5254,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ SubgroupShuffleINTEL = 5568,
+ SubgroupBufferBlockIOINTEL = 5569,
+ SubgroupImageBlockIOINTEL = 5570,
+ },
+
+ 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,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpSubgroupShuffleINTEL = 5571,
+ OpSubgroupShuffleDownINTEL = 5572,
+ OpSubgroupShuffleUpINTEL = 5573,
+ OpSubgroupShuffleXorINTEL = 5574,
+ OpSubgroupBlockReadINTEL = 5575,
+ OpSubgroupBlockWriteINTEL = 5576,
+ OpSubgroupImageBlockReadINTEL = 5577,
+ OpSubgroupImageBlockWriteINTEL = 5578,
+ OpDecorateStringGOOGLE = 5632,
+ OpMemberDecorateStringGOOGLE = 5633,
+ },
+
+}
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.py b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.py
new file mode 100644
index 0000000000..cefee4d66a
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/1.2/spirv.py
@@ -0,0 +1,977 @@
+# Copyright (c) 2014-2018 The Khronos Group Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and/or associated documentation files (the "Materials"),
+# to deal in the Materials without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Materials, and to permit persons to whom the
+# Materials are furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Materials.
+#
+# MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+# STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+# HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+#
+# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+# IN THE MATERIALS.
+
+# This header is automatically generated by the same tool that creates
+# the Binary Section of the SPIR-V specification.
+
+# Enumeration tokens for SPIR-V, in various styles:
+# C, C++, C++11, JSON, Lua, Python
+#
+# - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+# - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+# - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+# - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+# - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+#
+# Some tokens act like mask values, which can be OR'd together,
+# while others are mutually exclusive. The mask-like ones have
+# "Mask" in their name, and a parallel enum that has the shift
+# amount (1 << x) for each corresponding enumerant.
+
+spv = {
+ 'MagicNumber' : 0x07230203,
+ 'Version' : 0x00010200,
+ 'Revision' : 2,
+ 'OpCodeMask' : 0xffff,
+ 'WordCountShift' : 16,
+
+ 'SourceLanguage' : {
+ 'Unknown' : 0,
+ 'ESSL' : 1,
+ 'GLSL' : 2,
+ 'OpenCL_C' : 3,
+ 'OpenCL_CPP' : 4,
+ 'HLSL' : 5,
+ },
+
+ 'ExecutionModel' : {
+ 'Vertex' : 0,
+ 'TessellationControl' : 1,
+ 'TessellationEvaluation' : 2,
+ 'Geometry' : 3,
+ 'Fragment' : 4,
+ 'GLCompute' : 5,
+ 'Kernel' : 6,
+ },
+
+ 'AddressingModel' : {
+ 'Logical' : 0,
+ 'Physical32' : 1,
+ 'Physical64' : 2,
+ },
+
+ 'MemoryModel' : {
+ 'Simple' : 0,
+ 'GLSL450' : 1,
+ 'OpenCL' : 2,
+ },
+
+ '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,
+ 'PostDepthCoverage' : 4446,
+ 'StencilRefReplacingEXT' : 5027,
+ },
+
+ '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,
+ },
+
+ 'Dim' : {
+ 'Dim1D' : 0,
+ 'Dim2D' : 1,
+ 'Dim3D' : 2,
+ 'Cube' : 3,
+ 'Rect' : 4,
+ 'Buffer' : 5,
+ 'SubpassData' : 6,
+ },
+
+ 'SamplerAddressingMode' : {
+ 'None' : 0,
+ 'ClampToEdge' : 1,
+ 'Clamp' : 2,
+ 'Repeat' : 3,
+ 'RepeatMirrored' : 4,
+ },
+
+ 'SamplerFilterMode' : {
+ 'Nearest' : 0,
+ 'Linear' : 1,
+ },
+
+ 'ImageFormat' : {
+ 'Unknown' : 0,
+ 'Rgba32f' : 1,
+ 'Rgba16f' : 2,
+ 'R32f' : 3,
+ 'Rgba8' : 4,
+ 'Rgba8Snorm' : 5,
+ 'Rg32f' : 6,
+ 'Rg16f' : 7,
+ 'R11fG11fB10f' : 8,
+ 'R16f' : 9,
+ 'Rgba16' : 10,
+ 'Rgb10A2' : 11,
+ 'Rg16' : 12,
+ 'Rg8' : 13,
+ 'R16' : 14,
+ 'R8' : 15,
+ 'Rgba16Snorm' : 16,
+ 'Rg16Snorm' : 17,
+ 'Rg8Snorm' : 18,
+ 'R16Snorm' : 19,
+ 'R8Snorm' : 20,
+ 'Rgba32i' : 21,
+ 'Rgba16i' : 22,
+ 'Rgba8i' : 23,
+ 'R32i' : 24,
+ 'Rg32i' : 25,
+ 'Rg16i' : 26,
+ 'Rg8i' : 27,
+ 'R16i' : 28,
+ 'R8i' : 29,
+ 'Rgba32ui' : 30,
+ 'Rgba16ui' : 31,
+ 'Rgba8ui' : 32,
+ 'R32ui' : 33,
+ 'Rgb10a2ui' : 34,
+ 'Rg32ui' : 35,
+ 'Rg16ui' : 36,
+ 'Rg8ui' : 37,
+ 'R16ui' : 38,
+ 'R8ui' : 39,
+ },
+
+ '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,
+ },
+
+ '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,
+ },
+
+ 'ImageOperandsShift' : {
+ 'Bias' : 0,
+ 'Lod' : 1,
+ 'Grad' : 2,
+ 'ConstOffset' : 3,
+ 'Offset' : 4,
+ 'ConstOffsets' : 5,
+ 'Sample' : 6,
+ 'MinLod' : 7,
+ },
+
+ 'ImageOperandsMask' : {
+ 'MaskNone' : 0,
+ 'Bias' : 0x00000001,
+ 'Lod' : 0x00000002,
+ 'Grad' : 0x00000004,
+ 'ConstOffset' : 0x00000008,
+ 'Offset' : 0x00000010,
+ 'ConstOffsets' : 0x00000020,
+ 'Sample' : 0x00000040,
+ 'MinLod' : 0x00000080,
+ },
+
+ 'FPFastMathModeShift' : {
+ 'NotNaN' : 0,
+ 'NotInf' : 1,
+ 'NSZ' : 2,
+ 'AllowRecip' : 3,
+ 'Fast' : 4,
+ },
+
+ 'FPFastMathModeMask' : {
+ 'MaskNone' : 0,
+ 'NotNaN' : 0x00000001,
+ 'NotInf' : 0x00000002,
+ 'NSZ' : 0x00000004,
+ 'AllowRecip' : 0x00000008,
+ 'Fast' : 0x00000010,
+ },
+
+ 'FPRoundingMode' : {
+ 'RTE' : 0,
+ 'RTZ' : 1,
+ 'RTP' : 2,
+ 'RTN' : 3,
+ },
+
+ 'LinkageType' : {
+ 'Export' : 0,
+ 'Import' : 1,
+ },
+
+ 'AccessQualifier' : {
+ 'ReadOnly' : 0,
+ 'WriteOnly' : 1,
+ 'ReadWrite' : 2,
+ },
+
+ 'FunctionParameterAttribute' : {
+ 'Zext' : 0,
+ 'Sext' : 1,
+ 'ByVal' : 2,
+ 'Sret' : 3,
+ 'NoAlias' : 4,
+ 'NoCapture' : 5,
+ 'NoWrite' : 6,
+ 'NoReadWrite' : 7,
+ },
+
+ '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,
+ '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,
+ 'ExplicitInterpAMD' : 4999,
+ 'OverrideCoverageNV' : 5248,
+ 'PassthroughNV' : 5250,
+ 'ViewportRelativeNV' : 5252,
+ 'SecondaryViewportRelativeNV' : 5256,
+ 'HlslCounterBufferGOOGLE' : 5634,
+ 'HlslSemanticGOOGLE' : 5635,
+ },
+
+ '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,
+ 'SubgroupEqMaskKHR' : 4416,
+ 'SubgroupGeMaskKHR' : 4417,
+ 'SubgroupGtMaskKHR' : 4418,
+ 'SubgroupLeMaskKHR' : 4419,
+ 'SubgroupLtMaskKHR' : 4420,
+ 'BaseVertex' : 4424,
+ 'BaseInstance' : 4425,
+ 'DrawIndex' : 4426,
+ 'DeviceIndex' : 4438,
+ 'ViewIndex' : 4440,
+ '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,
+ },
+
+ 'SelectionControlShift' : {
+ 'Flatten' : 0,
+ 'DontFlatten' : 1,
+ },
+
+ 'SelectionControlMask' : {
+ 'MaskNone' : 0,
+ 'Flatten' : 0x00000001,
+ 'DontFlatten' : 0x00000002,
+ },
+
+ 'LoopControlShift' : {
+ 'Unroll' : 0,
+ 'DontUnroll' : 1,
+ 'DependencyInfinite' : 2,
+ 'DependencyLength' : 3,
+ },
+
+ 'LoopControlMask' : {
+ 'MaskNone' : 0,
+ 'Unroll' : 0x00000001,
+ 'DontUnroll' : 0x00000002,
+ 'DependencyInfinite' : 0x00000004,
+ 'DependencyLength' : 0x00000008,
+ },
+
+ 'FunctionControlShift' : {
+ 'Inline' : 0,
+ 'DontInline' : 1,
+ 'Pure' : 2,
+ 'Const' : 3,
+ },
+
+ 'FunctionControlMask' : {
+ 'MaskNone' : 0,
+ 'Inline' : 0x00000001,
+ 'DontInline' : 0x00000002,
+ 'Pure' : 0x00000004,
+ 'Const' : 0x00000008,
+ },
+
+ 'MemorySemanticsShift' : {
+ 'Acquire' : 1,
+ 'Release' : 2,
+ 'AcquireRelease' : 3,
+ 'SequentiallyConsistent' : 4,
+ 'UniformMemory' : 6,
+ 'SubgroupMemory' : 7,
+ 'WorkgroupMemory' : 8,
+ 'CrossWorkgroupMemory' : 9,
+ 'AtomicCounterMemory' : 10,
+ 'ImageMemory' : 11,
+ },
+
+ 'MemorySemanticsMask' : {
+ 'MaskNone' : 0,
+ 'Acquire' : 0x00000002,
+ 'Release' : 0x00000004,
+ 'AcquireRelease' : 0x00000008,
+ 'SequentiallyConsistent' : 0x00000010,
+ 'UniformMemory' : 0x00000040,
+ 'SubgroupMemory' : 0x00000080,
+ 'WorkgroupMemory' : 0x00000100,
+ 'CrossWorkgroupMemory' : 0x00000200,
+ 'AtomicCounterMemory' : 0x00000400,
+ 'ImageMemory' : 0x00000800,
+ },
+
+ 'MemoryAccessShift' : {
+ 'Volatile' : 0,
+ 'Aligned' : 1,
+ 'Nontemporal' : 2,
+ },
+
+ 'MemoryAccessMask' : {
+ 'MaskNone' : 0,
+ 'Volatile' : 0x00000001,
+ 'Aligned' : 0x00000002,
+ 'Nontemporal' : 0x00000004,
+ },
+
+ 'Scope' : {
+ 'CrossDevice' : 0,
+ 'Device' : 1,
+ 'Workgroup' : 2,
+ 'Subgroup' : 3,
+ 'Invocation' : 4,
+ },
+
+ 'GroupOperation' : {
+ 'Reduce' : 0,
+ 'InclusiveScan' : 1,
+ 'ExclusiveScan' : 2,
+ },
+
+ 'KernelEnqueueFlags' : {
+ 'NoWait' : 0,
+ 'WaitKernel' : 1,
+ 'WaitWorkGroup' : 2,
+ },
+
+ 'KernelProfilingInfoShift' : {
+ 'CmdExecTime' : 0,
+ },
+
+ 'KernelProfilingInfoMask' : {
+ 'MaskNone' : 0,
+ 'CmdExecTime' : 0x00000001,
+ },
+
+ '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,
+ 'SubgroupBallotKHR' : 4423,
+ 'DrawParameters' : 4427,
+ '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,
+ 'ImageGatherBiasLodAMD' : 5009,
+ 'FragmentMaskAMD' : 5010,
+ 'StencilExportEXT' : 5013,
+ 'ImageReadWriteLodAMD' : 5015,
+ 'SampleMaskOverrideCoverageNV' : 5249,
+ 'GeometryShaderPassthroughNV' : 5251,
+ 'ShaderViewportIndexLayerEXT' : 5254,
+ 'ShaderViewportIndexLayerNV' : 5254,
+ 'ShaderViewportMaskNV' : 5255,
+ 'ShaderStereoViewNV' : 5259,
+ 'PerViewAttributesNV' : 5260,
+ 'SubgroupShuffleINTEL' : 5568,
+ 'SubgroupBufferBlockIOINTEL' : 5569,
+ 'SubgroupImageBlockIOINTEL' : 5570,
+ },
+
+ '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,
+ 'OpSubgroupBallotKHR' : 4421,
+ 'OpSubgroupFirstInvocationKHR' : 4422,
+ 'OpSubgroupAllKHR' : 4428,
+ 'OpSubgroupAnyKHR' : 4429,
+ 'OpSubgroupAllEqualKHR' : 4430,
+ 'OpSubgroupReadInvocationKHR' : 4432,
+ 'OpGroupIAddNonUniformAMD' : 5000,
+ 'OpGroupFAddNonUniformAMD' : 5001,
+ 'OpGroupFMinNonUniformAMD' : 5002,
+ 'OpGroupUMinNonUniformAMD' : 5003,
+ 'OpGroupSMinNonUniformAMD' : 5004,
+ 'OpGroupFMaxNonUniformAMD' : 5005,
+ 'OpGroupUMaxNonUniformAMD' : 5006,
+ 'OpGroupSMaxNonUniformAMD' : 5007,
+ 'OpFragmentMaskFetchAMD' : 5011,
+ 'OpFragmentFetchAMD' : 5012,
+ 'OpSubgroupShuffleINTEL' : 5571,
+ 'OpSubgroupShuffleDownINTEL' : 5572,
+ 'OpSubgroupShuffleUpINTEL' : 5573,
+ 'OpSubgroupShuffleXorINTEL' : 5574,
+ 'OpSubgroupBlockReadINTEL' : 5575,
+ 'OpSubgroupBlockWriteINTEL' : 5576,
+ 'OpSubgroupImageBlockReadINTEL' : 5577,
+ 'OpSubgroupImageBlockWriteINTEL' : 5578,
+ 'OpDecorateStringGOOGLE' : 5632,
+ 'OpMemberDecorateStringGOOGLE' : 5633,
+ },
+
+}
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/spir-v.xml b/externals/sirit/externals/SPIRV-Headers/include/spirv/spir-v.xml
new file mode 100644
index 0000000000..dad141be17
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/spir-v.xml
@@ -0,0 +1,282 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<registry>
+ <!--
+ Copyright (c) 2015 The Khronos Group Inc.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and/or associated documentation files (the
+ "Materials"), to deal in the Materials without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Materials, and to
+ permit persons to whom the Materials are furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Materials.
+
+ 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 file, spir-v.xml, is the SPIR-V Tool ID, opcode and enumerant registry.
+ The canonical version of the registry, together with related schema and
+ documentation, can be found in the Khronos Registry at
+ include/spirv/spir-v.xml in the master branch at
+ https://github.com/KhronosGroup/SPIRV-Headers
+ -->
+
+ <!-- SECTION: SPIR-V Tool ID Definitions -->
+
+ <!-- A SPIR-V Generator Magic Number is a 32 bit word: The high order 16
+ bits are a tool ID, which should be unique across all SPIR-V
+ generators. The low order 16 bits are reserved for use as a tool
+ version number, or any other purpose the tool supplier chooses.
+ Only the tool IDs are reserved with Khronos.
+
+ Add new tool ID reservations contiguously with the first available
+ number (the "start" attribute of the <unused> tag below), and
+ modify that <unused> tag accordingly. Please add a vendor/tool
+ supplier name in a 'vendor="name"' attribute; a tool name in a
+ 'tool="name"' attribute; and a contact person/address in a
+ 'comment' attribute. Remember that this value is the high 16 bits
+ of a 32-bit word.
+
+ Note: a single vendor/tool supplier may have multiple tool IDs
+ reserved for different SPIR-V generators -->
+
+ <ids type="vendor" start="0" end="0xFFFF" comment="SPIR-V Tool IDs">
+ <id value="0" vendor="Khronos" comment="Reserved by Khronos"/>
+ <id value="1" vendor="LunarG" comment="Contact TBD"/>
+ <id value="2" vendor="Valve" comment="Contact TBD"/>
+ <id value="3" vendor="Codeplay" comment="Contact Victor Lomuller, victor@codeplay.com"/>
+ <id value="4" vendor="NVIDIA" comment="Contact Kerch Holt, kholt@nvidia.com"/>
+ <id value="5" vendor="ARM" comment="Contact Kevin Petit, kevin.petit@arm.com"/>
+ <id value="6" vendor="Khronos" tool="LLVM/SPIR-V Translator" comment="Contact Yaxun (Sam) Liu, yaxun.liu@amd.com"/>
+ <id value="7" vendor="Khronos" tool="SPIR-V Tools Assembler" comment="Contact David Neto, dneto@google.com"/>
+ <id value="8" vendor="Khronos" tool="Glslang Reference Front End" comment="Contact John Kessenich, johnkessenich@google.com"/>
+ <id value="9" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/>
+ <id value="10" vendor="AMD" comment="Contact Daniel Rakos, daniel.rakos@amd.com"/>
+ <id value="11" vendor="Intel" comment="Contact Alexey, alexey.bader@intel.com"/>
+ <id value="12" vendor="Imagination" comment="Contact James Jones"/>
+ <id value="13" vendor="Google" tool="Shaderc over Glslang" comment="Contact David Neto, dneto@google.com"/>
+ <id value="14" vendor="Google" tool="spiregg" comment="Contact Lei Zhang, antiagainst@google.com"/>
+ <id value="15" vendor="Google" tool="rspirv" comment="Contact Lei Zhang, antiagainst@gmail.com"/>
+ <id value="16" vendor="X-LEGEND" tool="Mesa-IR/SPIR-V Translator" comment="Contact Metora Wang, github:metora/MesaGLSLCompiler"/>
+ <id value="17" vendor="Khronos" tool="SPIR-V Tools Linker" comment="Contact David Neto, dneto@google.com"/>
+ <id value="18" vendor="Wine" tool="VKD3D Shader Compiler" comment="Contact wine-devel@winehq.org"/>
+ <id value="19" vendor="Tellusim" tool="Clay Shader Compiler" comment="Contact info@tellusim.com"/>
+ <id value="20" vendor="W3C WebGPU Group" tool="WHLSL Shader Translator" comment="https://github.com/gpuweb/WHLSL"/>
+ <id value="21" vendor="Google" tool="Clspv" comment="Contact David Neto, dneto@google.com"/>
+ <id value="22" vendor="Google" tool="MLIR SPIR-V Serializer" comment="Contact Lei Zhang, antiagainst@google.com"/>
+ <id value="23" vendor="Google" tool="Tint Compiler" comment="Contact David Neto, dneto@google.com"/>
+ <id value="24" vendor="Google" tool="ANGLE Shader Compiler" comment="Contact Shahbaz Youssefi, syoussefi@google.com"/>
+ <id value="25" vendor="Netease Games" tool="Messiah Shader Compiler" comment="Contact Yuwen Wu, atyuwen@gmail.com"/>
+ <id value="26" vendor="Xenia" tool="Xenia Emulator Microcode Translator" comment="Contact Vitaliy Kuzmin, triang3l@yandex.ru, https://github.com/xenia-project/xenia"/>
+ <id value="27" vendor="Embark Studios" tool="Rust GPU Compiler Backend" comment="https://github.com/embarkstudios/rust-gpu"/>
+ <id value="28" vendor="gfx-rs community" tool="Naga" comment="https://github.com/gfx-rs/naga"/>
+ <id value="29" vendor="Mikkosoft Productions" tool="MSP Shader Compiler" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
+ <id value="30" vendor="SpvGenTwo community" tool="SpvGenTwo SPIR-V IR Tools" comment="https://github.com/rAzoR8/SpvGenTwo"/>
+ <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"/>
+ <id value="34" vendor="Rayan Hatout" tool="SPIRVSmith" comment="Contact Rayan Hatout rayan.hatout@gmail.com, Repo https://github.com/rayanht/SPIRVSmith"/>
+ <id value="35" vendor="Saarland University" tool="Shady" comment="Contact Hugo Devillers devillers@uni-saarland.de, Repo https://github.com/Hugobros3/shady"/>
+ <unused start="36" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
+ </ids>
+
+ <!-- SECTION: SPIR-V Opcodes and Enumerants -->
+
+ <!-- Vendors reserve new ranges of:
+ - opcode enumerants in the "opcode" list below, and
+ - non-opcode enumerants in the non-opcodes "enumerant" list below.
+ Both are reserved by contiguous blocks of 64, preceding the given
+ "Future use" blocks.
+
+ SPIR-V background:
+ - SPIR-V currently has well over 30 enums, including the opcode enum
+ - each enum has its own name space, allowing reuse of enumerants
+ - SPIR-V restricts opcode enumerants to 16 bits
+ - all other enums use 32-bit enumerants
+
+ Reservation rules:
+ - opcode reservations ("opcode") are only valid for opcodes
+ - non-opcode reservations ("enumerant") are not valid for opcodes
+ - reservations in the enumerant list are valid for all non-opcode enums
+ - it is simpler to use each non-opcode enumerant for only one purpose
+ but this is left to the discretion of the vendor
+ - all enumerants in a range should be used before allocating a new range
+ (several extensions can use enumerants from the same range)
+
+ Each vendor determines the use of enumerants in the ranges they
+ reserve. Vendors are not required to disclose those uses. If the use
+ of an enumerant is included in an extension that is adopted by a Khronos
+ extension or specification, then that enumerant's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+
+ -->
+
+ <!-- Begin reservations of opcode enumerants -->
+ <ids type="opcode" start="0" end="4095" vendor="Khronos" comment="Reserved opcodes, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="opcode" start="4096" end="4159" vendor="Mesa" comment="Contact TBD"/>
+ <ids type="opcode" start="4160" end="4415" vendor="ARM" comment="Contact kevin.petit@arm.com"/>
+ <ids type="opcode" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, neil.henning@amd.com"/>
+ <ids type="opcode" start="4480" end="4991" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/>
+ <ids type="opcode" start="4992" end="5247" vendor="AMD"/>
+ <ids type="opcode" start="5248" end="5503" vendor="NVIDIA"/>
+ <ids type="opcode" start="5504" end="5567" vendor="Imagination"/>
+ <ids type="opcode" start="5568" end="5631" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
+ <ids type="opcode" start="5632" end="5695" vendor="Google" comment="Contact dneto@google.com"/>
+ <ids type="opcode" start="5696" end="5823" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
+ <ids type="opcode" start="5824" end="5951" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="opcode" start="5952" end="6015" vendor="Codeplay" comment="Contact victor@codeplay.com"/>
+ <ids type="opcode" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
+ <ids type="opcode" start="6080" end="6143" vendor="Intel" comment="Contact mariusz.merecki@intel.com"/>
+ <ids type="opcode" start="6144" end="6271" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="opcode" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
+ <ids type="opcode" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
+ <!-- Opcode 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="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
+ <ids type="opcode" start="6464" end="65535" comment="Opcode range reservable for future use by vendors"/>
+ <!-- End reservations of opcodes -->
+
+
+ <!-- Begin reservations of non-opcode enumerants -->
+ <ids type="enumerant" start="0" end="4095" vendor="Khronos" comment="Reserved enumerants, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="enumerant" start="4096" end="4159" vendor="Mesa" comment="Contact TBD"/>
+ <ids type="enumerant" start="4160" end="4415" vendor="ARM" comment="Contact kevin.petit@arm.com"/>
+ <ids type="enumerant" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, neil.henning@amd.com"/>
+ <ids type="enumerant" start="4480" end="4991" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/>
+ <ids type="enumerant" start="4992" end="5247" vendor="AMD"/>
+ <ids type="enumerant" start="5248" end="5503" vendor="NVIDIA"/>
+ <ids type="enumerant" start="5504" end="5567" vendor="Imagination"/>
+ <ids type="enumerant" start="5568" end="5631" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
+ <ids type="enumerant" start="5632" end="5695" vendor="Google" comment="Contact dneto@google.com"/>
+ <ids type="enumerant" start="5696" end="5823" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
+ <ids type="enumerant" start="5824" end="5951" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="enumerant" start="5952" end="6015" vendor="Codeplay" comment="Contact victor@codeplay.com"/>
+ <ids type="enumerant" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
+ <ids type="enumerant" start="6080" end="6143" vendor="Intel" comment="Contact mariusz.merecki@intel.com"/>
+ <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="6528" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
+ <!-- End reservations of enumerants -->
+
+
+ <!-- SECTION: SPIR-V Loop Control Bit Reservations -->
+ <!-- Reserve ranges of bits in the loop control bitfield.
+
+ Each vendor determines the use of values in their own ranges.
+ Vendors are not required to disclose those uses. If the use of a
+ value is included in an extension that is adopted by a Khronos
+ extension or specification, then that value's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+
+ The SPIR Working Group strongly recommends:
+ - Each value is used for only one purpose.
+ - All values in a range should be used before allocating a new range.
+ -->
+
+ <!-- Reserved loop control bits -->
+ <ids type="LoopControl" start="0" end="15" vendor="Khronos" comment="Reserved LoopControl bits, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="LoopControl" start="16" end="25" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="LoopControl" start="26" end="30" comment="Unreserved bits reservable for use by vendors"/>
+ <ids type="LoopControl" start="31" end="31" vendor="Khronos" comment="Reserved LoopControl bit, not available to vendors"/>
+
+
+ <!-- SECTION: SPIR-V Function Control Bit Reservations -->
+ <!-- Reserve ranges of bits in the function control bitfield.
+
+ Each vendor determines the use of values in their own ranges.
+ Vendors are not required to disclose those uses. If the use of a
+ value is included in an extension that is adopted by a Khronos
+ extension or specification, then that value's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+
+ The SPIR Working Group strongly recommends:
+ - Each value is used for only one purpose.
+ - All values in a range should be used before allocating a new range.
+ -->
+
+ <!-- Reserved function control bits -->
+ <ids type="FunctionControl" start="0" end="15" vendor="Khronos" comment="Reserved FunctionControl bits, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="FunctionControl" start="16" end="16" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
+ <ids type="FunctionControl" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
+ <ids type="FunctionControl" start="31" end="31" vendor="Khronos" comment="Reserved FunctionControl bit, not available to vendors"/>
+
+
+ <!-- SECTION: SPIR-V FP Fast Math Mode Bit Reservations -->
+ <!-- Reserve ranges of bits in the "FP Fast Math Mode" bitfield.
+ Each vendor determines the use of values in their own ranges.
+ Vendors are not required to disclose those uses. If the use of a
+ value is included in an extension that is adopted by a Khronos
+ extension or specification, then that value's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+ The SPIR Working Group strongly recommends:
+ - Each value is used for only one purpose.
+ - All values in a range should be used before allocating a new range.
+ -->
+
+ <!-- Reserved FP fast math mode bits -->
+ <ids type="FPFastMathMode" start="0" end="15" vendor="Khronos" comment="Reserved FPFastMathMode bits, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="FPFastMathMode" start="16" end="17" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="FPFastMathMode" start="18" end="31" comment="Unreserved bits reservable for use by vendors"/>
+
+
+ <!-- SECTION: SPIR-V Memory Operand Bit Reservations -->
+ <!-- Reserve ranges of bits in the memory operands bitfield.
+
+ Each vendor determines the use of values in their own ranges.
+ Vendors are not required to disclose those uses. If the use of a
+ value is included in an extension that is adopted by a Khronos
+ extension or specification, then that value's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+
+ The SPIR Working Group strongly recommends:
+ - Each value is used for only one purpose.
+ - All values in a range should be used before allocating a new range.
+ -->
+
+ <!-- Reserved memory operand bits -->
+ <ids type="MemoryOperand" start="0" end="15" vendor="Khronos" comment="Reserved MemoryOperand bits, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="MemoryOperand" start="16" end="17" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="MemoryOperand" start="18" end="30" comment="Unreserved bits reservable for use by vendors"/>
+ <ids type="MemoryOperand" start="31" end="31" vendor="Khronos" comment="Reserved MemoryOperand bit, not available to vendors"/>
+
+ <!-- SECTION: SPIR-V Image Operand Bit Reservations -->
+ <!-- Reserve ranges of bits in the image operands bitfield.
+
+ Each vendor determines the use of values in their own ranges.
+ Vendors are not required to disclose those uses. If the use of a
+ value is included in an extension that is adopted by a Khronos
+ extension or specification, then that value's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+
+ The SPIR Working Group strongly recommends:
+ - Each value is used for only one purpose.
+ - All values in a range should be used before allocating a new range.
+ -->
+
+ <!-- Reserved image operand bits -->
+ <ids type="ImageOperand" start="0" end="15" vendor="Khronos" comment="Reserved ImageOperand bits, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="ImageOperand" start="16" end="16" vendor="Nvidia" comment="Contact pmistry@nvidia.com"/>
+ <ids type="ImageOperand" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
+ <ids type="ImageOperand" start="31" end="31" vendor="Khronos" comment="Reserved ImageOperand bit, not available to vendors"/>
+
+</registry>
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_gcn_shader.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_gcn_shader.h
new file mode 100644
index 0000000000..80165ae5c0
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_gcn_shader.h
@@ -0,0 +1,52 @@
+// Copyright (c) 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.
+//
+
+#ifndef SPIRV_UNIFIED1_AMD_gcn_shader_H_
+#define SPIRV_UNIFIED1_AMD_gcn_shader_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ AMD_gcn_shaderRevision = 2,
+ AMD_gcn_shaderRevision_BitWidthPadding = 0x7fffffff
+};
+
+enum AMD_gcn_shaderInstructions {
+ AMD_gcn_shaderCubeFaceIndexAMD = 1,
+ AMD_gcn_shaderCubeFaceCoordAMD = 2,
+ AMD_gcn_shaderTimeAMD = 3,
+ AMD_gcn_shaderInstructionsMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_AMD_gcn_shader_H_
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_shader_ballot.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_shader_ballot.h
new file mode 100644
index 0000000000..8a8bb6eced
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_shader_ballot.h
@@ -0,0 +1,53 @@
+// Copyright (c) 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.
+//
+
+#ifndef SPIRV_UNIFIED1_AMD_shader_ballot_H_
+#define SPIRV_UNIFIED1_AMD_shader_ballot_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ AMD_shader_ballotRevision = 5,
+ AMD_shader_ballotRevision_BitWidthPadding = 0x7fffffff
+};
+
+enum AMD_shader_ballotInstructions {
+ AMD_shader_ballotSwizzleInvocationsAMD = 1,
+ AMD_shader_ballotSwizzleInvocationsMaskedAMD = 2,
+ AMD_shader_ballotWriteInvocationAMD = 3,
+ AMD_shader_ballotMbcntAMD = 4,
+ AMD_shader_ballotInstructionsMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_AMD_shader_ballot_H_
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_shader_explicit_vertex_parameter.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_shader_explicit_vertex_parameter.h
new file mode 100644
index 0000000000..12b6480f13
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_shader_explicit_vertex_parameter.h
@@ -0,0 +1,50 @@
+// Copyright (c) 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.
+//
+
+#ifndef SPIRV_UNIFIED1_AMD_shader_explicit_vertex_parameter_H_
+#define SPIRV_UNIFIED1_AMD_shader_explicit_vertex_parameter_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ AMD_shader_explicit_vertex_parameterRevision = 4,
+ AMD_shader_explicit_vertex_parameterRevision_BitWidthPadding = 0x7fffffff
+};
+
+enum AMD_shader_explicit_vertex_parameterInstructions {
+ AMD_shader_explicit_vertex_parameterInterpolateAtVertexAMD = 1,
+ AMD_shader_explicit_vertex_parameterInstructionsMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_AMD_shader_explicit_vertex_parameter_H_
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_shader_trinary_minmax.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_shader_trinary_minmax.h
new file mode 100644
index 0000000000..1b14997d27
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/AMD_shader_trinary_minmax.h
@@ -0,0 +1,58 @@
+// Copyright (c) 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.
+//
+
+#ifndef SPIRV_UNIFIED1_AMD_shader_trinary_minmax_H_
+#define SPIRV_UNIFIED1_AMD_shader_trinary_minmax_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ AMD_shader_trinary_minmaxRevision = 4,
+ AMD_shader_trinary_minmaxRevision_BitWidthPadding = 0x7fffffff
+};
+
+enum AMD_shader_trinary_minmaxInstructions {
+ AMD_shader_trinary_minmaxFMin3AMD = 1,
+ AMD_shader_trinary_minmaxUMin3AMD = 2,
+ AMD_shader_trinary_minmaxSMin3AMD = 3,
+ AMD_shader_trinary_minmaxFMax3AMD = 4,
+ AMD_shader_trinary_minmaxUMax3AMD = 5,
+ AMD_shader_trinary_minmaxSMax3AMD = 6,
+ AMD_shader_trinary_minmaxFMid3AMD = 7,
+ AMD_shader_trinary_minmaxUMid3AMD = 8,
+ AMD_shader_trinary_minmaxSMid3AMD = 9,
+ AMD_shader_trinary_minmaxInstructionsMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_AMD_shader_trinary_minmax_H_
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/DebugInfo.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/DebugInfo.h
new file mode 100644
index 0000000000..4657556bf0
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/DebugInfo.h
@@ -0,0 +1,144 @@
+// Copyright (c) 2017 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+#ifndef SPIRV_UNIFIED1_DebugInfo_H_
+#define SPIRV_UNIFIED1_DebugInfo_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ DebugInfoVersion = 100,
+ DebugInfoVersion_BitWidthPadding = 0x7fffffff
+};
+enum {
+ DebugInfoRevision = 1,
+ DebugInfoRevision_BitWidthPadding = 0x7fffffff
+};
+
+enum DebugInfoInstructions {
+ DebugInfoDebugInfoNone = 0,
+ DebugInfoDebugCompilationUnit = 1,
+ DebugInfoDebugTypeBasic = 2,
+ DebugInfoDebugTypePointer = 3,
+ DebugInfoDebugTypeQualifier = 4,
+ DebugInfoDebugTypeArray = 5,
+ DebugInfoDebugTypeVector = 6,
+ DebugInfoDebugTypedef = 7,
+ DebugInfoDebugTypeFunction = 8,
+ DebugInfoDebugTypeEnum = 9,
+ DebugInfoDebugTypeComposite = 10,
+ DebugInfoDebugTypeMember = 11,
+ DebugInfoDebugTypeInheritance = 12,
+ DebugInfoDebugTypePtrToMember = 13,
+ DebugInfoDebugTypeTemplate = 14,
+ DebugInfoDebugTypeTemplateParameter = 15,
+ DebugInfoDebugTypeTemplateTemplateParameter = 16,
+ DebugInfoDebugTypeTemplateParameterPack = 17,
+ DebugInfoDebugGlobalVariable = 18,
+ DebugInfoDebugFunctionDeclaration = 19,
+ DebugInfoDebugFunction = 20,
+ DebugInfoDebugLexicalBlock = 21,
+ DebugInfoDebugLexicalBlockDiscriminator = 22,
+ DebugInfoDebugScope = 23,
+ DebugInfoDebugNoScope = 24,
+ DebugInfoDebugInlinedAt = 25,
+ DebugInfoDebugLocalVariable = 26,
+ DebugInfoDebugInlinedVariable = 27,
+ DebugInfoDebugDeclare = 28,
+ DebugInfoDebugValue = 29,
+ DebugInfoDebugOperation = 30,
+ DebugInfoDebugExpression = 31,
+ DebugInfoDebugMacroDef = 32,
+ DebugInfoDebugMacroUndef = 33,
+ DebugInfoInstructionsMax = 0x7fffffff
+};
+
+
+enum DebugInfoDebugInfoFlags {
+ DebugInfoNone = 0x0000,
+ DebugInfoFlagIsProtected = 0x01,
+ DebugInfoFlagIsPrivate = 0x02,
+ DebugInfoFlagIsPublic = 0x03,
+ DebugInfoFlagIsLocal = 0x04,
+ DebugInfoFlagIsDefinition = 0x08,
+ DebugInfoFlagFwdDecl = 0x10,
+ DebugInfoFlagArtificial = 0x20,
+ DebugInfoFlagExplicit = 0x40,
+ DebugInfoFlagPrototyped = 0x80,
+ DebugInfoFlagObjectPointer = 0x100,
+ DebugInfoFlagStaticMember = 0x200,
+ DebugInfoFlagIndirectVariable = 0x400,
+ DebugInfoFlagLValueReference = 0x800,
+ DebugInfoFlagRValueReference = 0x1000,
+ DebugInfoFlagIsOptimized = 0x2000,
+ DebugInfoDebugInfoFlagsMax = 0x7fffffff
+};
+
+enum DebugInfoDebugBaseTypeAttributeEncoding {
+ DebugInfoUnspecified = 0,
+ DebugInfoAddress = 1,
+ DebugInfoBoolean = 2,
+ DebugInfoFloat = 4,
+ DebugInfoSigned = 5,
+ DebugInfoSignedChar = 6,
+ DebugInfoUnsigned = 7,
+ DebugInfoUnsignedChar = 8,
+ DebugInfoDebugBaseTypeAttributeEncodingMax = 0x7fffffff
+};
+
+enum DebugInfoDebugCompositeType {
+ DebugInfoClass = 0,
+ DebugInfoStructure = 1,
+ DebugInfoUnion = 2,
+ DebugInfoDebugCompositeTypeMax = 0x7fffffff
+};
+
+enum DebugInfoDebugTypeQualifier {
+ DebugInfoConstType = 0,
+ DebugInfoVolatileType = 1,
+ DebugInfoRestrictType = 2,
+ DebugInfoDebugTypeQualifierMax = 0x7fffffff
+};
+
+enum DebugInfoDebugOperation {
+ DebugInfoDeref = 0,
+ DebugInfoPlus = 1,
+ DebugInfoMinus = 2,
+ DebugInfoPlusUconst = 3,
+ DebugInfoBitPiece = 4,
+ DebugInfoSwap = 5,
+ DebugInfoXderef = 6,
+ DebugInfoStackValue = 7,
+ DebugInfoConstu = 8,
+ DebugInfoDebugOperationMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_DebugInfo_H_
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/GLSL.std.450.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/GLSL.std.450.h
new file mode 100644
index 0000000000..54cc00e9a8
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/GLSL.std.450.h
@@ -0,0 +1,131 @@
+/*
+** Copyright (c) 2014-2016 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+#ifndef GLSLstd450_H
+#define GLSLstd450_H
+
+static const int GLSLstd450Version = 100;
+static const int GLSLstd450Revision = 3;
+
+enum GLSLstd450 {
+ GLSLstd450Bad = 0, // Don't use
+
+ GLSLstd450Round = 1,
+ GLSLstd450RoundEven = 2,
+ GLSLstd450Trunc = 3,
+ GLSLstd450FAbs = 4,
+ GLSLstd450SAbs = 5,
+ GLSLstd450FSign = 6,
+ GLSLstd450SSign = 7,
+ GLSLstd450Floor = 8,
+ GLSLstd450Ceil = 9,
+ GLSLstd450Fract = 10,
+
+ GLSLstd450Radians = 11,
+ GLSLstd450Degrees = 12,
+ GLSLstd450Sin = 13,
+ GLSLstd450Cos = 14,
+ GLSLstd450Tan = 15,
+ GLSLstd450Asin = 16,
+ GLSLstd450Acos = 17,
+ GLSLstd450Atan = 18,
+ GLSLstd450Sinh = 19,
+ GLSLstd450Cosh = 20,
+ GLSLstd450Tanh = 21,
+ GLSLstd450Asinh = 22,
+ GLSLstd450Acosh = 23,
+ GLSLstd450Atanh = 24,
+ GLSLstd450Atan2 = 25,
+
+ GLSLstd450Pow = 26,
+ GLSLstd450Exp = 27,
+ GLSLstd450Log = 28,
+ GLSLstd450Exp2 = 29,
+ GLSLstd450Log2 = 30,
+ GLSLstd450Sqrt = 31,
+ GLSLstd450InverseSqrt = 32,
+
+ GLSLstd450Determinant = 33,
+ GLSLstd450MatrixInverse = 34,
+
+ GLSLstd450Modf = 35, // second operand needs an OpVariable to write to
+ GLSLstd450ModfStruct = 36, // no OpVariable operand
+ GLSLstd450FMin = 37,
+ GLSLstd450UMin = 38,
+ GLSLstd450SMin = 39,
+ GLSLstd450FMax = 40,
+ GLSLstd450UMax = 41,
+ GLSLstd450SMax = 42,
+ GLSLstd450FClamp = 43,
+ GLSLstd450UClamp = 44,
+ GLSLstd450SClamp = 45,
+ GLSLstd450FMix = 46,
+ GLSLstd450IMix = 47, // Reserved
+ GLSLstd450Step = 48,
+ GLSLstd450SmoothStep = 49,
+
+ GLSLstd450Fma = 50,
+ GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to
+ GLSLstd450FrexpStruct = 52, // no OpVariable operand
+ GLSLstd450Ldexp = 53,
+
+ GLSLstd450PackSnorm4x8 = 54,
+ GLSLstd450PackUnorm4x8 = 55,
+ GLSLstd450PackSnorm2x16 = 56,
+ GLSLstd450PackUnorm2x16 = 57,
+ GLSLstd450PackHalf2x16 = 58,
+ GLSLstd450PackDouble2x32 = 59,
+ GLSLstd450UnpackSnorm2x16 = 60,
+ GLSLstd450UnpackUnorm2x16 = 61,
+ GLSLstd450UnpackHalf2x16 = 62,
+ GLSLstd450UnpackSnorm4x8 = 63,
+ GLSLstd450UnpackUnorm4x8 = 64,
+ GLSLstd450UnpackDouble2x32 = 65,
+
+ GLSLstd450Length = 66,
+ GLSLstd450Distance = 67,
+ GLSLstd450Cross = 68,
+ GLSLstd450Normalize = 69,
+ GLSLstd450FaceForward = 70,
+ GLSLstd450Reflect = 71,
+ GLSLstd450Refract = 72,
+
+ GLSLstd450FindILsb = 73,
+ GLSLstd450FindSMsb = 74,
+ GLSLstd450FindUMsb = 75,
+
+ GLSLstd450InterpolateAtCentroid = 76,
+ GLSLstd450InterpolateAtSample = 77,
+ GLSLstd450InterpolateAtOffset = 78,
+
+ GLSLstd450NMin = 79,
+ GLSLstd450NMax = 80,
+ GLSLstd450NClamp = 81,
+
+ GLSLstd450Count
+};
+
+#endif // #ifndef GLSLstd450_H
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/NonSemanticClspvReflection.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/NonSemanticClspvReflection.h
new file mode 100644
index 0000000000..0cdf29d129
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/NonSemanticClspvReflection.h
@@ -0,0 +1,84 @@
+// Copyright (c) 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.
+//
+
+#ifndef SPIRV_UNIFIED1_NonSemanticClspvReflection_H_
+#define SPIRV_UNIFIED1_NonSemanticClspvReflection_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ NonSemanticClspvReflectionRevision = 4,
+ NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff
+};
+
+enum NonSemanticClspvReflectionInstructions {
+ NonSemanticClspvReflectionKernel = 1,
+ NonSemanticClspvReflectionArgumentInfo = 2,
+ NonSemanticClspvReflectionArgumentStorageBuffer = 3,
+ NonSemanticClspvReflectionArgumentUniform = 4,
+ NonSemanticClspvReflectionArgumentPodStorageBuffer = 5,
+ NonSemanticClspvReflectionArgumentPodUniform = 6,
+ NonSemanticClspvReflectionArgumentPodPushConstant = 7,
+ NonSemanticClspvReflectionArgumentSampledImage = 8,
+ NonSemanticClspvReflectionArgumentStorageImage = 9,
+ NonSemanticClspvReflectionArgumentSampler = 10,
+ NonSemanticClspvReflectionArgumentWorkgroup = 11,
+ NonSemanticClspvReflectionSpecConstantWorkgroupSize = 12,
+ NonSemanticClspvReflectionSpecConstantGlobalOffset = 13,
+ NonSemanticClspvReflectionSpecConstantWorkDim = 14,
+ NonSemanticClspvReflectionPushConstantGlobalOffset = 15,
+ NonSemanticClspvReflectionPushConstantEnqueuedLocalSize = 16,
+ NonSemanticClspvReflectionPushConstantGlobalSize = 17,
+ NonSemanticClspvReflectionPushConstantRegionOffset = 18,
+ NonSemanticClspvReflectionPushConstantNumWorkgroups = 19,
+ NonSemanticClspvReflectionPushConstantRegionGroupOffset = 20,
+ NonSemanticClspvReflectionConstantDataStorageBuffer = 21,
+ NonSemanticClspvReflectionConstantDataUniform = 22,
+ NonSemanticClspvReflectionLiteralSampler = 23,
+ NonSemanticClspvReflectionPropertyRequiredWorkgroupSize = 24,
+ NonSemanticClspvReflectionSpecConstantSubgroupMaxSize = 25,
+ NonSemanticClspvReflectionArgumentPointerPushConstant = 26,
+ NonSemanticClspvReflectionArgumentPointerUniform = 27,
+ NonSemanticClspvReflectionProgramScopeVariablesStorageBuffer = 28,
+ NonSemanticClspvReflectionProgramScopeVariablePointerRelocation = 29,
+ NonSemanticClspvReflectionImageArgumentInfoChannelOrderPushConstant = 30,
+ NonSemanticClspvReflectionImageArgumentInfoChannelDataTypePushConstant = 31,
+ NonSemanticClspvReflectionImageArgumentInfoChannelOrderUniform = 32,
+ NonSemanticClspvReflectionImageArgumentInfoChannelDataTypeUniform = 33,
+ NonSemanticClspvReflectionArgumentStorageTexelBuffer = 34,
+ NonSemanticClspvReflectionArgumentUniformTexelBuffer = 35,
+ NonSemanticClspvReflectionInstructionsMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_NonSemanticClspvReflection_H_
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/NonSemanticDebugPrintf.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/NonSemanticDebugPrintf.h
new file mode 100644
index 0000000000..83796d75e5
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/NonSemanticDebugPrintf.h
@@ -0,0 +1,50 @@
+// Copyright (c) 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.
+//
+
+#ifndef SPIRV_UNIFIED1_NonSemanticDebugPrintf_H_
+#define SPIRV_UNIFIED1_NonSemanticDebugPrintf_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ NonSemanticDebugPrintfRevision = 1,
+ NonSemanticDebugPrintfRevision_BitWidthPadding = 0x7fffffff
+};
+
+enum NonSemanticDebugPrintfInstructions {
+ NonSemanticDebugPrintfDebugPrintf = 1,
+ NonSemanticDebugPrintfInstructionsMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_NonSemanticDebugPrintf_H_
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/NonSemanticShaderDebugInfo100.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/NonSemanticShaderDebugInfo100.h
new file mode 100644
index 0000000000..c52f32f809
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/NonSemanticShaderDebugInfo100.h
@@ -0,0 +1,171 @@
+// Copyright (c) 2018 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+#ifndef SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_
+#define SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ NonSemanticShaderDebugInfo100Version = 100,
+ NonSemanticShaderDebugInfo100Version_BitWidthPadding = 0x7fffffff
+};
+enum {
+ NonSemanticShaderDebugInfo100Revision = 6,
+ NonSemanticShaderDebugInfo100Revision_BitWidthPadding = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100Instructions {
+ NonSemanticShaderDebugInfo100DebugInfoNone = 0,
+ NonSemanticShaderDebugInfo100DebugCompilationUnit = 1,
+ NonSemanticShaderDebugInfo100DebugTypeBasic = 2,
+ NonSemanticShaderDebugInfo100DebugTypePointer = 3,
+ NonSemanticShaderDebugInfo100DebugTypeQualifier = 4,
+ NonSemanticShaderDebugInfo100DebugTypeArray = 5,
+ NonSemanticShaderDebugInfo100DebugTypeVector = 6,
+ NonSemanticShaderDebugInfo100DebugTypedef = 7,
+ NonSemanticShaderDebugInfo100DebugTypeFunction = 8,
+ NonSemanticShaderDebugInfo100DebugTypeEnum = 9,
+ NonSemanticShaderDebugInfo100DebugTypeComposite = 10,
+ NonSemanticShaderDebugInfo100DebugTypeMember = 11,
+ NonSemanticShaderDebugInfo100DebugTypeInheritance = 12,
+ NonSemanticShaderDebugInfo100DebugTypePtrToMember = 13,
+ NonSemanticShaderDebugInfo100DebugTypeTemplate = 14,
+ NonSemanticShaderDebugInfo100DebugTypeTemplateParameter = 15,
+ NonSemanticShaderDebugInfo100DebugTypeTemplateTemplateParameter = 16,
+ NonSemanticShaderDebugInfo100DebugTypeTemplateParameterPack = 17,
+ NonSemanticShaderDebugInfo100DebugGlobalVariable = 18,
+ NonSemanticShaderDebugInfo100DebugFunctionDeclaration = 19,
+ NonSemanticShaderDebugInfo100DebugFunction = 20,
+ NonSemanticShaderDebugInfo100DebugLexicalBlock = 21,
+ NonSemanticShaderDebugInfo100DebugLexicalBlockDiscriminator = 22,
+ NonSemanticShaderDebugInfo100DebugScope = 23,
+ NonSemanticShaderDebugInfo100DebugNoScope = 24,
+ NonSemanticShaderDebugInfo100DebugInlinedAt = 25,
+ NonSemanticShaderDebugInfo100DebugLocalVariable = 26,
+ NonSemanticShaderDebugInfo100DebugInlinedVariable = 27,
+ NonSemanticShaderDebugInfo100DebugDeclare = 28,
+ NonSemanticShaderDebugInfo100DebugValue = 29,
+ NonSemanticShaderDebugInfo100DebugOperation = 30,
+ NonSemanticShaderDebugInfo100DebugExpression = 31,
+ NonSemanticShaderDebugInfo100DebugMacroDef = 32,
+ NonSemanticShaderDebugInfo100DebugMacroUndef = 33,
+ NonSemanticShaderDebugInfo100DebugImportedEntity = 34,
+ NonSemanticShaderDebugInfo100DebugSource = 35,
+ NonSemanticShaderDebugInfo100DebugFunctionDefinition = 101,
+ NonSemanticShaderDebugInfo100DebugSourceContinued = 102,
+ NonSemanticShaderDebugInfo100DebugLine = 103,
+ NonSemanticShaderDebugInfo100DebugNoLine = 104,
+ NonSemanticShaderDebugInfo100DebugBuildIdentifier = 105,
+ NonSemanticShaderDebugInfo100DebugStoragePath = 106,
+ NonSemanticShaderDebugInfo100DebugEntryPoint = 107,
+ NonSemanticShaderDebugInfo100DebugTypeMatrix = 108,
+ NonSemanticShaderDebugInfo100InstructionsMax = 0x7fffffff
+};
+
+
+enum NonSemanticShaderDebugInfo100DebugInfoFlags {
+ NonSemanticShaderDebugInfo100None = 0x0000,
+ NonSemanticShaderDebugInfo100FlagIsProtected = 0x01,
+ NonSemanticShaderDebugInfo100FlagIsPrivate = 0x02,
+ NonSemanticShaderDebugInfo100FlagIsPublic = 0x03,
+ NonSemanticShaderDebugInfo100FlagIsLocal = 0x04,
+ NonSemanticShaderDebugInfo100FlagIsDefinition = 0x08,
+ NonSemanticShaderDebugInfo100FlagFwdDecl = 0x10,
+ NonSemanticShaderDebugInfo100FlagArtificial = 0x20,
+ NonSemanticShaderDebugInfo100FlagExplicit = 0x40,
+ NonSemanticShaderDebugInfo100FlagPrototyped = 0x80,
+ NonSemanticShaderDebugInfo100FlagObjectPointer = 0x100,
+ NonSemanticShaderDebugInfo100FlagStaticMember = 0x200,
+ NonSemanticShaderDebugInfo100FlagIndirectVariable = 0x400,
+ NonSemanticShaderDebugInfo100FlagLValueReference = 0x800,
+ NonSemanticShaderDebugInfo100FlagRValueReference = 0x1000,
+ NonSemanticShaderDebugInfo100FlagIsOptimized = 0x2000,
+ NonSemanticShaderDebugInfo100FlagIsEnumClass = 0x4000,
+ NonSemanticShaderDebugInfo100FlagTypePassByValue = 0x8000,
+ NonSemanticShaderDebugInfo100FlagTypePassByReference = 0x10000,
+ NonSemanticShaderDebugInfo100FlagUnknownPhysicalLayout = 0x20000,
+ NonSemanticShaderDebugInfo100DebugInfoFlagsMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100BuildIdentifierFlags {
+ NonSemanticShaderDebugInfo100IdentifierPossibleDuplicates = 0x01,
+ NonSemanticShaderDebugInfo100BuildIdentifierFlagsMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugBaseTypeAttributeEncoding {
+ NonSemanticShaderDebugInfo100Unspecified = 0,
+ NonSemanticShaderDebugInfo100Address = 1,
+ NonSemanticShaderDebugInfo100Boolean = 2,
+ NonSemanticShaderDebugInfo100Float = 3,
+ NonSemanticShaderDebugInfo100Signed = 4,
+ NonSemanticShaderDebugInfo100SignedChar = 5,
+ NonSemanticShaderDebugInfo100Unsigned = 6,
+ NonSemanticShaderDebugInfo100UnsignedChar = 7,
+ NonSemanticShaderDebugInfo100DebugBaseTypeAttributeEncodingMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugCompositeType {
+ NonSemanticShaderDebugInfo100Class = 0,
+ NonSemanticShaderDebugInfo100Structure = 1,
+ NonSemanticShaderDebugInfo100Union = 2,
+ NonSemanticShaderDebugInfo100DebugCompositeTypeMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugTypeQualifier {
+ NonSemanticShaderDebugInfo100ConstType = 0,
+ NonSemanticShaderDebugInfo100VolatileType = 1,
+ NonSemanticShaderDebugInfo100RestrictType = 2,
+ NonSemanticShaderDebugInfo100AtomicType = 3,
+ NonSemanticShaderDebugInfo100DebugTypeQualifierMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugOperation {
+ NonSemanticShaderDebugInfo100Deref = 0,
+ NonSemanticShaderDebugInfo100Plus = 1,
+ NonSemanticShaderDebugInfo100Minus = 2,
+ NonSemanticShaderDebugInfo100PlusUconst = 3,
+ NonSemanticShaderDebugInfo100BitPiece = 4,
+ NonSemanticShaderDebugInfo100Swap = 5,
+ NonSemanticShaderDebugInfo100Xderef = 6,
+ NonSemanticShaderDebugInfo100StackValue = 7,
+ NonSemanticShaderDebugInfo100Constu = 8,
+ NonSemanticShaderDebugInfo100Fragment = 9,
+ NonSemanticShaderDebugInfo100DebugOperationMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugImportedEntity {
+ NonSemanticShaderDebugInfo100ImportedModule = 0,
+ NonSemanticShaderDebugInfo100ImportedDeclaration = 1,
+ NonSemanticShaderDebugInfo100DebugImportedEntityMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/OpenCL.std.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/OpenCL.std.h
new file mode 100644
index 0000000000..2745e30df3
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/OpenCL.std.h
@@ -0,0 +1,401 @@
+/*
+** Copyright (c) 2015-2019 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+#ifndef OPENCLstd_H
+#define OPENCLstd_H
+
+#ifdef __cplusplus
+namespace OpenCLLIB {
+
+enum Entrypoints {
+
+ // Section 2.1: Math extended instructions
+ Acos = 0,
+ Acosh = 1,
+ Acospi = 2,
+ Asin = 3,
+ Asinh = 4,
+ Asinpi = 5,
+ Atan = 6,
+ Atan2 = 7,
+ Atanh = 8,
+ Atanpi = 9,
+ Atan2pi = 10,
+ Cbrt = 11,
+ Ceil = 12,
+ Copysign = 13,
+ Cos = 14,
+ Cosh = 15,
+ Cospi = 16,
+ Erfc = 17,
+ Erf = 18,
+ Exp = 19,
+ Exp2 = 20,
+ Exp10 = 21,
+ Expm1 = 22,
+ Fabs = 23,
+ Fdim = 24,
+ Floor = 25,
+ Fma = 26,
+ Fmax = 27,
+ Fmin = 28,
+ Fmod = 29,
+ Fract = 30,
+ Frexp = 31,
+ Hypot = 32,
+ Ilogb = 33,
+ Ldexp = 34,
+ Lgamma = 35,
+ Lgamma_r = 36,
+ Log = 37,
+ Log2 = 38,
+ Log10 = 39,
+ Log1p = 40,
+ Logb = 41,
+ Mad = 42,
+ Maxmag = 43,
+ Minmag = 44,
+ Modf = 45,
+ Nan = 46,
+ Nextafter = 47,
+ Pow = 48,
+ Pown = 49,
+ Powr = 50,
+ Remainder = 51,
+ Remquo = 52,
+ Rint = 53,
+ Rootn = 54,
+ Round = 55,
+ Rsqrt = 56,
+ Sin = 57,
+ Sincos = 58,
+ Sinh = 59,
+ Sinpi = 60,
+ Sqrt = 61,
+ Tan = 62,
+ Tanh = 63,
+ Tanpi = 64,
+ Tgamma = 65,
+ Trunc = 66,
+ Half_cos = 67,
+ Half_divide = 68,
+ Half_exp = 69,
+ Half_exp2 = 70,
+ Half_exp10 = 71,
+ Half_log = 72,
+ Half_log2 = 73,
+ Half_log10 = 74,
+ Half_powr = 75,
+ Half_recip = 76,
+ Half_rsqrt = 77,
+ Half_sin = 78,
+ Half_sqrt = 79,
+ Half_tan = 80,
+ Native_cos = 81,
+ Native_divide = 82,
+ Native_exp = 83,
+ Native_exp2 = 84,
+ Native_exp10 = 85,
+ Native_log = 86,
+ Native_log2 = 87,
+ Native_log10 = 88,
+ Native_powr = 89,
+ Native_recip = 90,
+ Native_rsqrt = 91,
+ Native_sin = 92,
+ Native_sqrt = 93,
+ Native_tan = 94,
+
+ // Section 2.2: Integer instructions
+ SAbs = 141,
+ SAbs_diff = 142,
+ SAdd_sat = 143,
+ UAdd_sat = 144,
+ SHadd = 145,
+ UHadd = 146,
+ SRhadd = 147,
+ URhadd = 148,
+ SClamp = 149,
+ UClamp = 150,
+ Clz = 151,
+ Ctz = 152,
+ SMad_hi = 153,
+ UMad_sat = 154,
+ SMad_sat = 155,
+ SMax = 156,
+ UMax = 157,
+ SMin = 158,
+ UMin = 159,
+ SMul_hi = 160,
+ Rotate = 161,
+ SSub_sat = 162,
+ USub_sat = 163,
+ U_Upsample = 164,
+ S_Upsample = 165,
+ Popcount = 166,
+ SMad24 = 167,
+ UMad24 = 168,
+ SMul24 = 169,
+ UMul24 = 170,
+ UAbs = 201,
+ UAbs_diff = 202,
+ UMul_hi = 203,
+ UMad_hi = 204,
+
+ // Section 2.3: Common instructions
+ FClamp = 95,
+ Degrees = 96,
+ FMax_common = 97,
+ FMin_common = 98,
+ Mix = 99,
+ Radians = 100,
+ Step = 101,
+ Smoothstep = 102,
+ Sign = 103,
+
+ // Section 2.4: Geometric instructions
+ Cross = 104,
+ Distance = 105,
+ Length = 106,
+ Normalize = 107,
+ Fast_distance = 108,
+ Fast_length = 109,
+ Fast_normalize = 110,
+
+ // Section 2.5: Relational instructions
+ Bitselect = 186,
+ Select = 187,
+
+ // Section 2.6: Vector Data Load and Store instructions
+ Vloadn = 171,
+ Vstoren = 172,
+ Vload_half = 173,
+ Vload_halfn = 174,
+ Vstore_half = 175,
+ Vstore_half_r = 176,
+ Vstore_halfn = 177,
+ Vstore_halfn_r = 178,
+ Vloada_halfn = 179,
+ Vstorea_halfn = 180,
+ Vstorea_halfn_r = 181,
+
+ // Section 2.7: Miscellaneous Vector instructions
+ Shuffle = 182,
+ Shuffle2 = 183,
+
+ // Section 2.8: Misc instructions
+ Printf = 184,
+ Prefetch = 185,
+};
+
+} // end namespace OpenCLLIB
+
+#else
+
+enum OpenCLstd_Entrypoints {
+
+ // Section 2.1: Math extended instructions
+ OpenCLstd_Acos = 0,
+ OpenCLstd_Acosh = 1,
+ OpenCLstd_Acospi = 2,
+ OpenCLstd_Asin = 3,
+ OpenCLstd_Asinh = 4,
+ OpenCLstd_Asinpi = 5,
+ OpenCLstd_Atan = 6,
+ OpenCLstd_Atan2 = 7,
+ OpenCLstd_Atanh = 8,
+ OpenCLstd_Atanpi = 9,
+ OpenCLstd_Atan2pi = 10,
+ OpenCLstd_Cbrt = 11,
+ OpenCLstd_Ceil = 12,
+ OpenCLstd_Copysign = 13,
+ OpenCLstd_Cos = 14,
+ OpenCLstd_Cosh = 15,
+ OpenCLstd_Cospi = 16,
+ OpenCLstd_Erfc = 17,
+ OpenCLstd_Erf = 18,
+ OpenCLstd_Exp = 19,
+ OpenCLstd_Exp2 = 20,
+ OpenCLstd_Exp10 = 21,
+ OpenCLstd_Expm1 = 22,
+ OpenCLstd_Fabs = 23,
+ OpenCLstd_Fdim = 24,
+ OpenCLstd_Floor = 25,
+ OpenCLstd_Fma = 26,
+ OpenCLstd_Fmax = 27,
+ OpenCLstd_Fmin = 28,
+ OpenCLstd_Fmod = 29,
+ OpenCLstd_Fract = 30,
+ OpenCLstd_Frexp = 31,
+ OpenCLstd_Hypot = 32,
+ OpenCLstd_Ilogb = 33,
+ OpenCLstd_Ldexp = 34,
+ OpenCLstd_Lgamma = 35,
+ OpenCLstd_Lgamma_r = 36,
+ OpenCLstd_Log = 37,
+ OpenCLstd_Log2 = 38,
+ OpenCLstd_Log10 = 39,
+ OpenCLstd_Log1p = 40,
+ OpenCLstd_Logb = 41,
+ OpenCLstd_Mad = 42,
+ OpenCLstd_Maxmag = 43,
+ OpenCLstd_Minmag = 44,
+ OpenCLstd_Modf = 45,
+ OpenCLstd_Nan = 46,
+ OpenCLstd_Nextafter = 47,
+ OpenCLstd_Pow = 48,
+ OpenCLstd_Pown = 49,
+ OpenCLstd_Powr = 50,
+ OpenCLstd_Remainder = 51,
+ OpenCLstd_Remquo = 52,
+ OpenCLstd_Rint = 53,
+ OpenCLstd_Rootn = 54,
+ OpenCLstd_Round = 55,
+ OpenCLstd_Rsqrt = 56,
+ OpenCLstd_Sin = 57,
+ OpenCLstd_Sincos = 58,
+ OpenCLstd_Sinh = 59,
+ OpenCLstd_Sinpi = 60,
+ OpenCLstd_Sqrt = 61,
+ OpenCLstd_Tan = 62,
+ OpenCLstd_Tanh = 63,
+ OpenCLstd_Tanpi = 64,
+ OpenCLstd_Tgamma = 65,
+ OpenCLstd_Trunc = 66,
+ OpenCLstd_Half_cos = 67,
+ OpenCLstd_Half_divide = 68,
+ OpenCLstd_Half_exp = 69,
+ OpenCLstd_Half_exp2 = 70,
+ OpenCLstd_Half_exp10 = 71,
+ OpenCLstd_Half_log = 72,
+ OpenCLstd_Half_log2 = 73,
+ OpenCLstd_Half_log10 = 74,
+ OpenCLstd_Half_powr = 75,
+ OpenCLstd_Half_recip = 76,
+ OpenCLstd_Half_rsqrt = 77,
+ OpenCLstd_Half_sin = 78,
+ OpenCLstd_Half_sqrt = 79,
+ OpenCLstd_Half_tan = 80,
+ OpenCLstd_Native_cos = 81,
+ OpenCLstd_Native_divide = 82,
+ OpenCLstd_Native_exp = 83,
+ OpenCLstd_Native_exp2 = 84,
+ OpenCLstd_Native_exp10 = 85,
+ OpenCLstd_Native_log = 86,
+ OpenCLstd_Native_log2 = 87,
+ OpenCLstd_Native_log10 = 88,
+ OpenCLstd_Native_powr = 89,
+ OpenCLstd_Native_recip = 90,
+ OpenCLstd_Native_rsqrt = 91,
+ OpenCLstd_Native_sin = 92,
+ OpenCLstd_Native_sqrt = 93,
+ OpenCLstd_Native_tan = 94,
+
+ // Section 2.2: Integer instructions
+ OpenCLstd_SAbs = 141,
+ OpenCLstd_SAbs_diff = 142,
+ OpenCLstd_SAdd_sat = 143,
+ OpenCLstd_UAdd_sat = 144,
+ OpenCLstd_SHadd = 145,
+ OpenCLstd_UHadd = 146,
+ OpenCLstd_SRhadd = 147,
+ OpenCLstd_URhadd = 148,
+ OpenCLstd_SClamp = 149,
+ OpenCLstd_UClamp = 150,
+ OpenCLstd_Clz = 151,
+ OpenCLstd_Ctz = 152,
+ OpenCLstd_SMad_hi = 153,
+ OpenCLstd_UMad_sat = 154,
+ OpenCLstd_SMad_sat = 155,
+ OpenCLstd_SMax = 156,
+ OpenCLstd_UMax = 157,
+ OpenCLstd_SMin = 158,
+ OpenCLstd_UMin = 159,
+ OpenCLstd_SMul_hi = 160,
+ OpenCLstd_Rotate = 161,
+ OpenCLstd_SSub_sat = 162,
+ OpenCLstd_USub_sat = 163,
+ OpenCLstd_U_Upsample = 164,
+ OpenCLstd_S_Upsample = 165,
+ OpenCLstd_Popcount = 166,
+ OpenCLstd_SMad24 = 167,
+ OpenCLstd_UMad24 = 168,
+ OpenCLstd_SMul24 = 169,
+ OpenCLstd_UMul24 = 170,
+ OpenCLstd_UAbs = 201,
+ OpenCLstd_UAbs_diff = 202,
+ OpenCLstd_UMul_hi = 203,
+ OpenCLstd_UMad_hi = 204,
+
+ // Section 2.3: Common instructions
+ OpenCLstd_FClamp = 95,
+ OpenCLstd_Degrees = 96,
+ OpenCLstd_FMax_common = 97,
+ OpenCLstd_FMin_common = 98,
+ OpenCLstd_Mix = 99,
+ OpenCLstd_Radians = 100,
+ OpenCLstd_Step = 101,
+ OpenCLstd_Smoothstep = 102,
+ OpenCLstd_Sign = 103,
+
+ // Section 2.4: Geometric instructions
+ OpenCLstd_Cross = 104,
+ OpenCLstd_Distance = 105,
+ OpenCLstd_Length = 106,
+ OpenCLstd_Normalize = 107,
+ OpenCLstd_Fast_distance = 108,
+ OpenCLstd_Fast_length = 109,
+ OpenCLstd_Fast_normalize = 110,
+
+ // Section 2.5: Relational instructions
+ OpenCLstd_Bitselect = 186,
+ OpenCLstd_Select = 187,
+
+ // Section 2.6: Vector Data Load and Store instructions
+ OpenCLstd_Vloadn = 171,
+ OpenCLstd_Vstoren = 172,
+ OpenCLstd_Vload_half = 173,
+ OpenCLstd_Vload_halfn = 174,
+ OpenCLstd_Vstore_half = 175,
+ OpenCLstd_Vstore_half_r = 176,
+ OpenCLstd_Vstore_halfn = 177,
+ OpenCLstd_Vstore_halfn_r = 178,
+ OpenCLstd_Vloada_halfn = 179,
+ OpenCLstd_Vstorea_halfn = 180,
+ OpenCLstd_Vstorea_halfn_r = 181,
+
+ // Section 2.7: Miscellaneous Vector instructions
+ OpenCLstd_Shuffle = 182,
+ OpenCLstd_Shuffle2 = 183,
+
+ // Section 2.8: Misc instructions
+ OpenCLstd_Printf = 184,
+ OpenCLstd_Prefetch = 185,
+};
+
+#endif
+
+#endif // #ifndef OPENCLstd_H
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/OpenCLDebugInfo100.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/OpenCLDebugInfo100.h
new file mode 100644
index 0000000000..e3847c902b
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/OpenCLDebugInfo100.h
@@ -0,0 +1,158 @@
+// Copyright (c) 2018 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+#ifndef SPIRV_UNIFIED1_OpenCLDebugInfo100_H_
+#define SPIRV_UNIFIED1_OpenCLDebugInfo100_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ OpenCLDebugInfo100Version = 200,
+ OpenCLDebugInfo100Version_BitWidthPadding = 0x7fffffff
+};
+enum {
+ OpenCLDebugInfo100Revision = 2,
+ OpenCLDebugInfo100Revision_BitWidthPadding = 0x7fffffff
+};
+
+enum OpenCLDebugInfo100Instructions {
+ OpenCLDebugInfo100DebugInfoNone = 0,
+ OpenCLDebugInfo100DebugCompilationUnit = 1,
+ OpenCLDebugInfo100DebugTypeBasic = 2,
+ OpenCLDebugInfo100DebugTypePointer = 3,
+ OpenCLDebugInfo100DebugTypeQualifier = 4,
+ OpenCLDebugInfo100DebugTypeArray = 5,
+ OpenCLDebugInfo100DebugTypeVector = 6,
+ OpenCLDebugInfo100DebugTypedef = 7,
+ OpenCLDebugInfo100DebugTypeFunction = 8,
+ OpenCLDebugInfo100DebugTypeEnum = 9,
+ OpenCLDebugInfo100DebugTypeComposite = 10,
+ OpenCLDebugInfo100DebugTypeMember = 11,
+ OpenCLDebugInfo100DebugTypeInheritance = 12,
+ OpenCLDebugInfo100DebugTypePtrToMember = 13,
+ OpenCLDebugInfo100DebugTypeTemplate = 14,
+ OpenCLDebugInfo100DebugTypeTemplateParameter = 15,
+ OpenCLDebugInfo100DebugTypeTemplateTemplateParameter = 16,
+ OpenCLDebugInfo100DebugTypeTemplateParameterPack = 17,
+ OpenCLDebugInfo100DebugGlobalVariable = 18,
+ OpenCLDebugInfo100DebugFunctionDeclaration = 19,
+ OpenCLDebugInfo100DebugFunction = 20,
+ OpenCLDebugInfo100DebugLexicalBlock = 21,
+ OpenCLDebugInfo100DebugLexicalBlockDiscriminator = 22,
+ OpenCLDebugInfo100DebugScope = 23,
+ OpenCLDebugInfo100DebugNoScope = 24,
+ OpenCLDebugInfo100DebugInlinedAt = 25,
+ OpenCLDebugInfo100DebugLocalVariable = 26,
+ OpenCLDebugInfo100DebugInlinedVariable = 27,
+ OpenCLDebugInfo100DebugDeclare = 28,
+ OpenCLDebugInfo100DebugValue = 29,
+ OpenCLDebugInfo100DebugOperation = 30,
+ OpenCLDebugInfo100DebugExpression = 31,
+ OpenCLDebugInfo100DebugMacroDef = 32,
+ OpenCLDebugInfo100DebugMacroUndef = 33,
+ OpenCLDebugInfo100DebugImportedEntity = 34,
+ OpenCLDebugInfo100DebugSource = 35,
+ OpenCLDebugInfo100DebugModuleINTEL = 36,
+ OpenCLDebugInfo100InstructionsMax = 0x7fffffff
+};
+
+
+enum OpenCLDebugInfo100DebugInfoFlags {
+ OpenCLDebugInfo100None = 0x0000,
+ OpenCLDebugInfo100FlagIsProtected = 0x01,
+ OpenCLDebugInfo100FlagIsPrivate = 0x02,
+ OpenCLDebugInfo100FlagIsPublic = 0x03,
+ OpenCLDebugInfo100FlagIsLocal = 0x04,
+ OpenCLDebugInfo100FlagIsDefinition = 0x08,
+ OpenCLDebugInfo100FlagFwdDecl = 0x10,
+ OpenCLDebugInfo100FlagArtificial = 0x20,
+ OpenCLDebugInfo100FlagExplicit = 0x40,
+ OpenCLDebugInfo100FlagPrototyped = 0x80,
+ OpenCLDebugInfo100FlagObjectPointer = 0x100,
+ OpenCLDebugInfo100FlagStaticMember = 0x200,
+ OpenCLDebugInfo100FlagIndirectVariable = 0x400,
+ OpenCLDebugInfo100FlagLValueReference = 0x800,
+ OpenCLDebugInfo100FlagRValueReference = 0x1000,
+ OpenCLDebugInfo100FlagIsOptimized = 0x2000,
+ OpenCLDebugInfo100FlagIsEnumClass = 0x4000,
+ OpenCLDebugInfo100FlagTypePassByValue = 0x8000,
+ OpenCLDebugInfo100FlagTypePassByReference = 0x10000,
+ OpenCLDebugInfo100DebugInfoFlagsMax = 0x7fffffff
+};
+
+enum OpenCLDebugInfo100DebugBaseTypeAttributeEncoding {
+ OpenCLDebugInfo100Unspecified = 0,
+ OpenCLDebugInfo100Address = 1,
+ OpenCLDebugInfo100Boolean = 2,
+ OpenCLDebugInfo100Float = 3,
+ OpenCLDebugInfo100Signed = 4,
+ OpenCLDebugInfo100SignedChar = 5,
+ OpenCLDebugInfo100Unsigned = 6,
+ OpenCLDebugInfo100UnsignedChar = 7,
+ OpenCLDebugInfo100DebugBaseTypeAttributeEncodingMax = 0x7fffffff
+};
+
+enum OpenCLDebugInfo100DebugCompositeType {
+ OpenCLDebugInfo100Class = 0,
+ OpenCLDebugInfo100Structure = 1,
+ OpenCLDebugInfo100Union = 2,
+ OpenCLDebugInfo100DebugCompositeTypeMax = 0x7fffffff
+};
+
+enum OpenCLDebugInfo100DebugTypeQualifier {
+ OpenCLDebugInfo100ConstType = 0,
+ OpenCLDebugInfo100VolatileType = 1,
+ OpenCLDebugInfo100RestrictType = 2,
+ OpenCLDebugInfo100AtomicType = 3,
+ OpenCLDebugInfo100DebugTypeQualifierMax = 0x7fffffff
+};
+
+enum OpenCLDebugInfo100DebugOperation {
+ OpenCLDebugInfo100Deref = 0,
+ OpenCLDebugInfo100Plus = 1,
+ OpenCLDebugInfo100Minus = 2,
+ OpenCLDebugInfo100PlusUconst = 3,
+ OpenCLDebugInfo100BitPiece = 4,
+ OpenCLDebugInfo100Swap = 5,
+ OpenCLDebugInfo100Xderef = 6,
+ OpenCLDebugInfo100StackValue = 7,
+ OpenCLDebugInfo100Constu = 8,
+ OpenCLDebugInfo100Fragment = 9,
+ OpenCLDebugInfo100DebugOperationMax = 0x7fffffff
+};
+
+enum OpenCLDebugInfo100DebugImportedEntity {
+ OpenCLDebugInfo100ImportedModule = 0,
+ OpenCLDebugInfo100ImportedDeclaration = 1,
+ OpenCLDebugInfo100DebugImportedEntityMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_OpenCLDebugInfo100_H_
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.debuginfo.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.debuginfo.grammar.json
new file mode 100644
index 0000000000..7d6e8e5b31
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.debuginfo.grammar.json
@@ -0,0 +1,572 @@
+{
+ "copyright" : [
+ "Copyright (c) 2017 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."
+ ],
+ "version" : 100,
+ "revision" : 1,
+ "instructions" : [
+ {
+ "opname" : "DebugInfoNone",
+ "opcode" : 0
+ },
+ {
+ "opname" : "DebugCompilationUnit",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Version'" },
+ { "kind" : "LiteralInteger", "name" : "'DWARF Version'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeBasic",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "DebugBaseTypeAttributeEncoding", "name" : "'Encoding'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypePointer",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "StorageClass", "name" : "'Storage Class'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Literal Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeQualifier",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "DebugTypeQualifier", "name" : "'Type Qualifier'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeArray",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Component Counts'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeVector",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Component Count'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypedef",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeFunction",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Return Type'" },
+ { "kind" : "IdRef", "name" : "'Paramter Types'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeEnum",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Underlying Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
+ { "kind" : "PairIdRefIdRef", "name" : "'Value, Name, Value, Name, ...'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeComposite",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "DebugCompositeType", "name" : "'Tag'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Members'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeMember",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeInheritance",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Child'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypePtrToMember",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Member Type'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplate",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Parameters'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplateParameter",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Actual Type'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplateTemplateParameter",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Template Name'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplateParameterPack",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Template Parameters'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugGlobalVariable",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "IdRef", "name" : "'Variable'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Static Member Declaration'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugFunctionDeclaration",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugFunction",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
+ { "kind" : "LiteralInteger", "name" : "'Scope Line'" },
+ { "kind" : "IdRef", "name" : "'Function'" },
+ { "kind" : "IdRef", "name" : "'Declaration'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugLexicalBlock",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Name'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugLexicalBlockDiscriminator",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Scope'" },
+ { "kind" : "LiteralInteger", "name" : "'Discriminator'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugScope",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Scope'" },
+ { "kind" : "IdRef", "name" : "'Inlined At'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugNoScope",
+ "opcode" : 24
+ },
+ {
+ "opname" : "DebugInlinedAt",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Scope'" },
+ { "kind" : "IdRef", "name" : "'Inlined'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugLocalVariable",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "LiteralInteger", "name" : "'Arg Number'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugInlinedVariable",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Variable'" },
+ { "kind" : "IdRef", "name" : "'Inlined'" }
+ ]
+ },
+ {
+ "opname" : "DebugDeclare",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Local Variable'" },
+ { "kind" : "IdRef", "name" : "'Variable'" },
+ { "kind" : "IdRef", "name" : "'Expression'" }
+ ]
+ },
+ {
+ "opname" : "DebugValue",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Expression'" },
+ { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugOperation",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "DebugOperation", "name" : "'OpCode'" },
+ { "kind" : "LiteralInteger", "name" : "'Operands ...'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugExpression",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugMacroDef",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugMacroUndef",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Macro'" }
+ ]
+ }
+ ],
+ "operand_kinds" : [
+ {
+ "category" : "BitEnum",
+ "kind" : "DebugInfoFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "FlagIsProtected",
+ "value" : "0x01"
+ },
+ {
+ "enumerant" : "FlagIsPrivate",
+ "value" : "0x02"
+ },
+ {
+ "enumerant" : "FlagIsPublic",
+ "value" : "0x03"
+ },
+ {
+ "enumerant" : "FlagIsLocal",
+ "value" : "0x04"
+ },
+ {
+ "enumerant" : "FlagIsDefinition",
+ "value" : "0x08"
+ },
+ {
+ "enumerant" : "FlagFwdDecl",
+ "value" : "0x10"
+ },
+ {
+ "enumerant" : "FlagArtificial",
+ "value" : "0x20"
+ },
+ {
+ "enumerant" : "FlagExplicit",
+ "value" : "0x40"
+ },
+ {
+ "enumerant" : "FlagPrototyped",
+ "value" : "0x80"
+ },
+ {
+ "enumerant" : "FlagObjectPointer",
+ "value" : "0x100"
+ },
+ {
+ "enumerant" : "FlagStaticMember",
+ "value" : "0x200"
+ },
+ {
+ "enumerant" : "FlagIndirectVariable",
+ "value" : "0x400"
+ },
+ {
+ "enumerant" : "FlagLValueReference",
+ "value" : "0x800"
+ },
+ {
+ "enumerant" : "FlagRValueReference",
+ "value" : "0x1000"
+ },
+ {
+ "enumerant" : "FlagIsOptimized",
+ "value" : "0x2000"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugBaseTypeAttributeEncoding",
+ "enumerants" : [
+ {
+ "enumerant" : "Unspecified",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "Address",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "Boolean",
+ "value" : "2"
+ },
+ {
+ "enumerant" : "Float",
+ "value" : "4"
+ },
+ {
+ "enumerant" : "Signed",
+ "value" : "5"
+ },
+ {
+ "enumerant" : "SignedChar",
+ "value" : "6"
+ },
+ {
+ "enumerant" : "Unsigned",
+ "value" : "7"
+ },
+ {
+ "enumerant" : "UnsignedChar",
+ "value" : "8"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugCompositeType",
+ "enumerants" : [
+ {
+ "enumerant" : "Class",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "Structure",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "Union",
+ "value" : "2"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugTypeQualifier",
+ "enumerants" : [
+ {
+ "enumerant" : "ConstType",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "VolatileType",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "RestrictType",
+ "value" : "2"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugOperation",
+ "enumerants" : [
+ {
+ "enumerant" : "Deref",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "Plus",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "Minus",
+ "value" : "2"
+ },
+ {
+ "enumerant" : "PlusUconst",
+ "value" : "3",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ]
+ },
+ {
+ "enumerant" : "BitPiece",
+ "value" : "4",
+ "parameters" : [
+ { "kind" : "LiteralInteger" },
+ { "kind" : "LiteralInteger" }
+ ]
+ },
+ {
+ "enumerant" : "Swap",
+ "value" : "5"
+ },
+ {
+ "enumerant" : "Xderef",
+ "value" : "6"
+ },
+ {
+ "enumerant" : "StackValue",
+ "value" : "7"
+ },
+ {
+ "enumerant" : "Constu",
+ "value" : "8",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.glsl.std.450.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.glsl.std.450.grammar.json
new file mode 100644
index 0000000000..3d9f39e76c
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.glsl.std.450.grammar.json
@@ -0,0 +1,642 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "Round",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "RoundEven",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Trunc",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FAbs",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SAbs",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FSign",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SSign",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Floor",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Ceil",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Fract",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Radians",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'degrees'" }
+ ]
+ },
+ {
+ "opname" : "Degrees",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'radians'" }
+ ]
+ },
+ {
+ "opname" : "Sin",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Cos",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Tan",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Asin",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Acos",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atan",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y_over_x'" }
+ ]
+ },
+ {
+ "opname" : "Sinh",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Cosh",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Tanh",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Asinh",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Acosh",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atanh",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Atan2",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Pow",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "Exp",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Log",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Exp2",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Log2",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Sqrt",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "InverseSqrt",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Determinant",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "MatrixInverse",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Modf",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'i'" }
+ ]
+ },
+ {
+ "opname" : "ModfStruct",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FMin",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "UMin",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "SMin",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "FMax",
+ "opcode" : 40,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "UMax",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "SMax",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "FClamp",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "UClamp",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "SClamp",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ },
+ {
+ "opname" : "FMix",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "IMix",
+ "opcode" : 47,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "Step",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "SmoothStep",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge0'" },
+ { "kind" : "IdRef", "name" : "'edge1'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Fma",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "Frexp",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "FrexpStruct",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Ldexp",
+ "opcode" : 53,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "PackSnorm4x8",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackUnorm4x8",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackSnorm2x16",
+ "opcode" : 56,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackUnorm2x16",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackHalf2x16",
+ "opcode" : 58,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "PackDouble2x32",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ],
+ "capabilities" : [ "Float64" ]
+ },
+ {
+ "opname" : "UnpackSnorm2x16",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackUnorm2x16",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackHalf2x16",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ]
+ },
+ {
+ "opname" : "UnpackSnorm4x8",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackUnorm4x8",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "UnpackDouble2x32",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" }
+ ],
+ "capabilities" : [ "Float64" ]
+ },
+ {
+ "opname" : "Length",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "Distance",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "Cross",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "Normalize",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "FaceForward",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'N'" },
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'Nref'" }
+ ]
+ },
+ {
+ "opname" : "Reflect",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'N'" }
+ ]
+ },
+ {
+ "opname" : "Refract",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'I'" },
+ { "kind" : "IdRef", "name" : "'N'" },
+ { "kind" : "IdRef", "name" : "'eta'" }
+ ]
+ },
+ {
+ "opname" : "FindILsb",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "FindSMsb",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "FindUMsb",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "InterpolateAtCentroid",
+ "opcode" : 76,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "InterpolateAtSample",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" },
+ { "kind" : "IdRef", "name" : "'sample'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "InterpolateAtOffset",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" },
+ { "kind" : "IdRef", "name" : "'offset'" }
+ ],
+ "capabilities" : [ "InterpolationFunction" ]
+ },
+ {
+ "opname" : "NMin",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "NMax",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "NClamp",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minVal'" },
+ { "kind" : "IdRef", "name" : "'maxVal'" }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
new file mode 100644
index 0000000000..b5a6637218
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
@@ -0,0 +1,352 @@
+{
+ "revision" : 4,
+ "instructions" : [
+ {
+ "opname" : "Kernel",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Kernel" },
+ { "kind" : "IdRef", "name" : "Name" }
+ ]
+ },
+ {
+ "opname" : "ArgumentInfo",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Name" },
+ { "kind" : "IdRef", "name" : "Type Name", "quantifier" : "?" },
+ { "kind" : "IdRef", "name" : "Address Qualifier", "quantifier" : "?" },
+ { "kind" : "IdRef", "name" : "Access Qualifier", "quantifier" : "?" },
+ { "kind" : "IdRef", "name" : "Type Qualifier", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentStorageBuffer",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentUniform",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentPodStorageBuffer",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "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" : "ArgumentPodUniform",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "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" : "ArgumentPodPushConstant",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentSampledImage",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentStorageImage",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentSampler",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentWorkgroup",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "SpecId" },
+ { "kind" : "IdRef", "name" : "ElemSize" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "SpecConstantWorkgroupSize",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "X" },
+ { "kind" : "IdRef", "name" : "Y" },
+ { "kind" : "IdRef", "name" : "Z" }
+ ]
+ },
+ {
+ "opname" : "SpecConstantGlobalOffset",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "X" },
+ { "kind" : "IdRef", "name" : "Y" },
+ { "kind" : "IdRef", "name" : "Z" }
+ ]
+ },
+ {
+ "opname" : "SpecConstantWorkDim",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Dim" }
+ ]
+ },
+ {
+ "opname" : "PushConstantGlobalOffset",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "PushConstantEnqueuedLocalSize",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "PushConstantGlobalSize",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "PushConstantRegionOffset",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "PushConstantNumWorkgroups",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "PushConstantRegionGroupOffset",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "ConstantDataStorageBuffer",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "Data" }
+ ]
+ },
+ {
+ "opname" : "ConstantDataUniform",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "Data" }
+ ]
+ },
+ {
+ "opname" : "LiteralSampler",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "Mask" }
+ ]
+ },
+ {
+ "opname" : "PropertyRequiredWorkgroupSize",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Kernel" },
+ { "kind" : "IdRef", "name" : "X" },
+ { "kind" : "IdRef", "name" : "Y" },
+ { "kind" : "IdRef", "name" : "Z" }
+ ]
+ },
+ {
+ "opname" : "SpecConstantSubgroupMaxSize",
+ "opcode" : 25,
+ "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" }
+ ]
+ },
+ {
+ "opname" : "ArgumentStorageTexelBuffer",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentUniformTexelBuffer",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json
new file mode 100644
index 0000000000..71fa7112cf
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json
@@ -0,0 +1,13 @@
+{
+ "revision" : 1,
+ "instructions" : [
+ {
+ "opname" : "DebugPrintf",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Format'" },
+ { "kind" : "IdRef", "quantifier" : "*" }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json
new file mode 100644
index 0000000000..f3621b0b4f
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json
@@ -0,0 +1,713 @@
+{
+ "copyright" : [
+ "Copyright (c) 2018 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."
+ ],
+ "version" : 100,
+ "revision" : 6,
+ "instructions" : [
+ {
+ "opname" : "DebugInfoNone",
+ "opcode" : 0
+ },
+ {
+ "opname" : "DebugCompilationUnit",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Version'" },
+ { "kind" : "IdRef", "name" : "'DWARF Version'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Language'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeBasic",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "IdRef", "name" : "'Encoding'" },
+ { "kind" : "IdRef", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypePointer",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Storage Class'" },
+ { "kind" : "IdRef", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeQualifier",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Type Qualifier'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeArray",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Component Counts'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeVector",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Component Count'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypedef",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeFunction",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Return Type'" },
+ { "kind" : "IdRef", "name" : "'Parameter Types'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeEnum",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Underlying Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "PairIdRefIdRef", "name" : "'Value, Name, Value, Name, ...'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeComposite",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Tag'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Members'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeMember",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeInheritance",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "IdRef", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypePtrToMember",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Member Type'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplate",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Parameters'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplateParameter",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Actual Type'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplateTemplateParameter",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Template Name'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplateParameterPack",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Template Parameters'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugGlobalVariable",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "IdRef", "name" : "'Variable'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Static Member Declaration'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugFunctionDeclaration",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "IdRef", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugFunction",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Scope Line'" },
+ { "kind" : "IdRef", "name" : "'Declaration'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugLexicalBlock",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Name'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugLexicalBlockDiscriminator",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Discriminator'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugScope",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Scope'" },
+ { "kind" : "IdRef", "name" : "'Inlined At'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugNoScope",
+ "opcode" : 24
+ },
+ {
+ "opname" : "DebugInlinedAt",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Scope'" },
+ { "kind" : "IdRef", "name" : "'Inlined'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugLocalVariable",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Arg Number'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugInlinedVariable",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Variable'" },
+ { "kind" : "IdRef", "name" : "'Inlined'" }
+ ]
+ },
+ {
+ "opname" : "DebugDeclare",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Local Variable'" },
+ { "kind" : "IdRef", "name" : "'Variable'" },
+ { "kind" : "IdRef", "name" : "'Expression'" },
+ { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugValue",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Local Variable'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Expression'" },
+ { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugOperation",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'OpCode'" },
+ { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugExpression",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugMacroDef",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugMacroUndef",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Macro'" }
+ ]
+ },
+ {
+ "opname" : "DebugImportedEntity",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Tag'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Entity'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugSource",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'File'" },
+ { "kind" : "IdRef", "name" : "'Text'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugFunctionDefinition",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Function'" },
+ { "kind" : "IdRef", "name" : "'Definition'" }
+ ]
+ },
+ {
+ "opname" : "DebugSourceContinued",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Text'" }
+ ]
+ },
+ {
+ "opname" : "DebugLine",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line Start'" },
+ { "kind" : "IdRef", "name" : "'Line End'" },
+ { "kind" : "IdRef", "name" : "'Column Start'" },
+ { "kind" : "IdRef", "name" : "'Column End'" }
+ ]
+ },
+ {
+ "opname" : "DebugNoLine",
+ "opcode" : 104
+ },
+ {
+ "opname" : "DebugBuildIdentifier",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Identifier'" },
+ { "kind" : "IdRef", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugStoragePath",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Path'" }
+ ]
+ },
+ {
+ "opname" : "DebugEntryPoint",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "IdRef", "name" : "'Compilation Unit'" },
+ { "kind" : "IdRef", "name" : "'Compiler Signature'" },
+ { "kind" : "IdRef", "name" : "'Command-line Arguments'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeMatrix",
+ "opcode" : 108,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Vector Type'" },
+ { "kind" : "IdRef", "name" : "'Vector Count'" },
+ { "kind" : "IdRef", "name" : "'Column Major'" }
+ ]
+ }
+ ],
+ "operand_kinds" : [
+ {
+ "category" : "BitEnum",
+ "kind" : "DebugInfoFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "FlagIsProtected",
+ "value" : "0x01"
+ },
+ {
+ "enumerant" : "FlagIsPrivate",
+ "value" : "0x02"
+ },
+ {
+ "enumerant" : "FlagIsPublic",
+ "value" : "0x03"
+ },
+ {
+ "enumerant" : "FlagIsLocal",
+ "value" : "0x04"
+ },
+ {
+ "enumerant" : "FlagIsDefinition",
+ "value" : "0x08"
+ },
+ {
+ "enumerant" : "FlagFwdDecl",
+ "value" : "0x10"
+ },
+ {
+ "enumerant" : "FlagArtificial",
+ "value" : "0x20"
+ },
+ {
+ "enumerant" : "FlagExplicit",
+ "value" : "0x40"
+ },
+ {
+ "enumerant" : "FlagPrototyped",
+ "value" : "0x80"
+ },
+ {
+ "enumerant" : "FlagObjectPointer",
+ "value" : "0x100"
+ },
+ {
+ "enumerant" : "FlagStaticMember",
+ "value" : "0x200"
+ },
+ {
+ "enumerant" : "FlagIndirectVariable",
+ "value" : "0x400"
+ },
+ {
+ "enumerant" : "FlagLValueReference",
+ "value" : "0x800"
+ },
+ {
+ "enumerant" : "FlagRValueReference",
+ "value" : "0x1000"
+ },
+ {
+ "enumerant" : "FlagIsOptimized",
+ "value" : "0x2000"
+ },
+ {
+ "enumerant" : "FlagIsEnumClass",
+ "value" : "0x4000"
+ },
+ {
+ "enumerant" : "FlagTypePassByValue",
+ "value" : "0x8000"
+ },
+ {
+ "enumerant" : "FlagTypePassByReference",
+ "value" : "0x10000"
+ },
+ {
+ "enumerant" : "FlagUnknownPhysicalLayout",
+ "value" : "0x20000"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "BuildIdentifierFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "IdentifierPossibleDuplicates",
+ "value" : "0x01"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugBaseTypeAttributeEncoding",
+ "enumerants" : [
+ {
+ "enumerant" : "Unspecified",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "Address",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "Boolean",
+ "value" : "2"
+ },
+ {
+ "enumerant" : "Float",
+ "value" : "3"
+ },
+ {
+ "enumerant" : "Signed",
+ "value" : "4"
+ },
+ {
+ "enumerant" : "SignedChar",
+ "value" : "5"
+ },
+ {
+ "enumerant" : "Unsigned",
+ "value" : "6"
+ },
+ {
+ "enumerant" : "UnsignedChar",
+ "value" : "7"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugCompositeType",
+ "enumerants" : [
+ {
+ "enumerant" : "Class",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "Structure",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "Union",
+ "value" : "2"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugTypeQualifier",
+ "enumerants" : [
+ {
+ "enumerant" : "ConstType",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "VolatileType",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "RestrictType",
+ "value" : "2"
+ },
+ {
+ "enumerant" : "AtomicType",
+ "value" : "3"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugOperation",
+ "enumerants" : [
+ {
+ "enumerant" : "Deref",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "Plus",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "Minus",
+ "value" : "2"
+ },
+ {
+ "enumerant" : "PlusUconst",
+ "value" : "3",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "BitPiece",
+ "value" : "4",
+ "parameters" : [
+ { "kind" : "IdRef" },
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Swap",
+ "value" : "5"
+ },
+ {
+ "enumerant" : "Xderef",
+ "value" : "6"
+ },
+ {
+ "enumerant" : "StackValue",
+ "value" : "7"
+ },
+ {
+ "enumerant" : "Constu",
+ "value" : "8",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Fragment",
+ "value" : "9",
+ "parameters" : [
+ { "kind" : "IdRef" },
+ { "kind" : "IdRef" }
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugImportedEntity",
+ "enumerants" : [
+ {
+ "enumerant" : "ImportedModule",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "ImportedDeclaration",
+ "value" : "1"
+ }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
new file mode 100644
index 0000000000..699fe40369
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
@@ -0,0 +1,651 @@
+{
+ "copyright" : [
+ "Copyright (c) 2018 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."
+ ],
+ "version" : 200,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "DebugInfoNone",
+ "opcode" : 0
+ },
+ {
+ "opname" : "DebugCompilationUnit",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "LiteralInteger", "name" : "'Version'" },
+ { "kind" : "LiteralInteger", "name" : "'DWARF Version'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "SourceLanguage", "name" : "'Language'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeBasic",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "DebugBaseTypeAttributeEncoding", "name" : "'Encoding'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypePointer",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "StorageClass", "name" : "'Storage Class'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeQualifier",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "DebugTypeQualifier", "name" : "'Type Qualifier'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeArray",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Component Counts'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeVector",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Component Count'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypedef",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeFunction",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Return Type'" },
+ { "kind" : "IdRef", "name" : "'Parameter Types'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeEnum",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Underlying Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
+ { "kind" : "PairIdRefIdRef", "name" : "'Value, Name, Value, Name, ...'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeComposite",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "DebugCompositeType", "name" : "'Tag'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Members'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeMember",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeInheritance",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Child'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypePtrToMember",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Member Type'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplate",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Parameters'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplateParameter",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Actual Type'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplateTemplateParameter",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Template Name'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplateParameterPack",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Template Parameters'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugGlobalVariable",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "IdRef", "name" : "'Variable'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Static Member Declaration'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugFunctionDeclaration",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugFunction",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
+ { "kind" : "LiteralInteger", "name" : "'Scope Line'" },
+ { "kind" : "IdRef", "name" : "'Function'" },
+ { "kind" : "IdRef", "name" : "'Declaration'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugLexicalBlock",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Name'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugLexicalBlockDiscriminator",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Discriminator'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugScope",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Scope'" },
+ { "kind" : "IdRef", "name" : "'Inlined At'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugNoScope",
+ "opcode" : 24
+ },
+ {
+ "opname" : "DebugInlinedAt",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Scope'" },
+ { "kind" : "IdRef", "name" : "'Inlined'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugLocalVariable",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "DebugInfoFlags", "name" : "'Flags'" },
+ { "kind" : "LiteralInteger", "name" : "'Arg Number'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugInlinedVariable",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Variable'" },
+ { "kind" : "IdRef", "name" : "'Inlined'" }
+ ]
+ },
+ {
+ "opname" : "DebugDeclare",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Local Variable'" },
+ { "kind" : "IdRef", "name" : "'Variable'" },
+ { "kind" : "IdRef", "name" : "'Expression'" }
+ ]
+ },
+ {
+ "opname" : "DebugValue",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Local Variable'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Expression'" },
+ { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugOperation",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "DebugOperation", "name" : "'OpCode'" },
+ { "kind" : "LiteralInteger", "name" : "'Operands ...'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugExpression",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugMacroDef",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugMacroUndef",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Macro'" }
+ ]
+ },
+ {
+ "opname" : "DebugImportedEntity",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "DebugImportedEntity", "name" : "'Tag'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Entity'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugSource",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'File'" },
+ { "kind" : "IdRef", "name" : "'Text'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugModuleINTEL",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'ConfigurationMacros'" },
+ { "kind" : "IdRef", "name" : "'IncludePath'" },
+ { "kind" : "IdRef", "name" : "'APINotesFile'" },
+ { "kind" : "LiteralInteger", "name" : "'IsDeclaration'" }
+ ],
+ "capability" : "DebugInfoModuleINTEL"
+ }
+ ],
+ "operand_kinds" : [
+ {
+ "category" : "BitEnum",
+ "kind" : "DebugInfoFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "FlagIsProtected",
+ "value" : "0x01"
+ },
+ {
+ "enumerant" : "FlagIsPrivate",
+ "value" : "0x02"
+ },
+ {
+ "enumerant" : "FlagIsPublic",
+ "value" : "0x03"
+ },
+ {
+ "enumerant" : "FlagIsLocal",
+ "value" : "0x04"
+ },
+ {
+ "enumerant" : "FlagIsDefinition",
+ "value" : "0x08"
+ },
+ {
+ "enumerant" : "FlagFwdDecl",
+ "value" : "0x10"
+ },
+ {
+ "enumerant" : "FlagArtificial",
+ "value" : "0x20"
+ },
+ {
+ "enumerant" : "FlagExplicit",
+ "value" : "0x40"
+ },
+ {
+ "enumerant" : "FlagPrototyped",
+ "value" : "0x80"
+ },
+ {
+ "enumerant" : "FlagObjectPointer",
+ "value" : "0x100"
+ },
+ {
+ "enumerant" : "FlagStaticMember",
+ "value" : "0x200"
+ },
+ {
+ "enumerant" : "FlagIndirectVariable",
+ "value" : "0x400"
+ },
+ {
+ "enumerant" : "FlagLValueReference",
+ "value" : "0x800"
+ },
+ {
+ "enumerant" : "FlagRValueReference",
+ "value" : "0x1000"
+ },
+ {
+ "enumerant" : "FlagIsOptimized",
+ "value" : "0x2000"
+ },
+ {
+ "enumerant" : "FlagIsEnumClass",
+ "value" : "0x4000"
+ },
+ {
+ "enumerant" : "FlagTypePassByValue",
+ "value" : "0x8000"
+ },
+ {
+ "enumerant" : "FlagTypePassByReference",
+ "value" : "0x10000"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugBaseTypeAttributeEncoding",
+ "enumerants" : [
+ {
+ "enumerant" : "Unspecified",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "Address",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "Boolean",
+ "value" : "2"
+ },
+ {
+ "enumerant" : "Float",
+ "value" : "3"
+ },
+ {
+ "enumerant" : "Signed",
+ "value" : "4"
+ },
+ {
+ "enumerant" : "SignedChar",
+ "value" : "5"
+ },
+ {
+ "enumerant" : "Unsigned",
+ "value" : "6"
+ },
+ {
+ "enumerant" : "UnsignedChar",
+ "value" : "7"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugCompositeType",
+ "enumerants" : [
+ {
+ "enumerant" : "Class",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "Structure",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "Union",
+ "value" : "2"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugTypeQualifier",
+ "enumerants" : [
+ {
+ "enumerant" : "ConstType",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "VolatileType",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "RestrictType",
+ "value" : "2"
+ },
+ {
+ "enumerant" : "AtomicType",
+ "value" : "3"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugOperation",
+ "enumerants" : [
+ {
+ "enumerant" : "Deref",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "Plus",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "Minus",
+ "value" : "2"
+ },
+ {
+ "enumerant" : "PlusUconst",
+ "value" : "3",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ]
+ },
+ {
+ "enumerant" : "BitPiece",
+ "value" : "4",
+ "parameters" : [
+ { "kind" : "LiteralInteger" },
+ { "kind" : "LiteralInteger" }
+ ]
+ },
+ {
+ "enumerant" : "Swap",
+ "value" : "5"
+ },
+ {
+ "enumerant" : "Xderef",
+ "value" : "6"
+ },
+ {
+ "enumerant" : "StackValue",
+ "value" : "7"
+ },
+ {
+ "enumerant" : "Constu",
+ "value" : "8",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ]
+ },
+ {
+ "enumerant" : "Fragment",
+ "value" : "9",
+ "parameters" : [
+ { "kind" : "LiteralInteger" },
+ { "kind" : "LiteralInteger" }
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugImportedEntity",
+ "enumerants" : [
+ {
+ "enumerant" : "ImportedModule",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "ImportedDeclaration",
+ "value" : "1"
+ }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.opencl.std.100.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.opencl.std.100.grammar.json
new file mode 100644
index 0000000000..4fe45060bb
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.opencl.std.100.grammar.json
@@ -0,0 +1,1279 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "acos",
+ "opcode" : 0,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acosh",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acospi",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asin",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinh",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinpi",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanh",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanpi",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2pi",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cbrt",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ceil",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "copysign",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "cos",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cosh",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cospi",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erfc",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erf",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp2",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp10",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "expm1",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fabs",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fdim",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "floor",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fma",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fmax",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmod",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fract",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'ptr'" }
+ ]
+ },
+ {
+ "opname" : "frexp",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "hypot",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "ilogb",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ldexp",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'k'" }
+ ]
+ },
+ {
+ "opname" : "lgamma",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "lgamma_r",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'signp'" }
+ ]
+ },
+ {
+ "opname" : "log",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log2",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log10",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log1p",
+ "opcode" : 40,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "logb",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "mad",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "maxmag",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "minmag",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "modf",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'iptr'" }
+ ]
+ },
+ {
+ "opname" : "nan",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'nancode'" }
+ ]
+ },
+ {
+ "opname" : "nextafter",
+ "opcode" : 47,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "pow",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y" }
+ ]
+ },
+ {
+ "opname" : "pown",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "powr",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remainder",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remquo",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'quo'" }
+ ]
+ },
+ {
+ "opname" : "rint",
+ "opcode" : 53,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rootn",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "round",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rsqrt",
+ "opcode" : 56,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sin",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sincos",
+ "opcode" : 58,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'cosval'" }
+ ]
+ },
+ {
+ "opname" : "sinh",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sinpi",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sqrt",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tan",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanh",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanpi",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tgamma",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "trunc",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_cos",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_divide",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_exp",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp2",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp10",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log2",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log10",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_powr",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_recip",
+ "opcode" : 76,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_rsqrt",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sin",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sqrt",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_tan",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_cos",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_divide",
+ "opcode" : 82,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_exp",
+ "opcode" : 83,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp2",
+ "opcode" : 84,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp10",
+ "opcode" : 85,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log",
+ "opcode" : 86,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log2",
+ "opcode" : 87,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log10",
+ "opcode" : 88,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_powr",
+ "opcode" : 89,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_recip",
+ "opcode" : 90,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_rsqrt",
+ "opcode" : 91,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sin",
+ "opcode" : 92,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sqrt",
+ "opcode" : 93,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_tan",
+ "opcode" : 94,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs",
+ "opcode" : 141,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs_diff",
+ "opcode" : 142,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_add_sat",
+ "opcode" : 143,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_add_sat",
+ "opcode" : 144,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_hadd",
+ "opcode" : 145,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_hadd",
+ "opcode" : 146,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_rhadd",
+ "opcode" : 147,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_rhadd",
+ "opcode" : 148,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_clamp",
+ "opcode" : 149,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "u_clamp",
+ "opcode" : 150,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "clz",
+ "opcode" : 151,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ctz",
+ "opcode" : 152,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_hi",
+ "opcode" : 153,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_sat",
+ "opcode" : 154,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_sat",
+ "opcode" : 155,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_max",
+ "opcode" : 156,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_max",
+ "opcode" : 157,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_min",
+ "opcode" : 158,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_min",
+ "opcode" : 159,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_mul_hi",
+ "opcode" : 160,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "rotate",
+ "opcode" : 161,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" },
+ { "kind" : "IdRef", "name" : "'i'" }
+ ]
+ },
+ {
+ "opname" : "s_sub_sat",
+ "opcode" : 162,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_sub_sat",
+ "opcode" : 163,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_upsample",
+ "opcode" : 164,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "s_upsample",
+ "opcode" : 165,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "popcount",
+ "opcode" : 166,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad24",
+ "opcode" : 167,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "u_mad24",
+ "opcode" : 168,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mul24",
+ "opcode" : 169,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul24",
+ "opcode" : 170,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_abs",
+ "opcode" : 201,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "u_abs_diff",
+ "opcode" : 202,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul_hi",
+ "opcode" : 203,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_hi",
+ "opcode" : 204,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fclamp",
+ "opcode" : 95,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "degrees",
+ "opcode" :96,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'radians'" }
+ ]
+ },
+ {
+ "opname" : "fmax_common",
+ "opcode" : 97,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin_common",
+ "opcode" : 98,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "mix",
+ "opcode" : 99,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "radians",
+ "opcode" : 100,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'degrees'" }
+ ]
+ },
+ {
+ "opname" : "step",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "smoothstep",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge0'" },
+ { "kind" : "IdRef", "name" : "'edge1'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sign",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cross",
+ "opcode" : 104,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "distance",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "length",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "normalize",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_distance",
+ "opcode" : 108,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "fast_length",
+ "opcode" : 109,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_normalize",
+ "opcode" : 110,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "bitselect",
+ "opcode" : 186,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "select",
+ "opcode" : 187,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "vloadn",
+ "opcode" : 171,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstoren",
+ "opcode" : 172,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_half",
+ "opcode" : 173,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_halfn",
+ "opcode" : 174,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half",
+ "opcode" : 175,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half_r",
+ "opcode" : 176,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn",
+ "opcode" : 177,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn_r",
+ "opcode" : 178,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vloada_halfn",
+ "opcode" : 179,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn",
+ "opcode" : 180,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn_r",
+ "opcode" : 181,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "shuffle",
+ "opcode" : 182,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "shuffle2",
+ "opcode" : 183,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "printf",
+ "opcode" : 184,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'format'" },
+ { "kind" : "IdRef", "name" : "'additional arguments'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "prefetch",
+ "opcode" : 185,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'ptr'" },
+ { "kind" : "IdRef", "name" : "'num elements'" }
+ ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json
new file mode 100644
index 0000000000..e18251bba1
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json
@@ -0,0 +1,26 @@
+{
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "CubeFaceIndexAMD",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "extensions" : [ "SPV_AMD_gcn_shader" ]
+ },
+ {
+ "opname" : "CubeFaceCoordAMD",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "extensions" : [ "SPV_AMD_gcn_shader" ]
+ },
+ {
+ "opname" : "TimeAMD",
+ "opcode" : 3,
+ "extensions" : [ "SPV_AMD_gcn_shader" ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json
new file mode 100644
index 0000000000..62a470eeb6
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json
@@ -0,0 +1,41 @@
+{
+ "revision" : 5,
+ "instructions" : [
+ {
+ "opname" : "SwizzleInvocationsAMD",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_ballot" ]
+ },
+ {
+ "opname" : "SwizzleInvocationsMaskedAMD",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'mask'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_ballot" ]
+ },
+ {
+ "opname" : "WriteInvocationAMD",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'inputValue'" },
+ { "kind" : "IdRef", "name" : "'writeValue'" },
+ { "kind" : "IdRef", "name" : "'invocationIndex'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_ballot" ]
+ },
+ {
+ "opname" : "MbcntAMD",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'mask'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_ballot" ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json
new file mode 100644
index 0000000000..e156b1b6f8
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json
@@ -0,0 +1,14 @@
+{
+ "revision" : 4,
+ "instructions" : [
+ {
+ "opname" : "InterpolateAtVertexAMD",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'interpolant'" },
+ { "kind" : "IdRef", "name" : "'vertexIdx'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-shader-trinary-minmax.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-shader-trinary-minmax.grammar.json
new file mode 100644
index 0000000000..c681976fe9
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/extinst.spv-amd-shader-trinary-minmax.grammar.json
@@ -0,0 +1,95 @@
+{
+ "revision" : 4,
+ "instructions" : [
+ {
+ "opname" : "FMin3AMD",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_trinary_minmax" ]
+ },
+ {
+ "opname" : "UMin3AMD",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_trinary_minmax" ]
+ },
+ {
+ "opname" : "SMin3AMD",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_trinary_minmax" ]
+ },
+ {
+ "opname" : "FMax3AMD",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_trinary_minmax" ]
+ },
+ {
+ "opname" : "UMax3AMD",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_trinary_minmax" ]
+ },
+ {
+ "opname" : "SMax3AMD",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_trinary_minmax" ]
+ },
+ {
+ "opname" : "FMid3AMD",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_trinary_minmax" ]
+ },
+ {
+ "opname" : "UMid3AMD",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_trinary_minmax" ]
+ },
+ {
+ "opname" : "SMid3AMD",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ],
+ "extensions" : [ "SPV_AMD_shader_trinary_minmax" ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.bf b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.bf
new file mode 100644
index 0000000000..a3145c8db7
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.bf
@@ -0,0 +1,1956 @@
+// 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,
+ HitObjectAttributeNV = 5385,
+ 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,
+ RuntimeAlignedINTEL = 5940,
+ }
+
+ [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,
+ HitObjectShaderRecordBufferNV = 5386,
+ 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,
+ MathOpDSPModeINTEL = 5909,
+ AliasScopeINTEL = 5914,
+ NoAliasINTEL = 5915,
+ InitiationIntervalINTEL = 5917,
+ MaxConcurrencyINTEL = 5918,
+ PipelineEnableINTEL = 5919,
+ 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,
+ CoreIDARM = 4160,
+ CoreCountARM = 4161,
+ CoreMaxIDARM = 4162,
+ WarpIDARM = 4163,
+ WarpMaxIDARM = 4164,
+ 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,
+ LoopCountINTEL = 24,
+ MaxReinvocationDelayINTEL = 25,
+ }
+
+ [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,
+ LoopCountINTEL = 0x01000000,
+ MaxReinvocationDelayINTEL = 0x02000000,
+ }
+
+ [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,
+ CoreBuiltinsARM = 4165,
+ 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,
+ RayTracingOpacityMicromapEXT = 5381,
+ ShaderInvocationReorderNV = 5383,
+ 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,
+ FPGADSPControlINTEL = 5908,
+ MemoryAccessAliasingINTEL = 5910,
+ FPGAInvocationPipeliningAttributesINTEL = 5916,
+ FPGABufferLocationINTEL = 5920,
+ ArbitraryPrecisionFixedPointINTEL = 5922,
+ USMStorageClassesINTEL = 5935,
+ RuntimeAlignedAttributeINTEL = 5939,
+ 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,
+ ForceOpacityMicromap2StateEXT = 10,
+ }
+
+ [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,
+ ForceOpacityMicromap2StateEXT = 0x00000400,
+ }
+
+ [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,
+ OpHitObjectRecordHitMotionNV = 5249,
+ OpHitObjectRecordHitWithIndexMotionNV = 5250,
+ OpHitObjectRecordMissMotionNV = 5251,
+ OpHitObjectGetWorldToObjectNV = 5252,
+ OpHitObjectGetObjectToWorldNV = 5253,
+ OpHitObjectGetObjectRayDirectionNV = 5254,
+ OpHitObjectGetObjectRayOriginNV = 5255,
+ OpHitObjectTraceRayMotionNV = 5256,
+ OpHitObjectGetShaderRecordBufferHandleNV = 5257,
+ OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+ OpHitObjectRecordEmptyNV = 5259,
+ OpHitObjectTraceRayNV = 5260,
+ OpHitObjectRecordHitNV = 5261,
+ OpHitObjectRecordHitWithIndexNV = 5262,
+ OpHitObjectRecordMissNV = 5263,
+ OpHitObjectExecuteShaderNV = 5264,
+ OpHitObjectGetCurrentTimeNV = 5265,
+ OpHitObjectGetAttributesNV = 5266,
+ OpHitObjectGetHitKindNV = 5267,
+ OpHitObjectGetPrimitiveIndexNV = 5268,
+ OpHitObjectGetGeometryIndexNV = 5269,
+ OpHitObjectGetInstanceIdNV = 5270,
+ OpHitObjectGetInstanceCustomIndexNV = 5271,
+ OpHitObjectGetWorldRayDirectionNV = 5272,
+ OpHitObjectGetWorldRayOriginNV = 5273,
+ OpHitObjectGetRayTMaxNV = 5274,
+ OpHitObjectGetRayTMinNV = 5275,
+ OpHitObjectIsEmptyNV = 5276,
+ OpHitObjectIsHitNV = 5277,
+ OpHitObjectIsMissNV = 5278,
+ OpReorderThreadWithHitObjectNV = 5279,
+ OpReorderThreadWithHintNV = 5280,
+ OpTypeHitObjectNV = 5281,
+ 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/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.core.grammar.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.core.grammar.json
new file mode 100644
index 0000000000..f9011da13a
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.core.grammar.json
@@ -0,0 +1,14968 @@
+{
+ "copyright" : [
+ "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."
+ ],
+ "magic_number" : "0x07230203",
+ "major_version" : 1,
+ "minor_version" : 6,
+ "revision" : 1,
+ "instruction_printing_class" : [
+ {
+ "tag" : "@exclude"
+ },
+ {
+ "tag" : "Miscellaneous",
+ "heading" : "Miscellaneous Instructions"
+ },
+ {
+ "tag" : "Debug",
+ "heading" : "Debug Instructions"
+ },
+ {
+ "tag" : "Annotation",
+ "heading" : "Annotation Instructions"
+ },
+ {
+ "tag" : "Extension",
+ "heading" : "Extension Instructions"
+ },
+ {
+ "tag" : "Mode-Setting",
+ "heading" : "Mode-Setting Instructions"
+ },
+ {
+ "tag" : "Type-Declaration",
+ "heading" : "Type-Declaration Instructions"
+ },
+ {
+ "tag" : "Constant-Creation",
+ "heading" : "Constant-Creation Instructions"
+ },
+ {
+ "tag" : "Memory",
+ "heading" : "Memory Instructions"
+ },
+ {
+ "tag" : "Function",
+ "heading" : "Function Instructions"
+ },
+ {
+ "tag" : "Image",
+ "heading" : "Image Instructions"
+ },
+ {
+ "tag" : "Conversion",
+ "heading" : "Conversion Instructions"
+ },
+ {
+ "tag" : "Composite",
+ "heading" : "Composite Instructions"
+ },
+ {
+ "tag" : "Arithmetic",
+ "heading" : "Arithmetic Instructions"
+ },
+ {
+ "tag" : "Bit",
+ "heading" : "Bit Instructions"
+ },
+ {
+ "tag" : "Relational_and_Logical",
+ "heading" : "Relational and Logical Instructions"
+ },
+ {
+ "tag" : "Derivative",
+ "heading" : "Derivative Instructions"
+ },
+ {
+ "tag" : "Control-Flow",
+ "heading" : "Control-Flow Instructions"
+ },
+ {
+ "tag" : "Atomic",
+ "heading" : "Atomic Instructions"
+ },
+ {
+ "tag" : "Primitive",
+ "heading" : "Primitive Instructions"
+ },
+ {
+ "tag" : "Barrier",
+ "heading" : "Barrier Instructions"
+ },
+ {
+ "tag" : "Group",
+ "heading" : "Group and Subgroup Instructions"
+ },
+ {
+ "tag" : "Device-Side_Enqueue",
+ "heading" : "Device-Side Enqueue Instructions"
+ },
+ {
+ "tag" : "Pipe",
+ "heading" : "Pipe Instructions"
+ },
+ {
+ "tag" : "Non-Uniform",
+ "heading" : "Non-Uniform Instructions"
+ },
+ {
+ "tag" : "Reserved",
+ "heading" : "Reserved Instructions"
+ }
+ ],
+ "instructions" : [
+ {
+ "opname" : "OpNop",
+ "class" : "Miscellaneous",
+ "opcode" : 0
+ },
+ {
+ "opname" : "OpUndef",
+ "class" : "Miscellaneous",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSourceContinued",
+ "class" : "Debug",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Continued Source'" }
+ ]
+ },
+ {
+ "opname" : "OpSource",
+ "class" : "Debug",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "SourceLanguage" },
+ { "kind" : "LiteralInteger", "name" : "'Version'" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" },
+ { "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" }
+ ]
+ },
+ {
+ "opname" : "OpSourceExtension",
+ "class" : "Debug",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Extension'" }
+ ]
+ },
+ {
+ "opname" : "OpName",
+ "class" : "Debug",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpMemberName",
+ "class" : "Debug",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpString",
+ "class" : "Debug",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'String'" }
+ ]
+ },
+ {
+ "opname" : "OpLine",
+ "class" : "Debug",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'File'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "LiteralInteger", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "OpExtension",
+ "class" : "Extension",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpExtInstImport",
+ "class" : "Extension",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'Name'" }
+ ]
+ },
+ {
+ "opname" : "OpExtInst",
+ "class" : "Extension",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Set'" },
+ { "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpMemoryModel",
+ "class" : "Mode-Setting",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "AddressingModel" },
+ { "kind" : "MemoryModel" }
+ ]
+ },
+ {
+ "opname" : "OpEntryPoint",
+ "class" : "Mode-Setting",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "ExecutionModel" },
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "LiteralString", "name" : "'Name'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" }
+ ]
+ },
+ {
+ "opname" : "OpExecutionMode",
+ "class" : "Mode-Setting",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "ExecutionMode", "name" : "'Mode'" }
+ ]
+ },
+ {
+ "opname" : "OpCapability",
+ "class" : "Mode-Setting",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "Capability", "name" : "'Capability'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeVoid",
+ "class" : "Type-Declaration",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeBool",
+ "class" : "Type-Declaration",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeInt",
+ "class" : "Type-Declaration",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Width'" },
+ { "kind" : "LiteralInteger", "name" : "'Signedness'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeFloat",
+ "class" : "Type-Declaration",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Width'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeVector",
+ "class" : "Type-Declaration",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Component Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Component Count'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeMatrix",
+ "class" : "Type-Declaration",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Column Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Column Count'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpTypeImage",
+ "class" : "Type-Declaration",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Type'" },
+ { "kind" : "Dim" },
+ { "kind" : "LiteralInteger", "name" : "'Depth'" },
+ { "kind" : "LiteralInteger", "name" : "'Arrayed'" },
+ { "kind" : "LiteralInteger", "name" : "'MS'" },
+ { "kind" : "LiteralInteger", "name" : "'Sampled'" },
+ { "kind" : "ImageFormat" },
+ { "kind" : "AccessQualifier", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpTypeSampler",
+ "class" : "Type-Declaration",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpTypeSampledImage",
+ "class" : "Type-Declaration",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image Type'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeArray",
+ "class" : "Type-Declaration",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Element Type'" },
+ { "kind" : "IdRef", "name" : "'Length'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeRuntimeArray",
+ "class" : "Type-Declaration",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Element Type'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpTypeStruct",
+ "class" : "Type-Declaration",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpTypeOpaque",
+ "class" : "Type-Declaration",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "The name of the opaque type." }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpTypePointer",
+ "class" : "Type-Declaration",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "StorageClass" },
+ { "kind" : "IdRef", "name" : "'Type'" }
+ ]
+ },
+ {
+ "opname" : "OpTypeFunction",
+ "class" : "Type-Declaration",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Return Type'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpTypeEvent",
+ "class" : "Type-Declaration",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpTypeDeviceEvent",
+ "class" : "Type-Declaration",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpTypeReserveId",
+ "class" : "Type-Declaration",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpTypeQueue",
+ "class" : "Type-Declaration",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpTypePipe",
+ "class" : "Type-Declaration",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "AccessQualifier", "name" : "'Qualifier'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpTypeForwardPointer",
+ "class" : "Type-Declaration",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer Type'" },
+ { "kind" : "StorageClass" }
+ ],
+ "capabilities" : [
+ "Addresses",
+ "PhysicalStorageBufferAddresses"
+ ]
+ },
+ {
+ "opname" : "OpConstantTrue",
+ "class" : "Constant-Creation",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpConstantFalse",
+ "class" : "Constant-Creation",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpConstant",
+ "class" : "Constant-Creation",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConstantComposite",
+ "class" : "Constant-Creation",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpConstantSampler",
+ "class" : "Constant-Creation",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "SamplerAddressingMode" },
+ { "kind" : "LiteralInteger", "name" : "'Param'" },
+ { "kind" : "SamplerFilterMode" }
+ ],
+ "capabilities" : [ "LiteralSampler" ]
+ },
+ {
+ "opname" : "OpConstantNull",
+ "class" : "Constant-Creation",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantTrue",
+ "class" : "Constant-Creation",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantFalse",
+ "class" : "Constant-Creation",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstant",
+ "class" : "Constant-Creation",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantComposite",
+ "class" : "Constant-Creation",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpSpecConstantOp",
+ "class" : "Constant-Creation",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" }
+ ]
+ },
+ {
+ "opname" : "OpFunction",
+ "class" : "Function",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "FunctionControl" },
+ { "kind" : "IdRef", "name" : "'Function Type'" }
+ ]
+ },
+ {
+ "opname" : "OpFunctionParameter",
+ "class" : "Function",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpFunctionEnd",
+ "class" : "Function",
+ "opcode" : 56
+ },
+ {
+ "opname" : "OpFunctionCall",
+ "class" : "Function",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Function'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." }
+ ]
+ },
+ {
+ "opname" : "OpVariable",
+ "class" : "Memory",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "StorageClass" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" }
+ ]
+ },
+ {
+ "opname" : "OpImageTexelPointer",
+ "class" : "Memory",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Sample'" }
+ ]
+ },
+ {
+ "opname" : "OpLoad",
+ "class" : "Memory",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpStore",
+ "class" : "Memory",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Object'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpCopyMemory",
+ "class" : "Memory",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpCopyMemorySized",
+ "class" : "Memory",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpAccessChain",
+ "class" : "Memory",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpInBoundsAccessChain",
+ "class" : "Memory",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpPtrAccessChain",
+ "class" : "Memory",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Element'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ],
+ "capabilities" : [
+ "Addresses",
+ "VariablePointers",
+ "VariablePointersStorageBuffer",
+ "PhysicalStorageBufferAddresses"
+ ]
+ },
+ {
+ "opname" : "OpArrayLength",
+ "class" : "Memory",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Structure'" },
+ { "kind" : "LiteralInteger", "name" : "'Array member'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpGenericPtrMemSemantics",
+ "class" : "Memory",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpInBoundsPtrAccessChain",
+ "class" : "Memory",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Element'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
+ ],
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "opname" : "OpDecorate",
+ "class" : "Annotation",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ]
+ },
+ {
+ "opname" : "OpMemberDecorate",
+ "class" : "Annotation",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Structure Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "Decoration" }
+ ]
+ },
+ {
+ "opname" : "OpDecorationGroup",
+ "class" : "Annotation",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpGroupDecorate",
+ "class" : "Annotation",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Decoration Group'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" }
+ ]
+ },
+ {
+ "opname" : "OpGroupMemberDecorate",
+ "class" : "Annotation",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Decoration Group'" },
+ { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorExtractDynamic",
+ "class" : "Composite",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorInsertDynamic",
+ "class" : "Composite",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorShuffle",
+ "class" : "Composite",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeConstruct",
+ "class" : "Composite",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeExtract",
+ "class" : "Composite",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Composite'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpCompositeInsert",
+ "class" : "Composite",
+ "opcode" : 82,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Object'" },
+ { "kind" : "IdRef", "name" : "'Composite'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
+ ]
+ },
+ {
+ "opname" : "OpCopyObject",
+ "class" : "Composite",
+ "opcode" : 83,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpTranspose",
+ "class" : "Composite",
+ "opcode" : 84,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpSampledImage",
+ "class" : "Image",
+ "opcode" : 86,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Sampler'" }
+ ]
+ },
+ {
+ "opname" : "OpImageSampleImplicitLod",
+ "class" : "Image",
+ "opcode" : 87,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleExplicitLod",
+ "class" : "Image",
+ "opcode" : 88,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ]
+ },
+ {
+ "opname" : "OpImageSampleDrefImplicitLod",
+ "class" : "Image",
+ "opcode" : 89,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleDrefExplicitLod",
+ "class" : "Image",
+ "opcode" : 90,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjImplicitLod",
+ "class" : "Image",
+ "opcode" : 91,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjExplicitLod",
+ "class" : "Image",
+ "opcode" : 92,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjDrefImplicitLod",
+ "class" : "Image",
+ "opcode" : 93,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageSampleProjDrefExplicitLod",
+ "class" : "Image",
+ "opcode" : 94,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageFetch",
+ "class" : "Image",
+ "opcode" : 95,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImageGather",
+ "class" : "Image",
+ "opcode" : 96,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageDrefGather",
+ "class" : "Image",
+ "opcode" : 97,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpImageRead",
+ "class" : "Image",
+ "opcode" : 98,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImageWrite",
+ "class" : "Image",
+ "opcode" : 99,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Texel'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "OpImage",
+ "class" : "Image",
+ "opcode" : 100,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" }
+ ]
+ },
+ {
+ "opname" : "OpImageQueryFormat",
+ "class" : "Image",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageQueryOrder",
+ "class" : "Image",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageQuerySizeLod",
+ "class" : "Image",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Level of Detail'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQuerySize",
+ "class" : "Image",
+ "opcode" : 104,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQueryLod",
+ "class" : "Image",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQueryLevels",
+ "class" : "Image",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpImageQuerySamples",
+ "class" : "Image",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" }
+ ],
+ "capabilities" : [ "Kernel", "ImageQuery" ]
+ },
+ {
+ "opname" : "OpConvertFToU",
+ "class" : "Conversion",
+ "opcode" : 109,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertFToS",
+ "class" : "Conversion",
+ "opcode" : 110,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertSToF",
+ "class" : "Conversion",
+ "opcode" : 111,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertUToF",
+ "class" : "Conversion",
+ "opcode" : 112,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ]
+ },
+ {
+ "opname" : "OpUConvert",
+ "class" : "Conversion",
+ "opcode" : 113,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ]
+ },
+ {
+ "opname" : "OpSConvert",
+ "class" : "Conversion",
+ "opcode" : 114,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ]
+ },
+ {
+ "opname" : "OpFConvert",
+ "class" : "Conversion",
+ "opcode" : 115,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Float Value'" }
+ ]
+ },
+ {
+ "opname" : "OpQuantizeToF16",
+ "class" : "Conversion",
+ "opcode" : 116,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpConvertPtrToU",
+ "class" : "Conversion",
+ "opcode" : 117,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [
+ "Addresses",
+ "PhysicalStorageBufferAddresses"
+ ]
+ },
+ {
+ "opname" : "OpSatConvertSToU",
+ "class" : "Conversion",
+ "opcode" : 118,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Signed Value'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpSatConvertUToS",
+ "class" : "Conversion",
+ "opcode" : 119,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Unsigned Value'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpConvertUToPtr",
+ "class" : "Conversion",
+ "opcode" : 120,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Integer Value'" }
+ ],
+ "capabilities" : [
+ "Addresses",
+ "PhysicalStorageBufferAddresses"
+ ]
+ },
+ {
+ "opname" : "OpPtrCastToGeneric",
+ "class" : "Conversion",
+ "opcode" : 121,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGenericCastToPtr",
+ "class" : "Conversion",
+ "opcode" : 122,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGenericCastToPtrExplicit",
+ "class" : "Conversion",
+ "opcode" : 123,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "StorageClass", "name" : "'Storage'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpBitcast",
+ "class" : "Conversion",
+ "opcode" : 124,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpSNegate",
+ "class" : "Arithmetic",
+ "opcode" : 126,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpFNegate",
+ "class" : "Arithmetic",
+ "opcode" : 127,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpIAdd",
+ "class" : "Arithmetic",
+ "opcode" : 128,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFAdd",
+ "class" : "Arithmetic",
+ "opcode" : 129,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpISub",
+ "class" : "Arithmetic",
+ "opcode" : 130,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFSub",
+ "class" : "Arithmetic",
+ "opcode" : 131,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIMul",
+ "class" : "Arithmetic",
+ "opcode" : 132,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFMul",
+ "class" : "Arithmetic",
+ "opcode" : 133,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUDiv",
+ "class" : "Arithmetic",
+ "opcode" : 134,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSDiv",
+ "class" : "Arithmetic",
+ "opcode" : 135,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFDiv",
+ "class" : "Arithmetic",
+ "opcode" : 136,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUMod",
+ "class" : "Arithmetic",
+ "opcode" : 137,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSRem",
+ "class" : "Arithmetic",
+ "opcode" : 138,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSMod",
+ "class" : "Arithmetic",
+ "opcode" : 139,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFRem",
+ "class" : "Arithmetic",
+ "opcode" : 140,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFMod",
+ "class" : "Arithmetic",
+ "opcode" : 141,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpVectorTimesScalar",
+ "class" : "Arithmetic",
+ "opcode" : 142,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Scalar'" }
+ ]
+ },
+ {
+ "opname" : "OpMatrixTimesScalar",
+ "class" : "Arithmetic",
+ "opcode" : 143,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" },
+ { "kind" : "IdRef", "name" : "'Scalar'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpVectorTimesMatrix",
+ "class" : "Arithmetic",
+ "opcode" : 144,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" },
+ { "kind" : "IdRef", "name" : "'Matrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpMatrixTimesVector",
+ "class" : "Arithmetic",
+ "opcode" : 145,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Matrix'" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpMatrixTimesMatrix",
+ "class" : "Arithmetic",
+ "opcode" : 146,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'LeftMatrix'" },
+ { "kind" : "IdRef", "name" : "'RightMatrix'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpOuterProduct",
+ "class" : "Arithmetic",
+ "opcode" : 147,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" }
+ ],
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "opname" : "OpDot",
+ "class" : "Arithmetic",
+ "opcode" : 148,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIAddCarry",
+ "class" : "Arithmetic",
+ "opcode" : 149,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpISubBorrow",
+ "class" : "Arithmetic",
+ "opcode" : 150,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUMulExtended",
+ "class" : "Arithmetic",
+ "opcode" : 151,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSMulExtended",
+ "class" : "Arithmetic",
+ "opcode" : 152,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpAny",
+ "class" : "Relational_and_Logical",
+ "opcode" : 154,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ]
+ },
+ {
+ "opname" : "OpAll",
+ "class" : "Relational_and_Logical",
+ "opcode" : 155,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector'" }
+ ]
+ },
+ {
+ "opname" : "OpIsNan",
+ "class" : "Relational_and_Logical",
+ "opcode" : 156,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "OpIsInf",
+ "class" : "Relational_and_Logical",
+ "opcode" : 157,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "OpIsFinite",
+ "class" : "Relational_and_Logical",
+ "opcode" : 158,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpIsNormal",
+ "class" : "Relational_and_Logical",
+ "opcode" : 159,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpSignBitSet",
+ "class" : "Relational_and_Logical",
+ "opcode" : 160,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLessOrGreater",
+ "class" : "Relational_and_Logical",
+ "opcode" : 161,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ],
+ "lastVersion" : "1.5"
+ },
+ {
+ "opname" : "OpOrdered",
+ "class" : "Relational_and_Logical",
+ "opcode" : 162,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpUnordered",
+ "class" : "Relational_and_Logical",
+ "opcode" : 163,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLogicalEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 164,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalNotEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 165,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalOr",
+ "class" : "Relational_and_Logical",
+ "opcode" : 166,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalAnd",
+ "class" : "Relational_and_Logical",
+ "opcode" : 167,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpLogicalNot",
+ "class" : "Relational_and_Logical",
+ "opcode" : 168,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpSelect",
+ "class" : "Relational_and_Logical",
+ "opcode" : 169,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Condition'" },
+ { "kind" : "IdRef", "name" : "'Object 1'" },
+ { "kind" : "IdRef", "name" : "'Object 2'" }
+ ]
+ },
+ {
+ "opname" : "OpIEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 170,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpINotEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 171,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUGreaterThan",
+ "class" : "Relational_and_Logical",
+ "opcode" : 172,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSGreaterThan",
+ "class" : "Relational_and_Logical",
+ "opcode" : 173,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpUGreaterThanEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 174,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSGreaterThanEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 175,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpULessThan",
+ "class" : "Relational_and_Logical",
+ "opcode" : 176,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSLessThan",
+ "class" : "Relational_and_Logical",
+ "opcode" : 177,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpULessThanEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 178,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpSLessThanEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 179,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 180,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 181,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdNotEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 182,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordNotEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 183,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdLessThan",
+ "class" : "Relational_and_Logical",
+ "opcode" : 184,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordLessThan",
+ "class" : "Relational_and_Logical",
+ "opcode" : 185,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdGreaterThan",
+ "class" : "Relational_and_Logical",
+ "opcode" : 186,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordGreaterThan",
+ "class" : "Relational_and_Logical",
+ "opcode" : 187,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdLessThanEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 188,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordLessThanEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 189,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFOrdGreaterThanEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 190,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpFUnordGreaterThanEqual",
+ "class" : "Relational_and_Logical",
+ "opcode" : 191,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftRightLogical",
+ "class" : "Bit",
+ "opcode" : 194,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftRightArithmetic",
+ "class" : "Bit",
+ "opcode" : 195,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpShiftLeftLogical",
+ "class" : "Bit",
+ "opcode" : 196,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Shift'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseOr",
+ "class" : "Bit",
+ "opcode" : 197,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseXor",
+ "class" : "Bit",
+ "opcode" : 198,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpBitwiseAnd",
+ "class" : "Bit",
+ "opcode" : 199,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ]
+ },
+ {
+ "opname" : "OpNot",
+ "class" : "Bit",
+ "opcode" : 200,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ]
+ },
+ {
+ "opname" : "OpBitFieldInsert",
+ "class" : "Bit",
+ "opcode" : 201,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Insert'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader", "BitInstructions" ]
+ },
+ {
+ "opname" : "OpBitFieldSExtract",
+ "class" : "Bit",
+ "opcode" : 202,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader", "BitInstructions" ]
+ },
+ {
+ "opname" : "OpBitFieldUExtract",
+ "class" : "Bit",
+ "opcode" : 203,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Count'" }
+ ],
+ "capabilities" : [ "Shader", "BitInstructions" ]
+ },
+ {
+ "opname" : "OpBitReverse",
+ "class" : "Bit",
+ "opcode" : 204,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" }
+ ],
+ "capabilities" : [ "Shader", "BitInstructions" ]
+ },
+ {
+ "opname" : "OpBitCount",
+ "class" : "Bit",
+ "opcode" : 205,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Base'" }
+ ]
+ },
+ {
+ "opname" : "OpDPdx",
+ "class" : "Derivative",
+ "opcode" : 207,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpDPdy",
+ "class" : "Derivative",
+ "opcode" : 208,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpFwidth",
+ "class" : "Derivative",
+ "opcode" : 209,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpDPdxFine",
+ "class" : "Derivative",
+ "opcode" : 210,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdyFine",
+ "class" : "Derivative",
+ "opcode" : 211,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpFwidthFine",
+ "class" : "Derivative",
+ "opcode" : 212,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdxCoarse",
+ "class" : "Derivative",
+ "opcode" : 213,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpDPdyCoarse",
+ "class" : "Derivative",
+ "opcode" : 214,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpFwidthCoarse",
+ "class" : "Derivative",
+ "opcode" : 215,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'P'" }
+ ],
+ "capabilities" : [ "DerivativeControl" ]
+ },
+ {
+ "opname" : "OpEmitVertex",
+ "class" : "Primitive",
+ "opcode" : 218,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "opname" : "OpEndPrimitive",
+ "class" : "Primitive",
+ "opcode" : 219,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "opname" : "OpEmitStreamVertex",
+ "class" : "Primitive",
+ "opcode" : 220,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Stream'" }
+ ],
+ "capabilities" : [ "GeometryStreams" ]
+ },
+ {
+ "opname" : "OpEndStreamPrimitive",
+ "class" : "Primitive",
+ "opcode" : 221,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Stream'" }
+ ],
+ "capabilities" : [ "GeometryStreams" ]
+ },
+ {
+ "opname" : "OpControlBarrier",
+ "class" : "Barrier",
+ "opcode" : 224,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpMemoryBarrier",
+ "class" : "Barrier",
+ "opcode" : 225,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicLoad",
+ "class" : "Atomic",
+ "opcode" : 227,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicStore",
+ "class" : "Atomic",
+ "opcode" : 228,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicExchange",
+ "class" : "Atomic",
+ "opcode" : 229,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicCompareExchange",
+ "class" : "Atomic",
+ "opcode" : 230,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Comparator'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicCompareExchangeWeak",
+ "class" : "Atomic",
+ "opcode" : 231,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Comparator'" }
+ ],
+ "capabilities" : [ "Kernel" ],
+ "lastVersion" : "1.3"
+ },
+ {
+ "opname" : "OpAtomicIIncrement",
+ "class" : "Atomic",
+ "opcode" : 232,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicIDecrement",
+ "class" : "Atomic",
+ "opcode" : 233,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicIAdd",
+ "class" : "Atomic",
+ "opcode" : 234,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicISub",
+ "class" : "Atomic",
+ "opcode" : 235,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicSMin",
+ "class" : "Atomic",
+ "opcode" : 236,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicUMin",
+ "class" : "Atomic",
+ "opcode" : 237,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicSMax",
+ "class" : "Atomic",
+ "opcode" : 238,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicUMax",
+ "class" : "Atomic",
+ "opcode" : 239,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicAnd",
+ "class" : "Atomic",
+ "opcode" : 240,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicOr",
+ "class" : "Atomic",
+ "opcode" : 241,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpAtomicXor",
+ "class" : "Atomic",
+ "opcode" : 242,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpPhi",
+ "class" : "Control-Flow",
+ "opcode" : 245,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" }
+ ]
+ },
+ {
+ "opname" : "OpLoopMerge",
+ "class" : "Control-Flow",
+ "opcode" : 246,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Merge Block'" },
+ { "kind" : "IdRef", "name" : "'Continue Target'" },
+ { "kind" : "LoopControl" }
+ ]
+ },
+ {
+ "opname" : "OpSelectionMerge",
+ "class" : "Control-Flow",
+ "opcode" : 247,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Merge Block'" },
+ { "kind" : "SelectionControl" }
+ ]
+ },
+ {
+ "opname" : "OpLabel",
+ "class" : "Control-Flow",
+ "opcode" : 248,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ]
+ },
+ {
+ "opname" : "OpBranch",
+ "class" : "Control-Flow",
+ "opcode" : 249,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target Label'" }
+ ]
+ },
+ {
+ "opname" : "OpBranchConditional",
+ "class" : "Control-Flow",
+ "opcode" : 250,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Condition'" },
+ { "kind" : "IdRef", "name" : "'True Label'" },
+ { "kind" : "IdRef", "name" : "'False Label'" },
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" }
+ ]
+ },
+ {
+ "opname" : "OpSwitch",
+ "class" : "Control-Flow",
+ "opcode" : 251,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Selector'" },
+ { "kind" : "IdRef", "name" : "'Default'" },
+ { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" }
+ ]
+ },
+ {
+ "opname" : "OpKill",
+ "class" : "Control-Flow",
+ "opcode" : 252,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "opname" : "OpReturn",
+ "class" : "Control-Flow",
+ "opcode" : 253
+ },
+ {
+ "opname" : "OpReturnValue",
+ "class" : "Control-Flow",
+ "opcode" : 254,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ]
+ },
+ {
+ "opname" : "OpUnreachable",
+ "class" : "Control-Flow",
+ "opcode" : 255
+ },
+ {
+ "opname" : "OpLifetimeStart",
+ "class" : "Control-Flow",
+ "opcode" : 256,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpLifetimeStop",
+ "class" : "Control-Flow",
+ "opcode" : 257,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupAsyncCopy",
+ "class" : "Group",
+ "opcode" : 259,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Destination'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Num Elements'" },
+ { "kind" : "IdRef", "name" : "'Stride'" },
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupWaitEvents",
+ "class" : "Group",
+ "opcode" : 260,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Events List'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpGroupAll",
+ "class" : "Group",
+ "opcode" : 261,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupAny",
+ "class" : "Group",
+ "opcode" : 262,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupBroadcast",
+ "class" : "Group",
+ "opcode" : 263,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'LocalId'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupIAdd",
+ "class" : "Group",
+ "opcode" : 264,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFAdd",
+ "class" : "Group",
+ "opcode" : 265,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMin",
+ "class" : "Group",
+ "opcode" : 266,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMin",
+ "class" : "Group",
+ "opcode" : 267,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMin",
+ "class" : "Group",
+ "opcode" : 268,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupFMax",
+ "class" : "Group",
+ "opcode" : 269,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupUMax",
+ "class" : "Group",
+ "opcode" : 270,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpGroupSMax",
+ "class" : "Group",
+ "opcode" : 271,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ]
+ },
+ {
+ "opname" : "OpReadPipe",
+ "class" : "Pipe",
+ "opcode" : 274,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpWritePipe",
+ "class" : "Pipe",
+ "opcode" : 275,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReservedReadPipe",
+ "class" : "Pipe",
+ "opcode" : 276,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Index'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReservedWritePipe",
+ "class" : "Pipe",
+ "opcode" : 277,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Index'" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReserveReadPipePackets",
+ "class" : "Pipe",
+ "opcode" : 278,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpReserveWritePipePackets",
+ "class" : "Pipe",
+ "opcode" : 279,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpCommitReadPipe",
+ "class" : "Pipe",
+ "opcode" : 280,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpCommitWritePipe",
+ "class" : "Pipe",
+ "opcode" : 281,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpIsValidReserveId",
+ "class" : "Pipe",
+ "opcode" : 282,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGetNumPipePackets",
+ "class" : "Pipe",
+ "opcode" : 283,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGetMaxPipePackets",
+ "class" : "Pipe",
+ "opcode" : 284,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupReserveReadPipePackets",
+ "class" : "Pipe",
+ "opcode" : 285,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupReserveWritePipePackets",
+ "class" : "Pipe",
+ "opcode" : 286,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Num Packets'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupCommitReadPipe",
+ "class" : "Pipe",
+ "opcode" : 287,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpGroupCommitWritePipe",
+ "class" : "Pipe",
+ "opcode" : 288,
+ "operands" : [
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Pipe'" },
+ { "kind" : "IdRef", "name" : "'Reserve Id'" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "Pipes" ]
+ },
+ {
+ "opname" : "OpEnqueueMarker",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 291,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Queue'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Wait Events'" },
+ { "kind" : "IdRef", "name" : "'Ret Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpEnqueueKernel",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 292,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Queue'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Num Events'" },
+ { "kind" : "IdRef", "name" : "'Wait Events'" },
+ { "kind" : "IdRef", "name" : "'Ret Event'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Local Size'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelNDrangeSubGroupCount",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 293,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelNDrangeMaxSubGroupSize",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 294,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'ND Range'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelWorkGroupSize",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 295,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 296,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpRetainEvent",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 297,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpReleaseEvent",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 298,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpCreateUserEvent",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 299,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpIsValidEvent",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 300,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Event'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpSetUserEventStatus",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 301,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" },
+ { "kind" : "IdRef", "name" : "'Status'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpCaptureEventProfilingInfo",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 302,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Event'" },
+ { "kind" : "IdRef", "name" : "'Profiling Info'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpGetDefaultQueue",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 303,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpBuildNDRange",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 304,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'GlobalWorkSize'" },
+ { "kind" : "IdRef", "name" : "'LocalWorkSize'" },
+ { "kind" : "IdRef", "name" : "'GlobalWorkOffset'" }
+ ],
+ "capabilities" : [ "DeviceEnqueue" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleImplicitLod",
+ "class" : "Image",
+ "opcode" : 305,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleExplicitLod",
+ "class" : "Image",
+ "opcode" : 306,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleDrefImplicitLod",
+ "class" : "Image",
+ "opcode" : 307,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleDrefExplicitLod",
+ "class" : "Image",
+ "opcode" : 308,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseSampleProjImplicitLod",
+ "class" : "Image",
+ "opcode" : 309,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpImageSparseSampleProjExplicitLod",
+ "class" : "Image",
+ "opcode" : 310,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpImageSparseSampleProjDrefImplicitLod",
+ "class" : "Image",
+ "opcode" : 311,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpImageSparseSampleProjDrefExplicitLod",
+ "class" : "Image",
+ "opcode" : 312,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands" }
+ ],
+ "capabilities" : [ "SparseResidency" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpImageSparseFetch",
+ "class" : "Image",
+ "opcode" : 313,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseGather",
+ "class" : "Image",
+ "opcode" : 314,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Component'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseDrefGather",
+ "class" : "Image",
+ "opcode" : 315,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'D~ref~'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpImageSparseTexelsResident",
+ "class" : "Image",
+ "opcode" : 316,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Resident Code'" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpNoLine",
+ "class" : "Debug",
+ "opcode" : 317
+ },
+ {
+ "opname" : "OpAtomicFlagTestAndSet",
+ "class" : "Atomic",
+ "opcode" : 318,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpAtomicFlagClear",
+ "class" : "Atomic",
+ "opcode" : 319,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "opname" : "OpImageSparseRead",
+ "class" : "Image",
+ "opcode" : 320,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "SparseResidency" ]
+ },
+ {
+ "opname" : "OpSizeOf",
+ "class" : "Miscellaneous",
+ "opcode" : 321,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "Addresses" ],
+ "version" : "1.1"
+ },
+ {
+ "opname" : "OpTypePipeStorage",
+ "class" : "Type-Declaration",
+ "opcode" : 322,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "PipeStorage" ],
+ "version" : "1.1"
+ },
+ {
+ "opname" : "OpConstantPipeStorage",
+ "class" : "Pipe",
+ "opcode" : 323,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralInteger", "name" : "'Packet Size'" },
+ { "kind" : "LiteralInteger", "name" : "'Packet Alignment'" },
+ { "kind" : "LiteralInteger", "name" : "'Capacity'" }
+ ],
+ "capabilities" : [ "PipeStorage" ],
+ "version" : "1.1"
+ },
+ {
+ "opname" : "OpCreatePipeFromPipeStorage",
+ "class" : "Pipe",
+ "opcode" : 324,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pipe Storage'" }
+ ],
+ "capabilities" : [ "PipeStorage" ],
+ "version" : "1.1"
+ },
+ {
+ "opname" : "OpGetKernelLocalSizeForSubgroupCount",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 325,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Subgroup Count'" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "SubgroupDispatch" ],
+ "version" : "1.1"
+ },
+ {
+ "opname" : "OpGetKernelMaxNumSubgroups",
+ "class" : "Device-Side_Enqueue",
+ "opcode" : 326,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Invoke'" },
+ { "kind" : "IdRef", "name" : "'Param'" },
+ { "kind" : "IdRef", "name" : "'Param Size'" },
+ { "kind" : "IdRef", "name" : "'Param Align'" }
+ ],
+ "capabilities" : [ "SubgroupDispatch" ],
+ "version" : "1.1"
+ },
+ {
+ "opname" : "OpTypeNamedBarrier",
+ "class" : "Type-Declaration",
+ "opcode" : 327,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "NamedBarrier" ],
+ "version" : "1.1"
+ },
+ {
+ "opname" : "OpNamedBarrierInitialize",
+ "class" : "Barrier",
+ "opcode" : 328,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Subgroup Count'" }
+ ],
+ "capabilities" : [ "NamedBarrier" ],
+ "version" : "1.1"
+ },
+ {
+ "opname" : "OpMemoryNamedBarrier",
+ "class" : "Barrier",
+ "opcode" : 329,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Named Barrier'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
+ ],
+ "capabilities" : [ "NamedBarrier" ],
+ "version" : "1.1"
+ },
+ {
+ "opname" : "OpModuleProcessed",
+ "class" : "Debug",
+ "opcode" : 330,
+ "operands" : [
+ { "kind" : "LiteralString", "name" : "'Process'" }
+ ],
+ "version" : "1.1"
+ },
+ {
+ "opname" : "OpExecutionModeId",
+ "class" : "Mode-Setting",
+ "opcode" : 331,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "ExecutionMode", "name" : "'Mode'" }
+ ],
+ "version" : "1.2"
+ },
+ {
+ "opname" : "OpDecorateId",
+ "class" : "Annotation",
+ "opcode" : 332,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
+ "version" : "1.2"
+ },
+ {
+ "opname" : "OpGroupNonUniformElect",
+ "class" : "Non-Uniform",
+ "opcode" : 333,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" }
+ ],
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformAll",
+ "class" : "Non-Uniform",
+ "opcode" : 334,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "GroupNonUniformVote" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformAny",
+ "class" : "Non-Uniform",
+ "opcode" : 335,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "GroupNonUniformVote" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformAllEqual",
+ "class" : "Non-Uniform",
+ "opcode" : 336,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformVote" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBroadcast",
+ "class" : "Non-Uniform",
+ "opcode" : 337,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Id'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBroadcastFirst",
+ "class" : "Non-Uniform",
+ "opcode" : 338,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBallot",
+ "class" : "Non-Uniform",
+ "opcode" : 339,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformInverseBallot",
+ "class" : "Non-Uniform",
+ "opcode" : 340,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBallotBitExtract",
+ "class" : "Non-Uniform",
+ "opcode" : 341,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBallotBitCount",
+ "class" : "Non-Uniform",
+ "opcode" : 342,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBallotFindLSB",
+ "class" : "Non-Uniform",
+ "opcode" : 343,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBallotFindMSB",
+ "class" : "Non-Uniform",
+ "opcode" : 344,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformShuffle",
+ "class" : "Non-Uniform",
+ "opcode" : 345,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Id'" }
+ ],
+ "capabilities" : [ "GroupNonUniformShuffle" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformShuffleXor",
+ "class" : "Non-Uniform",
+ "opcode" : 346,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Mask'" }
+ ],
+ "capabilities" : [ "GroupNonUniformShuffle" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformShuffleUp",
+ "class" : "Non-Uniform",
+ "opcode" : 347,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Delta'" }
+ ],
+ "capabilities" : [ "GroupNonUniformShuffleRelative" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformShuffleDown",
+ "class" : "Non-Uniform",
+ "opcode" : 348,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Delta'" }
+ ],
+ "capabilities" : [ "GroupNonUniformShuffleRelative" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformIAdd",
+ "class" : "Non-Uniform",
+ "opcode" : 349,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformFAdd",
+ "class" : "Non-Uniform",
+ "opcode" : 350,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformIMul",
+ "class" : "Non-Uniform",
+ "opcode" : 351,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformFMul",
+ "class" : "Non-Uniform",
+ "opcode" : 352,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformSMin",
+ "class" : "Non-Uniform",
+ "opcode" : 353,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformUMin",
+ "class" : "Non-Uniform",
+ "opcode" : 354,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformFMin",
+ "class" : "Non-Uniform",
+ "opcode" : 355,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformSMax",
+ "class" : "Non-Uniform",
+ "opcode" : 356,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformUMax",
+ "class" : "Non-Uniform",
+ "opcode" : 357,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformFMax",
+ "class" : "Non-Uniform",
+ "opcode" : 358,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBitwiseAnd",
+ "class" : "Non-Uniform",
+ "opcode" : 359,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBitwiseOr",
+ "class" : "Non-Uniform",
+ "opcode" : 360,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformBitwiseXor",
+ "class" : "Non-Uniform",
+ "opcode" : 361,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformLogicalAnd",
+ "class" : "Non-Uniform",
+ "opcode" : 362,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformLogicalOr",
+ "class" : "Non-Uniform",
+ "opcode" : 363,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformLogicalXor",
+ "class" : "Non-Uniform",
+ "opcode" : 364,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformQuadBroadcast",
+ "class" : "Non-Uniform",
+ "opcode" : 365,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ],
+ "capabilities" : [ "GroupNonUniformQuad" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpGroupNonUniformQuadSwap",
+ "class" : "Non-Uniform",
+ "opcode" : 366,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Direction'" }
+ ],
+ "capabilities" : [ "GroupNonUniformQuad" ],
+ "version" : "1.3"
+ },
+ {
+ "opname" : "OpCopyLogical",
+ "class" : "Composite",
+ "opcode" : 400,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "opname" : "OpPtrEqual",
+ "class" : "Memory",
+ "opcode" : 401,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "opname" : "OpPtrNotEqual",
+ "class" : "Memory",
+ "opcode" : 402,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "opname" : "OpPtrDiff",
+ "class" : "Memory",
+ "opcode" : 403,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "Addresses", "VariablePointers", "VariablePointersStorageBuffer" ],
+ "version" : "1.4"
+ },
+ {
+ "opname" : "OpTerminateInvocation",
+ "class" : "Control-Flow",
+ "opcode" : 4416,
+ "extensions" : [
+ "SPV_KHR_terminate_invocation"
+ ],
+ "capabilities" : [ "Shader" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSubgroupBallotKHR",
+ "class" : "Group",
+ "opcode" : 4421,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ],
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupFirstInvocationKHR",
+ "class" : "Group",
+ "opcode" : 4422,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ],
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAllKHR",
+ "class" : "Group",
+ "opcode" : 4428,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "extensions" : [
+ "SPV_KHR_subgroup_vote"
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAnyKHR",
+ "class" : "Group",
+ "opcode" : 4429,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "extensions" : [
+ "SPV_KHR_subgroup_vote"
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAllEqualKHR",
+ "class" : "Group",
+ "opcode" : 4430,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "extensions" : [
+ "SPV_KHR_subgroup_vote"
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ],
+ "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,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ],
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTraceRayKHR",
+ "class" : "Reserved",
+ "opcode" : 4445,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'Accel'" },
+ { "kind" : "IdRef", "name" : "'Ray Flags'" },
+ { "kind" : "IdRef", "name" : "'Cull Mask'" },
+ { "kind" : "IdRef", "name" : "'SBT Offset'" },
+ { "kind" : "IdRef", "name" : "'SBT Stride'" },
+ { "kind" : "IdRef", "name" : "'Miss Index'" },
+ { "kind" : "IdRef", "name" : "'Ray Origin'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmin'" },
+ { "kind" : "IdRef", "name" : "'Ray Direction'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmax'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "RayTracingKHR" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpExecuteCallableKHR",
+ "class" : "Reserved",
+ "opcode" : 4446,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'SBT Index'" },
+ { "kind" : "IdRef", "name" : "'Callable Data'" }
+ ],
+ "capabilities" : [ "RayTracingKHR" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertUToAccelerationStructureKHR",
+ "class" : "Reserved",
+ "opcode" : 4447,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Accel'" }
+ ],
+ "capabilities" : [ "RayTracingKHR", "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_tracing", "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIgnoreIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 4448,
+ "capabilities" : [ "RayTracingKHR" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTerminateRayKHR",
+ "class" : "Reserved",
+ "opcode" : 4449,
+ "capabilities" : [ "RayTracingKHR" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSDot",
+ "class" : "Arithmetic",
+ "opcode" : 4450,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProduct" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSDotKHR",
+ "class" : "Arithmetic",
+ "opcode" : 4450,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProductKHR" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpUDot",
+ "class" : "Arithmetic",
+ "opcode" : 4451,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProduct" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpUDotKHR",
+ "class" : "Arithmetic",
+ "opcode" : 4451,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProductKHR" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSUDot",
+ "class" : "Arithmetic",
+ "opcode" : 4452,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProduct" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSUDotKHR",
+ "class" : "Arithmetic",
+ "opcode" : 4452,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProductKHR" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSDotAccSat",
+ "class" : "Arithmetic",
+ "opcode" : 4453,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "IdRef", "name" : "'Accumulator'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProduct" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSDotAccSatKHR",
+ "class" : "Arithmetic",
+ "opcode" : 4453,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "IdRef", "name" : "'Accumulator'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProductKHR" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpUDotAccSat",
+ "class" : "Arithmetic",
+ "opcode" : 4454,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "IdRef", "name" : "'Accumulator'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProduct" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpUDotAccSatKHR",
+ "class" : "Arithmetic",
+ "opcode" : 4454,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "IdRef", "name" : "'Accumulator'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProductKHR" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSUDotAccSat",
+ "class" : "Arithmetic",
+ "opcode" : 4455,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "IdRef", "name" : "'Accumulator'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProduct" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSUDotAccSatKHR",
+ "class" : "Arithmetic",
+ "opcode" : 4455,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "IdRef", "name" : "'Accumulator'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProductKHR" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpTypeRayQueryKHR",
+ "class" : "Reserved",
+ "opcode" : 4472,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryInitializeKHR",
+ "class" : "Reserved",
+ "opcode" : 4473,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Accel'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayFlags'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'CullMask'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayOrigin'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayTMin'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayDirection'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayTMax'"
+ }
+
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryTerminateKHR",
+ "class" : "Reserved",
+ "opcode" : 4474,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGenerateIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 4475,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'HitT'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryConfirmIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 4476,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryProceedKHR",
+ "class" : "Reserved",
+ "opcode" : 4477,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionTypeKHR",
+ "class" : "Reserved",
+ "opcode" : 4479,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupIAddNonUniformAMD",
+ "class" : "Group",
+ "opcode" : 5000,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ],
+ "extensions" : [ "SPV_AMD_shader_ballot" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupFAddNonUniformAMD",
+ "class" : "Group",
+ "opcode" : 5001,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ],
+ "extensions" : [ "SPV_AMD_shader_ballot" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupFMinNonUniformAMD",
+ "class" : "Group",
+ "opcode" : 5002,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ],
+ "extensions" : [ "SPV_AMD_shader_ballot" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupUMinNonUniformAMD",
+ "class" : "Group",
+ "opcode" : 5003,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ],
+ "extensions" : [ "SPV_AMD_shader_ballot" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupSMinNonUniformAMD",
+ "class" : "Group",
+ "opcode" : 5004,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ],
+ "extensions" : [ "SPV_AMD_shader_ballot" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupFMaxNonUniformAMD",
+ "class" : "Group",
+ "opcode" : 5005,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ],
+ "extensions" : [ "SPV_AMD_shader_ballot" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupUMaxNonUniformAMD",
+ "class" : "Group",
+ "opcode" : 5006,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ],
+ "extensions" : [ "SPV_AMD_shader_ballot" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpGroupSMaxNonUniformAMD",
+ "class" : "Group",
+ "opcode" : 5007,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "GroupOperation", "name" : "'Operation'" },
+ { "kind" : "IdRef", "name" : "'X'" }
+ ],
+ "capabilities" : [ "Groups" ],
+ "extensions" : [ "SPV_AMD_shader_ballot" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFragmentMaskFetchAMD",
+ "class" : "Reserved",
+ "opcode" : 5011,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "FragmentMaskAMD" ],
+ "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFragmentFetchAMD",
+ "class" : "Reserved",
+ "opcode" : 5012,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Fragment Index'" }
+ ],
+ "capabilities" : [ "FragmentMaskAMD" ],
+ "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpReadClockKHR",
+ "class" : "Reserved",
+ "opcode" : 5056,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Scope'" }
+ ],
+ "capabilities" : [ "ShaderClockKHR" ],
+ "extensions" : [ "SPV_KHR_shader_clock" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectRecordHitMotionNV",
+ "class" : "Reserved",
+ "opcode" : 5249,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hit Object'" },
+ { "kind" : "IdRef", "name" : "'Acceleration Structure'" },
+ { "kind" : "IdRef", "name" : "'InstanceId'" },
+ { "kind" : "IdRef", "name" : "'PrimitiveId'" },
+ { "kind" : "IdRef", "name" : "'GeometryIndex'" },
+ { "kind" : "IdRef", "name" : "'Hit Kind'" },
+ { "kind" : "IdRef", "name" : "'SBT Record Offset'" },
+ { "kind" : "IdRef", "name" : "'SBT Record Stride'" },
+ { "kind" : "IdRef", "name" : "'Origin'" },
+ { "kind" : "IdRef", "name" : "'TMin'" },
+ { "kind" : "IdRef", "name" : "'Direction'" },
+ { "kind" : "IdRef", "name" : "'TMax'" },
+ { "kind" : "IdRef", "name" : "'Current Time'" },
+ { "kind" : "IdRef", "name" : "'HitObject Attributes'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectRecordHitWithIndexMotionNV",
+ "class" : "Reserved",
+ "opcode" : 5250,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hit Object'" },
+ { "kind" : "IdRef", "name" : "'Acceleration Structure'" },
+ { "kind" : "IdRef", "name" : "'InstanceId'" },
+ { "kind" : "IdRef", "name" : "'PrimitiveId'" },
+ { "kind" : "IdRef", "name" : "'GeometryIndex'" },
+ { "kind" : "IdRef", "name" : "'Hit Kind'" },
+ { "kind" : "IdRef", "name" : "'SBT Record Index'" },
+ { "kind" : "IdRef", "name" : "'Origin'" },
+ { "kind" : "IdRef", "name" : "'TMin'" },
+ { "kind" : "IdRef", "name" : "'Direction'" },
+ { "kind" : "IdRef", "name" : "'TMax'" },
+ { "kind" : "IdRef", "name" : "'Current Time'" },
+ { "kind" : "IdRef", "name" : "'HitObject Attributes'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectRecordMissMotionNV",
+ "class" : "Reserved",
+ "opcode" : 5251,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hit Object'" },
+ { "kind" : "IdRef", "name" : "'SBT Index'" },
+ { "kind" : "IdRef", "name" : "'Origin'" },
+ { "kind" : "IdRef", "name" : "'TMin'" },
+ { "kind" : "IdRef", "name" : "'Direction'" },
+ { "kind" : "IdRef", "name" : "'TMax'" },
+ { "kind" : "IdRef", "name" : "'Current Time'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetWorldToObjectNV",
+ "class" : "Reserved",
+ "opcode" : 5252,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetObjectToWorldNV",
+ "class" : "Reserved",
+ "opcode" : 5253,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetObjectRayDirectionNV",
+ "class" : "Reserved",
+ "opcode" : 5254,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetObjectRayOriginNV",
+ "class" : "Reserved",
+ "opcode" : 5255,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectTraceRayMotionNV",
+ "class" : "Reserved",
+ "opcode" : 5256,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hit Object'" },
+ { "kind" : "IdRef", "name" : "'Acceleration Structure'"},
+ { "kind" : "IdRef", "name" : "'RayFlags'"},
+ { "kind" : "IdRef", "name" : "'Cullmask'"},
+ { "kind" : "IdRef", "name" : "'SBT Record Offset'"},
+ { "kind" : "IdRef", "name" : "'SBT Record Stride'"},
+ { "kind" : "IdRef", "name" : "'Miss Index'"},
+ { "kind" : "IdRef", "name" : "'Origin'"},
+ { "kind" : "IdRef", "name" : "'TMin'"},
+ { "kind" : "IdRef", "name" : "'Direction'"},
+ { "kind" : "IdRef", "name" : "'TMax'"},
+ { "kind" : "IdRef", "name" : "'Time'"},
+ { "kind" : "IdRef", "name" : "'Payload'"}
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetShaderRecordBufferHandleNV",
+ "class" : "Reserved",
+ "opcode" : 5257,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetShaderBindingTableRecordIndexNV",
+ "class" : "Reserved",
+ "opcode" : 5258,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectRecordEmptyNV",
+ "class" : "Reserved",
+ "opcode" : 5259,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectTraceRayNV",
+ "class" : "Reserved",
+ "opcode" : 5260,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hit Object'" },
+ { "kind" : "IdRef", "name" : "'Acceleration Structure'"},
+ { "kind" : "IdRef", "name" : "'RayFlags'"},
+ { "kind" : "IdRef", "name" : "'Cullmask'"},
+ { "kind" : "IdRef", "name" : "'SBT Record Offset'"},
+ { "kind" : "IdRef", "name" : "'SBT Record Stride'"},
+ { "kind" : "IdRef", "name" : "'Miss Index'"},
+ { "kind" : "IdRef", "name" : "'Origin'"},
+ { "kind" : "IdRef", "name" : "'TMin'"},
+ { "kind" : "IdRef", "name" : "'Direction'"},
+ { "kind" : "IdRef", "name" : "'TMax'"},
+ { "kind" : "IdRef", "name" : "'Payload'"}
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectRecordHitNV",
+ "class" : "Reserved",
+ "opcode" : 5261,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hit Object'" },
+ { "kind" : "IdRef", "name" : "'Acceleration Structure'" },
+ { "kind" : "IdRef", "name" : "'InstanceId'" },
+ { "kind" : "IdRef", "name" : "'PrimitiveId'" },
+ { "kind" : "IdRef", "name" : "'GeometryIndex'" },
+ { "kind" : "IdRef", "name" : "'Hit Kind'" },
+ { "kind" : "IdRef", "name" : "'SBT Record Offset'" },
+ { "kind" : "IdRef", "name" : "'SBT Record Stride'" },
+ { "kind" : "IdRef", "name" : "'Origin'" },
+ { "kind" : "IdRef", "name" : "'TMin'" },
+ { "kind" : "IdRef", "name" : "'Direction'" },
+ { "kind" : "IdRef", "name" : "'TMax'" },
+ { "kind" : "IdRef", "name" : "'HitObject Attributes'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectRecordHitWithIndexNV",
+ "class" : "Reserved",
+ "opcode" : 5262,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hit Object'" },
+ { "kind" : "IdRef", "name" : "'Acceleration Structure'" },
+ { "kind" : "IdRef", "name" : "'InstanceId'" },
+ { "kind" : "IdRef", "name" : "'PrimitiveId'" },
+ { "kind" : "IdRef", "name" : "'GeometryIndex'" },
+ { "kind" : "IdRef", "name" : "'Hit Kind'" },
+ { "kind" : "IdRef", "name" : "'SBT Record Index'" },
+ { "kind" : "IdRef", "name" : "'Origin'" },
+ { "kind" : "IdRef", "name" : "'TMin'" },
+ { "kind" : "IdRef", "name" : "'Direction'" },
+ { "kind" : "IdRef", "name" : "'TMax'" },
+ { "kind" : "IdRef", "name" : "'HitObject Attributes'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectRecordMissNV",
+ "class" : "Reserved",
+ "opcode" : 5263,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hit Object'" },
+ { "kind" : "IdRef", "name" : "'SBT Index'" },
+ { "kind" : "IdRef", "name" : "'Origin'" },
+ { "kind" : "IdRef", "name" : "'TMin'" },
+ { "kind" : "IdRef", "name" : "'Direction'" },
+ { "kind" : "IdRef", "name" : "'TMax'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectExecuteShaderNV",
+ "class" : "Reserved",
+ "opcode" : 5264,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hit Object'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetCurrentTimeNV",
+ "class" : "Reserved",
+ "opcode" : 5265,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetAttributesNV",
+ "class" : "Reserved",
+ "opcode" : 5266,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hit Object'" },
+ { "kind" : "IdRef", "name" : "'Hit Object Attribute'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetHitKindNV",
+ "class" : "Reserved",
+ "opcode" : 5267,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetPrimitiveIndexNV",
+ "class" : "Reserved",
+ "opcode" : 5268,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetGeometryIndexNV",
+ "class" : "Reserved",
+ "opcode" : 5269,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetInstanceIdNV",
+ "class" : "Reserved",
+ "opcode" : 5270,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetInstanceCustomIndexNV",
+ "class" : "Reserved",
+ "opcode" : 5271,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetWorldRayDirectionNV",
+ "class" : "Reserved",
+ "opcode" : 5272,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetWorldRayOriginNV",
+ "class" : "Reserved",
+ "opcode" : 5273,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetRayTMaxNV",
+ "class" : "Reserved",
+ "opcode" : 5274,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectGetRayTMinNV",
+ "class" : "Reserved",
+ "opcode" : 5275,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectIsEmptyNV",
+ "class" : "Reserved",
+ "opcode" : 5276,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectIsHitNV",
+ "class" : "Reserved",
+ "opcode" : 5277,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpHitObjectIsMissNV",
+ "class" : "Reserved",
+ "opcode" : 5278,
+ "operands" : [
+ { "kind" : "IdResultType"},
+ { "kind" : "IdResult"},
+ { "kind" : "IdRef", "name" : "'Hit Object'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpReorderThreadWithHitObjectNV",
+ "class" : "Reserved",
+ "opcode" : 5279,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hit Object'" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'Hint'" },
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "'Bits'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpReorderThreadWithHintNV",
+ "class" : "Reserved",
+ "opcode" : 5280,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Hint'" },
+ { "kind" : "IdRef", "name" : "'Bits'" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeHitObjectNV",
+ "class" : "Reserved",
+ "opcode" : 5281,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpImageSampleFootprintNV",
+ "class" : "Image",
+ "opcode" : 5283,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Sampled Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Granularity'" },
+ { "kind" : "IdRef", "name" : "'Coarse'" },
+ { "kind" : "ImageOperands", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "ImageFootprintNV" ],
+ "extensions" : [ "SPV_NV_shader_image_footprint" ],
+ "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,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "GroupNonUniformPartitionedNV" ],
+ "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpWritePackedPrimitiveIndices4x8NV",
+ "class" : "Reserved",
+ "opcode" : 5299,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Index Offset'" },
+ { "kind" : "IdRef", "name" : "'Packed Indices'" }
+ ],
+ "capabilities" : [ "MeshShadingNV" ],
+ "extensions" : [ "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpReportIntersectionNV",
+ "class" : "Reserved",
+ "opcode" : 5334,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Hit'" },
+ { "kind" : "IdRef", "name" : "'HitKind'" }
+ ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpReportIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 5334,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Hit'" },
+ { "kind" : "IdRef", "name" : "'HitKind'" }
+ ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIgnoreIntersectionNV",
+ "class" : "Reserved",
+ "opcode" : 5335,
+ "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTerminateRayNV",
+ "class" : "Reserved",
+ "opcode" : 5336,
+ "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTraceNV",
+ "class" : "Reserved",
+ "opcode" : 5337,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'Accel'" },
+ { "kind" : "IdRef", "name" : "'Ray Flags'" },
+ { "kind" : "IdRef", "name" : "'Cull Mask'" },
+ { "kind" : "IdRef", "name" : "'SBT Offset'" },
+ { "kind" : "IdRef", "name" : "'SBT Stride'" },
+ { "kind" : "IdRef", "name" : "'Miss Index'" },
+ { "kind" : "IdRef", "name" : "'Ray Origin'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmin'" },
+ { "kind" : "IdRef", "name" : "'Ray Direction'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmax'" },
+ { "kind" : "IdRef", "name" : "'PayloadId'" }
+ ],
+ "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTraceMotionNV",
+ "class" : "Reserved",
+ "opcode" : 5338,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'Accel'" },
+ { "kind" : "IdRef", "name" : "'Ray Flags'" },
+ { "kind" : "IdRef", "name" : "'Cull Mask'" },
+ { "kind" : "IdRef", "name" : "'SBT Offset'" },
+ { "kind" : "IdRef", "name" : "'SBT Stride'" },
+ { "kind" : "IdRef", "name" : "'Miss Index'" },
+ { "kind" : "IdRef", "name" : "'Ray Origin'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmin'" },
+ { "kind" : "IdRef", "name" : "'Ray Direction'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmax'" },
+ { "kind" : "IdRef", "name" : "'Time'" },
+ { "kind" : "IdRef", "name" : "'PayloadId'" }
+ ],
+ "capabilities" : [ "RayTracingMotionBlurNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTraceRayMotionNV",
+ "class" : "Reserved",
+ "opcode" : 5339,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'Accel'" },
+ { "kind" : "IdRef", "name" : "'Ray Flags'" },
+ { "kind" : "IdRef", "name" : "'Cull Mask'" },
+ { "kind" : "IdRef", "name" : "'SBT Offset'" },
+ { "kind" : "IdRef", "name" : "'SBT Stride'" },
+ { "kind" : "IdRef", "name" : "'Miss Index'" },
+ { "kind" : "IdRef", "name" : "'Ray Origin'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmin'" },
+ { "kind" : "IdRef", "name" : "'Ray Direction'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmax'" },
+ { "kind" : "IdRef", "name" : "'Time'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "RayTracingMotionBlurNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAccelerationStructureNV",
+ "class" : "Reserved",
+ "opcode" : 5341,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR", "RayQueryKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing", "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAccelerationStructureKHR",
+ "class" : "Reserved",
+ "opcode" : 5341,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR", "RayQueryKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing", "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpExecuteCallableNV",
+ "class" : "Reserved",
+ "opcode" : 5344,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'SBT Index'" },
+ { "kind" : "IdRef", "name" : "'Callable DataId'" }
+ ],
+ "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeCooperativeMatrixNV",
+ "class" : "Reserved",
+ "opcode" : 5358,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Component Type'" },
+ { "kind" : "IdScope", "name" : "'Execution'" },
+ { "kind" : "IdRef", "name" : "'Rows'" },
+ { "kind" : "IdRef", "name" : "'Columns'" }
+ ],
+ "capabilities" : [ "CooperativeMatrixNV" ],
+ "extensions" : [ "SPV_NV_cooperative_matrix" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpCooperativeMatrixLoadNV",
+ "class" : "Reserved",
+ "opcode" : 5359,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Stride'" },
+ { "kind" : "IdRef", "name" : "'Column Major'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "CooperativeMatrixNV" ],
+ "extensions" : [ "SPV_NV_cooperative_matrix" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpCooperativeMatrixStoreNV",
+ "class" : "Reserved",
+ "opcode" : 5360,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdRef", "name" : "'Object'" },
+ { "kind" : "IdRef", "name" : "'Stride'" },
+ { "kind" : "IdRef", "name" : "'Column Major'" },
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "CooperativeMatrixNV" ],
+ "extensions" : [ "SPV_NV_cooperative_matrix" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpCooperativeMatrixMulAddNV",
+ "class" : "Reserved",
+ "opcode" : 5361,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "IdRef", "name" : "'C'" }
+ ],
+ "capabilities" : [ "CooperativeMatrixNV" ],
+ "extensions" : [ "SPV_NV_cooperative_matrix" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpCooperativeMatrixLengthNV",
+ "class" : "Reserved",
+ "opcode" : 5362,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Type'" }
+ ],
+ "capabilities" : [ "CooperativeMatrixNV" ],
+ "extensions" : [ "SPV_NV_cooperative_matrix" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpBeginInvocationInterlockEXT",
+ "class" : "Reserved",
+ "opcode" : 5364,
+ "capabilities" : [ "FragmentShaderSampleInterlockEXT", "FragmentShaderPixelInterlockEXT", "FragmentShaderShadingRateInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpEndInvocationInterlockEXT",
+ "class" : "Reserved",
+ "opcode" : 5365,
+ "capabilities" : [ "FragmentShaderSampleInterlockEXT", "FragmentShaderPixelInterlockEXT", "FragmentShaderShadingRateInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpDemoteToHelperInvocation",
+ "class" : "Control-Flow",
+ "opcode" : 5380,
+ "capabilities" : [ "DemoteToHelperInvocation" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpDemoteToHelperInvocationEXT",
+ "class" : "Control-Flow",
+ "opcode" : 5380,
+ "capabilities" : [ "DemoteToHelperInvocationEXT" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpIsHelperInvocationEXT",
+ "class" : "Reserved",
+ "opcode" : 5381,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DemoteToHelperInvocationEXT" ],
+ "extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertUToImageNV",
+ "class" : "Reserved",
+ "opcode" : 5391,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertUToSamplerNV",
+ "class" : "Reserved",
+ "opcode" : 5392,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertImageToUNV",
+ "class" : "Reserved",
+ "opcode" : 5393,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertSamplerToUNV",
+ "class" : "Reserved",
+ "opcode" : 5394,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertUToSampledImageNV",
+ "class" : "Reserved",
+ "opcode" : 5395,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertSampledImageToUNV",
+ "class" : "Reserved",
+ "opcode" : 5396,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSamplerImageAddressingModeNV",
+ "class" : "Reserved",
+ "opcode" : 5397,
+ "operands" : [
+ { "kind" : "LiteralInteger", "name" : "'Bit Width'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupShuffleINTEL",
+ "class" : "Group",
+ "opcode" : 5571,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Data'" },
+ { "kind" : "IdRef", "name" : "'InvocationId'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupShuffleDownINTEL",
+ "class" : "Group",
+ "opcode" : 5572,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Current'" },
+ { "kind" : "IdRef", "name" : "'Next'" },
+ { "kind" : "IdRef", "name" : "'Delta'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupShuffleUpINTEL",
+ "class" : "Group",
+ "opcode" : 5573,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Previous'" },
+ { "kind" : "IdRef", "name" : "'Current'" },
+ { "kind" : "IdRef", "name" : "'Delta'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupShuffleXorINTEL",
+ "class" : "Group",
+ "opcode" : 5574,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Data'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "SubgroupShuffleINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupBlockReadINTEL",
+ "class" : "Group",
+ "opcode" : 5575,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Ptr'" }
+ ],
+ "capabilities" : [ "SubgroupBufferBlockIOINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupBlockWriteINTEL",
+ "class" : "Group",
+ "opcode" : 5576,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Ptr'" },
+ { "kind" : "IdRef", "name" : "'Data'" }
+ ],
+ "capabilities" : [ "SubgroupBufferBlockIOINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupImageBlockReadINTEL",
+ "class" : "Group",
+ "opcode" : 5577,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" }
+ ],
+ "capabilities" : [ "SubgroupImageBlockIOINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupImageBlockWriteINTEL",
+ "class" : "Group",
+ "opcode" : 5578,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Data'" }
+ ],
+ "capabilities" : [ "SubgroupImageBlockIOINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupImageMediaBlockReadINTEL",
+ "class" : "Group",
+ "opcode" : 5580,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Width'" },
+ { "kind" : "IdRef", "name" : "'Height'" }
+ ],
+ "capabilities" : [ "SubgroupImageMediaBlockIOINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupImageMediaBlockWriteINTEL",
+ "class" : "Group",
+ "opcode" : 5581,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Image'" },
+ { "kind" : "IdRef", "name" : "'Coordinate'" },
+ { "kind" : "IdRef", "name" : "'Width'" },
+ { "kind" : "IdRef", "name" : "'Height'" },
+ { "kind" : "IdRef", "name" : "'Data'" }
+ ],
+ "capabilities" : [ "SubgroupImageMediaBlockIOINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUCountLeadingZerosINTEL",
+ "class" : "Reserved",
+ "opcode" : 5585,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUCountTrailingZerosINTEL",
+ "class" : "Reserved",
+ "opcode" : 5586,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAbsISubINTEL",
+ "class" : "Reserved",
+ "opcode" : 5587,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAbsUSubINTEL",
+ "class" : "Reserved",
+ "opcode" : 5588,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIAddSatINTEL",
+ "class" : "Reserved",
+ "opcode" : 5589,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUAddSatINTEL",
+ "class" : "Reserved",
+ "opcode" : 5590,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIAverageINTEL",
+ "class" : "Reserved",
+ "opcode" : 5591,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUAverageINTEL",
+ "class" : "Reserved",
+ "opcode" : 5592,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIAverageRoundedINTEL",
+ "class" : "Reserved",
+ "opcode" : 5593,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUAverageRoundedINTEL",
+ "class" : "Reserved",
+ "opcode" : 5594,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpISubSatINTEL",
+ "class" : "Reserved",
+ "opcode" : 5595,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUSubSatINTEL",
+ "class" : "Reserved",
+ "opcode" : 5596,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIMul32x16INTEL",
+ "class" : "Reserved",
+ "opcode" : 5597,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpUMul32x16INTEL",
+ "class" : "Reserved",
+ "opcode" : 5598,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand 1'" },
+ { "kind" : "IdRef", "name" : "'Operand 2'" }
+ ],
+ "capabilities" : [ "IntegerFunctions2INTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConstantFunctionPointerINTEL",
+ "class" : "@exclude",
+ "opcode" : 5600,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Function'" }
+ ],
+ "capabilities" : [ "FunctionPointersINTEL" ],
+ "extensions" : [ "SPV_INTEL_function_pointers" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFunctionPointerCallINTEL",
+ "class" : "@exclude",
+ "opcode" : 5601,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1'" }
+ ],
+ "capabilities" : [ "FunctionPointersINTEL" ],
+ "extensions" : [ "SPV_INTEL_function_pointers" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAsmTargetINTEL",
+ "class" : "@exclude",
+ "opcode" : 5609,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'Asm target'" }
+ ],
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAsmINTEL",
+ "class" : "@exclude",
+ "opcode" : 5610,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Asm type'" },
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "LiteralString", "name" : "'Asm instructions'" },
+ { "kind" : "LiteralString", "name" : "'Constraints'" }
+ ],
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAsmCallINTEL",
+ "class" : "@exclude",
+ "opcode" : 5611,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Asm'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0'" }
+ ],
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAtomicFMinEXT",
+ "class" : "Atomic",
+ "opcode" : 5614,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAtomicFMaxEXT",
+ "class" : "Atomic",
+ "opcode" : 5615,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAssumeTrueKHR",
+ "class" : "Miscellaneous",
+ "opcode" : 5630,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Condition'" }
+ ],
+ "capabilities" : [ "ExpectAssumeKHR" ],
+ "extensions" : [ "SPV_KHR_expect_assume" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpExpectKHR",
+ "class" : "Miscellaneous",
+ "opcode" : 5631,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ExpectedValue'" }
+ ],
+ "capabilities" : [ "ExpectAssumeKHR" ],
+ "extensions" : [ "SPV_KHR_expect_assume" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpDecorateString",
+ "class" : "Annotation",
+ "opcode" : 5632,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
+ "version" : "1.4"
+ },
+ {
+ "opname" : "OpDecorateStringGOOGLE",
+ "class" : "Annotation",
+ "opcode" : 5632,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
+ "version" : "1.4"
+ },
+ {
+ "opname" : "OpMemberDecorateString",
+ "class" : "Annotation",
+ "opcode" : 5633,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Struct Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
+ "version" : "1.4"
+ },
+ {
+ "opname" : "OpMemberDecorateStringGOOGLE",
+ "class" : "Annotation",
+ "opcode" : 5633,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Struct Type'" },
+ { "kind" : "LiteralInteger", "name" : "'Member'" },
+ { "kind" : "Decoration" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
+ "version" : "1.4"
+ },
+ {
+ "opname" : "OpVmeImageINTEL",
+ "class" : "@exclude",
+ "opcode" : 5699,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image Type'" },
+ { "kind" : "IdRef", "name" : "'Sampler'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeVmeImageINTEL",
+ "class" : "@exclude",
+ "opcode" : 5700,
+ "operands" : [
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image Type'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAvcImePayloadINTEL",
+ "class" : "@exclude",
+ "opcode" : 5701,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAvcRefPayloadINTEL",
+ "class" : "@exclude",
+ "opcode" : 5702,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAvcSicPayloadINTEL",
+ "class" : "@exclude",
+ "opcode" : 5703,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAvcMcePayloadINTEL",
+ "class" : "@exclude",
+ "opcode" : 5704,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAvcMceResultINTEL",
+ "class" : "@exclude",
+ "opcode" : 5705,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAvcImeResultINTEL",
+ "class" : "@exclude",
+ "opcode" : 5706,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAvcImeResultSingleReferenceStreamoutINTEL",
+ "class" : "@exclude",
+ "opcode" : 5707,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAvcImeResultDualReferenceStreamoutINTEL",
+ "class" : "@exclude",
+ "opcode" : 5708,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAvcImeSingleReferenceStreaminINTEL",
+ "class" : "@exclude",
+ "opcode" : 5709,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAvcImeDualReferenceStreaminINTEL",
+ "class" : "@exclude",
+ "opcode" : 5710,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAvcRefResultINTEL",
+ "class" : "@exclude",
+ "opcode" : 5711,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeAvcSicResultINTEL",
+ "class" : "@exclude",
+ "opcode" : 5712,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL",
+ "class" : "@exclude",
+ "opcode" : 5713,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Slice Type'" },
+ { "kind" : "IdRef", "name" : "'Qp'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL",
+ "class" : "@exclude",
+ "opcode" : 5714,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Reference Base Penalty'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL",
+ "class" : "@exclude",
+ "opcode" : 5715,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Slice Type'" },
+ { "kind" : "IdRef", "name" : "'Qp'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceSetInterShapePenaltyINTEL",
+ "class" : "@exclude",
+ "opcode" : 5716,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Packed Shape Penalty'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL",
+ "class" : "@exclude",
+ "opcode" : 5717,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Slice Type'" },
+ { "kind" : "IdRef", "name" : "'Qp'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL",
+ "class" : "@exclude",
+ "opcode" : 5718,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Direction Cost'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL",
+ "class" : "@exclude",
+ "opcode" : 5719,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Slice Type'" },
+ { "kind" : "IdRef", "name" : "'Qp'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL",
+ "class" : "@exclude",
+ "opcode" : 5720,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Slice Type'" },
+ { "kind" : "IdRef", "name" : "'Qp'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL",
+ "class" : "@exclude",
+ "opcode" : 5721,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL",
+ "class" : "@exclude",
+ "opcode" : 5722,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL",
+ "class" : "@exclude",
+ "opcode" : 5723,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL",
+ "class" : "@exclude",
+ "opcode" : 5724,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Packed Cost Center Delta'" },
+ { "kind" : "IdRef", "name" : "'Packed Cost Table'" },
+ { "kind" : "IdRef", "name" : "'Cost Precision'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL",
+ "class" : "@exclude",
+ "opcode" : 5725,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Slice Type'" },
+ { "kind" : "IdRef", "name" : "'Qp'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL",
+ "class" : "@exclude",
+ "opcode" : 5726,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL",
+ "class" : "@exclude",
+ "opcode" : 5727,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationChromaINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceSetAcOnlyHaarINTEL",
+ "class" : "@exclude",
+ "opcode" : 5728,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL",
+ "class" : "@exclude",
+ "opcode" : 5729,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Source Field Polarity'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL",
+ "class" : "@exclude",
+ "opcode" : 5730,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Reference Field Polarity'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL",
+ "class" : "@exclude",
+ "opcode" : 5731,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Forward Reference Field Polarity'" },
+ { "kind" : "IdRef", "name" : "'Backward Reference Field Polarity'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceConvertToImePayloadINTEL",
+ "class" : "@exclude",
+ "opcode" : 5732,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceConvertToImeResultINTEL",
+ "class" : "@exclude",
+ "opcode" : 5733,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceConvertToRefPayloadINTEL",
+ "class" : "@exclude",
+ "opcode" : 5734,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceConvertToRefResultINTEL",
+ "class" : "@exclude",
+ "opcode" : 5735,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceConvertToSicPayloadINTEL",
+ "class" : "@exclude",
+ "opcode" : 5736,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceConvertToSicResultINTEL",
+ "class" : "@exclude",
+ "opcode" : 5737,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetMotionVectorsINTEL",
+ "class" : "@exclude",
+ "opcode" : 5738,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetInterDistortionsINTEL",
+ "class" : "@exclude",
+ "opcode" : 5739,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetBestInterDistortionsINTEL",
+ "class" : "@exclude",
+ "opcode" : 5740,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetInterMajorShapeINTEL",
+ "class" : "@exclude",
+ "opcode" : 5741,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetInterMinorShapeINTEL",
+ "class" : "@exclude",
+ "opcode" : 5742,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetInterDirectionsINTEL",
+ "class" : "@exclude",
+ "opcode" : 5743,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetInterMotionVectorCountINTEL",
+ "class" : "@exclude",
+ "opcode" : 5744,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetInterReferenceIdsINTEL",
+ "class" : "@exclude",
+ "opcode" : 5745,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL",
+ "class" : "@exclude",
+ "opcode" : 5746,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Packed Reference Ids'" },
+ { "kind" : "IdRef", "name" : "'Packed Reference Parameter Field Polarities'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeInitializeINTEL",
+ "class" : "@exclude",
+ "opcode" : 5747,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Coord'" },
+ { "kind" : "IdRef", "name" : "'Partition Mask'" },
+ { "kind" : "IdRef", "name" : "'SAD Adjustment'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeSetSingleReferenceINTEL",
+ "class" : "@exclude",
+ "opcode" : 5748,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Ref Offset'" },
+ { "kind" : "IdRef", "name" : "'Search Window Config'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeSetDualReferenceINTEL",
+ "class" : "@exclude",
+ "opcode" : 5749,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Fwd Ref Offset'" },
+ { "kind" : "IdRef", "name" : "'Bwd Ref Offset'" },
+ { "kind" : "IdRef", "name" : "'id> Search Window Config'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeRefWindowSizeINTEL",
+ "class" : "@exclude",
+ "opcode" : 5750,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Search Window Config'" },
+ { "kind" : "IdRef", "name" : "'Dual Ref'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeAdjustRefOffsetINTEL",
+ "class" : "@exclude",
+ "opcode" : 5751,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Ref Offset'" },
+ { "kind" : "IdRef", "name" : "'Src Coord'" },
+ { "kind" : "IdRef", "name" : "'Ref Window Size'" },
+ { "kind" : "IdRef", "name" : "'Image Size'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeConvertToMcePayloadINTEL",
+ "class" : "@exclude",
+ "opcode" : 5752,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL",
+ "class" : "@exclude",
+ "opcode" : 5753,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Max Motion Vector Count'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL",
+ "class" : "@exclude",
+ "opcode" : 5754,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL",
+ "class" : "@exclude",
+ "opcode" : 5755,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Threshold'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeSetWeightedSadINTEL",
+ "class" : "@exclude",
+ "opcode" : 5756,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Packed Sad Weights'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL",
+ "class" : "@exclude",
+ "opcode" : 5757,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL",
+ "class" : "@exclude",
+ "opcode" : 5758,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Fwd Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Bwd Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL",
+ "class" : "@exclude",
+ "opcode" : 5759,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" },
+ { "kind" : "IdRef", "name" : "'Streamin Components'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL",
+ "class" : "@exclude",
+ "opcode" : 5760,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Fwd Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Bwd Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" },
+ { "kind" : "IdRef", "name" : "'Streamin Components'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL",
+ "class" : "@exclude",
+ "opcode" : 5761,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL",
+ "class" : "@exclude",
+ "opcode" : 5762,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Fwd Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Bwd Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL",
+ "class" : "@exclude",
+ "opcode" : 5763,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" },
+ { "kind" : "IdRef", "name" : "'Streamin Components'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL",
+ "class" : "@exclude",
+ "opcode" : 5764,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Fwd Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Bwd Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" },
+ { "kind" : "IdRef", "name" : "'Streamin Components'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeConvertToMceResultINTEL",
+ "class" : "@exclude",
+ "opcode" : 5765,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL",
+ "class" : "@exclude",
+ "opcode" : 5766,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetDualReferenceStreaminINTEL",
+ "class" : "@exclude",
+ "opcode" : 5767,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL",
+ "class" : "@exclude",
+ "opcode" : 5768,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL",
+ "class" : "@exclude",
+ "opcode" : 5769,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL",
+ "class" : "@exclude",
+ "opcode" : 5770,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" },
+ { "kind" : "IdRef", "name" : "'Major Shape'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL",
+ "class" : "@exclude",
+ "opcode" : 5771,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" },
+ { "kind" : "IdRef", "name" : "'Major Shape'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL",
+ "class" : "@exclude",
+ "opcode" : 5772,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" },
+ { "kind" : "IdRef", "name" : "'Major Shape'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL",
+ "class" : "@exclude",
+ "opcode" : 5773,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" },
+ { "kind" : "IdRef", "name" : "'Major Shape'" },
+ { "kind" : "IdRef", "name" : "'Direction'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL",
+ "class" : "@exclude",
+ "opcode" : 5774,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" },
+ { "kind" : "IdRef", "name" : "'Major Shape'" },
+ { "kind" : "IdRef", "name" : "'Direction'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL",
+ "class" : "@exclude",
+ "opcode" : 5775,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" },
+ { "kind" : "IdRef", "name" : "'Major Shape'" },
+ { "kind" : "IdRef", "name" : "'Direction'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetBorderReachedINTEL",
+ "class" : "@exclude",
+ "opcode" : 5776,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Image Select'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL",
+ "class" : "@exclude",
+ "opcode" : 5777,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL",
+ "class" : "@exclude",
+ "opcode" : 5778,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL",
+ "class" : "@exclude",
+ "opcode" : 5779,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL",
+ "class" : "@exclude",
+ "opcode" : 5780,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcFmeInitializeINTEL",
+ "class" : "@exclude",
+ "opcode" : 5781,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Coord'" },
+ { "kind" : "IdRef", "name" : "'Motion Vectors'" },
+ { "kind" : "IdRef", "name" : "'Major Shapes'" },
+ { "kind" : "IdRef", "name" : "'Minor Shapes'" },
+ { "kind" : "IdRef", "name" : "'Direction'" },
+ { "kind" : "IdRef", "name" : "'Pixel Resolution'" },
+ { "kind" : "IdRef", "name" : "'Sad Adjustment'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcBmeInitializeINTEL",
+ "class" : "@exclude",
+ "opcode" : 5782,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Coord'" },
+ { "kind" : "IdRef", "name" : "'Motion Vectors'" },
+ { "kind" : "IdRef", "name" : "'Major Shapes'" },
+ { "kind" : "IdRef", "name" : "'Minor Shapes'" },
+ { "kind" : "IdRef", "name" : "'Direction'" },
+ { "kind" : "IdRef", "name" : "'Pixel Resolution'" },
+ { "kind" : "IdRef", "name" : "'Bidirectional Weight'" },
+ { "kind" : "IdRef", "name" : "'Sad Adjustment'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcRefConvertToMcePayloadINTEL",
+ "class" : "@exclude",
+ "opcode" : 5783,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL",
+ "class" : "@exclude",
+ "opcode" : 5784,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcRefSetBilinearFilterEnableINTEL",
+ "class" : "@exclude",
+ "opcode" : 5785,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL",
+ "class" : "@exclude",
+ "opcode" : 5786,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL",
+ "class" : "@exclude",
+ "opcode" : 5787,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Fwd Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Bwd Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL",
+ "class" : "@exclude",
+ "opcode" : 5788,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Packed Reference Ids'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL",
+ "class" : "@exclude",
+ "opcode" : 5789,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Packed Reference Ids'" },
+ { "kind" : "IdRef", "name" : "'Packed Reference Field Polarities'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcRefConvertToMceResultINTEL",
+ "class" : "@exclude",
+ "opcode" : 5790,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicInitializeINTEL",
+ "class" : "@exclude",
+ "opcode" : 5791,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Coord'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicConfigureSkcINTEL",
+ "class" : "@exclude",
+ "opcode" : 5792,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Skip Block Partition Type'" },
+ { "kind" : "IdRef", "name" : "'Skip Motion Vector Mask'" },
+ { "kind" : "IdRef", "name" : "'Motion Vectors'" },
+ { "kind" : "IdRef", "name" : "'Bidirectional Weight'" },
+ { "kind" : "IdRef", "name" : "'Sad Adjustment'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicConfigureIpeLumaINTEL",
+ "class" : "@exclude",
+ "opcode" : 5793,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Luma Intra Partition Mask'" },
+ { "kind" : "IdRef", "name" : "'Intra Neighbour Availabilty'" },
+ { "kind" : "IdRef", "name" : "'Left Edge Luma Pixels'" },
+ { "kind" : "IdRef", "name" : "'Upper Left Corner Luma Pixel'" },
+ { "kind" : "IdRef", "name" : "'Upper Edge Luma Pixels'" },
+ { "kind" : "IdRef", "name" : "'Upper Right Edge Luma Pixels'" },
+ { "kind" : "IdRef", "name" : "'Sad Adjustment'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL",
+ "class" : "@exclude",
+ "opcode" : 5794,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Luma Intra Partition Mask'" },
+ { "kind" : "IdRef", "name" : "'Intra Neighbour Availabilty'" },
+ { "kind" : "IdRef", "name" : "'Left Edge Luma Pixels'" },
+ { "kind" : "IdRef", "name" : "'Upper Left Corner Luma Pixel'" },
+ { "kind" : "IdRef", "name" : "'Upper Edge Luma Pixels'" },
+ { "kind" : "IdRef", "name" : "'Upper Right Edge Luma Pixels'" },
+ { "kind" : "IdRef", "name" : "'Left Edge Chroma Pixels'" },
+ { "kind" : "IdRef", "name" : "'Upper Left Corner Chroma Pixel'" },
+ { "kind" : "IdRef", "name" : "'Upper Edge Chroma Pixels'" },
+ { "kind" : "IdRef", "name" : "'Sad Adjustment'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationChromaINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicGetMotionVectorMaskINTEL",
+ "class" : "@exclude",
+ "opcode" : 5795,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Skip Block Partition Type'" },
+ { "kind" : "IdRef", "name" : "'Direction'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicConvertToMcePayloadINTEL",
+ "class" : "@exclude",
+ "opcode" : 5796,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL",
+ "class" : "@exclude",
+ "opcode" : 5797,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Packed Shape Penalty'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL",
+ "class" : "@exclude",
+ "opcode" : 5798,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Luma Mode Penalty'" },
+ { "kind" : "IdRef", "name" : "'Luma Packed Neighbor Modes'" },
+ { "kind" : "IdRef", "name" : "'Luma Packed Non Dc Penalty'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL",
+ "class" : "@exclude",
+ "opcode" : 5799,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Chroma Mode Base Penalty'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationChromaINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicSetBilinearFilterEnableINTEL",
+ "class" : "@exclude",
+ "opcode" : 5800,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL",
+ "class" : "@exclude",
+ "opcode" : 5801,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Packed Sad Coefficients'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL",
+ "class" : "@exclude",
+ "opcode" : 5802,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Block Based Skip Type'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicEvaluateIpeINTEL",
+ "class" : "@exclude",
+ "opcode" : 5803,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL",
+ "class" : "@exclude",
+ "opcode" : 5804,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL",
+ "class" : "@exclude",
+ "opcode" : 5805,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Fwd Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Bwd Ref Image'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL",
+ "class" : "@exclude",
+ "opcode" : 5806,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Packed Reference Ids'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL",
+ "class" : "@exclude",
+ "opcode" : 5807,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Src Image'" },
+ { "kind" : "IdRef", "name" : "'Packed Reference Ids'" },
+ { "kind" : "IdRef", "name" : "'Packed Reference Field Polarities'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicConvertToMceResultINTEL",
+ "class" : "@exclude",
+ "opcode" : 5808,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicGetIpeLumaShapeINTEL",
+ "class" : "@exclude",
+ "opcode" : 5809,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL",
+ "class" : "@exclude",
+ "opcode" : 5810,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL",
+ "class" : "@exclude",
+ "opcode" : 5811,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL",
+ "class" : "@exclude",
+ "opcode" : 5812,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicGetIpeChromaModeINTEL",
+ "class" : "@exclude",
+ "opcode" : 5813,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationChromaINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL",
+ "class" : "@exclude",
+ "opcode" : 5814,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL",
+ "class" : "@exclude",
+ "opcode" : 5815,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL", "SubgroupAvcMotionEstimationIntraINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSubgroupAvcSicGetInterRawSadsINTEL",
+ "class" : "@exclude",
+ "opcode" : 5816,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpVariableLengthArrayINTEL",
+ "class" : "@exclude",
+ "opcode" : 5818,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Lenght'" }
+ ],
+ "capabilities" : [ "VariableLengthArrayINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSaveMemoryINTEL",
+ "class" : "@exclude",
+ "opcode" : 5819,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "VariableLengthArrayINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRestoreMemoryINTEL",
+ "class" : "@exclude",
+ "opcode" : 5820,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Ptr'" }
+ ],
+ "capabilities" : [ "VariableLengthArrayINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatSinCosPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5840,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'FromSign'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatCastINTEL",
+ "class" : "@exclude",
+ "opcode" : 5841,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatCastFromIntINTEL",
+ "class" : "@exclude",
+ "opcode" : 5842,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'FromSign'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatCastToIntINTEL",
+ "class" : "@exclude",
+ "opcode" : 5843,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatAddINTEL",
+ "class" : "@exclude",
+ "opcode" : 5846,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatSubINTEL",
+ "class" : "@exclude",
+ "opcode" : 5847,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatMulINTEL",
+ "class" : "@exclude",
+ "opcode" : 5848,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatDivINTEL",
+ "class" : "@exclude",
+ "opcode" : 5849,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatGTINTEL",
+ "class" : "@exclude",
+ "opcode" : 5850,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatGEINTEL",
+ "class" : "@exclude",
+ "opcode" : 5851,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatLTINTEL",
+ "class" : "@exclude",
+ "opcode" : 5852,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatLEINTEL",
+ "class" : "@exclude",
+ "opcode" : 5853,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatEQINTEL",
+ "class" : "@exclude",
+ "opcode" : 5854,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatRecipINTEL",
+ "class" : "@exclude",
+ "opcode" : 5855,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatRSqrtINTEL",
+ "class" : "@exclude",
+ "opcode" : 5856,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatCbrtINTEL",
+ "class" : "@exclude",
+ "opcode" : 5857,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatHypotINTEL",
+ "class" : "@exclude",
+ "opcode" : 5858,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatSqrtINTEL",
+ "class" : "@exclude",
+ "opcode" : 5859,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatLogINTEL",
+ "class" : "@exclude",
+ "opcode" : 5860,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatLog2INTEL",
+ "class" : "@exclude",
+ "opcode" : 5861,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatLog10INTEL",
+ "class" : "@exclude",
+ "opcode" : 5862,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatLog1pINTEL",
+ "class" : "@exclude",
+ "opcode" : 5863,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatExpINTEL",
+ "class" : "@exclude",
+ "opcode" : 5864,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatExp2INTEL",
+ "class" : "@exclude",
+ "opcode" : 5865,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatExp10INTEL",
+ "class" : "@exclude",
+ "opcode" : 5866,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatExpm1INTEL",
+ "class" : "@exclude",
+ "opcode" : 5867,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatSinINTEL",
+ "class" : "@exclude",
+ "opcode" : 5868,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatCosINTEL",
+ "class" : "@exclude",
+ "opcode" : 5869,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatSinCosINTEL",
+ "class" : "@exclude",
+ "opcode" : 5870,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatSinPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5871,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatCosPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5872,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatASinINTEL",
+ "class" : "@exclude",
+ "opcode" : 5873,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatASinPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5874,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatACosINTEL",
+ "class" : "@exclude",
+ "opcode" : 5875,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatACosPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5876,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatATanINTEL",
+ "class" : "@exclude",
+ "opcode" : 5877,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatATanPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5878,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatATan2INTEL",
+ "class" : "@exclude",
+ "opcode" : 5879,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatPowINTEL",
+ "class" : "@exclude",
+ "opcode" : 5880,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatPowRINTEL",
+ "class" : "@exclude",
+ "opcode" : 5881,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatPowNINTEL",
+ "class" : "@exclude",
+ "opcode" : 5882,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpLoopControlINTEL",
+ "class" : "Reserved",
+ "opcode" : 5887,
+ "operands" : [
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Loop Control Parameters'" }
+ ],
+ "capabilities" : [ "UnstructuredLoopControlsINTEL" ],
+ "extensions" : [ "SPV_INTEL_unstructured_loop_controls" ],
+ "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,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedRecipINTEL",
+ "class" : "@exclude",
+ "opcode" : 5924,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedRsqrtINTEL",
+ "class" : "@exclude",
+ "opcode" : 5925,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedSinINTEL",
+ "class" : "@exclude",
+ "opcode" : 5926,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedCosINTEL",
+ "class" : "@exclude",
+ "opcode" : 5927,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedSinCosINTEL",
+ "class" : "@exclude",
+ "opcode" : 5928,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedSinPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5929,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedCosPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5930,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedSinCosPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5931,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedLogINTEL",
+ "class" : "@exclude",
+ "opcode" : 5932,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedExpINTEL",
+ "class" : "@exclude",
+ "opcode" : 5933,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpPtrCastToCrossWorkgroupINTEL",
+ "class" : "@exclude",
+ "opcode" : 5934,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "USMStorageClassesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpCrossWorkgroupCastToPtrINTEL",
+ "class" : "@exclude",
+ "opcode" : 5938,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "USMStorageClassesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpReadPipeBlockingINTEL",
+ "class" : "Pipe",
+ "opcode" : 5946,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "BlockingPipesINTEL" ],
+ "extensions" : [ "SPV_INTEL_blocking_pipes" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpWritePipeBlockingINTEL",
+ "class" : "Pipe",
+ "opcode" : 5947,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "BlockingPipesINTEL" ],
+ "extensions" : [ "SPV_INTEL_blocking_pipes" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFPGARegINTEL",
+ "class" : "Reserved",
+ "opcode" : 5949,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Result'" },
+ { "kind" : "IdRef", "name" : "'Input'" }
+ ],
+ "capabilities" : [ "FPGARegINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_reg" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetRayTMinKHR",
+ "class" : "Reserved",
+ "opcode" : 6016,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetRayFlagsKHR",
+ "class" : "Reserved",
+ "opcode" : 6017,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionTKHR",
+ "class" : "Reserved",
+ "opcode" : 6018,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionInstanceCustomIndexKHR",
+ "class" : "Reserved",
+ "opcode" : 6019,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionInstanceIdKHR",
+ "class" : "Reserved",
+ "opcode" : 6020,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR",
+ "class" : "Reserved",
+ "opcode" : 6021,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionGeometryIndexKHR",
+ "class" : "Reserved",
+ "opcode" : 6022,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionPrimitiveIndexKHR",
+ "class" : "Reserved",
+ "opcode" : 6023,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionBarycentricsKHR",
+ "class" : "Reserved",
+ "opcode" : 6024,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionFrontFaceKHR",
+ "class" : "Reserved",
+ "opcode" : 6025,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR",
+ "class" : "Reserved",
+ "opcode" : 6026,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionObjectRayDirectionKHR",
+ "class" : "Reserved",
+ "opcode" : 6027,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionObjectRayOriginKHR",
+ "class" : "Reserved",
+ "opcode" : 6028,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetWorldRayDirectionKHR",
+ "class" : "Reserved",
+ "opcode" : 6029,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetWorldRayOriginKHR",
+ "class" : "Reserved",
+ "opcode" : 6030,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionObjectToWorldKHR",
+ "class" : "Reserved",
+ "opcode" : 6031,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionWorldToObjectKHR",
+ "class" : "Reserved",
+ "opcode" : 6032,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAtomicFAddEXT",
+ "class" : "Atomic",
+ "opcode" : 6035,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "AtomicFloat16AddEXT", "AtomicFloat32AddEXT", "AtomicFloat64AddEXT" ],
+ "extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeBufferSurfaceINTEL",
+ "class" : "Type-Declaration",
+ "opcode" : 6086,
+ "operands" : [
+ { "kind" : "IdResult" },
+ {
+ "kind" : "AccessQualifier",
+ "name" : "'AccessQualifier'"
+ }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeStructContinuedINTEL",
+ "class" : "Type-Declaration",
+ "opcode" : 6090,
+ "operands" : [
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
+ ],
+ "capabilities" : [ "LongConstantCompositeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConstantCompositeContinuedINTEL",
+ "class" : "Constant-Creation",
+ "opcode" : 6091,
+ "operands" : [
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ],
+ "capabilities" : [ "LongConstantCompositeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSpecConstantCompositeContinuedINTEL",
+ "class" : "Constant-Creation",
+ "opcode" : 6092,
+ "operands" : [
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ],
+ "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" : [
+ {
+ "category" : "BitEnum",
+ "kind" : "ImageOperands",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Bias",
+ "value" : "0x0001",
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Lod",
+ "value" : "0x0002",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Grad",
+ "value" : "0x0004",
+ "parameters" : [
+ { "kind" : "IdRef" },
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "ConstOffset",
+ "value" : "0x0008",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Offset",
+ "value" : "0x0010",
+ "capabilities" : [ "ImageGatherExtended" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "ConstOffsets",
+ "value" : "0x0020",
+ "capabilities" : [ "ImageGatherExtended" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Sample",
+ "value" : "0x0040",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "MinLod",
+ "value" : "0x0080",
+ "capabilities" : [ "MinLod" ],
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "MakeTexelAvailable",
+ "value" : "0x0100",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "parameters" : [
+ { "kind" : "IdScope" }
+ ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "MakeTexelAvailableKHR",
+ "value" : "0x0100",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "parameters" : [
+ { "kind" : "IdScope" }
+ ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "MakeTexelVisible",
+ "value" : "0x0200",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "parameters" : [
+ { "kind" : "IdScope" }
+ ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "MakeTexelVisibleKHR",
+ "value" : "0x0200",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "parameters" : [
+ { "kind" : "IdScope" }
+ ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "NonPrivateTexel",
+ "value" : "0x0400",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "NonPrivateTexelKHR",
+ "value" : "0x0400",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "VolatileTexel",
+ "value" : "0x0800",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "VolatileTexelKHR",
+ "value" : "0x0800",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "SignExtend",
+ "value" : "0x1000",
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "ZeroExtend",
+ "value" : "0x2000",
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "Nontemporal",
+ "value" : "0x4000",
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "Offsets",
+ "value" : "0x10000",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "FPFastMathMode",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "NotNaN",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "NotInf",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "NSZ",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "AllowRecip",
+ "value" : "0x0008"
+ },
+ {
+ "enumerant" : "Fast",
+ "value" : "0x0010"
+ },
+ {
+ "enumerant" : "AllowContractFastINTEL",
+ "value" : "0x10000",
+ "capabilities" : [ "FPFastMathModeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AllowReassocINTEL",
+ "value" : "0x20000",
+ "capabilities" : [ "FPFastMathModeINTEL" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "SelectionControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Flatten",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontFlatten",
+ "value" : "0x0002"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "LoopControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Unroll",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontUnroll",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "DependencyInfinite",
+ "value" : "0x0004",
+ "version" : "1.1"
+ },
+ {
+ "enumerant" : "DependencyLength",
+ "value" : "0x0008",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "version" : "1.1"
+ },
+ {
+ "enumerant" : "MinIterations",
+ "value" : "0x0010",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "MaxIterations",
+ "value" : "0x0020",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "IterationMultiple",
+ "value" : "0x0040",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "PeelCount",
+ "value" : "0x0080",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "PartialCount",
+ "value" : "0x0100",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "InitiationIntervalINTEL",
+ "value" : "0x10000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxConcurrencyINTEL",
+ "value" : "0x20000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DependencyArrayINTEL",
+ "value" : "0x40000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PipelineEnableINTEL",
+ "value" : "0x80000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LoopCoalesceINTEL",
+ "value" : "0x100000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxInterleavingINTEL",
+ "value" : "0x200000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SpeculatedIterationsINTEL",
+ "value" : "0x400000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NoFusionINTEL",
+ "value" : "0x800000",
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LoopCountINTEL",
+ "value" : "0x1000000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxReinvocationDelayINTEL",
+ "value" : "0x2000000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "FunctionControl",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Inline",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "DontInline",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "Pure",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "Const",
+ "value" : "0x0008"
+ },
+ {
+ "enumerant" : "OptNoneINTEL",
+ "value" : "0x10000",
+ "capabilities" : [ "OptNoneINTEL" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "MemorySemantics",
+ "enumerants" : [
+ {
+ "enumerant" : "Relaxed",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Acquire",
+ "value" : "0x0002"
+ },
+ {
+ "enumerant" : "Release",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "AcquireRelease",
+ "value" : "0x0008"
+ },
+ {
+ "enumerant" : "SequentiallyConsistent",
+ "value" : "0x0010"
+ },
+ {
+ "enumerant" : "UniformMemory",
+ "value" : "0x0040",
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SubgroupMemory",
+ "value" : "0x0080"
+ },
+ {
+ "enumerant" : "WorkgroupMemory",
+ "value" : "0x0100"
+ },
+ {
+ "enumerant" : "CrossWorkgroupMemory",
+ "value" : "0x0200"
+ },
+ {
+ "enumerant" : "AtomicCounterMemory",
+ "value" : "0x0400",
+ "capabilities" : [ "AtomicStorage" ]
+ },
+ {
+ "enumerant" : "ImageMemory",
+ "value" : "0x0800"
+ },
+ {
+ "enumerant" : "OutputMemory",
+ "value" : "0x1000",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "OutputMemoryKHR",
+ "value" : "0x1000",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "MakeAvailable",
+ "value" : "0x2000",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "MakeAvailableKHR",
+ "value" : "0x2000",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "MakeVisible",
+ "value" : "0x4000",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "MakeVisibleKHR",
+ "value" : "0x4000",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "Volatile",
+ "value" : "0x8000",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "MemoryAccess",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "Volatile",
+ "value" : "0x0001"
+ },
+ {
+ "enumerant" : "Aligned",
+ "value" : "0x0002",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ]
+ },
+ {
+ "enumerant" : "Nontemporal",
+ "value" : "0x0004"
+ },
+ {
+ "enumerant" : "MakePointerAvailable",
+ "value" : "0x0008",
+ "parameters" : [
+ { "kind" : "IdScope" }
+ ],
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "MakePointerAvailableKHR",
+ "value" : "0x0008",
+ "parameters" : [
+ { "kind" : "IdScope" }
+ ],
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "MakePointerVisible",
+ "value" : "0x0010",
+ "parameters" : [
+ { "kind" : "IdScope" }
+ ],
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "MakePointerVisibleKHR",
+ "value" : "0x0010",
+ "parameters" : [
+ { "kind" : "IdScope" }
+ ],
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "NonPrivatePointer",
+ "value" : "0x0020",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "NonPrivatePointerKHR",
+ "value" : "0x0020",
+ "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"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "KernelProfilingInfo",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "CmdExecTime",
+ "value" : "0x0001",
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "RayFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "NoneKHR",
+ "value" : "0x0000",
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "OpaqueKHR",
+ "value" : "0x0001",
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NoOpaqueKHR",
+ "value" : "0x0002",
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "TerminateOnFirstHitKHR",
+ "value" : "0x0004",
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SkipClosestHitShaderKHR",
+ "value" : "0x0008",
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CullBackFacingTrianglesKHR",
+ "value" : "0x0010",
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CullFrontFacingTrianglesKHR",
+ "value" : "0x0020",
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CullOpaqueKHR",
+ "value" : "0x0040",
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CullNoOpaqueKHR",
+ "value" : "0x0080",
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SkipTrianglesKHR",
+ "value" : "0x0100",
+ "capabilities" : [ "RayTraversalPrimitiveCullingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SkipAABBsKHR",
+ "value" : "0x0200",
+ "capabilities" : [ "RayTraversalPrimitiveCullingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ForceOpacityMicromap2StateEXT",
+ "value" : "0x0400",
+ "capabilities" : [ "RayTracingOpacityMicromapEXT" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "FragmentShadingRate",
+ "enumerants" : [
+ {
+ "enumerant" : "Vertical2Pixels",
+ "value" : "0x0001",
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "Vertical4Pixels",
+ "value" : "0x0002",
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "Horizontal2Pixels",
+ "value" : "0x0004",
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "Horizontal4Pixels",
+ "value" : "0x0008",
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SourceLanguage",
+ "enumerants" : [
+ {
+ "enumerant" : "Unknown",
+ "value" : 0
+ },
+ {
+ "enumerant" : "ESSL",
+ "value" : 1
+ },
+ {
+ "enumerant" : "GLSL",
+ "value" : 2
+ },
+ {
+ "enumerant" : "OpenCL_C",
+ "value" : 3
+ },
+ {
+ "enumerant" : "OpenCL_CPP",
+ "value" : 4
+ },
+ {
+ "enumerant" : "HLSL",
+ "value" : 5
+ },
+ {
+ "enumerant" : "CPP_for_OpenCL",
+ "value" : 6
+ },
+ {
+ "enumerant" : "SYCL",
+ "value" : 7
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ExecutionModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Vertex",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "TessellationControl",
+ "value" : 1,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessellationEvaluation",
+ "value" : 2,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Geometry",
+ "value" : 3,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Fragment",
+ "value" : 4,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLCompute",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Kernel",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "TaskNV",
+ "value" : 5267,
+ "capabilities" : [ "MeshShadingNV" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MeshNV",
+ "value" : 5268,
+ "capabilities" : [ "MeshShadingNV" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayGenerationNV",
+ "value" : 5313,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayGenerationKHR",
+ "value" : 5313,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IntersectionNV",
+ "value" : 5314,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IntersectionKHR",
+ "value" : 5314,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AnyHitNV",
+ "value" : 5315,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AnyHitKHR",
+ "value" : 5315,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ClosestHitNV",
+ "value" : 5316,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ClosestHitKHR",
+ "value" : 5316,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MissNV",
+ "value" : 5317,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MissKHR",
+ "value" : 5317,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CallableNV",
+ "value" : 5318,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CallableKHR",
+ "value" : 5318,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "TaskEXT",
+ "value" : 5364,
+ "capabilities" : [ "MeshShadingEXT" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MeshEXT",
+ "value" : 5365,
+ "capabilities" : [ "MeshShadingEXT" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "AddressingModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Logical",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Physical32",
+ "value" : 1,
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "enumerant" : "Physical64",
+ "value" : 2,
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "enumerant" : "PhysicalStorageBuffer64",
+ "value" : 5348,
+ "extensions" : [ "SPV_EXT_physical_storage_buffer", "SPV_KHR_physical_storage_buffer" ],
+ "capabilities" : [ "PhysicalStorageBufferAddresses" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "PhysicalStorageBuffer64EXT",
+ "value" : 5348,
+ "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
+ "capabilities" : [ "PhysicalStorageBufferAddresses" ],
+ "version" : "1.5"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "MemoryModel",
+ "enumerants" : [
+ {
+ "enumerant" : "Simple",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLSL450",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OpenCL",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Vulkan",
+ "value" : 3,
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "VulkanKHR",
+ "value" : 3,
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ExecutionMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Invocations",
+ "value" : 0,
+ "capabilities" : [ "Geometry" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Number of <<Invocation,invocations>>'" }
+ ]
+ },
+ {
+ "enumerant" : "SpacingEqual",
+ "value" : 1,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "SpacingFractionalEven",
+ "value" : 2,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "SpacingFractionalOdd",
+ "value" : 3,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "VertexOrderCw",
+ "value" : 4,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "VertexOrderCcw",
+ "value" : 5,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "PixelCenterInteger",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OriginUpperLeft",
+ "value" : 7,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "OriginLowerLeft",
+ "value" : 8,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "EarlyFragmentTests",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointMode",
+ "value" : 10,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Xfb",
+ "value" : 11,
+ "capabilities" : [ "TransformFeedback" ]
+ },
+ {
+ "enumerant" : "DepthReplacing",
+ "value" : 12,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthGreater",
+ "value" : 14,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthLess",
+ "value" : 15,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DepthUnchanged",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "LocalSize",
+ "value" : 17,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'x size'" },
+ { "kind" : "LiteralInteger", "name" : "'y size'" },
+ { "kind" : "LiteralInteger", "name" : "'z size'" }
+ ]
+ },
+ {
+ "enumerant" : "LocalSizeHint",
+ "value" : 18,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'x size'" },
+ { "kind" : "LiteralInteger", "name" : "'y size'" },
+ { "kind" : "LiteralInteger", "name" : "'z size'" }
+ ]
+ },
+ {
+ "enumerant" : "InputPoints",
+ "value" : 19,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "InputLines",
+ "value" : 20,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "InputLinesAdjacency",
+ "value" : 21,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Triangles",
+ "value" : 22,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "InputTrianglesAdjacency",
+ "value" : 23,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "Quads",
+ "value" : 24,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Isolines",
+ "value" : 25,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "OutputVertices",
+ "value" : 26,
+ "capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV", "MeshShadingEXT" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
+ ]
+ },
+ {
+ "enumerant" : "OutputPoints",
+ "value" : 27,
+ "capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ]
+ },
+ {
+ "enumerant" : "OutputLineStrip",
+ "value" : 28,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "OutputTriangleStrip",
+ "value" : 29,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "VecTypeHint",
+ "value" : 30,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Vector type'" }
+ ]
+ },
+ {
+ "enumerant" : "ContractionOff",
+ "value" : 31,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Initializer",
+ "value" : 33,
+ "capabilities" : [ "Kernel" ],
+ "version" : "1.1"
+ },
+ {
+ "enumerant" : "Finalizer",
+ "value" : 34,
+ "capabilities" : [ "Kernel" ],
+ "version" : "1.1"
+ },
+ {
+ "enumerant" : "SubgroupSize",
+ "value" : 35,
+ "capabilities" : [ "SubgroupDispatch" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" }
+ ],
+ "version" : "1.1"
+ },
+ {
+ "enumerant" : "SubgroupsPerWorkgroup",
+ "value" : 36,
+ "capabilities" : [ "SubgroupDispatch" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" }
+ ],
+ "version" : "1.1"
+ },
+ {
+ "enumerant" : "SubgroupsPerWorkgroupId",
+ "value" : 37,
+ "capabilities" : [ "SubgroupDispatch" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Subgroups Per Workgroup'" }
+ ],
+ "version" : "1.2"
+ },
+ {
+ "enumerant" : "LocalSizeId",
+ "value" : 38,
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'x size'" },
+ { "kind" : "IdRef", "name" : "'y size'" },
+ { "kind" : "IdRef", "name" : "'z size'" }
+ ],
+ "version" : "1.2"
+ },
+ {
+ "enumerant" : "LocalSizeHintId",
+ "value" : 39,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'x size hint'" },
+ { "kind" : "IdRef", "name" : "'y size hint'" },
+ { "kind" : "IdRef", "name" : "'z size hint'" }
+ ],
+ "version" : "1.2"
+ },
+ {
+ "enumerant" : "SubgroupUniformControlFlowKHR",
+ "value" : 4421,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_subgroup_uniform_control_flow" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PostDepthCoverage",
+ "value" : 4446,
+ "capabilities" : [ "SampleMaskPostDepthCoverage" ],
+ "extensions" : [ "SPV_KHR_post_depth_coverage" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DenormPreserve",
+ "value" : 4459,
+ "capabilities" : [ "DenormPreserve" ],
+ "extensions" : [ "SPV_KHR_float_controls" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "DenormFlushToZero",
+ "value" : 4460,
+ "capabilities" : [ "DenormFlushToZero" ],
+ "extensions" : [ "SPV_KHR_float_controls" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "SignedZeroInfNanPreserve",
+ "value" : 4461,
+ "capabilities" : [ "SignedZeroInfNanPreserve" ],
+ "extensions" : [ "SPV_KHR_float_controls" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "RoundingModeRTE",
+ "value" : 4462,
+ "capabilities" : [ "RoundingModeRTE" ],
+ "extensions" : [ "SPV_KHR_float_controls" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "RoundingModeRTZ",
+ "value" : 4463,
+ "capabilities" : [ "RoundingModeRTZ" ],
+ "extensions" : [ "SPV_KHR_float_controls" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "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" ],
+ "extensions" : [ "SPV_EXT_shader_stencil_export" ],
+ "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", "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", "MeshShadingEXT" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Primitive count'" }
+ ],
+ "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"
+ },
+ {
+ "enumerant" : "DerivativeGroupQuadsNV",
+ "value" : 5289,
+ "capabilities" : [ "ComputeDerivativeGroupQuadsNV" ],
+ "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DerivativeGroupLinearNV",
+ "value" : 5290,
+ "capabilities" : [ "ComputeDerivativeGroupLinearNV" ],
+ "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "OutputTrianglesNV",
+ "value" : 5298,
+ "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"
+ },
+ {
+ "enumerant" : "PixelInterlockOrderedEXT",
+ "value" : 5366,
+ "capabilities" : [ "FragmentShaderPixelInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PixelInterlockUnorderedEXT",
+ "value" : 5367,
+ "capabilities" : [ "FragmentShaderPixelInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SampleInterlockOrderedEXT",
+ "value" : 5368,
+ "capabilities" : [ "FragmentShaderSampleInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SampleInterlockUnorderedEXT",
+ "value" : 5369,
+ "capabilities" : [ "FragmentShaderSampleInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShadingRateInterlockOrderedEXT",
+ "value" : 5370,
+ "capabilities" : [ "FragmentShaderShadingRateInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShadingRateInterlockUnorderedEXT",
+ "value" : 5371,
+ "capabilities" : [ "FragmentShaderShadingRateInterlockEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SharedLocalMemorySizeINTEL",
+ "value" : 5618,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RoundingModeRTPINTEL",
+ "value" : 5620,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "capabilities" : [ "RoundToInfinityINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RoundingModeRTNINTEL",
+ "value" : 5621,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "capabilities" : [ "RoundToInfinityINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FloatingPointModeALTINTEL",
+ "value" : 5622,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "capabilities" : [ "RoundToInfinityINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FloatingPointModeIEEEINTEL",
+ "value" : 5623,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "capabilities" : [ "RoundToInfinityINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxWorkgroupSizeINTEL",
+ "value" : 5893,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'max_x_size'" },
+ { "kind" : "LiteralInteger", "name" : "'max_y_size'" },
+ { "kind" : "LiteralInteger", "name" : "'max_z_size'" }
+ ],
+ "capabilities" : [ "KernelAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxWorkDimINTEL",
+ "value" : 5894,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'max_dimensions'" }
+ ],
+ "capabilities" : [ "KernelAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NoGlobalOffsetINTEL",
+ "value" : 5895,
+ "capabilities" : [ "KernelAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NumSIMDWorkitemsINTEL",
+ "value" : 5896,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'vector_width'" }
+ ],
+ "capabilities" : [ "FPGAKernelAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SchedulerTargetFmaxMhzINTEL",
+ "value" : 5903,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'target_fmax'" }
+ ],
+ "capabilities" : [ "FPGAKernelAttributesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NamedBarrierCountINTEL",
+ "value" : 6417,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Barrier Count'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "StorageClass",
+ "enumerants" : [
+ {
+ "enumerant" : "UniformConstant",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Input",
+ "value" : 1
+ },
+ {
+ "enumerant" : "Uniform",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Output",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Workgroup",
+ "value" : 4
+ },
+ {
+ "enumerant" : "CrossWorkgroup",
+ "value" : 5
+ },
+ {
+ "enumerant" : "Private",
+ "value" : 6,
+ "capabilities" : [ "Shader", "VectorComputeINTEL" ]
+ },
+ {
+ "enumerant" : "Function",
+ "value" : 7
+ },
+ {
+ "enumerant" : "Generic",
+ "value" : 8,
+ "capabilities" : [ "GenericPointer" ]
+ },
+ {
+ "enumerant" : "PushConstant",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "AtomicCounter",
+ "value" : 10,
+ "capabilities" : [ "AtomicStorage" ]
+ },
+ {
+ "enumerant" : "Image",
+ "value" : 11
+ },
+ {
+ "enumerant" : "StorageBuffer",
+ "value" : 12,
+ "extensions" : [
+ "SPV_KHR_storage_buffer_storage_class",
+ "SPV_KHR_variable_pointers"
+ ],
+ "capabilities" : [ "Shader" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "CallableDataNV",
+ "value" : 5328,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CallableDataKHR",
+ "value" : 5328,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IncomingCallableDataNV",
+ "value" : 5329,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IncomingCallableDataKHR",
+ "value" : 5329,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayPayloadNV",
+ "value" : 5338,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayPayloadKHR",
+ "value" : 5338,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HitAttributeNV",
+ "value" : 5339,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HitAttributeKHR",
+ "value" : 5339,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IncomingRayPayloadNV",
+ "value" : 5342,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IncomingRayPayloadKHR",
+ "value" : 5342,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderRecordBufferNV",
+ "value" : 5343,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderRecordBufferKHR",
+ "value" : 5343,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PhysicalStorageBuffer",
+ "value" : 5349,
+ "extensions" : [ "SPV_EXT_physical_storage_buffer", "SPV_KHR_physical_storage_buffer" ],
+ "capabilities" : [ "PhysicalStorageBufferAddresses" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "PhysicalStorageBufferEXT",
+ "value" : 5349,
+ "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
+ "capabilities" : [ "PhysicalStorageBufferAddresses" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "HitObjectAttributeNV",
+ "value" : 5385,
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "TaskPayloadWorkgroupEXT",
+ "value" : 5402,
+ "extensions" : [ "SPV_EXT_mesh_shader" ],
+ "capabilities" : [ "MeshShadingEXT" ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "CodeSectionINTEL",
+ "value" : 5605,
+ "extensions" : [ "SPV_INTEL_function_pointers" ],
+ "capabilities" : [ "FunctionPointersINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DeviceOnlyINTEL",
+ "value" : 5936,
+ "extensions" : [
+ "SPV_INTEL_usm_storage_classes"
+ ],
+ "capabilities" : [ "USMStorageClassesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HostOnlyINTEL",
+ "value" : 5937,
+ "extensions" : [
+ "SPV_INTEL_usm_storage_classes"
+ ],
+ "capabilities" : [ "USMStorageClassesINTEL" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Dim",
+ "enumerants" : [
+ {
+ "enumerant" : "1D",
+ "value" : 0,
+ "capabilities" : [ "Sampled1D", "Image1D" ]
+ },
+ {
+ "enumerant" : "2D",
+ "value" : 1,
+ "capabilities" : [ "Shader", "Kernel", "ImageMSArray" ]
+ },
+ {
+ "enumerant" : "3D",
+ "value" : 2
+ },
+ {
+ "enumerant" : "Cube",
+ "value" : 3,
+ "capabilities" : [ "Shader", "ImageCubeArray" ]
+ },
+ {
+ "enumerant" : "Rect",
+ "value" : 4,
+ "capabilities" : [ "SampledRect", "ImageRect" ]
+ },
+ {
+ "enumerant" : "Buffer",
+ "value" : 5,
+ "capabilities" : [ "SampledBuffer", "ImageBuffer" ]
+ },
+ {
+ "enumerant" : "SubpassData",
+ "value" : 6,
+ "capabilities" : [ "InputAttachment" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SamplerAddressingMode",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ClampToEdge",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Clamp",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Repeat",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RepeatMirrored",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "SamplerFilterMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Nearest",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Linear",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageFormat",
+ "enumerants" : [
+ {
+ "enumerant" : "Unknown",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Rgba32f",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16f",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32f",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8",
+ "value" : 4,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8Snorm",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rg32f",
+ "value" : 6,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16f",
+ "value" : 7,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R11fG11fB10f",
+ "value" : 8,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16f",
+ "value" : 9,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba16",
+ "value" : 10,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgb10A2",
+ "value" : 11,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16",
+ "value" : 12,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8",
+ "value" : 13,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16",
+ "value" : 14,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8",
+ "value" : 15,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba16Snorm",
+ "value" : 16,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16Snorm",
+ "value" : 17,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8Snorm",
+ "value" : 18,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16Snorm",
+ "value" : 19,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8Snorm",
+ "value" : 20,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba32i",
+ "value" : 21,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16i",
+ "value" : 22,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8i",
+ "value" : 23,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32i",
+ "value" : 24,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rg32i",
+ "value" : 25,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16i",
+ "value" : 26,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8i",
+ "value" : 27,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16i",
+ "value" : 28,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8i",
+ "value" : 29,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rgba32ui",
+ "value" : 30,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba16ui",
+ "value" : 31,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgba8ui",
+ "value" : 32,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "R32ui",
+ "value" : 33,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Rgb10a2ui",
+ "value" : 34,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg32ui",
+ "value" : 35,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg16ui",
+ "value" : 36,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "Rg8ui",
+ "value" : 37,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R16ui",
+ "value" : 38,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R8ui",
+ "value" : 39,
+ "capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R64ui",
+ "value" : 40,
+ "capabilities" : [ "Int64ImageEXT" ]
+ },
+ {
+ "enumerant" : "R64i",
+ "value" : 41,
+ "capabilities" : [ "Int64ImageEXT" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageChannelOrder",
+ "enumerants" : [
+ {
+ "enumerant" : "R",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "A",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RG",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RA",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGB",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGBA",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "BGRA",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ARGB",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Intensity",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Luminance",
+ "value" : 9,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Rx",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGx",
+ "value" : 11,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RGBx",
+ "value" : 12,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Depth",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "DepthStencil",
+ "value" : 14,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGB",
+ "value" : 15,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGBx",
+ "value" : 16,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sRGBA",
+ "value" : 17,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "sBGRA",
+ "value" : 18,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ABGR",
+ "value" : 19,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "ImageChannelDataType",
+ "enumerants" : [
+ {
+ "enumerant" : "SnormInt8",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SnormInt16",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt8",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt16",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormShort565",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormShort555",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt101010",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt8",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt16",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SignedInt32",
+ "value" : 9,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt8",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt16",
+ "value" : 11,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnsignedInt32",
+ "value" : 12,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "HalfFloat",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float",
+ "value" : 14,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt24",
+ "value" : 15,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "UnormInt101010_2",
+ "value" : 16,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FPRoundingMode",
+ "enumerants" : [
+ {
+ "enumerant" : "RTE",
+ "value" : 0
+ },
+ {
+ "enumerant" : "RTZ",
+ "value" : 1
+ },
+ {
+ "enumerant" : "RTP",
+ "value" : 2
+ },
+ {
+ "enumerant" : "RTN",
+ "value" : 3
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FPDenormMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Preserve",
+ "value" : 0,
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FlushToZero",
+ "value" : 1,
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "QuantizationModes",
+ "enumerants" : [
+ {
+ "enumerant" : "TRN",
+ "value" : 0,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "TRN_ZERO",
+ "value" : 1,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RND",
+ "value" : 2,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RND_ZERO",
+ "value" : 3,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RND_INF",
+ "value" : 4,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RND_MIN_INF",
+ "value" : 5,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RND_CONV",
+ "value" : 6,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RND_CONV_ODD",
+ "value" : 7,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FPOperationMode",
+ "enumerants" : [
+ {
+ "enumerant" : "IEEE",
+ "value" : 0,
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ALT",
+ "value" : 1,
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "OverflowModes",
+ "enumerants" : [
+ {
+ "enumerant" : "WRAP",
+ "value" : 0,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SAT",
+ "value" : 1,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SAT_ZERO",
+ "value" : 2,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SAT_SYM",
+ "value" : 3,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "LinkageType",
+ "enumerants" : [
+ {
+ "enumerant" : "Export",
+ "value" : 0,
+ "capabilities" : [ "Linkage" ]
+ },
+ {
+ "enumerant" : "Import",
+ "value" : 1,
+ "capabilities" : [ "Linkage" ]
+ },
+ {
+ "enumerant" : "LinkOnceODR",
+ "value" : 2,
+ "capabilities" : [ "Linkage" ],
+ "extensions" : [ "SPV_KHR_linkonce_odr" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "AccessQualifier",
+ "enumerants" : [
+ {
+ "enumerant" : "ReadOnly",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WriteOnly",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ReadWrite",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FunctionParameterAttribute",
+ "enumerants" : [
+ {
+ "enumerant" : "Zext",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Sext",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ByVal",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Sret",
+ "value" : 3,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoAlias",
+ "value" : 4,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoCapture",
+ "value" : 5,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoWrite",
+ "value" : 6,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NoReadWrite",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "RuntimeAlignedINTEL",
+ "value" : 5940,
+ "capabilities" : [ "RuntimeAlignedAttributeINTEL" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Decoration",
+ "enumerants" : [
+ {
+ "enumerant" : "RelaxedPrecision",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SpecId",
+ "value" : 1,
+ "capabilities" : [ "Shader", "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" }
+ ]
+ },
+ {
+ "enumerant" : "Block",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "BufferBlock",
+ "value" : 3,
+ "capabilities" : [ "Shader" ],
+ "lastVersion" : "1.3"
+ },
+ {
+ "enumerant" : "RowMajor",
+ "value" : 4,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "ColMajor",
+ "value" : 5,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "ArrayStride",
+ "value" : 6,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Array Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "MatrixStride",
+ "value" : 7,
+ "capabilities" : [ "Matrix" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "GLSLShared",
+ "value" : 8,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GLSLPacked",
+ "value" : 9,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "CPacked",
+ "value" : 10,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "BuiltIn",
+ "value" : 11,
+ "parameters" : [
+ { "kind" : "BuiltIn" }
+ ]
+ },
+ {
+ "enumerant" : "NoPerspective",
+ "value" : 13,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Flat",
+ "value" : 14,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Patch",
+ "value" : 15,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "Centroid",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Sample",
+ "value" : 17,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "Invariant",
+ "value" : 18,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Restrict",
+ "value" : 19
+ },
+ {
+ "enumerant" : "Aliased",
+ "value" : 20
+ },
+ {
+ "enumerant" : "Volatile",
+ "value" : 21
+ },
+ {
+ "enumerant" : "Constant",
+ "value" : 22,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Coherent",
+ "value" : 23
+ },
+ {
+ "enumerant" : "NonWritable",
+ "value" : 24
+ },
+ {
+ "enumerant" : "NonReadable",
+ "value" : 25
+ },
+ {
+ "enumerant" : "Uniform",
+ "value" : 26,
+ "capabilities" : [ "Shader", "UniformDecoration" ]
+ },
+ {
+ "enumerant" : "UniformId",
+ "value" : 27,
+ "capabilities" : [ "Shader", "UniformDecoration" ],
+ "parameters" : [
+ { "kind" : "IdScope", "name" : "'Execution'" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "SaturatedConversion",
+ "value" : 28,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Stream",
+ "value" : 29,
+ "capabilities" : [ "GeometryStreams" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Stream Number'" }
+ ]
+ },
+ {
+ "enumerant" : "Location",
+ "value" : 30,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Location'" }
+ ]
+ },
+ {
+ "enumerant" : "Component",
+ "value" : 31,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Component'" }
+ ]
+ },
+ {
+ "enumerant" : "Index",
+ "value" : 32,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Index'" }
+ ]
+ },
+ {
+ "enumerant" : "Binding",
+ "value" : 33,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Binding Point'" }
+ ]
+ },
+ {
+ "enumerant" : "DescriptorSet",
+ "value" : 34,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" }
+ ]
+ },
+ {
+ "enumerant" : "Offset",
+ "value" : 35,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Byte Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "XfbBuffer",
+ "value" : 36,
+ "capabilities" : [ "TransformFeedback" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" }
+ ]
+ },
+ {
+ "enumerant" : "XfbStride",
+ "value" : 37,
+ "capabilities" : [ "TransformFeedback" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'XFB Stride'" }
+ ]
+ },
+ {
+ "enumerant" : "FuncParamAttr",
+ "value" : 38,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" }
+ ]
+ },
+ {
+ "enumerant" : "FPRoundingMode",
+ "value" : 39,
+ "parameters" : [
+ { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" }
+ ]
+ },
+ {
+ "enumerant" : "FPFastMathMode",
+ "value" : 40,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" }
+ ]
+ },
+ {
+ "enumerant" : "LinkageAttributes",
+ "value" : 41,
+ "capabilities" : [ "Linkage" ],
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Name'" },
+ { "kind" : "LinkageType", "name" : "'Linkage Type'" }
+ ]
+ },
+ {
+ "enumerant" : "NoContraction",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InputAttachmentIndex",
+ "value" : 43,
+ "capabilities" : [ "InputAttachment" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Attachment Index'" }
+ ]
+ },
+ {
+ "enumerant" : "Alignment",
+ "value" : 44,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Alignment'" }
+ ]
+ },
+ {
+ "enumerant" : "MaxByteOffset",
+ "value" : 45,
+ "capabilities" : [ "Addresses" ],
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" }
+ ],
+ "version" : "1.1"
+ },
+ {
+ "enumerant" : "AlignmentId",
+ "value" : 46,
+ "capabilities" : [ "Kernel" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Alignment'" }
+ ],
+ "version" : "1.2"
+ },
+ {
+ "enumerant" : "MaxByteOffsetId",
+ "value" : 47,
+ "capabilities" : [ "Addresses" ],
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Max Byte Offset'" }
+ ],
+ "version" : "1.2"
+ },
+ {
+ "enumerant" : "NoSignedWrap",
+ "value" : 4469,
+ "extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "NoUnsignedWrap",
+ "value" : 4470,
+ "extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "ExplicitInterpAMD",
+ "value" : 4999,
+ "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "OverrideCoverageNV",
+ "value" : 5248,
+ "capabilities" : [ "SampleMaskOverrideCoverageNV" ],
+ "extensions" : [ "SPV_NV_sample_mask_override_coverage" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PassthroughNV",
+ "value" : 5250,
+ "capabilities" : [ "GeometryShaderPassthroughNV" ],
+ "extensions" : [ "SPV_NV_geometry_shader_passthrough" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ViewportRelativeNV",
+ "value" : 5252,
+ "capabilities" : [ "ShaderViewportMaskNV" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SecondaryViewportRelativeNV",
+ "value" : 5256,
+ "capabilities" : [ "ShaderStereoViewNV" ],
+ "extensions" : [ "SPV_NV_stereo_view_rendering" ],
+ "version" : "None",
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Offset'" }
+ ]
+ },
+ {
+ "enumerant" : "PerPrimitiveNV",
+ "value" : 5271,
+ "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"
+ },
+ {
+ "enumerant" : "PerViewNV",
+ "value" : 5272,
+ "capabilities" : [ "MeshShadingNV" ],
+ "extensions" : [ "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PerTaskNV",
+ "value" : 5273,
+ "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
+ "extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PerVertexKHR",
+ "value" : 5285,
+ "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PerVertexNV",
+ "value" : 5285,
+ "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NonUniform",
+ "value" : 5300,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "NonUniformEXT",
+ "value" : 5300,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "RestrictPointer",
+ "value" : 5355,
+ "capabilities" : [ "PhysicalStorageBufferAddresses" ],
+ "extensions" : [ "SPV_EXT_physical_storage_buffer", "SPV_KHR_physical_storage_buffer" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "RestrictPointerEXT",
+ "value" : 5355,
+ "capabilities" : [ "PhysicalStorageBufferAddresses" ],
+ "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "AliasedPointer",
+ "value" : 5356,
+ "capabilities" : [ "PhysicalStorageBufferAddresses" ],
+ "extensions" : [ "SPV_EXT_physical_storage_buffer", "SPV_KHR_physical_storage_buffer" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "AliasedPointerEXT",
+ "value" : 5356,
+ "capabilities" : [ "PhysicalStorageBufferAddresses" ],
+ "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "HitObjectShaderRecordBufferNV",
+ "value" : 5386,
+ "capabilities" : [ "ShaderInvocationReorderNV" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BindlessSamplerNV",
+ "value" : 5398,
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BindlessImageNV",
+ "value" : 5399,
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BoundSamplerNV",
+ "value" : 5400,
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BoundImageNV",
+ "value" : 5401,
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SIMTCallINTEL",
+ "value" : 5599,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'N'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ReferencedIndirectlyINTEL",
+ "value" : 5602,
+ "capabilities" : [ "IndirectReferencesINTEL" ],
+ "extensions" : [ "SPV_INTEL_function_pointers" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ClobberINTEL",
+ "value" : 5607,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Register'" }
+ ],
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SideEffectsINTEL",
+ "value" : 5608,
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorComputeVariableINTEL",
+ "value" : 5624,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FuncParamIOKindINTEL",
+ "value" : 5625,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Kind'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorComputeFunctionINTEL",
+ "value" : 5626,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "StackCallINTEL",
+ "value" : 5627,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "GlobalVariableOffsetINTEL",
+ "value" : 5628,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Offset'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CounterBuffer",
+ "value" : 5634,
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Counter Buffer'" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "HlslCounterBufferGOOGLE",
+ "value" : 5634,
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Counter Buffer'" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "UserSemantic",
+ "value" : 5635,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Semantic'" }
+ ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "HlslSemanticGOOGLE",
+ "value" : 5635,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Semantic'" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "UserTypeGOOGLE",
+ "value" : 5636,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'User Type'" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_user_type" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FunctionRoundingModeINTEL",
+ "value" : 5822,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" },
+ { "kind" : "FPRoundingMode", "name" : "'FP Rounding Mode'" }
+ ],
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FunctionDenormModeINTEL",
+ "value" : 5823,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" },
+ { "kind" : "FPDenormMode", "name" : "'FP Denorm Mode'" }
+ ],
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RegisterINTEL",
+ "value" : 5825,
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MemoryINTEL",
+ "value" : 5826,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Memory Type'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NumbanksINTEL",
+ "value" : 5827,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Banks'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BankwidthINTEL",
+ "value" : 5828,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Bank Width'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxPrivateCopiesINTEL",
+ "value" : 5829,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Maximum Copies'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SinglepumpINTEL",
+ "value" : 5830,
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DoublepumpINTEL",
+ "value" : 5831,
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxReplicatesINTEL",
+ "value" : 5832,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Maximum Replicates'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SimpleDualPortINTEL",
+ "value" : 5833,
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MergeINTEL",
+ "value" : 5834,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Merge Key'" },
+ { "kind" : "LiteralString", "name" : "'Merge Type'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BankBitsINTEL",
+ "value" : 5835,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Bank Bits'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ForcePow2DepthINTEL",
+ "value" : 5836,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Force Key'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BurstCoalesceINTEL",
+ "value" : 5899,
+ "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CacheSizeINTEL",
+ "value" : 5900,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Cache Size in bytes'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DontStaticallyCoalesceINTEL",
+ "value" : 5901,
+ "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PrefetchINTEL",
+ "value" : 5902,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Prefetcher Size in bytes'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "StallEnableINTEL",
+ "value" : 5905,
+ "capabilities" : [ "FPGAClusterAttributesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FuseLoopsInFunctionINTEL",
+ "value" : 5907,
+ "capabilities" : [ "LoopFuseINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MathOpDSPModeINTEL",
+ "value" : 5909,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Mode'" },
+ { "kind" : "LiteralInteger", "name" : "'Propagate'" }
+ ],
+ "capabilities" : [ "FPGADSPControlINTEL" ],
+ "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" : "InitiationIntervalINTEL",
+ "value" : 5917,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Cycles'" }
+ ],
+ "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxConcurrencyINTEL",
+ "value" : 5918,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Invocations'" }
+ ],
+ "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PipelineEnableINTEL",
+ "value" : 5919,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Enable'" }
+ ],
+ "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BufferLocationINTEL",
+ "value" : 5921,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Buffer Location ID'" }
+ ],
+ "capabilities" : [ "FPGABufferLocationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IOPipeStorageINTEL",
+ "value" : 5944,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'IO Pipe ID'" }
+ ],
+ "capabilities" : [ "IOPipesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FunctionFloatingPointModeINTEL",
+ "value" : 6080,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" },
+ { "kind" : "FPOperationMode", "name" : "'FP Operation Mode'" }
+ ],
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SingleElementVectorINTEL",
+ "value" : 6085,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorComputeCallableFunctionINTEL",
+ "value" : 6087,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MediaBlockIOINTEL",
+ "value" : 6140,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "BuiltIn",
+ "enumerants" : [
+ {
+ "enumerant" : "Position",
+ "value" : 0,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointSize",
+ "value" : 1,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ClipDistance",
+ "value" : 3,
+ "capabilities" : [ "ClipDistance" ]
+ },
+ {
+ "enumerant" : "CullDistance",
+ "value" : 4,
+ "capabilities" : [ "CullDistance" ]
+ },
+ {
+ "enumerant" : "VertexId",
+ "value" : 5,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InstanceId",
+ "value" : 6,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PrimitiveId",
+ "value" : 7,
+ "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ]
+ },
+ {
+ "enumerant" : "InvocationId",
+ "value" : 8,
+ "capabilities" : [ "Geometry", "Tessellation" ]
+ },
+ {
+ "enumerant" : "Layer",
+ "value" : 9,
+ "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ]
+ },
+ {
+ "enumerant" : "ViewportIndex",
+ "value" : 10,
+ "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ]
+ },
+ {
+ "enumerant" : "TessLevelOuter",
+ "value" : 11,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessLevelInner",
+ "value" : 12,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "TessCoord",
+ "value" : 13,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "PatchVertices",
+ "value" : 14,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "FragCoord",
+ "value" : 15,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "PointCoord",
+ "value" : 16,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "FrontFacing",
+ "value" : 17,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampleId",
+ "value" : 18,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "SamplePosition",
+ "value" : 19,
+ "capabilities" : [ "SampleRateShading" ]
+ },
+ {
+ "enumerant" : "SampleMask",
+ "value" : 20,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "FragDepth",
+ "value" : 22,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "HelperInvocation",
+ "value" : 23,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "NumWorkgroups",
+ "value" : 24
+ },
+ {
+ "enumerant" : "WorkgroupSize",
+ "value" : 25
+ },
+ {
+ "enumerant" : "WorkgroupId",
+ "value" : 26
+ },
+ {
+ "enumerant" : "LocalInvocationId",
+ "value" : 27
+ },
+ {
+ "enumerant" : "GlobalInvocationId",
+ "value" : 28
+ },
+ {
+ "enumerant" : "LocalInvocationIndex",
+ "value" : 29
+ },
+ {
+ "enumerant" : "WorkDim",
+ "value" : 30,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalSize",
+ "value" : 31,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "EnqueuedWorkgroupSize",
+ "value" : 32,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalOffset",
+ "value" : 33,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "GlobalLinearId",
+ "value" : 34,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupSize",
+ "value" : 36,
+ "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "SubgroupMaxSize",
+ "value" : 37,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "NumSubgroups",
+ "value" : 38,
+ "capabilities" : [ "Kernel", "GroupNonUniform" ]
+ },
+ {
+ "enumerant" : "NumEnqueuedSubgroups",
+ "value" : 39,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "SubgroupId",
+ "value" : 40,
+ "capabilities" : [ "Kernel", "GroupNonUniform" ]
+ },
+ {
+ "enumerant" : "SubgroupLocalInvocationId",
+ "value" : 41,
+ "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
+ },
+ {
+ "enumerant" : "VertexIndex",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InstanceIndex",
+ "value" : 43,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "CoreIDARM",
+ "value" : 4160,
+ "capabilities" : [ "CoreBuiltinsARM" ]
+ },
+ {
+ "enumerant" : "CoreCountARM",
+ "value" : 4161,
+ "capabilities" : [ "CoreBuiltinsARM" ]
+ },
+ {
+ "enumerant" : "CoreMaxIDARM",
+ "value" : 4162,
+ "capabilities" : [ "CoreBuiltinsARM" ]
+ },
+ {
+ "enumerant" : "WarpIDARM",
+ "value" : 4163,
+ "capabilities" : [ "CoreBuiltinsARM" ]
+ },
+ {
+ "enumerant" : "WarpMaxIDARM",
+ "value" : 4164,
+ "capabilities" : [ "CoreBuiltinsARM" ]
+ },
+ {
+ "enumerant" : "SubgroupEqMask",
+ "value" : 4416,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupEqMaskKHR",
+ "value" : 4416,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupGeMask",
+ "value" : 4417,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupGeMaskKHR",
+ "value" : 4417,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupGtMask",
+ "value" : 4418,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupGtMaskKHR",
+ "value" : 4418,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupLeMask",
+ "value" : 4419,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupLeMaskKHR",
+ "value" : 4419,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupLtMask",
+ "value" : 4420,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "SubgroupLtMaskKHR",
+ "value" : 4420,
+ "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "BaseVertex",
+ "value" : 4424,
+ "capabilities" : [ "DrawParameters" ],
+ "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "BaseInstance",
+ "value" : 4425,
+ "capabilities" : [ "DrawParameters" ],
+ "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "DrawIndex",
+ "value" : 4426,
+ "capabilities" : [ "DrawParameters", "MeshShadingNV", "MeshShadingEXT" ],
+ "extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "PrimitiveShadingRateKHR",
+ "value" : 4432,
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "extensions" : [ "SPV_KHR_fragment_shading_rate" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DeviceIndex",
+ "value" : 4438,
+ "capabilities" : [ "DeviceGroup" ],
+ "extensions" : [ "SPV_KHR_device_group" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "ViewIndex",
+ "value" : 4440,
+ "capabilities" : [ "MultiView" ],
+ "extensions" : [ "SPV_KHR_multiview" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "ShadingRateKHR",
+ "value" : 4444,
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "extensions" : [ "SPV_KHR_fragment_shading_rate" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspAMD",
+ "value" : 4992,
+ "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspCentroidAMD",
+ "value" : 4993,
+ "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspSampleAMD",
+ "value" : 4994,
+ "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BaryCoordSmoothAMD",
+ "value" : 4995,
+ "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BaryCoordSmoothCentroidAMD",
+ "value" : 4996,
+ "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BaryCoordSmoothSampleAMD",
+ "value" : 4997,
+ "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BaryCoordPullModelAMD",
+ "value" : 4998,
+ "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragStencilRefEXT",
+ "value" : 5014,
+ "capabilities" : [ "StencilExportEXT" ],
+ "extensions" : [ "SPV_EXT_shader_stencil_export" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ViewportMaskNV",
+ "value" : 5253,
+ "capabilities" : [ "ShaderViewportMaskNV", "MeshShadingNV" ],
+ "extensions" : [ "SPV_NV_viewport_array2", "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SecondaryPositionNV",
+ "value" : 5257,
+ "capabilities" : [ "ShaderStereoViewNV" ],
+ "extensions" : [ "SPV_NV_stereo_view_rendering" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SecondaryViewportMaskNV",
+ "value" : 5258,
+ "capabilities" : [ "ShaderStereoViewNV" ],
+ "extensions" : [ "SPV_NV_stereo_view_rendering" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PositionPerViewNV",
+ "value" : 5261,
+ "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ],
+ "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ViewportMaskPerViewNV",
+ "value" : 5262,
+ "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ],
+ "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FullyCoveredEXT",
+ "value" : 5264,
+ "capabilities" : [ "FragmentFullyCoveredEXT" ],
+ "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "TaskCountNV",
+ "value" : 5274,
+ "capabilities" : [ "MeshShadingNV" ],
+ "extensions" : [ "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PrimitiveCountNV",
+ "value" : 5275,
+ "capabilities" : [ "MeshShadingNV" ],
+ "extensions" : [ "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PrimitiveIndicesNV",
+ "value" : 5276,
+ "capabilities" : [ "MeshShadingNV" ],
+ "extensions" : [ "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ClipDistancePerViewNV",
+ "value" : 5277,
+ "capabilities" : [ "MeshShadingNV" ],
+ "extensions" : [ "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CullDistancePerViewNV",
+ "value" : 5278,
+ "capabilities" : [ "MeshShadingNV" ],
+ "extensions" : [ "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LayerPerViewNV",
+ "value" : 5279,
+ "capabilities" : [ "MeshShadingNV" ],
+ "extensions" : [ "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MeshViewCountNV",
+ "value" : 5280,
+ "capabilities" : [ "MeshShadingNV" ],
+ "extensions" : [ "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MeshViewIndicesNV",
+ "value" : 5281,
+ "capabilities" : [ "MeshShadingNV" ],
+ "extensions" : [ "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BaryCoordKHR",
+ "value" : 5286,
+ "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BaryCoordNV",
+ "value" : 5286,
+ "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspKHR",
+ "value" : 5287,
+ "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspNV",
+ "value" : 5287,
+ "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragSizeEXT",
+ "value" : 5292 ,
+ "capabilities" : [ "FragmentDensityEXT", "ShadingRateNV" ],
+ "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragmentSizeNV",
+ "value" : 5292 ,
+ "capabilities" : [ "ShadingRateNV", "FragmentDensityEXT" ],
+ "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragInvocationCountEXT",
+ "value" : 5293,
+ "capabilities" : [ "FragmentDensityEXT", "ShadingRateNV" ],
+ "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "InvocationsPerPixelNV",
+ "value" : 5293,
+ "capabilities" : [ "ShadingRateNV", "FragmentDensityEXT" ],
+ "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
+ "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" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LaunchIdKHR",
+ "value" : 5319,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LaunchSizeNV",
+ "value" : 5320,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LaunchSizeKHR",
+ "value" : 5320,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorldRayOriginNV",
+ "value" : 5321,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorldRayOriginKHR",
+ "value" : 5321,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorldRayDirectionNV",
+ "value" : 5322,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorldRayDirectionKHR",
+ "value" : 5322,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ObjectRayOriginNV",
+ "value" : 5323,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ObjectRayOriginKHR",
+ "value" : 5323,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ObjectRayDirectionNV",
+ "value" : 5324,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ObjectRayDirectionKHR",
+ "value" : 5324,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTminNV",
+ "value" : 5325,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTminKHR",
+ "value" : 5325,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTmaxNV",
+ "value" : 5326,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTmaxKHR",
+ "value" : 5326,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "InstanceCustomIndexNV",
+ "value" : 5327,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "InstanceCustomIndexKHR",
+ "value" : 5327,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ObjectToWorldNV",
+ "value" : 5330,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ObjectToWorldKHR",
+ "value" : 5330,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorldToObjectNV",
+ "value" : 5331,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorldToObjectKHR",
+ "value" : 5331,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HitTNV",
+ "value" : 5332,
+ "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HitKindNV",
+ "value" : 5333,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HitKindKHR",
+ "value" : 5333,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CurrentRayTimeNV",
+ "value" : 5334,
+ "capabilities" : [ "RayTracingMotionBlurNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IncomingRayFlagsNV",
+ "value" : 5351,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IncomingRayFlagsKHR",
+ "value" : 5351,
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayGeometryIndexKHR",
+ "value" : 5352,
+ "capabilities" : [ "RayTracingKHR" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WarpsPerSMNV",
+ "value" : 5374,
+ "capabilities" : [ "ShaderSMBuiltinsNV" ],
+ "extensions" : [ "SPV_NV_shader_sm_builtins" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SMCountNV",
+ "value" : 5375,
+ "capabilities" : [ "ShaderSMBuiltinsNV" ],
+ "extensions" : [ "SPV_NV_shader_sm_builtins" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WarpIDNV",
+ "value" : 5376,
+ "capabilities" : [ "ShaderSMBuiltinsNV" ],
+ "extensions" : [ "SPV_NV_shader_sm_builtins" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SMIDNV",
+ "value" : 5377,
+ "capabilities" : [ "ShaderSMBuiltinsNV" ],
+ "extensions" : [ "SPV_NV_shader_sm_builtins" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CullMaskKHR",
+ "value" : 6021,
+ "capabilities" : [ "RayCullMaskKHR" ],
+ "extensions" : [ "SPV_KHR_ray_cull_mask" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Scope",
+ "enumerants" : [
+ {
+ "enumerant" : "CrossDevice",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Device",
+ "value" : 1
+ },
+ {
+ "enumerant" : "Workgroup",
+ "value" : 2
+ },
+ {
+ "enumerant" : "Subgroup",
+ "value" : 3
+ },
+ {
+ "enumerant" : "Invocation",
+ "value" : 4
+ },
+ {
+ "enumerant" : "QueueFamily",
+ "value" : 5,
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "QueueFamilyKHR",
+ "value" : 5,
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "ShaderCallKHR",
+ "value" : 6,
+ "capabilities" : [ "RayTracingKHR" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "GroupOperation",
+ "enumerants" : [
+ {
+ "enumerant" : "Reduce",
+ "value" : 0,
+ "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
+ },
+ {
+ "enumerant" : "InclusiveScan",
+ "value" : 1,
+ "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
+ },
+ {
+ "enumerant" : "ExclusiveScan",
+ "value" : 2,
+ "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
+ },
+ {
+ "enumerant" : "ClusteredReduce",
+ "value" : 3,
+ "capabilities" : [ "GroupNonUniformClustered" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "PartitionedReduceNV",
+ "value" : 6,
+ "capabilities" : [ "GroupNonUniformPartitionedNV" ],
+ "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PartitionedInclusiveScanNV",
+ "value" : 7,
+ "capabilities" : [ "GroupNonUniformPartitionedNV" ],
+ "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PartitionedExclusiveScanNV",
+ "value" : 8,
+ "capabilities" : [ "GroupNonUniformPartitionedNV" ],
+ "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "KernelEnqueueFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "NoWait",
+ "value" : 0,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WaitKernel",
+ "value" : 1,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "WaitWorkGroup",
+ "value" : 2,
+ "capabilities" : [ "Kernel" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "Capability",
+ "enumerants" : [
+ {
+ "enumerant" : "Matrix",
+ "value" : 0
+ },
+ {
+ "enumerant" : "Shader",
+ "value" : 1,
+ "capabilities" : [ "Matrix" ]
+ },
+ {
+ "enumerant" : "Geometry",
+ "value" : 2,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Tessellation",
+ "value" : 3,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Addresses",
+ "value" : 4
+ },
+ {
+ "enumerant" : "Linkage",
+ "value" : 5
+ },
+ {
+ "enumerant" : "Kernel",
+ "value" : 6
+ },
+ {
+ "enumerant" : "Vector16",
+ "value" : 7,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float16Buffer",
+ "value" : 8,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Float16",
+ "value" : 9
+ },
+ {
+ "enumerant" : "Float64",
+ "value" : 10
+ },
+ {
+ "enumerant" : "Int64",
+ "value" : 11
+ },
+ {
+ "enumerant" : "Int64Atomics",
+ "value" : 12,
+ "capabilities" : [ "Int64" ]
+ },
+ {
+ "enumerant" : "ImageBasic",
+ "value" : 13,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "ImageReadWrite",
+ "value" : 14,
+ "capabilities" : [ "ImageBasic" ]
+ },
+ {
+ "enumerant" : "ImageMipmap",
+ "value" : 15,
+ "capabilities" : [ "ImageBasic" ]
+ },
+ {
+ "enumerant" : "Pipes",
+ "value" : 17,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "Groups",
+ "value" : 18,
+ "extensions" : [ "SPV_AMD_shader_ballot" ]
+ },
+ {
+ "enumerant" : "DeviceEnqueue",
+ "value" : 19,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "LiteralSampler",
+ "value" : 20,
+ "capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "AtomicStorage",
+ "value" : 21,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Int16",
+ "value" : 22
+ },
+ {
+ "enumerant" : "TessellationPointSize",
+ "value" : 23,
+ "capabilities" : [ "Tessellation" ]
+ },
+ {
+ "enumerant" : "GeometryPointSize",
+ "value" : 24,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "ImageGatherExtended",
+ "value" : 25,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageMultisample",
+ "value" : 27,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "UniformBufferArrayDynamicIndexing",
+ "value" : 28,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampledImageArrayDynamicIndexing",
+ "value" : 29,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageBufferArrayDynamicIndexing",
+ "value" : 30,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageArrayDynamicIndexing",
+ "value" : 31,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ClipDistance",
+ "value" : 32,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "CullDistance",
+ "value" : 33,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageCubeArray",
+ "value" : 34,
+ "capabilities" : [ "SampledCubeArray" ]
+ },
+ {
+ "enumerant" : "SampleRateShading",
+ "value" : 35,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageRect",
+ "value" : 36,
+ "capabilities" : [ "SampledRect" ]
+ },
+ {
+ "enumerant" : "SampledRect",
+ "value" : 37,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GenericPointer",
+ "value" : 38,
+ "capabilities" : [ "Addresses" ]
+ },
+ {
+ "enumerant" : "Int8",
+ "value" : 39
+ },
+ {
+ "enumerant" : "InputAttachment",
+ "value" : 40,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SparseResidency",
+ "value" : 41,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "MinLod",
+ "value" : 42,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "Sampled1D",
+ "value" : 43
+ },
+ {
+ "enumerant" : "Image1D",
+ "value" : 44,
+ "capabilities" : [ "Sampled1D" ]
+ },
+ {
+ "enumerant" : "SampledCubeArray",
+ "value" : 45,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "SampledBuffer",
+ "value" : 46
+ },
+ {
+ "enumerant" : "ImageBuffer",
+ "value" : 47,
+ "capabilities" : [ "SampledBuffer" ]
+ },
+ {
+ "enumerant" : "ImageMSArray",
+ "value" : 48,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageExtendedFormats",
+ "value" : 49,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "ImageQuery",
+ "value" : 50,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "DerivativeControl",
+ "value" : 51,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "InterpolationFunction",
+ "value" : 52,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "TransformFeedback",
+ "value" : 53,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "GeometryStreams",
+ "value" : 54,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "StorageImageReadWithoutFormat",
+ "value" : 55,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "StorageImageWriteWithoutFormat",
+ "value" : 56,
+ "capabilities" : [ "Shader" ]
+ },
+ {
+ "enumerant" : "MultiViewport",
+ "value" : 57,
+ "capabilities" : [ "Geometry" ]
+ },
+ {
+ "enumerant" : "SubgroupDispatch",
+ "value" : 58,
+ "capabilities" : [ "DeviceEnqueue" ],
+ "version" : "1.1"
+ },
+ {
+ "enumerant" : "NamedBarrier",
+ "value" : 59,
+ "capabilities" : [ "Kernel" ],
+ "version" : "1.1"
+ },
+ {
+ "enumerant" : "PipeStorage",
+ "value" : 60,
+ "capabilities" : [ "Pipes" ],
+ "version" : "1.1"
+ },
+ {
+ "enumerant" : "GroupNonUniform",
+ "value" : 61,
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformVote",
+ "value" : 62,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformArithmetic",
+ "value" : 63,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformBallot",
+ "value" : 64,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformShuffle",
+ "value" : 65,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformShuffleRelative",
+ "value" : 66,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformClustered",
+ "value" : 67,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "GroupNonUniformQuad",
+ "value" : 68,
+ "capabilities" : [ "GroupNonUniform" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "ShaderLayer",
+ "value" : 69,
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "ShaderViewportIndex",
+ "value" : 70,
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "UniformDecoration",
+ "value" : 71,
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "CoreBuiltinsARM",
+ "value" : 4165,
+ "extensions" : [ "SPV_ARM_core_builtins" ]
+ },
+ {
+ "enumerant" : "FragmentShadingRateKHR",
+ "value" : 4422,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_fragment_shading_rate" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SubgroupBallotKHR",
+ "value" : 4423,
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DrawParameters",
+ "value" : 4427,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "WorkgroupMemoryExplicitLayoutKHR",
+ "value" : 4428,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorkgroupMemoryExplicitLayout8BitAccessKHR",
+ "value" : 4429,
+ "capabilities" : [ "WorkgroupMemoryExplicitLayoutKHR" ],
+ "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorkgroupMemoryExplicitLayout16BitAccessKHR",
+ "value" : 4430,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SubgroupVoteKHR",
+ "value" : 4431,
+ "extensions" : [ "SPV_KHR_subgroup_vote" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "StorageBuffer16BitAccess",
+ "value" : 4433,
+ "extensions" : [ "SPV_KHR_16bit_storage" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "StorageUniformBufferBlock16",
+ "value" : 4433,
+ "extensions" : [ "SPV_KHR_16bit_storage" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "UniformAndStorageBuffer16BitAccess",
+ "value" : 4434,
+ "capabilities" : [
+ "StorageBuffer16BitAccess",
+ "StorageUniformBufferBlock16"
+ ],
+ "extensions" : [ "SPV_KHR_16bit_storage" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "StorageUniform16",
+ "value" : 4434,
+ "capabilities" : [
+ "StorageBuffer16BitAccess",
+ "StorageUniformBufferBlock16"
+ ],
+ "extensions" : [ "SPV_KHR_16bit_storage" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "StoragePushConstant16",
+ "value" : 4435,
+ "extensions" : [ "SPV_KHR_16bit_storage" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "StorageInputOutput16",
+ "value" : 4436,
+ "extensions" : [ "SPV_KHR_16bit_storage" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "DeviceGroup",
+ "value" : 4437,
+ "extensions" : [ "SPV_KHR_device_group" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "MultiView",
+ "value" : 4439,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_multiview" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "VariablePointersStorageBuffer",
+ "value" : 4441,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_variable_pointers" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "VariablePointers",
+ "value" : 4442,
+ "capabilities" : [ "VariablePointersStorageBuffer" ],
+ "extensions" : [ "SPV_KHR_variable_pointers" ],
+ "version" : "1.3"
+ },
+ {
+ "enumerant" : "AtomicStorageOps",
+ "value" : 4445,
+ "extensions" : [ "SPV_KHR_shader_atomic_counter_ops" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SampleMaskPostDepthCoverage",
+ "value" : 4447,
+ "extensions" : [ "SPV_KHR_post_depth_coverage" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "StorageBuffer8BitAccess",
+ "value" : 4448,
+ "extensions" : [ "SPV_KHR_8bit_storage" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "UniformAndStorageBuffer8BitAccess",
+ "value" : 4449,
+ "capabilities" : [ "StorageBuffer8BitAccess" ],
+ "extensions" : [ "SPV_KHR_8bit_storage" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StoragePushConstant8",
+ "value" : 4450,
+ "extensions" : [ "SPV_KHR_8bit_storage" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "DenormPreserve",
+ "value" : 4464,
+ "extensions" : [ "SPV_KHR_float_controls" ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "DenormFlushToZero",
+ "value" : 4465,
+ "extensions" : [ "SPV_KHR_float_controls" ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "SignedZeroInfNanPreserve",
+ "value" : 4466,
+ "extensions" : [ "SPV_KHR_float_controls" ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "RoundingModeRTE",
+ "value" : 4467,
+ "extensions" : [ "SPV_KHR_float_controls" ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "RoundingModeRTZ",
+ "value" : 4468,
+ "extensions" : [ "SPV_KHR_float_controls" ],
+ "version" : "1.4"
+ },
+ {
+ "enumerant" : "RayQueryProvisionalKHR",
+ "value" : 4471,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayQueryKHR",
+ "value" : 4472,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTraversalPrimitiveCullingKHR",
+ "value" : 4478,
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query","SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTracingKHR",
+ "value" : 4479,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "Float16ImageAMD",
+ "value" : 5008,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_gpu_shader_half_float_fetch" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ImageGatherBiasLodAMD",
+ "value" : 5009,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragmentMaskAMD",
+ "value" : 5010,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "StencilExportEXT",
+ "value" : 5013,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_shader_stencil_export" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ImageReadWriteLodAMD",
+ "value" : 5015,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "Int64ImageEXT",
+ "value" : 5016,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_shader_image_int64" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderClockKHR",
+ "value" : 5055,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_shader_clock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SampleMaskOverrideCoverageNV",
+ "value" : 5249,
+ "capabilities" : [ "SampleRateShading" ],
+ "extensions" : [ "SPV_NV_sample_mask_override_coverage" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "GeometryShaderPassthroughNV",
+ "value" : 5251,
+ "capabilities" : [ "Geometry" ],
+ "extensions" : [ "SPV_NV_geometry_shader_passthrough" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderViewportIndexLayerEXT",
+ "value" : 5254,
+ "capabilities" : [ "MultiViewport" ],
+ "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderViewportIndexLayerNV",
+ "value" : 5254,
+ "capabilities" : [ "MultiViewport" ],
+ "extensions" : [ "SPV_NV_viewport_array2" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderViewportMaskNV",
+ "value" : 5255,
+ "capabilities" : [ "ShaderViewportIndexLayerNV" ],
+ "extensions" : [ "SPV_NV_viewport_array2" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderStereoViewNV",
+ "value" : 5259,
+ "capabilities" : [ "ShaderViewportMaskNV" ],
+ "extensions" : [ "SPV_NV_stereo_view_rendering" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PerViewAttributesNV",
+ "value" : 5260,
+ "capabilities" : [ "MultiView" ],
+ "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragmentFullyCoveredEXT",
+ "value" : 5265,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MeshShadingNV",
+ "value" : 5266,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_NV_mesh_shader" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ImageFootprintNV",
+ "value" : 5282,
+ "extensions" : [ "SPV_NV_shader_image_footprint" ],
+ "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" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragmentBarycentricNV",
+ "value" : 5284,
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ComputeDerivativeGroupQuadsNV",
+ "value" : 5288,
+ "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragmentDensityEXT",
+ "value" : 5291,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShadingRateNV",
+ "value" : 5291,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "GroupNonUniformPartitionedNV",
+ "value" : 5297,
+ "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderNonUniform",
+ "value" : 5301,
+ "capabilities" : [ "Shader" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "ShaderNonUniformEXT",
+ "value" : 5301,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "RuntimeDescriptorArray",
+ "value" : 5302,
+ "capabilities" : [ "Shader" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "RuntimeDescriptorArrayEXT",
+ "value" : 5302,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "InputAttachmentArrayDynamicIndexing",
+ "value" : 5303,
+ "capabilities" : [ "InputAttachment" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "InputAttachmentArrayDynamicIndexingEXT",
+ "value" : 5303,
+ "capabilities" : [ "InputAttachment" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "UniformTexelBufferArrayDynamicIndexing",
+ "value" : 5304,
+ "capabilities" : [ "SampledBuffer" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "UniformTexelBufferArrayDynamicIndexingEXT",
+ "value" : 5304,
+ "capabilities" : [ "SampledBuffer" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StorageTexelBufferArrayDynamicIndexing",
+ "value" : 5305,
+ "capabilities" : [ "ImageBuffer" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StorageTexelBufferArrayDynamicIndexingEXT",
+ "value" : 5305,
+ "capabilities" : [ "ImageBuffer" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "UniformBufferArrayNonUniformIndexing",
+ "value" : 5306,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "UniformBufferArrayNonUniformIndexingEXT",
+ "value" : 5306,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "SampledImageArrayNonUniformIndexing",
+ "value" : 5307,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "SampledImageArrayNonUniformIndexingEXT",
+ "value" : 5307,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StorageBufferArrayNonUniformIndexing",
+ "value" : 5308,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StorageBufferArrayNonUniformIndexingEXT",
+ "value" : 5308,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StorageImageArrayNonUniformIndexing",
+ "value" : 5309,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StorageImageArrayNonUniformIndexingEXT",
+ "value" : 5309,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "InputAttachmentArrayNonUniformIndexing",
+ "value" : 5310,
+ "capabilities" : [ "InputAttachment", "ShaderNonUniform" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "InputAttachmentArrayNonUniformIndexingEXT",
+ "value" : 5310,
+ "capabilities" : [ "InputAttachment", "ShaderNonUniform" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "UniformTexelBufferArrayNonUniformIndexing",
+ "value" : 5311,
+ "capabilities" : [ "SampledBuffer", "ShaderNonUniform" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "UniformTexelBufferArrayNonUniformIndexingEXT",
+ "value" : 5311,
+ "capabilities" : [ "SampledBuffer", "ShaderNonUniform" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StorageTexelBufferArrayNonUniformIndexing",
+ "value" : 5312,
+ "capabilities" : [ "ImageBuffer", "ShaderNonUniform" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StorageTexelBufferArrayNonUniformIndexingEXT",
+ "value" : 5312,
+ "capabilities" : [ "ImageBuffer", "ShaderNonUniform" ],
+ "extensions" : [ "SPV_EXT_descriptor_indexing" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "RayTracingNV",
+ "value" : 5340,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_NV_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTracingMotionBlurNV",
+ "value" : 5341,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VulkanMemoryModel",
+ "value" : 5345,
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "VulkanMemoryModelKHR",
+ "value" : 5345,
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "VulkanMemoryModelDeviceScope",
+ "value" : 5346,
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "VulkanMemoryModelDeviceScopeKHR",
+ "value" : 5346,
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "PhysicalStorageBufferAddresses",
+ "value" : 5347,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_physical_storage_buffer", "SPV_KHR_physical_storage_buffer" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "PhysicalStorageBufferAddressesEXT",
+ "value" : 5347,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "ComputeDerivativeGroupLinearNV",
+ "value" : 5350,
+ "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTracingProvisionalKHR",
+ "value" : 5353,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CooperativeMatrixNV",
+ "value" : 5357,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_NV_cooperative_matrix" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragmentShaderSampleInterlockEXT",
+ "value" : 5363,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragmentShaderShadingRateInterlockEXT",
+ "value" : 5372,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderSMBuiltinsNV",
+ "value" : 5373,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_NV_shader_sm_builtins" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragmentShaderPixelInterlockEXT",
+ "value" : 5378,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DemoteToHelperInvocation",
+ "value" : 5379,
+ "capabilities" : [ "Shader" ],
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DemoteToHelperInvocationEXT",
+ "value" : 5379,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "RayTracingOpacityMicromapEXT",
+ "value" : 5381,
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "extensions" : [ "SPV_EXT_opacity_micromap" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderInvocationReorderNV",
+ "value" : 5383,
+ "capabilities" : [ "RayTracingKHR" ],
+ "extensions" : [ "SPV_NV_shader_invocation_reorder" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BindlessTextureNV",
+ "value" : 5390,
+ "extensions" : [ "SPV_NV_bindless_texture" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SubgroupShuffleINTEL",
+ "value" : 5568,
+ "extensions" : [ "SPV_INTEL_subgroups" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SubgroupBufferBlockIOINTEL",
+ "value" : 5569,
+ "extensions" : [ "SPV_INTEL_subgroups" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SubgroupImageBlockIOINTEL",
+ "value" : 5570,
+ "extensions" : [ "SPV_INTEL_subgroups" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SubgroupImageMediaBlockIOINTEL",
+ "value" : 5579,
+ "extensions" : [ "SPV_INTEL_media_block_io" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RoundToInfinityINTEL",
+ "value" : 5582,
+ "extensions" : [ "SPV_INTEL_float_controls2" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FloatingPointModeINTEL",
+ "value" : 5583,
+ "extensions" : [ "SPV_INTEL_float_controls2" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IntegerFunctions2INTEL",
+ "value" : 5584,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_INTEL_shader_integer_functions2" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FunctionPointersINTEL",
+ "value" : 5603,
+ "extensions" : [ "SPV_INTEL_function_pointers" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IndirectReferencesINTEL",
+ "value" : 5604,
+ "extensions" : [ "SPV_INTEL_function_pointers" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AsmINTEL",
+ "value" : 5606,
+ "extensions" : [ "SPV_INTEL_inline_assembly" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AtomicFloat32MinMaxEXT",
+ "value" : 5612,
+ "extensions" : [ "SPV_EXT_shader_atomic_float_min_max" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AtomicFloat64MinMaxEXT",
+ "value" : 5613,
+ "extensions" : [ "SPV_EXT_shader_atomic_float_min_max" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AtomicFloat16MinMaxEXT",
+ "value" : 5616,
+ "extensions" : [ "SPV_EXT_shader_atomic_float_min_max" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorComputeINTEL",
+ "value" : 5617,
+ "capabilities" : [ "VectorAnyINTEL" ],
+ "extensions" : [ "SPV_INTEL_vector_compute" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorAnyINTEL",
+ "value" : 5619,
+ "extensions" : [ "SPV_INTEL_vector_compute" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ExpectAssumeKHR",
+ "value" : 5629,
+ "extensions" : [ "SPV_KHR_expect_assume" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SubgroupAvcMotionEstimationINTEL",
+ "value" : 5696,
+ "extensions" : [ "SPV_INTEL_device_side_avc_motion_estimation" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SubgroupAvcMotionEstimationIntraINTEL",
+ "value" : 5697,
+ "extensions" : [ "SPV_INTEL_device_side_avc_motion_estimation" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SubgroupAvcMotionEstimationChromaINTEL",
+ "value" : 5698,
+ "extensions" : [ "SPV_INTEL_device_side_avc_motion_estimation" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VariableLengthArrayINTEL",
+ "value" : 5817,
+ "extensions" : [ "SPV_INTEL_variable_length_array" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FunctionFloatControlINTEL",
+ "value" : 5821,
+ "extensions" : [ "SPV_INTEL_float_controls2" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGAMemoryAttributesINTEL",
+ "value" : 5824,
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPFastMathModeINTEL",
+ "value" : 5837,
+ "capabilities" : [ "Kernel" ],
+ "extensions" : [ "SPV_INTEL_fp_fast_math_mode" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ArbitraryPrecisionIntegersINTEL",
+ "value" : 5844,
+ "extensions" : [ "SPV_INTEL_arbitrary_precision_integers" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ArbitraryPrecisionFloatingPointINTEL",
+ "value" : 5845,
+ "extensions" : [ "SPV_INTEL_arbitrary_precision_floating_point" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "UnstructuredLoopControlsINTEL",
+ "value" : 5886,
+ "extensions" : [ "SPV_INTEL_unstructured_loop_controls" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGALoopControlsINTEL",
+ "value" : 5888,
+ "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "KernelAttributesINTEL",
+ "value" : 5892,
+ "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGAKernelAttributesINTEL",
+ "value" : 5897,
+ "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGAMemoryAccessesINTEL",
+ "value" : 5898,
+ "extensions" : [ "SPV_INTEL_fpga_memory_accesses" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGAClusterAttributesINTEL",
+ "value" : 5904,
+ "extensions" : [ "SPV_INTEL_fpga_cluster_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LoopFuseINTEL",
+ "value" : 5906,
+ "extensions" : [ "SPV_INTEL_loop_fuse" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGADSPControlINTEL",
+ "value" : 5908,
+ "extensions" : [ "SPV_INTEL_fpga_dsp_control" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MemoryAccessAliasingINTEL",
+ "value" : 5910,
+ "extensions" : [ "SPV_INTEL_memory_access_aliasing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGAInvocationPipeliningAttributesINTEL",
+ "value" : 5916,
+ "extensions" : [ "SPV_INTEL_fpga_invocation_pipelining_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGABufferLocationINTEL",
+ "value" : 5920,
+ "extensions" : [ "SPV_INTEL_fpga_buffer_location" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ArbitraryPrecisionFixedPointINTEL",
+ "value" : 5922,
+ "extensions" : [ "SPV_INTEL_arbitrary_precision_fixed_point" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "USMStorageClassesINTEL",
+ "value" : 5935,
+ "extensions" : [ "SPV_INTEL_usm_storage_classes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RuntimeAlignedAttributeINTEL",
+ "value" : 5939,
+ "extensions" : [ "SPV_INTEL_runtime_aligned" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IOPipesINTEL",
+ "value" : 5943,
+ "extensions" : [ "SPV_INTEL_io_pipes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BlockingPipesINTEL",
+ "value" : 5945,
+ "extensions" : [ "SPV_INTEL_blocking_pipes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGARegINTEL",
+ "value" : 5948,
+ "extensions" : [ "SPV_INTEL_fpga_reg" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DotProductInputAll",
+ "value" : 6016,
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProductInputAllKHR",
+ "value" : 6016,
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProductInput4x8Bit",
+ "value" : 6017,
+ "capabilities" : [ "Int8" ],
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProductInput4x8BitKHR",
+ "value" : 6017,
+ "capabilities" : [ "Int8" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProductInput4x8BitPacked",
+ "value" : 6018,
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProductInput4x8BitPackedKHR",
+ "value" : 6018,
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProduct",
+ "value" : 6019,
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProductKHR",
+ "value" : 6019,
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "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" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AtomicFloat64AddEXT",
+ "value" : 6034,
+ "extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LongConstantCompositeINTEL",
+ "value" : 6089,
+ "extensions" : [ "SPV_INTEL_long_constant_composite" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "OptNoneINTEL",
+ "value" : 6094,
+ "extensions" : [ "SPV_INTEL_optnone" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AtomicFloat16AddEXT",
+ "value" : 6095,
+ "extensions" : [ "SPV_EXT_shader_atomic_float16_add" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DebugInfoModuleINTEL",
+ "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"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "RayQueryIntersection",
+ "enumerants" : [
+ {
+ "enumerant" : "RayQueryCandidateIntersectionKHR",
+ "value" : 0,
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayQueryCommittedIntersectionKHR",
+ "value" : 1,
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "RayQueryCommittedIntersectionType",
+ "enumerants" : [
+ {
+ "enumerant" : "RayQueryCommittedIntersectionNoneKHR",
+ "value" : 0,
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayQueryCommittedIntersectionTriangleKHR",
+ "value" : 1,
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayQueryCommittedIntersectionGeneratedKHR",
+ "value" : 2,
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "RayQueryCandidateIntersectionType",
+ "enumerants" : [
+ {
+ "enumerant" : "RayQueryCandidateIntersectionTriangleKHR",
+ "value" : 0,
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayQueryCandidateIntersectionAABBKHR",
+ "value" : 1,
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "PackedVectorFormat",
+ "enumerants" : [
+ {
+ "enumerant" : "PackedVectorFormat4x8Bit",
+ "value" : 0,
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "PackedVectorFormat4x8BitKHR",
+ "value" : 0,
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ }
+ ]
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdResultType",
+ "doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdResult",
+ "doc" : "Definition of an <id> representing the result of the enclosing instruction"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdMemorySemantics",
+ "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the MemorySemantics operand kind"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdScope",
+ "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the Scope operand kind"
+ },
+ {
+ "category" : "Id",
+ "kind" : "IdRef",
+ "doc" : "Reference to an <id>"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralInteger",
+ "doc" : "An integer consuming one or more words"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralString",
+ "doc" : "A null-terminated stream of characters consuming an integral number of words"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralContextDependentNumber",
+ "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralExtInstInteger",
+ "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)"
+ },
+ {
+ "category" : "Literal",
+ "kind" : "LiteralSpecConstantOpInteger",
+ "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)"
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairLiteralIntegerIdRef",
+ "bases" : [ "LiteralInteger", "IdRef" ]
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairIdRefLiteralInteger",
+ "bases" : [ "IdRef", "LiteralInteger" ]
+ },
+ {
+ "category" : "Composite",
+ "kind" : "PairIdRefIdRef",
+ "bases" : [ "IdRef", "IdRef" ]
+ }
+ ]
+}
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.cs b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.cs
new file mode 100644
index 0000000000..48b65b3c9f
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.cs
@@ -0,0 +1,1955 @@
+// 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
+{
+
+ public static class Specification
+ {
+ public const uint MagicNumber = 0x07230203;
+ public const uint Version = 0x00010600;
+ public const uint Revision = 1;
+ public const uint OpCodeMask = 0xffff;
+ public const uint WordCountShift = 16;
+
+ public enum SourceLanguage
+ {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ CPP_for_OpenCL = 6,
+ SYCL = 7,
+ }
+
+ 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,
+ }
+
+ public enum AddressingModel
+ {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ PhysicalStorageBuffer64 = 5348,
+ PhysicalStorageBuffer64EXT = 5348,
+ }
+
+ public enum MemoryModel
+ {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ Vulkan = 3,
+ VulkanKHR = 3,
+ }
+
+ 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,
+ }
+
+ 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,
+ HitObjectAttributeNV = 5385,
+ TaskPayloadWorkgroupEXT = 5402,
+ CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
+ }
+
+ public enum Dim
+ {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ }
+
+ public enum SamplerAddressingMode
+ {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ }
+
+ public enum SamplerFilterMode
+ {
+ Nearest = 0,
+ Linear = 1,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ public enum FPFastMathModeShift
+ {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
+ }
+
+ public enum FPFastMathModeMask
+ {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
+ }
+
+ public enum FPRoundingMode
+ {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ }
+
+ public enum LinkageType
+ {
+ Export = 0,
+ Import = 1,
+ LinkOnceODR = 2,
+ }
+
+ public enum AccessQualifier
+ {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ }
+
+ public enum FunctionParameterAttribute
+ {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ RuntimeAlignedINTEL = 5940,
+ }
+
+ 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,
+ HitObjectShaderRecordBufferNV = 5386,
+ 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,
+ MathOpDSPModeINTEL = 5909,
+ AliasScopeINTEL = 5914,
+ NoAliasINTEL = 5915,
+ InitiationIntervalINTEL = 5917,
+ MaxConcurrencyINTEL = 5918,
+ PipelineEnableINTEL = 5919,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
+ MediaBlockIOINTEL = 6140,
+ }
+
+ 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,
+ CoreIDARM = 4160,
+ CoreCountARM = 4161,
+ CoreMaxIDARM = 4162,
+ WarpIDARM = 4163,
+ WarpMaxIDARM = 4164,
+ 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,
+ }
+
+ public enum SelectionControlShift
+ {
+ Flatten = 0,
+ DontFlatten = 1,
+ }
+
+ public enum SelectionControlMask
+ {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+ }
+
+ 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,
+ LoopCountINTEL = 24,
+ MaxReinvocationDelayINTEL = 25,
+ }
+
+ 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,
+ LoopCountINTEL = 0x01000000,
+ MaxReinvocationDelayINTEL = 0x02000000,
+ }
+
+ public enum FunctionControlShift
+ {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ OptNoneINTEL = 16,
+ }
+
+ public enum FunctionControlMask
+ {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+ OptNoneINTEL = 0x00010000,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ 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,
+ }
+
+ public enum Scope
+ {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ QueueFamily = 5,
+ QueueFamilyKHR = 5,
+ ShaderCallKHR = 6,
+ }
+
+ public enum GroupOperation
+ {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ ClusteredReduce = 3,
+ PartitionedReduceNV = 6,
+ PartitionedInclusiveScanNV = 7,
+ PartitionedExclusiveScanNV = 8,
+ }
+
+ public enum KernelEnqueueFlags
+ {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ }
+
+ public enum KernelProfilingInfoShift
+ {
+ CmdExecTime = 0,
+ }
+
+ public enum KernelProfilingInfoMask
+ {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+ }
+
+ 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,
+ CoreBuiltinsARM = 4165,
+ 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,
+ RayTracingOpacityMicromapEXT = 5381,
+ ShaderInvocationReorderNV = 5383,
+ 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,
+ FPGADSPControlINTEL = 5908,
+ MemoryAccessAliasingINTEL = 5910,
+ FPGAInvocationPipeliningAttributesINTEL = 5916,
+ FPGABufferLocationINTEL = 5920,
+ ArbitraryPrecisionFixedPointINTEL = 5922,
+ USMStorageClassesINTEL = 5935,
+ RuntimeAlignedAttributeINTEL = 5939,
+ 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,
+ }
+
+ public enum RayFlagsShift
+ {
+ OpaqueKHR = 0,
+ NoOpaqueKHR = 1,
+ TerminateOnFirstHitKHR = 2,
+ SkipClosestHitShaderKHR = 3,
+ CullBackFacingTrianglesKHR = 4,
+ CullFrontFacingTrianglesKHR = 5,
+ CullOpaqueKHR = 6,
+ CullNoOpaqueKHR = 7,
+ SkipTrianglesKHR = 8,
+ SkipAABBsKHR = 9,
+ ForceOpacityMicromap2StateEXT = 10,
+ }
+
+ 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,
+ ForceOpacityMicromap2StateEXT = 0x00000400,
+ }
+
+ public enum RayQueryIntersection
+ {
+ RayQueryCandidateIntersectionKHR = 0,
+ RayQueryCommittedIntersectionKHR = 1,
+ }
+
+ public enum RayQueryCommittedIntersectionType
+ {
+ RayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionGeneratedKHR = 2,
+ }
+
+ public enum RayQueryCandidateIntersectionType
+ {
+ RayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionAABBKHR = 1,
+ }
+
+ public enum FragmentShadingRateShift
+ {
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+ }
+
+ public enum FragmentShadingRateMask
+ {
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+ }
+
+ public enum FPDenormMode
+ {
+ Preserve = 0,
+ FlushToZero = 1,
+ }
+
+ public enum FPOperationMode
+ {
+ IEEE = 0,
+ ALT = 1,
+ }
+
+ 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,
+ }
+
+ public enum OverflowModes
+ {
+ WRAP = 0,
+ SAT = 1,
+ SAT_ZERO = 2,
+ SAT_SYM = 3,
+ }
+
+ public enum PackedVectorFormat
+ {
+ PackedVectorFormat4x8Bit = 0,
+ PackedVectorFormat4x8BitKHR = 0,
+ }
+
+ 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,
+ OpHitObjectRecordHitMotionNV = 5249,
+ OpHitObjectRecordHitWithIndexMotionNV = 5250,
+ OpHitObjectRecordMissMotionNV = 5251,
+ OpHitObjectGetWorldToObjectNV = 5252,
+ OpHitObjectGetObjectToWorldNV = 5253,
+ OpHitObjectGetObjectRayDirectionNV = 5254,
+ OpHitObjectGetObjectRayOriginNV = 5255,
+ OpHitObjectTraceRayMotionNV = 5256,
+ OpHitObjectGetShaderRecordBufferHandleNV = 5257,
+ OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+ OpHitObjectRecordEmptyNV = 5259,
+ OpHitObjectTraceRayNV = 5260,
+ OpHitObjectRecordHitNV = 5261,
+ OpHitObjectRecordHitWithIndexNV = 5262,
+ OpHitObjectRecordMissNV = 5263,
+ OpHitObjectExecuteShaderNV = 5264,
+ OpHitObjectGetCurrentTimeNV = 5265,
+ OpHitObjectGetAttributesNV = 5266,
+ OpHitObjectGetHitKindNV = 5267,
+ OpHitObjectGetPrimitiveIndexNV = 5268,
+ OpHitObjectGetGeometryIndexNV = 5269,
+ OpHitObjectGetInstanceIdNV = 5270,
+ OpHitObjectGetInstanceCustomIndexNV = 5271,
+ OpHitObjectGetWorldRayDirectionNV = 5272,
+ OpHitObjectGetWorldRayOriginNV = 5273,
+ OpHitObjectGetRayTMaxNV = 5274,
+ OpHitObjectGetRayTMinNV = 5275,
+ OpHitObjectIsEmptyNV = 5276,
+ OpHitObjectIsHitNV = 5277,
+ OpHitObjectIsMissNV = 5278,
+ OpReorderThreadWithHitObjectNV = 5279,
+ OpReorderThreadWithHintNV = 5280,
+ OpTypeHitObjectNV = 5281,
+ 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/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.h b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.h
new file mode 100644
index 0000000000..22ca325d85
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.h
@@ -0,0 +1,2658 @@
+/*
+** 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.
+*/
+
+#ifndef spirv_H
+#define spirv_H
+
+typedef unsigned int SpvId;
+
+#define SPV_VERSION 0x10600
+#define SPV_REVISION 1
+
+static const unsigned int SpvMagicNumber = 0x07230203;
+static const unsigned int SpvVersion = 0x00010600;
+static const unsigned int SpvRevision = 1;
+static const unsigned int SpvOpCodeMask = 0xffff;
+static const unsigned int SpvWordCountShift = 16;
+
+typedef enum SpvSourceLanguage_ {
+ SpvSourceLanguageUnknown = 0,
+ SpvSourceLanguageESSL = 1,
+ SpvSourceLanguageGLSL = 2,
+ SpvSourceLanguageOpenCL_C = 3,
+ SpvSourceLanguageOpenCL_CPP = 4,
+ SpvSourceLanguageHLSL = 5,
+ SpvSourceLanguageCPP_for_OpenCL = 6,
+ SpvSourceLanguageSYCL = 7,
+ SpvSourceLanguageMax = 0x7fffffff,
+} SpvSourceLanguage;
+
+typedef enum SpvExecutionModel_ {
+ SpvExecutionModelVertex = 0,
+ SpvExecutionModelTessellationControl = 1,
+ SpvExecutionModelTessellationEvaluation = 2,
+ SpvExecutionModelGeometry = 3,
+ SpvExecutionModelFragment = 4,
+ SpvExecutionModelGLCompute = 5,
+ SpvExecutionModelKernel = 6,
+ SpvExecutionModelTaskNV = 5267,
+ SpvExecutionModelMeshNV = 5268,
+ SpvExecutionModelRayGenerationKHR = 5313,
+ SpvExecutionModelRayGenerationNV = 5313,
+ SpvExecutionModelIntersectionKHR = 5314,
+ SpvExecutionModelIntersectionNV = 5314,
+ SpvExecutionModelAnyHitKHR = 5315,
+ SpvExecutionModelAnyHitNV = 5315,
+ SpvExecutionModelClosestHitKHR = 5316,
+ SpvExecutionModelClosestHitNV = 5316,
+ SpvExecutionModelMissKHR = 5317,
+ SpvExecutionModelMissNV = 5317,
+ SpvExecutionModelCallableKHR = 5318,
+ SpvExecutionModelCallableNV = 5318,
+ SpvExecutionModelTaskEXT = 5364,
+ SpvExecutionModelMeshEXT = 5365,
+ SpvExecutionModelMax = 0x7fffffff,
+} SpvExecutionModel;
+
+typedef enum SpvAddressingModel_ {
+ SpvAddressingModelLogical = 0,
+ SpvAddressingModelPhysical32 = 1,
+ SpvAddressingModelPhysical64 = 2,
+ SpvAddressingModelPhysicalStorageBuffer64 = 5348,
+ SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
+ SpvAddressingModelMax = 0x7fffffff,
+} SpvAddressingModel;
+
+typedef enum SpvMemoryModel_ {
+ SpvMemoryModelSimple = 0,
+ SpvMemoryModelGLSL450 = 1,
+ SpvMemoryModelOpenCL = 2,
+ SpvMemoryModelVulkan = 3,
+ SpvMemoryModelVulkanKHR = 3,
+ SpvMemoryModelMax = 0x7fffffff,
+} SpvMemoryModel;
+
+typedef enum SpvExecutionMode_ {
+ SpvExecutionModeInvocations = 0,
+ SpvExecutionModeSpacingEqual = 1,
+ SpvExecutionModeSpacingFractionalEven = 2,
+ SpvExecutionModeSpacingFractionalOdd = 3,
+ SpvExecutionModeVertexOrderCw = 4,
+ SpvExecutionModeVertexOrderCcw = 5,
+ SpvExecutionModePixelCenterInteger = 6,
+ SpvExecutionModeOriginUpperLeft = 7,
+ SpvExecutionModeOriginLowerLeft = 8,
+ SpvExecutionModeEarlyFragmentTests = 9,
+ SpvExecutionModePointMode = 10,
+ SpvExecutionModeXfb = 11,
+ SpvExecutionModeDepthReplacing = 12,
+ SpvExecutionModeDepthGreater = 14,
+ SpvExecutionModeDepthLess = 15,
+ SpvExecutionModeDepthUnchanged = 16,
+ SpvExecutionModeLocalSize = 17,
+ SpvExecutionModeLocalSizeHint = 18,
+ SpvExecutionModeInputPoints = 19,
+ SpvExecutionModeInputLines = 20,
+ SpvExecutionModeInputLinesAdjacency = 21,
+ SpvExecutionModeTriangles = 22,
+ SpvExecutionModeInputTrianglesAdjacency = 23,
+ SpvExecutionModeQuads = 24,
+ SpvExecutionModeIsolines = 25,
+ SpvExecutionModeOutputVertices = 26,
+ SpvExecutionModeOutputPoints = 27,
+ SpvExecutionModeOutputLineStrip = 28,
+ SpvExecutionModeOutputTriangleStrip = 29,
+ SpvExecutionModeVecTypeHint = 30,
+ SpvExecutionModeContractionOff = 31,
+ SpvExecutionModeInitializer = 33,
+ SpvExecutionModeFinalizer = 34,
+ SpvExecutionModeSubgroupSize = 35,
+ SpvExecutionModeSubgroupsPerWorkgroup = 36,
+ SpvExecutionModeSubgroupsPerWorkgroupId = 37,
+ SpvExecutionModeLocalSizeId = 38,
+ SpvExecutionModeLocalSizeHintId = 39,
+ SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
+ SpvExecutionModePostDepthCoverage = 4446,
+ SpvExecutionModeDenormPreserve = 4459,
+ SpvExecutionModeDenormFlushToZero = 4460,
+ 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,
+ SpvExecutionModeSampleInterlockOrderedEXT = 5368,
+ SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
+ SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
+ SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
+ SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
+ SpvExecutionModeRoundingModeRTPINTEL = 5620,
+ SpvExecutionModeRoundingModeRTNINTEL = 5621,
+ SpvExecutionModeFloatingPointModeALTINTEL = 5622,
+ SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
+ SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
+ SpvExecutionModeMaxWorkDimINTEL = 5894,
+ SpvExecutionModeNoGlobalOffsetINTEL = 5895,
+ SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
+ SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
+ SpvExecutionModeNamedBarrierCountINTEL = 6417,
+ SpvExecutionModeMax = 0x7fffffff,
+} SpvExecutionMode;
+
+typedef enum SpvStorageClass_ {
+ SpvStorageClassUniformConstant = 0,
+ SpvStorageClassInput = 1,
+ SpvStorageClassUniform = 2,
+ SpvStorageClassOutput = 3,
+ SpvStorageClassWorkgroup = 4,
+ SpvStorageClassCrossWorkgroup = 5,
+ SpvStorageClassPrivate = 6,
+ SpvStorageClassFunction = 7,
+ SpvStorageClassGeneric = 8,
+ SpvStorageClassPushConstant = 9,
+ SpvStorageClassAtomicCounter = 10,
+ SpvStorageClassImage = 11,
+ SpvStorageClassStorageBuffer = 12,
+ SpvStorageClassCallableDataKHR = 5328,
+ SpvStorageClassCallableDataNV = 5328,
+ SpvStorageClassIncomingCallableDataKHR = 5329,
+ SpvStorageClassIncomingCallableDataNV = 5329,
+ SpvStorageClassRayPayloadKHR = 5338,
+ SpvStorageClassRayPayloadNV = 5338,
+ SpvStorageClassHitAttributeKHR = 5339,
+ SpvStorageClassHitAttributeNV = 5339,
+ SpvStorageClassIncomingRayPayloadKHR = 5342,
+ SpvStorageClassIncomingRayPayloadNV = 5342,
+ SpvStorageClassShaderRecordBufferKHR = 5343,
+ SpvStorageClassShaderRecordBufferNV = 5343,
+ SpvStorageClassPhysicalStorageBuffer = 5349,
+ SpvStorageClassPhysicalStorageBufferEXT = 5349,
+ SpvStorageClassHitObjectAttributeNV = 5385,
+ SpvStorageClassTaskPayloadWorkgroupEXT = 5402,
+ SpvStorageClassCodeSectionINTEL = 5605,
+ SpvStorageClassDeviceOnlyINTEL = 5936,
+ SpvStorageClassHostOnlyINTEL = 5937,
+ SpvStorageClassMax = 0x7fffffff,
+} SpvStorageClass;
+
+typedef enum SpvDim_ {
+ SpvDim1D = 0,
+ SpvDim2D = 1,
+ SpvDim3D = 2,
+ SpvDimCube = 3,
+ SpvDimRect = 4,
+ SpvDimBuffer = 5,
+ SpvDimSubpassData = 6,
+ SpvDimMax = 0x7fffffff,
+} SpvDim;
+
+typedef enum SpvSamplerAddressingMode_ {
+ SpvSamplerAddressingModeNone = 0,
+ SpvSamplerAddressingModeClampToEdge = 1,
+ SpvSamplerAddressingModeClamp = 2,
+ SpvSamplerAddressingModeRepeat = 3,
+ SpvSamplerAddressingModeRepeatMirrored = 4,
+ SpvSamplerAddressingModeMax = 0x7fffffff,
+} SpvSamplerAddressingMode;
+
+typedef enum SpvSamplerFilterMode_ {
+ SpvSamplerFilterModeNearest = 0,
+ SpvSamplerFilterModeLinear = 1,
+ SpvSamplerFilterModeMax = 0x7fffffff,
+} SpvSamplerFilterMode;
+
+typedef enum SpvImageFormat_ {
+ SpvImageFormatUnknown = 0,
+ SpvImageFormatRgba32f = 1,
+ SpvImageFormatRgba16f = 2,
+ SpvImageFormatR32f = 3,
+ SpvImageFormatRgba8 = 4,
+ SpvImageFormatRgba8Snorm = 5,
+ SpvImageFormatRg32f = 6,
+ SpvImageFormatRg16f = 7,
+ SpvImageFormatR11fG11fB10f = 8,
+ SpvImageFormatR16f = 9,
+ SpvImageFormatRgba16 = 10,
+ SpvImageFormatRgb10A2 = 11,
+ SpvImageFormatRg16 = 12,
+ SpvImageFormatRg8 = 13,
+ SpvImageFormatR16 = 14,
+ SpvImageFormatR8 = 15,
+ SpvImageFormatRgba16Snorm = 16,
+ SpvImageFormatRg16Snorm = 17,
+ SpvImageFormatRg8Snorm = 18,
+ SpvImageFormatR16Snorm = 19,
+ SpvImageFormatR8Snorm = 20,
+ SpvImageFormatRgba32i = 21,
+ SpvImageFormatRgba16i = 22,
+ SpvImageFormatRgba8i = 23,
+ SpvImageFormatR32i = 24,
+ SpvImageFormatRg32i = 25,
+ SpvImageFormatRg16i = 26,
+ SpvImageFormatRg8i = 27,
+ SpvImageFormatR16i = 28,
+ SpvImageFormatR8i = 29,
+ SpvImageFormatRgba32ui = 30,
+ SpvImageFormatRgba16ui = 31,
+ SpvImageFormatRgba8ui = 32,
+ SpvImageFormatR32ui = 33,
+ SpvImageFormatRgb10a2ui = 34,
+ SpvImageFormatRg32ui = 35,
+ SpvImageFormatRg16ui = 36,
+ SpvImageFormatRg8ui = 37,
+ SpvImageFormatR16ui = 38,
+ SpvImageFormatR8ui = 39,
+ SpvImageFormatR64ui = 40,
+ SpvImageFormatR64i = 41,
+ SpvImageFormatMax = 0x7fffffff,
+} SpvImageFormat;
+
+typedef enum SpvImageChannelOrder_ {
+ SpvImageChannelOrderR = 0,
+ SpvImageChannelOrderA = 1,
+ SpvImageChannelOrderRG = 2,
+ SpvImageChannelOrderRA = 3,
+ SpvImageChannelOrderRGB = 4,
+ SpvImageChannelOrderRGBA = 5,
+ SpvImageChannelOrderBGRA = 6,
+ SpvImageChannelOrderARGB = 7,
+ SpvImageChannelOrderIntensity = 8,
+ SpvImageChannelOrderLuminance = 9,
+ SpvImageChannelOrderRx = 10,
+ SpvImageChannelOrderRGx = 11,
+ SpvImageChannelOrderRGBx = 12,
+ SpvImageChannelOrderDepth = 13,
+ SpvImageChannelOrderDepthStencil = 14,
+ SpvImageChannelOrdersRGB = 15,
+ SpvImageChannelOrdersRGBx = 16,
+ SpvImageChannelOrdersRGBA = 17,
+ SpvImageChannelOrdersBGRA = 18,
+ SpvImageChannelOrderABGR = 19,
+ SpvImageChannelOrderMax = 0x7fffffff,
+} SpvImageChannelOrder;
+
+typedef enum SpvImageChannelDataType_ {
+ SpvImageChannelDataTypeSnormInt8 = 0,
+ SpvImageChannelDataTypeSnormInt16 = 1,
+ SpvImageChannelDataTypeUnormInt8 = 2,
+ SpvImageChannelDataTypeUnormInt16 = 3,
+ SpvImageChannelDataTypeUnormShort565 = 4,
+ SpvImageChannelDataTypeUnormShort555 = 5,
+ SpvImageChannelDataTypeUnormInt101010 = 6,
+ SpvImageChannelDataTypeSignedInt8 = 7,
+ SpvImageChannelDataTypeSignedInt16 = 8,
+ SpvImageChannelDataTypeSignedInt32 = 9,
+ SpvImageChannelDataTypeUnsignedInt8 = 10,
+ SpvImageChannelDataTypeUnsignedInt16 = 11,
+ SpvImageChannelDataTypeUnsignedInt32 = 12,
+ SpvImageChannelDataTypeHalfFloat = 13,
+ SpvImageChannelDataTypeFloat = 14,
+ SpvImageChannelDataTypeUnormInt24 = 15,
+ SpvImageChannelDataTypeUnormInt101010_2 = 16,
+ SpvImageChannelDataTypeMax = 0x7fffffff,
+} SpvImageChannelDataType;
+
+typedef enum SpvImageOperandsShift_ {
+ SpvImageOperandsBiasShift = 0,
+ SpvImageOperandsLodShift = 1,
+ SpvImageOperandsGradShift = 2,
+ SpvImageOperandsConstOffsetShift = 3,
+ SpvImageOperandsOffsetShift = 4,
+ SpvImageOperandsConstOffsetsShift = 5,
+ SpvImageOperandsSampleShift = 6,
+ SpvImageOperandsMinLodShift = 7,
+ SpvImageOperandsMakeTexelAvailableShift = 8,
+ SpvImageOperandsMakeTexelAvailableKHRShift = 8,
+ SpvImageOperandsMakeTexelVisibleShift = 9,
+ SpvImageOperandsMakeTexelVisibleKHRShift = 9,
+ SpvImageOperandsNonPrivateTexelShift = 10,
+ SpvImageOperandsNonPrivateTexelKHRShift = 10,
+ SpvImageOperandsVolatileTexelShift = 11,
+ SpvImageOperandsVolatileTexelKHRShift = 11,
+ SpvImageOperandsSignExtendShift = 12,
+ SpvImageOperandsZeroExtendShift = 13,
+ SpvImageOperandsNontemporalShift = 14,
+ SpvImageOperandsOffsetsShift = 16,
+ SpvImageOperandsMax = 0x7fffffff,
+} SpvImageOperandsShift;
+
+typedef enum SpvImageOperandsMask_ {
+ SpvImageOperandsMaskNone = 0,
+ SpvImageOperandsBiasMask = 0x00000001,
+ SpvImageOperandsLodMask = 0x00000002,
+ SpvImageOperandsGradMask = 0x00000004,
+ SpvImageOperandsConstOffsetMask = 0x00000008,
+ SpvImageOperandsOffsetMask = 0x00000010,
+ SpvImageOperandsConstOffsetsMask = 0x00000020,
+ SpvImageOperandsSampleMask = 0x00000040,
+ SpvImageOperandsMinLodMask = 0x00000080,
+ SpvImageOperandsMakeTexelAvailableMask = 0x00000100,
+ SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
+ SpvImageOperandsMakeTexelVisibleMask = 0x00000200,
+ SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
+ SpvImageOperandsNonPrivateTexelMask = 0x00000400,
+ SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
+ SpvImageOperandsVolatileTexelMask = 0x00000800,
+ SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
+ SpvImageOperandsSignExtendMask = 0x00001000,
+ SpvImageOperandsZeroExtendMask = 0x00002000,
+ SpvImageOperandsNontemporalMask = 0x00004000,
+ SpvImageOperandsOffsetsMask = 0x00010000,
+} SpvImageOperandsMask;
+
+typedef enum SpvFPFastMathModeShift_ {
+ SpvFPFastMathModeNotNaNShift = 0,
+ SpvFPFastMathModeNotInfShift = 1,
+ SpvFPFastMathModeNSZShift = 2,
+ SpvFPFastMathModeAllowRecipShift = 3,
+ SpvFPFastMathModeFastShift = 4,
+ SpvFPFastMathModeAllowContractFastINTELShift = 16,
+ SpvFPFastMathModeAllowReassocINTELShift = 17,
+ SpvFPFastMathModeMax = 0x7fffffff,
+} SpvFPFastMathModeShift;
+
+typedef enum SpvFPFastMathModeMask_ {
+ SpvFPFastMathModeMaskNone = 0,
+ SpvFPFastMathModeNotNaNMask = 0x00000001,
+ SpvFPFastMathModeNotInfMask = 0x00000002,
+ SpvFPFastMathModeNSZMask = 0x00000004,
+ SpvFPFastMathModeAllowRecipMask = 0x00000008,
+ SpvFPFastMathModeFastMask = 0x00000010,
+ SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
+ SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
+} SpvFPFastMathModeMask;
+
+typedef enum SpvFPRoundingMode_ {
+ SpvFPRoundingModeRTE = 0,
+ SpvFPRoundingModeRTZ = 1,
+ SpvFPRoundingModeRTP = 2,
+ SpvFPRoundingModeRTN = 3,
+ SpvFPRoundingModeMax = 0x7fffffff,
+} SpvFPRoundingMode;
+
+typedef enum SpvLinkageType_ {
+ SpvLinkageTypeExport = 0,
+ SpvLinkageTypeImport = 1,
+ SpvLinkageTypeLinkOnceODR = 2,
+ SpvLinkageTypeMax = 0x7fffffff,
+} SpvLinkageType;
+
+typedef enum SpvAccessQualifier_ {
+ SpvAccessQualifierReadOnly = 0,
+ SpvAccessQualifierWriteOnly = 1,
+ SpvAccessQualifierReadWrite = 2,
+ SpvAccessQualifierMax = 0x7fffffff,
+} SpvAccessQualifier;
+
+typedef enum SpvFunctionParameterAttribute_ {
+ SpvFunctionParameterAttributeZext = 0,
+ SpvFunctionParameterAttributeSext = 1,
+ SpvFunctionParameterAttributeByVal = 2,
+ SpvFunctionParameterAttributeSret = 3,
+ SpvFunctionParameterAttributeNoAlias = 4,
+ SpvFunctionParameterAttributeNoCapture = 5,
+ SpvFunctionParameterAttributeNoWrite = 6,
+ SpvFunctionParameterAttributeNoReadWrite = 7,
+ SpvFunctionParameterAttributeRuntimeAlignedINTEL = 5940,
+ SpvFunctionParameterAttributeMax = 0x7fffffff,
+} SpvFunctionParameterAttribute;
+
+typedef enum SpvDecoration_ {
+ SpvDecorationRelaxedPrecision = 0,
+ SpvDecorationSpecId = 1,
+ SpvDecorationBlock = 2,
+ SpvDecorationBufferBlock = 3,
+ SpvDecorationRowMajor = 4,
+ SpvDecorationColMajor = 5,
+ SpvDecorationArrayStride = 6,
+ SpvDecorationMatrixStride = 7,
+ SpvDecorationGLSLShared = 8,
+ SpvDecorationGLSLPacked = 9,
+ SpvDecorationCPacked = 10,
+ SpvDecorationBuiltIn = 11,
+ SpvDecorationNoPerspective = 13,
+ SpvDecorationFlat = 14,
+ SpvDecorationPatch = 15,
+ SpvDecorationCentroid = 16,
+ SpvDecorationSample = 17,
+ SpvDecorationInvariant = 18,
+ SpvDecorationRestrict = 19,
+ SpvDecorationAliased = 20,
+ SpvDecorationVolatile = 21,
+ SpvDecorationConstant = 22,
+ SpvDecorationCoherent = 23,
+ SpvDecorationNonWritable = 24,
+ SpvDecorationNonReadable = 25,
+ SpvDecorationUniform = 26,
+ SpvDecorationUniformId = 27,
+ SpvDecorationSaturatedConversion = 28,
+ SpvDecorationStream = 29,
+ SpvDecorationLocation = 30,
+ SpvDecorationComponent = 31,
+ SpvDecorationIndex = 32,
+ SpvDecorationBinding = 33,
+ SpvDecorationDescriptorSet = 34,
+ SpvDecorationOffset = 35,
+ SpvDecorationXfbBuffer = 36,
+ SpvDecorationXfbStride = 37,
+ SpvDecorationFuncParamAttr = 38,
+ SpvDecorationFPRoundingMode = 39,
+ SpvDecorationFPFastMathMode = 40,
+ SpvDecorationLinkageAttributes = 41,
+ SpvDecorationNoContraction = 42,
+ SpvDecorationInputAttachmentIndex = 43,
+ SpvDecorationAlignment = 44,
+ SpvDecorationMaxByteOffset = 45,
+ SpvDecorationAlignmentId = 46,
+ SpvDecorationMaxByteOffsetId = 47,
+ SpvDecorationNoSignedWrap = 4469,
+ SpvDecorationNoUnsignedWrap = 4470,
+ SpvDecorationExplicitInterpAMD = 4999,
+ SpvDecorationOverrideCoverageNV = 5248,
+ SpvDecorationPassthroughNV = 5250,
+ SpvDecorationViewportRelativeNV = 5252,
+ SpvDecorationSecondaryViewportRelativeNV = 5256,
+ SpvDecorationPerPrimitiveEXT = 5271,
+ SpvDecorationPerPrimitiveNV = 5271,
+ SpvDecorationPerViewNV = 5272,
+ SpvDecorationPerTaskNV = 5273,
+ SpvDecorationPerVertexKHR = 5285,
+ SpvDecorationPerVertexNV = 5285,
+ SpvDecorationNonUniform = 5300,
+ SpvDecorationNonUniformEXT = 5300,
+ SpvDecorationRestrictPointer = 5355,
+ SpvDecorationRestrictPointerEXT = 5355,
+ SpvDecorationAliasedPointer = 5356,
+ SpvDecorationAliasedPointerEXT = 5356,
+ SpvDecorationHitObjectShaderRecordBufferNV = 5386,
+ SpvDecorationBindlessSamplerNV = 5398,
+ SpvDecorationBindlessImageNV = 5399,
+ SpvDecorationBoundSamplerNV = 5400,
+ SpvDecorationBoundImageNV = 5401,
+ SpvDecorationSIMTCallINTEL = 5599,
+ SpvDecorationReferencedIndirectlyINTEL = 5602,
+ SpvDecorationClobberINTEL = 5607,
+ SpvDecorationSideEffectsINTEL = 5608,
+ SpvDecorationVectorComputeVariableINTEL = 5624,
+ SpvDecorationFuncParamIOKindINTEL = 5625,
+ SpvDecorationVectorComputeFunctionINTEL = 5626,
+ SpvDecorationStackCallINTEL = 5627,
+ SpvDecorationGlobalVariableOffsetINTEL = 5628,
+ SpvDecorationCounterBuffer = 5634,
+ SpvDecorationHlslCounterBufferGOOGLE = 5634,
+ SpvDecorationHlslSemanticGOOGLE = 5635,
+ SpvDecorationUserSemantic = 5635,
+ SpvDecorationUserTypeGOOGLE = 5636,
+ SpvDecorationFunctionRoundingModeINTEL = 5822,
+ SpvDecorationFunctionDenormModeINTEL = 5823,
+ SpvDecorationRegisterINTEL = 5825,
+ SpvDecorationMemoryINTEL = 5826,
+ SpvDecorationNumbanksINTEL = 5827,
+ SpvDecorationBankwidthINTEL = 5828,
+ SpvDecorationMaxPrivateCopiesINTEL = 5829,
+ SpvDecorationSinglepumpINTEL = 5830,
+ SpvDecorationDoublepumpINTEL = 5831,
+ SpvDecorationMaxReplicatesINTEL = 5832,
+ SpvDecorationSimpleDualPortINTEL = 5833,
+ SpvDecorationMergeINTEL = 5834,
+ SpvDecorationBankBitsINTEL = 5835,
+ SpvDecorationForcePow2DepthINTEL = 5836,
+ SpvDecorationBurstCoalesceINTEL = 5899,
+ SpvDecorationCacheSizeINTEL = 5900,
+ SpvDecorationDontStaticallyCoalesceINTEL = 5901,
+ SpvDecorationPrefetchINTEL = 5902,
+ SpvDecorationStallEnableINTEL = 5905,
+ SpvDecorationFuseLoopsInFunctionINTEL = 5907,
+ SpvDecorationMathOpDSPModeINTEL = 5909,
+ SpvDecorationAliasScopeINTEL = 5914,
+ SpvDecorationNoAliasINTEL = 5915,
+ SpvDecorationInitiationIntervalINTEL = 5917,
+ SpvDecorationMaxConcurrencyINTEL = 5918,
+ SpvDecorationPipelineEnableINTEL = 5919,
+ SpvDecorationBufferLocationINTEL = 5921,
+ SpvDecorationIOPipeStorageINTEL = 5944,
+ SpvDecorationFunctionFloatingPointModeINTEL = 6080,
+ SpvDecorationSingleElementVectorINTEL = 6085,
+ SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
+ SpvDecorationMediaBlockIOINTEL = 6140,
+ SpvDecorationMax = 0x7fffffff,
+} SpvDecoration;
+
+typedef enum SpvBuiltIn_ {
+ SpvBuiltInPosition = 0,
+ SpvBuiltInPointSize = 1,
+ SpvBuiltInClipDistance = 3,
+ SpvBuiltInCullDistance = 4,
+ SpvBuiltInVertexId = 5,
+ SpvBuiltInInstanceId = 6,
+ SpvBuiltInPrimitiveId = 7,
+ SpvBuiltInInvocationId = 8,
+ SpvBuiltInLayer = 9,
+ SpvBuiltInViewportIndex = 10,
+ SpvBuiltInTessLevelOuter = 11,
+ SpvBuiltInTessLevelInner = 12,
+ SpvBuiltInTessCoord = 13,
+ SpvBuiltInPatchVertices = 14,
+ SpvBuiltInFragCoord = 15,
+ SpvBuiltInPointCoord = 16,
+ SpvBuiltInFrontFacing = 17,
+ SpvBuiltInSampleId = 18,
+ SpvBuiltInSamplePosition = 19,
+ SpvBuiltInSampleMask = 20,
+ SpvBuiltInFragDepth = 22,
+ SpvBuiltInHelperInvocation = 23,
+ SpvBuiltInNumWorkgroups = 24,
+ SpvBuiltInWorkgroupSize = 25,
+ SpvBuiltInWorkgroupId = 26,
+ SpvBuiltInLocalInvocationId = 27,
+ SpvBuiltInGlobalInvocationId = 28,
+ SpvBuiltInLocalInvocationIndex = 29,
+ SpvBuiltInWorkDim = 30,
+ SpvBuiltInGlobalSize = 31,
+ SpvBuiltInEnqueuedWorkgroupSize = 32,
+ SpvBuiltInGlobalOffset = 33,
+ SpvBuiltInGlobalLinearId = 34,
+ SpvBuiltInSubgroupSize = 36,
+ SpvBuiltInSubgroupMaxSize = 37,
+ SpvBuiltInNumSubgroups = 38,
+ SpvBuiltInNumEnqueuedSubgroups = 39,
+ SpvBuiltInSubgroupId = 40,
+ SpvBuiltInSubgroupLocalInvocationId = 41,
+ SpvBuiltInVertexIndex = 42,
+ SpvBuiltInInstanceIndex = 43,
+ SpvBuiltInCoreIDARM = 4160,
+ SpvBuiltInCoreCountARM = 4161,
+ SpvBuiltInCoreMaxIDARM = 4162,
+ SpvBuiltInWarpIDARM = 4163,
+ SpvBuiltInWarpMaxIDARM = 4164,
+ SpvBuiltInSubgroupEqMask = 4416,
+ SpvBuiltInSubgroupEqMaskKHR = 4416,
+ SpvBuiltInSubgroupGeMask = 4417,
+ SpvBuiltInSubgroupGeMaskKHR = 4417,
+ SpvBuiltInSubgroupGtMask = 4418,
+ SpvBuiltInSubgroupGtMaskKHR = 4418,
+ SpvBuiltInSubgroupLeMask = 4419,
+ SpvBuiltInSubgroupLeMaskKHR = 4419,
+ SpvBuiltInSubgroupLtMask = 4420,
+ SpvBuiltInSubgroupLtMaskKHR = 4420,
+ SpvBuiltInBaseVertex = 4424,
+ SpvBuiltInBaseInstance = 4425,
+ SpvBuiltInDrawIndex = 4426,
+ SpvBuiltInPrimitiveShadingRateKHR = 4432,
+ SpvBuiltInDeviceIndex = 4438,
+ SpvBuiltInViewIndex = 4440,
+ SpvBuiltInShadingRateKHR = 4444,
+ SpvBuiltInBaryCoordNoPerspAMD = 4992,
+ SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
+ SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
+ SpvBuiltInBaryCoordSmoothAMD = 4995,
+ SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
+ SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
+ SpvBuiltInBaryCoordPullModelAMD = 4998,
+ SpvBuiltInFragStencilRefEXT = 5014,
+ SpvBuiltInViewportMaskNV = 5253,
+ SpvBuiltInSecondaryPositionNV = 5257,
+ SpvBuiltInSecondaryViewportMaskNV = 5258,
+ SpvBuiltInPositionPerViewNV = 5261,
+ SpvBuiltInViewportMaskPerViewNV = 5262,
+ SpvBuiltInFullyCoveredEXT = 5264,
+ SpvBuiltInTaskCountNV = 5274,
+ SpvBuiltInPrimitiveCountNV = 5275,
+ SpvBuiltInPrimitiveIndicesNV = 5276,
+ SpvBuiltInClipDistancePerViewNV = 5277,
+ SpvBuiltInCullDistancePerViewNV = 5278,
+ SpvBuiltInLayerPerViewNV = 5279,
+ SpvBuiltInMeshViewCountNV = 5280,
+ SpvBuiltInMeshViewIndicesNV = 5281,
+ SpvBuiltInBaryCoordKHR = 5286,
+ SpvBuiltInBaryCoordNV = 5286,
+ SpvBuiltInBaryCoordNoPerspKHR = 5287,
+ SpvBuiltInBaryCoordNoPerspNV = 5287,
+ SpvBuiltInFragSizeEXT = 5292,
+ SpvBuiltInFragmentSizeNV = 5292,
+ SpvBuiltInFragInvocationCountEXT = 5293,
+ SpvBuiltInInvocationsPerPixelNV = 5293,
+ SpvBuiltInPrimitivePointIndicesEXT = 5294,
+ SpvBuiltInPrimitiveLineIndicesEXT = 5295,
+ SpvBuiltInPrimitiveTriangleIndicesEXT = 5296,
+ SpvBuiltInCullPrimitiveEXT = 5299,
+ SpvBuiltInLaunchIdKHR = 5319,
+ SpvBuiltInLaunchIdNV = 5319,
+ SpvBuiltInLaunchSizeKHR = 5320,
+ SpvBuiltInLaunchSizeNV = 5320,
+ SpvBuiltInWorldRayOriginKHR = 5321,
+ SpvBuiltInWorldRayOriginNV = 5321,
+ SpvBuiltInWorldRayDirectionKHR = 5322,
+ SpvBuiltInWorldRayDirectionNV = 5322,
+ SpvBuiltInObjectRayOriginKHR = 5323,
+ SpvBuiltInObjectRayOriginNV = 5323,
+ SpvBuiltInObjectRayDirectionKHR = 5324,
+ SpvBuiltInObjectRayDirectionNV = 5324,
+ SpvBuiltInRayTminKHR = 5325,
+ SpvBuiltInRayTminNV = 5325,
+ SpvBuiltInRayTmaxKHR = 5326,
+ SpvBuiltInRayTmaxNV = 5326,
+ SpvBuiltInInstanceCustomIndexKHR = 5327,
+ SpvBuiltInInstanceCustomIndexNV = 5327,
+ SpvBuiltInObjectToWorldKHR = 5330,
+ SpvBuiltInObjectToWorldNV = 5330,
+ SpvBuiltInWorldToObjectKHR = 5331,
+ SpvBuiltInWorldToObjectNV = 5331,
+ SpvBuiltInHitTNV = 5332,
+ SpvBuiltInHitKindKHR = 5333,
+ SpvBuiltInHitKindNV = 5333,
+ SpvBuiltInCurrentRayTimeNV = 5334,
+ SpvBuiltInIncomingRayFlagsKHR = 5351,
+ SpvBuiltInIncomingRayFlagsNV = 5351,
+ SpvBuiltInRayGeometryIndexKHR = 5352,
+ SpvBuiltInWarpsPerSMNV = 5374,
+ SpvBuiltInSMCountNV = 5375,
+ SpvBuiltInWarpIDNV = 5376,
+ SpvBuiltInSMIDNV = 5377,
+ SpvBuiltInCullMaskKHR = 6021,
+ SpvBuiltInMax = 0x7fffffff,
+} SpvBuiltIn;
+
+typedef enum SpvSelectionControlShift_ {
+ SpvSelectionControlFlattenShift = 0,
+ SpvSelectionControlDontFlattenShift = 1,
+ SpvSelectionControlMax = 0x7fffffff,
+} SpvSelectionControlShift;
+
+typedef enum SpvSelectionControlMask_ {
+ SpvSelectionControlMaskNone = 0,
+ SpvSelectionControlFlattenMask = 0x00000001,
+ SpvSelectionControlDontFlattenMask = 0x00000002,
+} SpvSelectionControlMask;
+
+typedef enum SpvLoopControlShift_ {
+ SpvLoopControlUnrollShift = 0,
+ SpvLoopControlDontUnrollShift = 1,
+ SpvLoopControlDependencyInfiniteShift = 2,
+ SpvLoopControlDependencyLengthShift = 3,
+ SpvLoopControlMinIterationsShift = 4,
+ SpvLoopControlMaxIterationsShift = 5,
+ SpvLoopControlIterationMultipleShift = 6,
+ SpvLoopControlPeelCountShift = 7,
+ SpvLoopControlPartialCountShift = 8,
+ SpvLoopControlInitiationIntervalINTELShift = 16,
+ SpvLoopControlMaxConcurrencyINTELShift = 17,
+ SpvLoopControlDependencyArrayINTELShift = 18,
+ SpvLoopControlPipelineEnableINTELShift = 19,
+ SpvLoopControlLoopCoalesceINTELShift = 20,
+ SpvLoopControlMaxInterleavingINTELShift = 21,
+ SpvLoopControlSpeculatedIterationsINTELShift = 22,
+ SpvLoopControlNoFusionINTELShift = 23,
+ SpvLoopControlLoopCountINTELShift = 24,
+ SpvLoopControlMaxReinvocationDelayINTELShift = 25,
+ SpvLoopControlMax = 0x7fffffff,
+} SpvLoopControlShift;
+
+typedef enum SpvLoopControlMask_ {
+ SpvLoopControlMaskNone = 0,
+ SpvLoopControlUnrollMask = 0x00000001,
+ SpvLoopControlDontUnrollMask = 0x00000002,
+ SpvLoopControlDependencyInfiniteMask = 0x00000004,
+ SpvLoopControlDependencyLengthMask = 0x00000008,
+ SpvLoopControlMinIterationsMask = 0x00000010,
+ SpvLoopControlMaxIterationsMask = 0x00000020,
+ SpvLoopControlIterationMultipleMask = 0x00000040,
+ SpvLoopControlPeelCountMask = 0x00000080,
+ SpvLoopControlPartialCountMask = 0x00000100,
+ SpvLoopControlInitiationIntervalINTELMask = 0x00010000,
+ SpvLoopControlMaxConcurrencyINTELMask = 0x00020000,
+ SpvLoopControlDependencyArrayINTELMask = 0x00040000,
+ SpvLoopControlPipelineEnableINTELMask = 0x00080000,
+ SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
+ SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
+ SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
+ SpvLoopControlNoFusionINTELMask = 0x00800000,
+ SpvLoopControlLoopCountINTELMask = 0x01000000,
+ SpvLoopControlMaxReinvocationDelayINTELMask = 0x02000000,
+} SpvLoopControlMask;
+
+typedef enum SpvFunctionControlShift_ {
+ SpvFunctionControlInlineShift = 0,
+ SpvFunctionControlDontInlineShift = 1,
+ SpvFunctionControlPureShift = 2,
+ SpvFunctionControlConstShift = 3,
+ SpvFunctionControlOptNoneINTELShift = 16,
+ SpvFunctionControlMax = 0x7fffffff,
+} SpvFunctionControlShift;
+
+typedef enum SpvFunctionControlMask_ {
+ SpvFunctionControlMaskNone = 0,
+ SpvFunctionControlInlineMask = 0x00000001,
+ SpvFunctionControlDontInlineMask = 0x00000002,
+ SpvFunctionControlPureMask = 0x00000004,
+ SpvFunctionControlConstMask = 0x00000008,
+ SpvFunctionControlOptNoneINTELMask = 0x00010000,
+} SpvFunctionControlMask;
+
+typedef enum SpvMemorySemanticsShift_ {
+ SpvMemorySemanticsAcquireShift = 1,
+ SpvMemorySemanticsReleaseShift = 2,
+ SpvMemorySemanticsAcquireReleaseShift = 3,
+ SpvMemorySemanticsSequentiallyConsistentShift = 4,
+ SpvMemorySemanticsUniformMemoryShift = 6,
+ SpvMemorySemanticsSubgroupMemoryShift = 7,
+ SpvMemorySemanticsWorkgroupMemoryShift = 8,
+ SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
+ SpvMemorySemanticsAtomicCounterMemoryShift = 10,
+ SpvMemorySemanticsImageMemoryShift = 11,
+ SpvMemorySemanticsOutputMemoryShift = 12,
+ SpvMemorySemanticsOutputMemoryKHRShift = 12,
+ SpvMemorySemanticsMakeAvailableShift = 13,
+ SpvMemorySemanticsMakeAvailableKHRShift = 13,
+ SpvMemorySemanticsMakeVisibleShift = 14,
+ SpvMemorySemanticsMakeVisibleKHRShift = 14,
+ SpvMemorySemanticsVolatileShift = 15,
+ SpvMemorySemanticsMax = 0x7fffffff,
+} SpvMemorySemanticsShift;
+
+typedef enum SpvMemorySemanticsMask_ {
+ SpvMemorySemanticsMaskNone = 0,
+ SpvMemorySemanticsAcquireMask = 0x00000002,
+ SpvMemorySemanticsReleaseMask = 0x00000004,
+ SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
+ SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
+ SpvMemorySemanticsUniformMemoryMask = 0x00000040,
+ SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
+ SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
+ SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
+ SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
+ SpvMemorySemanticsImageMemoryMask = 0x00000800,
+ SpvMemorySemanticsOutputMemoryMask = 0x00001000,
+ SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
+ SpvMemorySemanticsMakeAvailableMask = 0x00002000,
+ SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
+ SpvMemorySemanticsMakeVisibleMask = 0x00004000,
+ SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
+ SpvMemorySemanticsVolatileMask = 0x00008000,
+} SpvMemorySemanticsMask;
+
+typedef enum SpvMemoryAccessShift_ {
+ SpvMemoryAccessVolatileShift = 0,
+ SpvMemoryAccessAlignedShift = 1,
+ SpvMemoryAccessNontemporalShift = 2,
+ SpvMemoryAccessMakePointerAvailableShift = 3,
+ SpvMemoryAccessMakePointerAvailableKHRShift = 3,
+ SpvMemoryAccessMakePointerVisibleShift = 4,
+ SpvMemoryAccessMakePointerVisibleKHRShift = 4,
+ SpvMemoryAccessNonPrivatePointerShift = 5,
+ SpvMemoryAccessNonPrivatePointerKHRShift = 5,
+ SpvMemoryAccessAliasScopeINTELMaskShift = 16,
+ SpvMemoryAccessNoAliasINTELMaskShift = 17,
+ SpvMemoryAccessMax = 0x7fffffff,
+} SpvMemoryAccessShift;
+
+typedef enum SpvMemoryAccessMask_ {
+ SpvMemoryAccessMaskNone = 0,
+ SpvMemoryAccessVolatileMask = 0x00000001,
+ SpvMemoryAccessAlignedMask = 0x00000002,
+ SpvMemoryAccessNontemporalMask = 0x00000004,
+ SpvMemoryAccessMakePointerAvailableMask = 0x00000008,
+ SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
+ SpvMemoryAccessMakePointerVisibleMask = 0x00000010,
+ SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
+ SpvMemoryAccessNonPrivatePointerMask = 0x00000020,
+ SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
+ SpvMemoryAccessAliasScopeINTELMaskMask = 0x00010000,
+ SpvMemoryAccessNoAliasINTELMaskMask = 0x00020000,
+} SpvMemoryAccessMask;
+
+typedef enum SpvScope_ {
+ SpvScopeCrossDevice = 0,
+ SpvScopeDevice = 1,
+ SpvScopeWorkgroup = 2,
+ SpvScopeSubgroup = 3,
+ SpvScopeInvocation = 4,
+ SpvScopeQueueFamily = 5,
+ SpvScopeQueueFamilyKHR = 5,
+ SpvScopeShaderCallKHR = 6,
+ SpvScopeMax = 0x7fffffff,
+} SpvScope;
+
+typedef enum SpvGroupOperation_ {
+ SpvGroupOperationReduce = 0,
+ SpvGroupOperationInclusiveScan = 1,
+ SpvGroupOperationExclusiveScan = 2,
+ SpvGroupOperationClusteredReduce = 3,
+ SpvGroupOperationPartitionedReduceNV = 6,
+ SpvGroupOperationPartitionedInclusiveScanNV = 7,
+ SpvGroupOperationPartitionedExclusiveScanNV = 8,
+ SpvGroupOperationMax = 0x7fffffff,
+} SpvGroupOperation;
+
+typedef enum SpvKernelEnqueueFlags_ {
+ SpvKernelEnqueueFlagsNoWait = 0,
+ SpvKernelEnqueueFlagsWaitKernel = 1,
+ SpvKernelEnqueueFlagsWaitWorkGroup = 2,
+ SpvKernelEnqueueFlagsMax = 0x7fffffff,
+} SpvKernelEnqueueFlags;
+
+typedef enum SpvKernelProfilingInfoShift_ {
+ SpvKernelProfilingInfoCmdExecTimeShift = 0,
+ SpvKernelProfilingInfoMax = 0x7fffffff,
+} SpvKernelProfilingInfoShift;
+
+typedef enum SpvKernelProfilingInfoMask_ {
+ SpvKernelProfilingInfoMaskNone = 0,
+ SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
+} SpvKernelProfilingInfoMask;
+
+typedef enum SpvCapability_ {
+ SpvCapabilityMatrix = 0,
+ SpvCapabilityShader = 1,
+ SpvCapabilityGeometry = 2,
+ SpvCapabilityTessellation = 3,
+ SpvCapabilityAddresses = 4,
+ SpvCapabilityLinkage = 5,
+ SpvCapabilityKernel = 6,
+ SpvCapabilityVector16 = 7,
+ SpvCapabilityFloat16Buffer = 8,
+ SpvCapabilityFloat16 = 9,
+ SpvCapabilityFloat64 = 10,
+ SpvCapabilityInt64 = 11,
+ SpvCapabilityInt64Atomics = 12,
+ SpvCapabilityImageBasic = 13,
+ SpvCapabilityImageReadWrite = 14,
+ SpvCapabilityImageMipmap = 15,
+ SpvCapabilityPipes = 17,
+ SpvCapabilityGroups = 18,
+ SpvCapabilityDeviceEnqueue = 19,
+ SpvCapabilityLiteralSampler = 20,
+ SpvCapabilityAtomicStorage = 21,
+ SpvCapabilityInt16 = 22,
+ SpvCapabilityTessellationPointSize = 23,
+ SpvCapabilityGeometryPointSize = 24,
+ SpvCapabilityImageGatherExtended = 25,
+ SpvCapabilityStorageImageMultisample = 27,
+ SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
+ SpvCapabilitySampledImageArrayDynamicIndexing = 29,
+ SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
+ SpvCapabilityStorageImageArrayDynamicIndexing = 31,
+ SpvCapabilityClipDistance = 32,
+ SpvCapabilityCullDistance = 33,
+ SpvCapabilityImageCubeArray = 34,
+ SpvCapabilitySampleRateShading = 35,
+ SpvCapabilityImageRect = 36,
+ SpvCapabilitySampledRect = 37,
+ SpvCapabilityGenericPointer = 38,
+ SpvCapabilityInt8 = 39,
+ SpvCapabilityInputAttachment = 40,
+ SpvCapabilitySparseResidency = 41,
+ SpvCapabilityMinLod = 42,
+ SpvCapabilitySampled1D = 43,
+ SpvCapabilityImage1D = 44,
+ SpvCapabilitySampledCubeArray = 45,
+ SpvCapabilitySampledBuffer = 46,
+ SpvCapabilityImageBuffer = 47,
+ SpvCapabilityImageMSArray = 48,
+ SpvCapabilityStorageImageExtendedFormats = 49,
+ SpvCapabilityImageQuery = 50,
+ SpvCapabilityDerivativeControl = 51,
+ SpvCapabilityInterpolationFunction = 52,
+ SpvCapabilityTransformFeedback = 53,
+ SpvCapabilityGeometryStreams = 54,
+ SpvCapabilityStorageImageReadWithoutFormat = 55,
+ SpvCapabilityStorageImageWriteWithoutFormat = 56,
+ SpvCapabilityMultiViewport = 57,
+ SpvCapabilitySubgroupDispatch = 58,
+ SpvCapabilityNamedBarrier = 59,
+ SpvCapabilityPipeStorage = 60,
+ SpvCapabilityGroupNonUniform = 61,
+ SpvCapabilityGroupNonUniformVote = 62,
+ SpvCapabilityGroupNonUniformArithmetic = 63,
+ SpvCapabilityGroupNonUniformBallot = 64,
+ SpvCapabilityGroupNonUniformShuffle = 65,
+ SpvCapabilityGroupNonUniformShuffleRelative = 66,
+ SpvCapabilityGroupNonUniformClustered = 67,
+ SpvCapabilityGroupNonUniformQuad = 68,
+ SpvCapabilityShaderLayer = 69,
+ SpvCapabilityShaderViewportIndex = 70,
+ SpvCapabilityUniformDecoration = 71,
+ SpvCapabilityCoreBuiltinsARM = 4165,
+ SpvCapabilityFragmentShadingRateKHR = 4422,
+ SpvCapabilitySubgroupBallotKHR = 4423,
+ SpvCapabilityDrawParameters = 4427,
+ SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
+ SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
+ SpvCapabilitySubgroupVoteKHR = 4431,
+ SpvCapabilityStorageBuffer16BitAccess = 4433,
+ SpvCapabilityStorageUniformBufferBlock16 = 4433,
+ SpvCapabilityStorageUniform16 = 4434,
+ SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
+ SpvCapabilityStoragePushConstant16 = 4435,
+ SpvCapabilityStorageInputOutput16 = 4436,
+ SpvCapabilityDeviceGroup = 4437,
+ SpvCapabilityMultiView = 4439,
+ SpvCapabilityVariablePointersStorageBuffer = 4441,
+ SpvCapabilityVariablePointers = 4442,
+ SpvCapabilityAtomicStorageOps = 4445,
+ SpvCapabilitySampleMaskPostDepthCoverage = 4447,
+ SpvCapabilityStorageBuffer8BitAccess = 4448,
+ SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
+ SpvCapabilityStoragePushConstant8 = 4450,
+ SpvCapabilityDenormPreserve = 4464,
+ SpvCapabilityDenormFlushToZero = 4465,
+ SpvCapabilitySignedZeroInfNanPreserve = 4466,
+ SpvCapabilityRoundingModeRTE = 4467,
+ SpvCapabilityRoundingModeRTZ = 4468,
+ SpvCapabilityRayQueryProvisionalKHR = 4471,
+ SpvCapabilityRayQueryKHR = 4472,
+ SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
+ SpvCapabilityRayTracingKHR = 4479,
+ SpvCapabilityFloat16ImageAMD = 5008,
+ SpvCapabilityImageGatherBiasLodAMD = 5009,
+ SpvCapabilityFragmentMaskAMD = 5010,
+ SpvCapabilityStencilExportEXT = 5013,
+ SpvCapabilityImageReadWriteLodAMD = 5015,
+ SpvCapabilityInt64ImageEXT = 5016,
+ SpvCapabilityShaderClockKHR = 5055,
+ SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
+ SpvCapabilityGeometryShaderPassthroughNV = 5251,
+ SpvCapabilityShaderViewportIndexLayerEXT = 5254,
+ SpvCapabilityShaderViewportIndexLayerNV = 5254,
+ SpvCapabilityShaderViewportMaskNV = 5255,
+ SpvCapabilityShaderStereoViewNV = 5259,
+ SpvCapabilityPerViewAttributesNV = 5260,
+ SpvCapabilityFragmentFullyCoveredEXT = 5265,
+ SpvCapabilityMeshShadingNV = 5266,
+ SpvCapabilityImageFootprintNV = 5282,
+ SpvCapabilityMeshShadingEXT = 5283,
+ SpvCapabilityFragmentBarycentricKHR = 5284,
+ SpvCapabilityFragmentBarycentricNV = 5284,
+ SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
+ SpvCapabilityFragmentDensityEXT = 5291,
+ SpvCapabilityShadingRateNV = 5291,
+ SpvCapabilityGroupNonUniformPartitionedNV = 5297,
+ SpvCapabilityShaderNonUniform = 5301,
+ SpvCapabilityShaderNonUniformEXT = 5301,
+ SpvCapabilityRuntimeDescriptorArray = 5302,
+ SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
+ SpvCapabilityInputAttachmentArrayDynamicIndexing = 5303,
+ SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
+ SpvCapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
+ SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
+ SpvCapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
+ SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
+ SpvCapabilityUniformBufferArrayNonUniformIndexing = 5306,
+ SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
+ SpvCapabilitySampledImageArrayNonUniformIndexing = 5307,
+ SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
+ SpvCapabilityStorageBufferArrayNonUniformIndexing = 5308,
+ SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
+ SpvCapabilityStorageImageArrayNonUniformIndexing = 5309,
+ SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
+ SpvCapabilityInputAttachmentArrayNonUniformIndexing = 5310,
+ SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
+ SpvCapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
+ SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
+ SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
+ SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+ SpvCapabilityRayTracingNV = 5340,
+ SpvCapabilityRayTracingMotionBlurNV = 5341,
+ SpvCapabilityVulkanMemoryModel = 5345,
+ SpvCapabilityVulkanMemoryModelKHR = 5345,
+ SpvCapabilityVulkanMemoryModelDeviceScope = 5346,
+ SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
+ SpvCapabilityPhysicalStorageBufferAddresses = 5347,
+ SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
+ SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
+ SpvCapabilityRayTracingProvisionalKHR = 5353,
+ SpvCapabilityCooperativeMatrixNV = 5357,
+ SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
+ SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
+ SpvCapabilityShaderSMBuiltinsNV = 5373,
+ SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
+ SpvCapabilityDemoteToHelperInvocation = 5379,
+ SpvCapabilityDemoteToHelperInvocationEXT = 5379,
+ SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
+ SpvCapabilityShaderInvocationReorderNV = 5383,
+ SpvCapabilityBindlessTextureNV = 5390,
+ SpvCapabilitySubgroupShuffleINTEL = 5568,
+ SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
+ SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
+ SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ SpvCapabilityRoundToInfinityINTEL = 5582,
+ SpvCapabilityFloatingPointModeINTEL = 5583,
+ SpvCapabilityIntegerFunctions2INTEL = 5584,
+ SpvCapabilityFunctionPointersINTEL = 5603,
+ SpvCapabilityIndirectReferencesINTEL = 5604,
+ SpvCapabilityAsmINTEL = 5606,
+ SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
+ SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
+ SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
+ SpvCapabilityVectorComputeINTEL = 5617,
+ SpvCapabilityVectorAnyINTEL = 5619,
+ SpvCapabilityExpectAssumeKHR = 5629,
+ SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
+ SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
+ SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
+ SpvCapabilityVariableLengthArrayINTEL = 5817,
+ SpvCapabilityFunctionFloatControlINTEL = 5821,
+ SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
+ SpvCapabilityFPFastMathModeINTEL = 5837,
+ SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
+ SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
+ SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
+ SpvCapabilityFPGALoopControlsINTEL = 5888,
+ SpvCapabilityKernelAttributesINTEL = 5892,
+ SpvCapabilityFPGAKernelAttributesINTEL = 5897,
+ SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
+ SpvCapabilityFPGAClusterAttributesINTEL = 5904,
+ SpvCapabilityLoopFuseINTEL = 5906,
+ SpvCapabilityFPGADSPControlINTEL = 5908,
+ SpvCapabilityMemoryAccessAliasingINTEL = 5910,
+ SpvCapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
+ SpvCapabilityFPGABufferLocationINTEL = 5920,
+ SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
+ SpvCapabilityUSMStorageClassesINTEL = 5935,
+ SpvCapabilityRuntimeAlignedAttributeINTEL = 5939,
+ SpvCapabilityIOPipesINTEL = 5943,
+ SpvCapabilityBlockingPipesINTEL = 5945,
+ SpvCapabilityFPGARegINTEL = 5948,
+ SpvCapabilityDotProductInputAll = 6016,
+ SpvCapabilityDotProductInputAllKHR = 6016,
+ SpvCapabilityDotProductInput4x8Bit = 6017,
+ SpvCapabilityDotProductInput4x8BitKHR = 6017,
+ SpvCapabilityDotProductInput4x8BitPacked = 6018,
+ 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;
+
+typedef enum SpvRayFlagsShift_ {
+ SpvRayFlagsOpaqueKHRShift = 0,
+ SpvRayFlagsNoOpaqueKHRShift = 1,
+ SpvRayFlagsTerminateOnFirstHitKHRShift = 2,
+ SpvRayFlagsSkipClosestHitShaderKHRShift = 3,
+ SpvRayFlagsCullBackFacingTrianglesKHRShift = 4,
+ SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5,
+ SpvRayFlagsCullOpaqueKHRShift = 6,
+ SpvRayFlagsCullNoOpaqueKHRShift = 7,
+ SpvRayFlagsSkipTrianglesKHRShift = 8,
+ SpvRayFlagsSkipAABBsKHRShift = 9,
+ SpvRayFlagsForceOpacityMicromap2StateEXTShift = 10,
+ SpvRayFlagsMax = 0x7fffffff,
+} SpvRayFlagsShift;
+
+typedef enum SpvRayFlagsMask_ {
+ SpvRayFlagsMaskNone = 0,
+ SpvRayFlagsOpaqueKHRMask = 0x00000001,
+ SpvRayFlagsNoOpaqueKHRMask = 0x00000002,
+ SpvRayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
+ SpvRayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
+ SpvRayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
+ SpvRayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
+ SpvRayFlagsCullOpaqueKHRMask = 0x00000040,
+ SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080,
+ SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
+ SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
+ SpvRayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
+} SpvRayFlagsMask;
+
+typedef enum SpvRayQueryIntersection_ {
+ SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
+ SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
+ SpvRayQueryIntersectionMax = 0x7fffffff,
+} SpvRayQueryIntersection;
+
+typedef enum SpvRayQueryCommittedIntersectionType_ {
+ SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
+ SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
+ SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
+ SpvRayQueryCommittedIntersectionTypeMax = 0x7fffffff,
+} SpvRayQueryCommittedIntersectionType;
+
+typedef enum SpvRayQueryCandidateIntersectionType_ {
+ SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
+ SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
+ SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
+} SpvRayQueryCandidateIntersectionType;
+
+typedef enum SpvFragmentShadingRateShift_ {
+ SpvFragmentShadingRateVertical2PixelsShift = 0,
+ SpvFragmentShadingRateVertical4PixelsShift = 1,
+ SpvFragmentShadingRateHorizontal2PixelsShift = 2,
+ SpvFragmentShadingRateHorizontal4PixelsShift = 3,
+ SpvFragmentShadingRateMax = 0x7fffffff,
+} SpvFragmentShadingRateShift;
+
+typedef enum SpvFragmentShadingRateMask_ {
+ SpvFragmentShadingRateMaskNone = 0,
+ SpvFragmentShadingRateVertical2PixelsMask = 0x00000001,
+ SpvFragmentShadingRateVertical4PixelsMask = 0x00000002,
+ SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004,
+ SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
+} SpvFragmentShadingRateMask;
+
+typedef enum SpvFPDenormMode_ {
+ SpvFPDenormModePreserve = 0,
+ SpvFPDenormModeFlushToZero = 1,
+ SpvFPDenormModeMax = 0x7fffffff,
+} SpvFPDenormMode;
+
+typedef enum SpvFPOperationMode_ {
+ SpvFPOperationModeIEEE = 0,
+ SpvFPOperationModeALT = 1,
+ SpvFPOperationModeMax = 0x7fffffff,
+} SpvFPOperationMode;
+
+typedef enum SpvQuantizationModes_ {
+ SpvQuantizationModesTRN = 0,
+ SpvQuantizationModesTRN_ZERO = 1,
+ SpvQuantizationModesRND = 2,
+ SpvQuantizationModesRND_ZERO = 3,
+ SpvQuantizationModesRND_INF = 4,
+ SpvQuantizationModesRND_MIN_INF = 5,
+ SpvQuantizationModesRND_CONV = 6,
+ SpvQuantizationModesRND_CONV_ODD = 7,
+ SpvQuantizationModesMax = 0x7fffffff,
+} SpvQuantizationModes;
+
+typedef enum SpvOverflowModes_ {
+ SpvOverflowModesWRAP = 0,
+ SpvOverflowModesSAT = 1,
+ SpvOverflowModesSAT_ZERO = 2,
+ SpvOverflowModesSAT_SYM = 3,
+ SpvOverflowModesMax = 0x7fffffff,
+} SpvOverflowModes;
+
+typedef enum SpvPackedVectorFormat_ {
+ SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0,
+ SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
+ SpvPackedVectorFormatMax = 0x7fffffff,
+} SpvPackedVectorFormat;
+
+typedef enum SpvOp_ {
+ SpvOpNop = 0,
+ SpvOpUndef = 1,
+ SpvOpSourceContinued = 2,
+ SpvOpSource = 3,
+ SpvOpSourceExtension = 4,
+ SpvOpName = 5,
+ SpvOpMemberName = 6,
+ SpvOpString = 7,
+ SpvOpLine = 8,
+ SpvOpExtension = 10,
+ SpvOpExtInstImport = 11,
+ SpvOpExtInst = 12,
+ SpvOpMemoryModel = 14,
+ SpvOpEntryPoint = 15,
+ SpvOpExecutionMode = 16,
+ SpvOpCapability = 17,
+ SpvOpTypeVoid = 19,
+ SpvOpTypeBool = 20,
+ SpvOpTypeInt = 21,
+ SpvOpTypeFloat = 22,
+ SpvOpTypeVector = 23,
+ SpvOpTypeMatrix = 24,
+ SpvOpTypeImage = 25,
+ SpvOpTypeSampler = 26,
+ SpvOpTypeSampledImage = 27,
+ SpvOpTypeArray = 28,
+ SpvOpTypeRuntimeArray = 29,
+ SpvOpTypeStruct = 30,
+ SpvOpTypeOpaque = 31,
+ SpvOpTypePointer = 32,
+ SpvOpTypeFunction = 33,
+ SpvOpTypeEvent = 34,
+ SpvOpTypeDeviceEvent = 35,
+ SpvOpTypeReserveId = 36,
+ SpvOpTypeQueue = 37,
+ SpvOpTypePipe = 38,
+ SpvOpTypeForwardPointer = 39,
+ SpvOpConstantTrue = 41,
+ SpvOpConstantFalse = 42,
+ SpvOpConstant = 43,
+ SpvOpConstantComposite = 44,
+ SpvOpConstantSampler = 45,
+ SpvOpConstantNull = 46,
+ SpvOpSpecConstantTrue = 48,
+ SpvOpSpecConstantFalse = 49,
+ SpvOpSpecConstant = 50,
+ SpvOpSpecConstantComposite = 51,
+ SpvOpSpecConstantOp = 52,
+ SpvOpFunction = 54,
+ SpvOpFunctionParameter = 55,
+ SpvOpFunctionEnd = 56,
+ SpvOpFunctionCall = 57,
+ SpvOpVariable = 59,
+ SpvOpImageTexelPointer = 60,
+ SpvOpLoad = 61,
+ SpvOpStore = 62,
+ SpvOpCopyMemory = 63,
+ SpvOpCopyMemorySized = 64,
+ SpvOpAccessChain = 65,
+ SpvOpInBoundsAccessChain = 66,
+ SpvOpPtrAccessChain = 67,
+ SpvOpArrayLength = 68,
+ SpvOpGenericPtrMemSemantics = 69,
+ SpvOpInBoundsPtrAccessChain = 70,
+ SpvOpDecorate = 71,
+ SpvOpMemberDecorate = 72,
+ SpvOpDecorationGroup = 73,
+ SpvOpGroupDecorate = 74,
+ SpvOpGroupMemberDecorate = 75,
+ SpvOpVectorExtractDynamic = 77,
+ SpvOpVectorInsertDynamic = 78,
+ SpvOpVectorShuffle = 79,
+ SpvOpCompositeConstruct = 80,
+ SpvOpCompositeExtract = 81,
+ SpvOpCompositeInsert = 82,
+ SpvOpCopyObject = 83,
+ SpvOpTranspose = 84,
+ SpvOpSampledImage = 86,
+ SpvOpImageSampleImplicitLod = 87,
+ SpvOpImageSampleExplicitLod = 88,
+ SpvOpImageSampleDrefImplicitLod = 89,
+ SpvOpImageSampleDrefExplicitLod = 90,
+ SpvOpImageSampleProjImplicitLod = 91,
+ SpvOpImageSampleProjExplicitLod = 92,
+ SpvOpImageSampleProjDrefImplicitLod = 93,
+ SpvOpImageSampleProjDrefExplicitLod = 94,
+ SpvOpImageFetch = 95,
+ SpvOpImageGather = 96,
+ SpvOpImageDrefGather = 97,
+ SpvOpImageRead = 98,
+ SpvOpImageWrite = 99,
+ SpvOpImage = 100,
+ SpvOpImageQueryFormat = 101,
+ SpvOpImageQueryOrder = 102,
+ SpvOpImageQuerySizeLod = 103,
+ SpvOpImageQuerySize = 104,
+ SpvOpImageQueryLod = 105,
+ SpvOpImageQueryLevels = 106,
+ SpvOpImageQuerySamples = 107,
+ SpvOpConvertFToU = 109,
+ SpvOpConvertFToS = 110,
+ SpvOpConvertSToF = 111,
+ SpvOpConvertUToF = 112,
+ SpvOpUConvert = 113,
+ SpvOpSConvert = 114,
+ SpvOpFConvert = 115,
+ SpvOpQuantizeToF16 = 116,
+ SpvOpConvertPtrToU = 117,
+ SpvOpSatConvertSToU = 118,
+ SpvOpSatConvertUToS = 119,
+ SpvOpConvertUToPtr = 120,
+ SpvOpPtrCastToGeneric = 121,
+ SpvOpGenericCastToPtr = 122,
+ SpvOpGenericCastToPtrExplicit = 123,
+ SpvOpBitcast = 124,
+ SpvOpSNegate = 126,
+ SpvOpFNegate = 127,
+ SpvOpIAdd = 128,
+ SpvOpFAdd = 129,
+ SpvOpISub = 130,
+ SpvOpFSub = 131,
+ SpvOpIMul = 132,
+ SpvOpFMul = 133,
+ SpvOpUDiv = 134,
+ SpvOpSDiv = 135,
+ SpvOpFDiv = 136,
+ SpvOpUMod = 137,
+ SpvOpSRem = 138,
+ SpvOpSMod = 139,
+ SpvOpFRem = 140,
+ SpvOpFMod = 141,
+ SpvOpVectorTimesScalar = 142,
+ SpvOpMatrixTimesScalar = 143,
+ SpvOpVectorTimesMatrix = 144,
+ SpvOpMatrixTimesVector = 145,
+ SpvOpMatrixTimesMatrix = 146,
+ SpvOpOuterProduct = 147,
+ SpvOpDot = 148,
+ SpvOpIAddCarry = 149,
+ SpvOpISubBorrow = 150,
+ SpvOpUMulExtended = 151,
+ SpvOpSMulExtended = 152,
+ SpvOpAny = 154,
+ SpvOpAll = 155,
+ SpvOpIsNan = 156,
+ SpvOpIsInf = 157,
+ SpvOpIsFinite = 158,
+ SpvOpIsNormal = 159,
+ SpvOpSignBitSet = 160,
+ SpvOpLessOrGreater = 161,
+ SpvOpOrdered = 162,
+ SpvOpUnordered = 163,
+ SpvOpLogicalEqual = 164,
+ SpvOpLogicalNotEqual = 165,
+ SpvOpLogicalOr = 166,
+ SpvOpLogicalAnd = 167,
+ SpvOpLogicalNot = 168,
+ SpvOpSelect = 169,
+ SpvOpIEqual = 170,
+ SpvOpINotEqual = 171,
+ SpvOpUGreaterThan = 172,
+ SpvOpSGreaterThan = 173,
+ SpvOpUGreaterThanEqual = 174,
+ SpvOpSGreaterThanEqual = 175,
+ SpvOpULessThan = 176,
+ SpvOpSLessThan = 177,
+ SpvOpULessThanEqual = 178,
+ SpvOpSLessThanEqual = 179,
+ SpvOpFOrdEqual = 180,
+ SpvOpFUnordEqual = 181,
+ SpvOpFOrdNotEqual = 182,
+ SpvOpFUnordNotEqual = 183,
+ SpvOpFOrdLessThan = 184,
+ SpvOpFUnordLessThan = 185,
+ SpvOpFOrdGreaterThan = 186,
+ SpvOpFUnordGreaterThan = 187,
+ SpvOpFOrdLessThanEqual = 188,
+ SpvOpFUnordLessThanEqual = 189,
+ SpvOpFOrdGreaterThanEqual = 190,
+ SpvOpFUnordGreaterThanEqual = 191,
+ SpvOpShiftRightLogical = 194,
+ SpvOpShiftRightArithmetic = 195,
+ SpvOpShiftLeftLogical = 196,
+ SpvOpBitwiseOr = 197,
+ SpvOpBitwiseXor = 198,
+ SpvOpBitwiseAnd = 199,
+ SpvOpNot = 200,
+ SpvOpBitFieldInsert = 201,
+ SpvOpBitFieldSExtract = 202,
+ SpvOpBitFieldUExtract = 203,
+ SpvOpBitReverse = 204,
+ SpvOpBitCount = 205,
+ SpvOpDPdx = 207,
+ SpvOpDPdy = 208,
+ SpvOpFwidth = 209,
+ SpvOpDPdxFine = 210,
+ SpvOpDPdyFine = 211,
+ SpvOpFwidthFine = 212,
+ SpvOpDPdxCoarse = 213,
+ SpvOpDPdyCoarse = 214,
+ SpvOpFwidthCoarse = 215,
+ SpvOpEmitVertex = 218,
+ SpvOpEndPrimitive = 219,
+ SpvOpEmitStreamVertex = 220,
+ SpvOpEndStreamPrimitive = 221,
+ SpvOpControlBarrier = 224,
+ SpvOpMemoryBarrier = 225,
+ SpvOpAtomicLoad = 227,
+ SpvOpAtomicStore = 228,
+ SpvOpAtomicExchange = 229,
+ SpvOpAtomicCompareExchange = 230,
+ SpvOpAtomicCompareExchangeWeak = 231,
+ SpvOpAtomicIIncrement = 232,
+ SpvOpAtomicIDecrement = 233,
+ SpvOpAtomicIAdd = 234,
+ SpvOpAtomicISub = 235,
+ SpvOpAtomicSMin = 236,
+ SpvOpAtomicUMin = 237,
+ SpvOpAtomicSMax = 238,
+ SpvOpAtomicUMax = 239,
+ SpvOpAtomicAnd = 240,
+ SpvOpAtomicOr = 241,
+ SpvOpAtomicXor = 242,
+ SpvOpPhi = 245,
+ SpvOpLoopMerge = 246,
+ SpvOpSelectionMerge = 247,
+ SpvOpLabel = 248,
+ SpvOpBranch = 249,
+ SpvOpBranchConditional = 250,
+ SpvOpSwitch = 251,
+ SpvOpKill = 252,
+ SpvOpReturn = 253,
+ SpvOpReturnValue = 254,
+ SpvOpUnreachable = 255,
+ SpvOpLifetimeStart = 256,
+ SpvOpLifetimeStop = 257,
+ SpvOpGroupAsyncCopy = 259,
+ SpvOpGroupWaitEvents = 260,
+ SpvOpGroupAll = 261,
+ SpvOpGroupAny = 262,
+ SpvOpGroupBroadcast = 263,
+ SpvOpGroupIAdd = 264,
+ SpvOpGroupFAdd = 265,
+ SpvOpGroupFMin = 266,
+ SpvOpGroupUMin = 267,
+ SpvOpGroupSMin = 268,
+ SpvOpGroupFMax = 269,
+ SpvOpGroupUMax = 270,
+ SpvOpGroupSMax = 271,
+ SpvOpReadPipe = 274,
+ SpvOpWritePipe = 275,
+ SpvOpReservedReadPipe = 276,
+ SpvOpReservedWritePipe = 277,
+ SpvOpReserveReadPipePackets = 278,
+ SpvOpReserveWritePipePackets = 279,
+ SpvOpCommitReadPipe = 280,
+ SpvOpCommitWritePipe = 281,
+ SpvOpIsValidReserveId = 282,
+ SpvOpGetNumPipePackets = 283,
+ SpvOpGetMaxPipePackets = 284,
+ SpvOpGroupReserveReadPipePackets = 285,
+ SpvOpGroupReserveWritePipePackets = 286,
+ SpvOpGroupCommitReadPipe = 287,
+ SpvOpGroupCommitWritePipe = 288,
+ SpvOpEnqueueMarker = 291,
+ SpvOpEnqueueKernel = 292,
+ SpvOpGetKernelNDrangeSubGroupCount = 293,
+ SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
+ SpvOpGetKernelWorkGroupSize = 295,
+ SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
+ SpvOpRetainEvent = 297,
+ SpvOpReleaseEvent = 298,
+ SpvOpCreateUserEvent = 299,
+ SpvOpIsValidEvent = 300,
+ SpvOpSetUserEventStatus = 301,
+ SpvOpCaptureEventProfilingInfo = 302,
+ SpvOpGetDefaultQueue = 303,
+ SpvOpBuildNDRange = 304,
+ SpvOpImageSparseSampleImplicitLod = 305,
+ SpvOpImageSparseSampleExplicitLod = 306,
+ SpvOpImageSparseSampleDrefImplicitLod = 307,
+ SpvOpImageSparseSampleDrefExplicitLod = 308,
+ SpvOpImageSparseSampleProjImplicitLod = 309,
+ SpvOpImageSparseSampleProjExplicitLod = 310,
+ SpvOpImageSparseSampleProjDrefImplicitLod = 311,
+ SpvOpImageSparseSampleProjDrefExplicitLod = 312,
+ SpvOpImageSparseFetch = 313,
+ SpvOpImageSparseGather = 314,
+ SpvOpImageSparseDrefGather = 315,
+ SpvOpImageSparseTexelsResident = 316,
+ SpvOpNoLine = 317,
+ SpvOpAtomicFlagTestAndSet = 318,
+ SpvOpAtomicFlagClear = 319,
+ SpvOpImageSparseRead = 320,
+ SpvOpSizeOf = 321,
+ SpvOpTypePipeStorage = 322,
+ SpvOpConstantPipeStorage = 323,
+ SpvOpCreatePipeFromPipeStorage = 324,
+ SpvOpGetKernelLocalSizeForSubgroupCount = 325,
+ SpvOpGetKernelMaxNumSubgroups = 326,
+ SpvOpTypeNamedBarrier = 327,
+ SpvOpNamedBarrierInitialize = 328,
+ SpvOpMemoryNamedBarrier = 329,
+ SpvOpModuleProcessed = 330,
+ SpvOpExecutionModeId = 331,
+ SpvOpDecorateId = 332,
+ SpvOpGroupNonUniformElect = 333,
+ SpvOpGroupNonUniformAll = 334,
+ SpvOpGroupNonUniformAny = 335,
+ SpvOpGroupNonUniformAllEqual = 336,
+ SpvOpGroupNonUniformBroadcast = 337,
+ SpvOpGroupNonUniformBroadcastFirst = 338,
+ SpvOpGroupNonUniformBallot = 339,
+ SpvOpGroupNonUniformInverseBallot = 340,
+ SpvOpGroupNonUniformBallotBitExtract = 341,
+ SpvOpGroupNonUniformBallotBitCount = 342,
+ SpvOpGroupNonUniformBallotFindLSB = 343,
+ SpvOpGroupNonUniformBallotFindMSB = 344,
+ SpvOpGroupNonUniformShuffle = 345,
+ SpvOpGroupNonUniformShuffleXor = 346,
+ SpvOpGroupNonUniformShuffleUp = 347,
+ SpvOpGroupNonUniformShuffleDown = 348,
+ SpvOpGroupNonUniformIAdd = 349,
+ SpvOpGroupNonUniformFAdd = 350,
+ SpvOpGroupNonUniformIMul = 351,
+ SpvOpGroupNonUniformFMul = 352,
+ SpvOpGroupNonUniformSMin = 353,
+ SpvOpGroupNonUniformUMin = 354,
+ SpvOpGroupNonUniformFMin = 355,
+ SpvOpGroupNonUniformSMax = 356,
+ SpvOpGroupNonUniformUMax = 357,
+ SpvOpGroupNonUniformFMax = 358,
+ SpvOpGroupNonUniformBitwiseAnd = 359,
+ SpvOpGroupNonUniformBitwiseOr = 360,
+ SpvOpGroupNonUniformBitwiseXor = 361,
+ SpvOpGroupNonUniformLogicalAnd = 362,
+ SpvOpGroupNonUniformLogicalOr = 363,
+ SpvOpGroupNonUniformLogicalXor = 364,
+ SpvOpGroupNonUniformQuadBroadcast = 365,
+ SpvOpGroupNonUniformQuadSwap = 366,
+ SpvOpCopyLogical = 400,
+ SpvOpPtrEqual = 401,
+ SpvOpPtrNotEqual = 402,
+ SpvOpPtrDiff = 403,
+ SpvOpTerminateInvocation = 4416,
+ SpvOpSubgroupBallotKHR = 4421,
+ SpvOpSubgroupFirstInvocationKHR = 4422,
+ SpvOpSubgroupAllKHR = 4428,
+ SpvOpSubgroupAnyKHR = 4429,
+ SpvOpSubgroupAllEqualKHR = 4430,
+ SpvOpGroupNonUniformRotateKHR = 4431,
+ SpvOpSubgroupReadInvocationKHR = 4432,
+ SpvOpTraceRayKHR = 4445,
+ SpvOpExecuteCallableKHR = 4446,
+ SpvOpConvertUToAccelerationStructureKHR = 4447,
+ SpvOpIgnoreIntersectionKHR = 4448,
+ SpvOpTerminateRayKHR = 4449,
+ SpvOpSDot = 4450,
+ SpvOpSDotKHR = 4450,
+ SpvOpUDot = 4451,
+ SpvOpUDotKHR = 4451,
+ SpvOpSUDot = 4452,
+ SpvOpSUDotKHR = 4452,
+ SpvOpSDotAccSat = 4453,
+ SpvOpSDotAccSatKHR = 4453,
+ SpvOpUDotAccSat = 4454,
+ SpvOpUDotAccSatKHR = 4454,
+ SpvOpSUDotAccSat = 4455,
+ SpvOpSUDotAccSatKHR = 4455,
+ SpvOpTypeRayQueryKHR = 4472,
+ SpvOpRayQueryInitializeKHR = 4473,
+ SpvOpRayQueryTerminateKHR = 4474,
+ SpvOpRayQueryGenerateIntersectionKHR = 4475,
+ SpvOpRayQueryConfirmIntersectionKHR = 4476,
+ SpvOpRayQueryProceedKHR = 4477,
+ SpvOpRayQueryGetIntersectionTypeKHR = 4479,
+ SpvOpGroupIAddNonUniformAMD = 5000,
+ SpvOpGroupFAddNonUniformAMD = 5001,
+ SpvOpGroupFMinNonUniformAMD = 5002,
+ SpvOpGroupUMinNonUniformAMD = 5003,
+ SpvOpGroupSMinNonUniformAMD = 5004,
+ SpvOpGroupFMaxNonUniformAMD = 5005,
+ SpvOpGroupUMaxNonUniformAMD = 5006,
+ SpvOpGroupSMaxNonUniformAMD = 5007,
+ SpvOpFragmentMaskFetchAMD = 5011,
+ SpvOpFragmentFetchAMD = 5012,
+ SpvOpReadClockKHR = 5056,
+ SpvOpHitObjectRecordHitMotionNV = 5249,
+ SpvOpHitObjectRecordHitWithIndexMotionNV = 5250,
+ SpvOpHitObjectRecordMissMotionNV = 5251,
+ SpvOpHitObjectGetWorldToObjectNV = 5252,
+ SpvOpHitObjectGetObjectToWorldNV = 5253,
+ SpvOpHitObjectGetObjectRayDirectionNV = 5254,
+ SpvOpHitObjectGetObjectRayOriginNV = 5255,
+ SpvOpHitObjectTraceRayMotionNV = 5256,
+ SpvOpHitObjectGetShaderRecordBufferHandleNV = 5257,
+ SpvOpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+ SpvOpHitObjectRecordEmptyNV = 5259,
+ SpvOpHitObjectTraceRayNV = 5260,
+ SpvOpHitObjectRecordHitNV = 5261,
+ SpvOpHitObjectRecordHitWithIndexNV = 5262,
+ SpvOpHitObjectRecordMissNV = 5263,
+ SpvOpHitObjectExecuteShaderNV = 5264,
+ SpvOpHitObjectGetCurrentTimeNV = 5265,
+ SpvOpHitObjectGetAttributesNV = 5266,
+ SpvOpHitObjectGetHitKindNV = 5267,
+ SpvOpHitObjectGetPrimitiveIndexNV = 5268,
+ SpvOpHitObjectGetGeometryIndexNV = 5269,
+ SpvOpHitObjectGetInstanceIdNV = 5270,
+ SpvOpHitObjectGetInstanceCustomIndexNV = 5271,
+ SpvOpHitObjectGetWorldRayDirectionNV = 5272,
+ SpvOpHitObjectGetWorldRayOriginNV = 5273,
+ SpvOpHitObjectGetRayTMaxNV = 5274,
+ SpvOpHitObjectGetRayTMinNV = 5275,
+ SpvOpHitObjectIsEmptyNV = 5276,
+ SpvOpHitObjectIsHitNV = 5277,
+ SpvOpHitObjectIsMissNV = 5278,
+ SpvOpReorderThreadWithHitObjectNV = 5279,
+ SpvOpReorderThreadWithHintNV = 5280,
+ SpvOpTypeHitObjectNV = 5281,
+ SpvOpImageSampleFootprintNV = 5283,
+ SpvOpEmitMeshTasksEXT = 5294,
+ SpvOpSetMeshOutputsEXT = 5295,
+ SpvOpGroupNonUniformPartitionNV = 5296,
+ SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
+ SpvOpReportIntersectionKHR = 5334,
+ SpvOpReportIntersectionNV = 5334,
+ SpvOpIgnoreIntersectionNV = 5335,
+ SpvOpTerminateRayNV = 5336,
+ SpvOpTraceNV = 5337,
+ SpvOpTraceMotionNV = 5338,
+ SpvOpTraceRayMotionNV = 5339,
+ SpvOpTypeAccelerationStructureKHR = 5341,
+ SpvOpTypeAccelerationStructureNV = 5341,
+ SpvOpExecuteCallableNV = 5344,
+ SpvOpTypeCooperativeMatrixNV = 5358,
+ SpvOpCooperativeMatrixLoadNV = 5359,
+ SpvOpCooperativeMatrixStoreNV = 5360,
+ SpvOpCooperativeMatrixMulAddNV = 5361,
+ SpvOpCooperativeMatrixLengthNV = 5362,
+ SpvOpBeginInvocationInterlockEXT = 5364,
+ SpvOpEndInvocationInterlockEXT = 5365,
+ SpvOpDemoteToHelperInvocation = 5380,
+ SpvOpDemoteToHelperInvocationEXT = 5380,
+ SpvOpIsHelperInvocationEXT = 5381,
+ SpvOpConvertUToImageNV = 5391,
+ SpvOpConvertUToSamplerNV = 5392,
+ SpvOpConvertImageToUNV = 5393,
+ SpvOpConvertSamplerToUNV = 5394,
+ SpvOpConvertUToSampledImageNV = 5395,
+ SpvOpConvertSampledImageToUNV = 5396,
+ SpvOpSamplerImageAddressingModeNV = 5397,
+ SpvOpSubgroupShuffleINTEL = 5571,
+ SpvOpSubgroupShuffleDownINTEL = 5572,
+ SpvOpSubgroupShuffleUpINTEL = 5573,
+ SpvOpSubgroupShuffleXorINTEL = 5574,
+ SpvOpSubgroupBlockReadINTEL = 5575,
+ SpvOpSubgroupBlockWriteINTEL = 5576,
+ SpvOpSubgroupImageBlockReadINTEL = 5577,
+ SpvOpSubgroupImageBlockWriteINTEL = 5578,
+ SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
+ SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
+ SpvOpUCountLeadingZerosINTEL = 5585,
+ SpvOpUCountTrailingZerosINTEL = 5586,
+ SpvOpAbsISubINTEL = 5587,
+ SpvOpAbsUSubINTEL = 5588,
+ SpvOpIAddSatINTEL = 5589,
+ SpvOpUAddSatINTEL = 5590,
+ SpvOpIAverageINTEL = 5591,
+ SpvOpUAverageINTEL = 5592,
+ SpvOpIAverageRoundedINTEL = 5593,
+ SpvOpUAverageRoundedINTEL = 5594,
+ SpvOpISubSatINTEL = 5595,
+ SpvOpUSubSatINTEL = 5596,
+ SpvOpIMul32x16INTEL = 5597,
+ SpvOpUMul32x16INTEL = 5598,
+ SpvOpConstantFunctionPointerINTEL = 5600,
+ SpvOpFunctionPointerCallINTEL = 5601,
+ SpvOpAsmTargetINTEL = 5609,
+ SpvOpAsmINTEL = 5610,
+ SpvOpAsmCallINTEL = 5611,
+ SpvOpAtomicFMinEXT = 5614,
+ SpvOpAtomicFMaxEXT = 5615,
+ SpvOpAssumeTrueKHR = 5630,
+ SpvOpExpectKHR = 5631,
+ SpvOpDecorateString = 5632,
+ SpvOpDecorateStringGOOGLE = 5632,
+ SpvOpMemberDecorateString = 5633,
+ SpvOpMemberDecorateStringGOOGLE = 5633,
+ SpvOpVmeImageINTEL = 5699,
+ SpvOpTypeVmeImageINTEL = 5700,
+ SpvOpTypeAvcImePayloadINTEL = 5701,
+ SpvOpTypeAvcRefPayloadINTEL = 5702,
+ SpvOpTypeAvcSicPayloadINTEL = 5703,
+ SpvOpTypeAvcMcePayloadINTEL = 5704,
+ SpvOpTypeAvcMceResultINTEL = 5705,
+ SpvOpTypeAvcImeResultINTEL = 5706,
+ SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
+ SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
+ SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
+ SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
+ SpvOpTypeAvcRefResultINTEL = 5711,
+ SpvOpTypeAvcSicResultINTEL = 5712,
+ SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
+ SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
+ SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
+ SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
+ SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
+ SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
+ SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
+ SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
+ SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
+ SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
+ SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
+ SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
+ SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
+ SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
+ SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
+ SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
+ SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
+ SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
+ SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
+ SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
+ SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
+ SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
+ SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
+ SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
+ SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
+ SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
+ SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
+ SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
+ SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
+ SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
+ SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
+ SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
+ SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
+ SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
+ SpvOpSubgroupAvcImeInitializeINTEL = 5747,
+ SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
+ SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
+ SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
+ SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
+ SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
+ SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
+ SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
+ SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
+ SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
+ SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
+ SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
+ SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
+ SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
+ SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
+ SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
+ SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
+ SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
+ SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
+ SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
+ SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
+ SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
+ SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
+ SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
+ SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
+ SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
+ SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
+ SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
+ SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
+ SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
+ SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
+ SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
+ SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
+ SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
+ SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
+ SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
+ SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
+ SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
+ SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
+ SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
+ SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
+ SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
+ SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
+ SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
+ SpvOpSubgroupAvcSicInitializeINTEL = 5791,
+ SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
+ SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
+ SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
+ SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
+ SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
+ SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
+ SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
+ SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
+ SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
+ SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
+ SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
+ SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
+ SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
+ SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
+ SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
+ SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
+ SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
+ SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
+ SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
+ SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
+ SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
+ SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
+ SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
+ SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
+ SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ SpvOpVariableLengthArrayINTEL = 5818,
+ SpvOpSaveMemoryINTEL = 5819,
+ SpvOpRestoreMemoryINTEL = 5820,
+ SpvOpArbitraryFloatSinCosPiINTEL = 5840,
+ SpvOpArbitraryFloatCastINTEL = 5841,
+ SpvOpArbitraryFloatCastFromIntINTEL = 5842,
+ SpvOpArbitraryFloatCastToIntINTEL = 5843,
+ SpvOpArbitraryFloatAddINTEL = 5846,
+ SpvOpArbitraryFloatSubINTEL = 5847,
+ SpvOpArbitraryFloatMulINTEL = 5848,
+ SpvOpArbitraryFloatDivINTEL = 5849,
+ SpvOpArbitraryFloatGTINTEL = 5850,
+ SpvOpArbitraryFloatGEINTEL = 5851,
+ SpvOpArbitraryFloatLTINTEL = 5852,
+ SpvOpArbitraryFloatLEINTEL = 5853,
+ SpvOpArbitraryFloatEQINTEL = 5854,
+ SpvOpArbitraryFloatRecipINTEL = 5855,
+ SpvOpArbitraryFloatRSqrtINTEL = 5856,
+ SpvOpArbitraryFloatCbrtINTEL = 5857,
+ SpvOpArbitraryFloatHypotINTEL = 5858,
+ SpvOpArbitraryFloatSqrtINTEL = 5859,
+ SpvOpArbitraryFloatLogINTEL = 5860,
+ SpvOpArbitraryFloatLog2INTEL = 5861,
+ SpvOpArbitraryFloatLog10INTEL = 5862,
+ SpvOpArbitraryFloatLog1pINTEL = 5863,
+ SpvOpArbitraryFloatExpINTEL = 5864,
+ SpvOpArbitraryFloatExp2INTEL = 5865,
+ SpvOpArbitraryFloatExp10INTEL = 5866,
+ SpvOpArbitraryFloatExpm1INTEL = 5867,
+ SpvOpArbitraryFloatSinINTEL = 5868,
+ SpvOpArbitraryFloatCosINTEL = 5869,
+ SpvOpArbitraryFloatSinCosINTEL = 5870,
+ SpvOpArbitraryFloatSinPiINTEL = 5871,
+ SpvOpArbitraryFloatCosPiINTEL = 5872,
+ SpvOpArbitraryFloatASinINTEL = 5873,
+ SpvOpArbitraryFloatASinPiINTEL = 5874,
+ SpvOpArbitraryFloatACosINTEL = 5875,
+ SpvOpArbitraryFloatACosPiINTEL = 5876,
+ SpvOpArbitraryFloatATanINTEL = 5877,
+ SpvOpArbitraryFloatATanPiINTEL = 5878,
+ SpvOpArbitraryFloatATan2INTEL = 5879,
+ SpvOpArbitraryFloatPowINTEL = 5880,
+ SpvOpArbitraryFloatPowRINTEL = 5881,
+ SpvOpArbitraryFloatPowNINTEL = 5882,
+ SpvOpLoopControlINTEL = 5887,
+ SpvOpAliasDomainDeclINTEL = 5911,
+ SpvOpAliasScopeDeclINTEL = 5912,
+ SpvOpAliasScopeListDeclINTEL = 5913,
+ SpvOpFixedSqrtINTEL = 5923,
+ SpvOpFixedRecipINTEL = 5924,
+ SpvOpFixedRsqrtINTEL = 5925,
+ SpvOpFixedSinINTEL = 5926,
+ SpvOpFixedCosINTEL = 5927,
+ SpvOpFixedSinCosINTEL = 5928,
+ SpvOpFixedSinPiINTEL = 5929,
+ SpvOpFixedCosPiINTEL = 5930,
+ SpvOpFixedSinCosPiINTEL = 5931,
+ SpvOpFixedLogINTEL = 5932,
+ SpvOpFixedExpINTEL = 5933,
+ SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
+ SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
+ SpvOpReadPipeBlockingINTEL = 5946,
+ SpvOpWritePipeBlockingINTEL = 5947,
+ SpvOpFPGARegINTEL = 5949,
+ SpvOpRayQueryGetRayTMinKHR = 6016,
+ SpvOpRayQueryGetRayFlagsKHR = 6017,
+ SpvOpRayQueryGetIntersectionTKHR = 6018,
+ SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
+ SpvOpRayQueryGetIntersectionInstanceIdKHR = 6020,
+ SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
+ SpvOpRayQueryGetIntersectionGeometryIndexKHR = 6022,
+ SpvOpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
+ SpvOpRayQueryGetIntersectionBarycentricsKHR = 6024,
+ SpvOpRayQueryGetIntersectionFrontFaceKHR = 6025,
+ SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
+ SpvOpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
+ SpvOpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
+ SpvOpRayQueryGetWorldRayDirectionKHR = 6029,
+ SpvOpRayQueryGetWorldRayOriginKHR = 6030,
+ SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
+ SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+ SpvOpAtomicFAddEXT = 6035,
+ SpvOpTypeBufferSurfaceINTEL = 6086,
+ 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) {
+ default: /* unknown opcode */ break;
+ case SpvOpNop: *hasResult = false; *hasResultType = false; break;
+ case SpvOpUndef: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSource: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break;
+ case SpvOpName: *hasResult = false; *hasResultType = false; break;
+ case SpvOpMemberName: *hasResult = false; *hasResultType = false; break;
+ case SpvOpString: *hasResult = true; *hasResultType = false; break;
+ case SpvOpLine: *hasResult = false; *hasResultType = false; break;
+ case SpvOpExtension: *hasResult = false; *hasResultType = false; break;
+ case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break;
+ case SpvOpExtInst: *hasResult = true; *hasResultType = true; break;
+ case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break;
+ case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break;
+ case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break;
+ case SpvOpCapability: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
+ case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConstant: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFunction: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break;
+ case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break;
+ case SpvOpVariable: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
+ case SpvOpLoad: *hasResult = true; *hasResultType = true; break;
+ case SpvOpStore: *hasResult = false; *hasResultType = false; break;
+ case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break;
+ case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
+ case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break;
+ case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
+ case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
+ case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
+ case SpvOpDecorate: *hasResult = false; *hasResultType = false; break;
+ case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break;
+ case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break;
+ case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break;
+ case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
+ case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
+ case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
+ case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break;
+ case SpvOpTranspose: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageGather: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageRead: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break;
+ case SpvOpImage: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUConvert: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSConvert: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFConvert: *hasResult = true; *hasResultType = true; break;
+ case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
+ case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
+ case SpvOpBitcast: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSNegate: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFNegate: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIAdd: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFAdd: *hasResult = true; *hasResultType = true; break;
+ case SpvOpISub: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFSub: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIMul: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFMul: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUDiv: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSDiv: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFDiv: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUMod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSRem: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSMod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFRem: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFMod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
+ case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
+ case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
+ case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
+ case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
+ case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break;
+ case SpvOpDot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break;
+ case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAny: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAll: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIsNan: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIsInf: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break;
+ case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break;
+ case SpvOpOrdered: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUnordered: *hasResult = true; *hasResultType = true; break;
+ case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break;
+ case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break;
+ case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSelect: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpULessThan: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break;
+ case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
+ case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
+ case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
+ case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break;
+ case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break;
+ case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
+ case SpvOpNot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
+ case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
+ case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
+ case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break;
+ case SpvOpBitCount: *hasResult = true; *hasResultType = true; break;
+ case SpvOpDPdx: *hasResult = true; *hasResultType = true; break;
+ case SpvOpDPdy: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFwidth: *hasResult = true; *hasResultType = true; break;
+ case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break;
+ case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break;
+ case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
+ case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
+ case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break;
+ case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break;
+ case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
+ case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
+ case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break;
+ case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
+ case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break;
+ case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break;
+ case SpvOpPhi: *hasResult = true; *hasResultType = true; break;
+ case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break;
+ case SpvOpLabel: *hasResult = true; *hasResultType = false; break;
+ case SpvOpBranch: *hasResult = false; *hasResultType = false; break;
+ case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSwitch: *hasResult = false; *hasResultType = false; break;
+ case SpvOpKill: *hasResult = false; *hasResultType = false; break;
+ case SpvOpReturn: *hasResult = false; *hasResultType = false; break;
+ case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break;
+ case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break;
+ case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break;
+ case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break;
+ case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
+ case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break;
+ case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break;
+ case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break;
+ case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
+ case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
+ case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
+ case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
+ case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
+ case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
+ case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
+ case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
+ case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break;
+ case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break;
+ case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
+ case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
+ case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
+ case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
+ case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
+ case SpvOpNoLine: *hasResult = false; *hasResultType = false; break;
+ case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
+ case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break;
+ case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
+ case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
+ case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
+ case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
+ case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
+ case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break;
+ case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break;
+ case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break;
+ case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break;
+ case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
+ case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
+ case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
+ 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;
+ case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSDot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUDot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSUDot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
+ case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
+ case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTypeHitObjectNV: *hasResult = true; *hasResultType = false; 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;
+ case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
+ case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
+ case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
+ case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
+ case SpvOpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
+ case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpExpectKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
+ case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
+ case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+ 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;
+ case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ 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 */
+
+#endif
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.hpp b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.hpp
new file mode 100644
index 0000000000..576e10252a
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.hpp
@@ -0,0 +1,2669 @@
+// 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.
+
+#ifndef spirv_HPP
+#define spirv_HPP
+
+namespace spv {
+
+typedef unsigned int Id;
+
+#define SPV_VERSION 0x10600
+#define SPV_REVISION 1
+
+static const unsigned int MagicNumber = 0x07230203;
+static const unsigned int Version = 0x00010600;
+static const unsigned int Revision = 1;
+static const unsigned int OpCodeMask = 0xffff;
+static const unsigned int WordCountShift = 16;
+
+enum SourceLanguage {
+ SourceLanguageUnknown = 0,
+ SourceLanguageESSL = 1,
+ SourceLanguageGLSL = 2,
+ SourceLanguageOpenCL_C = 3,
+ SourceLanguageOpenCL_CPP = 4,
+ SourceLanguageHLSL = 5,
+ SourceLanguageCPP_for_OpenCL = 6,
+ SourceLanguageSYCL = 7,
+ SourceLanguageMax = 0x7fffffff,
+};
+
+enum ExecutionModel {
+ ExecutionModelVertex = 0,
+ ExecutionModelTessellationControl = 1,
+ ExecutionModelTessellationEvaluation = 2,
+ ExecutionModelGeometry = 3,
+ ExecutionModelFragment = 4,
+ ExecutionModelGLCompute = 5,
+ ExecutionModelKernel = 6,
+ ExecutionModelTaskNV = 5267,
+ ExecutionModelMeshNV = 5268,
+ ExecutionModelRayGenerationKHR = 5313,
+ ExecutionModelRayGenerationNV = 5313,
+ ExecutionModelIntersectionKHR = 5314,
+ ExecutionModelIntersectionNV = 5314,
+ ExecutionModelAnyHitKHR = 5315,
+ ExecutionModelAnyHitNV = 5315,
+ ExecutionModelClosestHitKHR = 5316,
+ ExecutionModelClosestHitNV = 5316,
+ ExecutionModelMissKHR = 5317,
+ ExecutionModelMissNV = 5317,
+ ExecutionModelCallableKHR = 5318,
+ ExecutionModelCallableNV = 5318,
+ ExecutionModelTaskEXT = 5364,
+ ExecutionModelMeshEXT = 5365,
+ ExecutionModelMax = 0x7fffffff,
+};
+
+enum AddressingModel {
+ AddressingModelLogical = 0,
+ AddressingModelPhysical32 = 1,
+ AddressingModelPhysical64 = 2,
+ AddressingModelPhysicalStorageBuffer64 = 5348,
+ AddressingModelPhysicalStorageBuffer64EXT = 5348,
+ AddressingModelMax = 0x7fffffff,
+};
+
+enum MemoryModel {
+ MemoryModelSimple = 0,
+ MemoryModelGLSL450 = 1,
+ MemoryModelOpenCL = 2,
+ MemoryModelVulkan = 3,
+ MemoryModelVulkanKHR = 3,
+ MemoryModelMax = 0x7fffffff,
+};
+
+enum ExecutionMode {
+ ExecutionModeInvocations = 0,
+ ExecutionModeSpacingEqual = 1,
+ ExecutionModeSpacingFractionalEven = 2,
+ ExecutionModeSpacingFractionalOdd = 3,
+ ExecutionModeVertexOrderCw = 4,
+ ExecutionModeVertexOrderCcw = 5,
+ ExecutionModePixelCenterInteger = 6,
+ ExecutionModeOriginUpperLeft = 7,
+ ExecutionModeOriginLowerLeft = 8,
+ ExecutionModeEarlyFragmentTests = 9,
+ ExecutionModePointMode = 10,
+ ExecutionModeXfb = 11,
+ ExecutionModeDepthReplacing = 12,
+ ExecutionModeDepthGreater = 14,
+ ExecutionModeDepthLess = 15,
+ ExecutionModeDepthUnchanged = 16,
+ ExecutionModeLocalSize = 17,
+ ExecutionModeLocalSizeHint = 18,
+ ExecutionModeInputPoints = 19,
+ ExecutionModeInputLines = 20,
+ ExecutionModeInputLinesAdjacency = 21,
+ ExecutionModeTriangles = 22,
+ ExecutionModeInputTrianglesAdjacency = 23,
+ ExecutionModeQuads = 24,
+ ExecutionModeIsolines = 25,
+ ExecutionModeOutputVertices = 26,
+ ExecutionModeOutputPoints = 27,
+ ExecutionModeOutputLineStrip = 28,
+ ExecutionModeOutputTriangleStrip = 29,
+ ExecutionModeVecTypeHint = 30,
+ ExecutionModeContractionOff = 31,
+ ExecutionModeInitializer = 33,
+ ExecutionModeFinalizer = 34,
+ ExecutionModeSubgroupSize = 35,
+ ExecutionModeSubgroupsPerWorkgroup = 36,
+ ExecutionModeSubgroupsPerWorkgroupId = 37,
+ ExecutionModeLocalSizeId = 38,
+ ExecutionModeLocalSizeHintId = 39,
+ ExecutionModeSubgroupUniformControlFlowKHR = 4421,
+ ExecutionModePostDepthCoverage = 4446,
+ ExecutionModeDenormPreserve = 4459,
+ ExecutionModeDenormFlushToZero = 4460,
+ 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,
+ ExecutionModeSampleInterlockOrderedEXT = 5368,
+ ExecutionModeSampleInterlockUnorderedEXT = 5369,
+ ExecutionModeShadingRateInterlockOrderedEXT = 5370,
+ ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
+ ExecutionModeSharedLocalMemorySizeINTEL = 5618,
+ ExecutionModeRoundingModeRTPINTEL = 5620,
+ ExecutionModeRoundingModeRTNINTEL = 5621,
+ ExecutionModeFloatingPointModeALTINTEL = 5622,
+ ExecutionModeFloatingPointModeIEEEINTEL = 5623,
+ ExecutionModeMaxWorkgroupSizeINTEL = 5893,
+ ExecutionModeMaxWorkDimINTEL = 5894,
+ ExecutionModeNoGlobalOffsetINTEL = 5895,
+ ExecutionModeNumSIMDWorkitemsINTEL = 5896,
+ ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
+ ExecutionModeNamedBarrierCountINTEL = 6417,
+ ExecutionModeMax = 0x7fffffff,
+};
+
+enum StorageClass {
+ StorageClassUniformConstant = 0,
+ StorageClassInput = 1,
+ StorageClassUniform = 2,
+ StorageClassOutput = 3,
+ StorageClassWorkgroup = 4,
+ StorageClassCrossWorkgroup = 5,
+ StorageClassPrivate = 6,
+ StorageClassFunction = 7,
+ StorageClassGeneric = 8,
+ StorageClassPushConstant = 9,
+ StorageClassAtomicCounter = 10,
+ StorageClassImage = 11,
+ StorageClassStorageBuffer = 12,
+ StorageClassCallableDataKHR = 5328,
+ StorageClassCallableDataNV = 5328,
+ StorageClassIncomingCallableDataKHR = 5329,
+ StorageClassIncomingCallableDataNV = 5329,
+ StorageClassRayPayloadKHR = 5338,
+ StorageClassRayPayloadNV = 5338,
+ StorageClassHitAttributeKHR = 5339,
+ StorageClassHitAttributeNV = 5339,
+ StorageClassIncomingRayPayloadKHR = 5342,
+ StorageClassIncomingRayPayloadNV = 5342,
+ StorageClassShaderRecordBufferKHR = 5343,
+ StorageClassShaderRecordBufferNV = 5343,
+ StorageClassPhysicalStorageBuffer = 5349,
+ StorageClassPhysicalStorageBufferEXT = 5349,
+ StorageClassHitObjectAttributeNV = 5385,
+ StorageClassTaskPayloadWorkgroupEXT = 5402,
+ StorageClassCodeSectionINTEL = 5605,
+ StorageClassDeviceOnlyINTEL = 5936,
+ StorageClassHostOnlyINTEL = 5937,
+ StorageClassMax = 0x7fffffff,
+};
+
+enum Dim {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ DimCube = 3,
+ DimRect = 4,
+ DimBuffer = 5,
+ DimSubpassData = 6,
+ DimMax = 0x7fffffff,
+};
+
+enum SamplerAddressingMode {
+ SamplerAddressingModeNone = 0,
+ SamplerAddressingModeClampToEdge = 1,
+ SamplerAddressingModeClamp = 2,
+ SamplerAddressingModeRepeat = 3,
+ SamplerAddressingModeRepeatMirrored = 4,
+ SamplerAddressingModeMax = 0x7fffffff,
+};
+
+enum SamplerFilterMode {
+ SamplerFilterModeNearest = 0,
+ SamplerFilterModeLinear = 1,
+ SamplerFilterModeMax = 0x7fffffff,
+};
+
+enum ImageFormat {
+ ImageFormatUnknown = 0,
+ ImageFormatRgba32f = 1,
+ ImageFormatRgba16f = 2,
+ ImageFormatR32f = 3,
+ ImageFormatRgba8 = 4,
+ ImageFormatRgba8Snorm = 5,
+ ImageFormatRg32f = 6,
+ ImageFormatRg16f = 7,
+ ImageFormatR11fG11fB10f = 8,
+ ImageFormatR16f = 9,
+ ImageFormatRgba16 = 10,
+ ImageFormatRgb10A2 = 11,
+ ImageFormatRg16 = 12,
+ ImageFormatRg8 = 13,
+ ImageFormatR16 = 14,
+ ImageFormatR8 = 15,
+ ImageFormatRgba16Snorm = 16,
+ ImageFormatRg16Snorm = 17,
+ ImageFormatRg8Snorm = 18,
+ ImageFormatR16Snorm = 19,
+ ImageFormatR8Snorm = 20,
+ ImageFormatRgba32i = 21,
+ ImageFormatRgba16i = 22,
+ ImageFormatRgba8i = 23,
+ ImageFormatR32i = 24,
+ ImageFormatRg32i = 25,
+ ImageFormatRg16i = 26,
+ ImageFormatRg8i = 27,
+ ImageFormatR16i = 28,
+ ImageFormatR8i = 29,
+ ImageFormatRgba32ui = 30,
+ ImageFormatRgba16ui = 31,
+ ImageFormatRgba8ui = 32,
+ ImageFormatR32ui = 33,
+ ImageFormatRgb10a2ui = 34,
+ ImageFormatRg32ui = 35,
+ ImageFormatRg16ui = 36,
+ ImageFormatRg8ui = 37,
+ ImageFormatR16ui = 38,
+ ImageFormatR8ui = 39,
+ ImageFormatR64ui = 40,
+ ImageFormatR64i = 41,
+ ImageFormatMax = 0x7fffffff,
+};
+
+enum ImageChannelOrder {
+ ImageChannelOrderR = 0,
+ ImageChannelOrderA = 1,
+ ImageChannelOrderRG = 2,
+ ImageChannelOrderRA = 3,
+ ImageChannelOrderRGB = 4,
+ ImageChannelOrderRGBA = 5,
+ ImageChannelOrderBGRA = 6,
+ ImageChannelOrderARGB = 7,
+ ImageChannelOrderIntensity = 8,
+ ImageChannelOrderLuminance = 9,
+ ImageChannelOrderRx = 10,
+ ImageChannelOrderRGx = 11,
+ ImageChannelOrderRGBx = 12,
+ ImageChannelOrderDepth = 13,
+ ImageChannelOrderDepthStencil = 14,
+ ImageChannelOrdersRGB = 15,
+ ImageChannelOrdersRGBx = 16,
+ ImageChannelOrdersRGBA = 17,
+ ImageChannelOrdersBGRA = 18,
+ ImageChannelOrderABGR = 19,
+ ImageChannelOrderMax = 0x7fffffff,
+};
+
+enum ImageChannelDataType {
+ ImageChannelDataTypeSnormInt8 = 0,
+ ImageChannelDataTypeSnormInt16 = 1,
+ ImageChannelDataTypeUnormInt8 = 2,
+ ImageChannelDataTypeUnormInt16 = 3,
+ ImageChannelDataTypeUnormShort565 = 4,
+ ImageChannelDataTypeUnormShort555 = 5,
+ ImageChannelDataTypeUnormInt101010 = 6,
+ ImageChannelDataTypeSignedInt8 = 7,
+ ImageChannelDataTypeSignedInt16 = 8,
+ ImageChannelDataTypeSignedInt32 = 9,
+ ImageChannelDataTypeUnsignedInt8 = 10,
+ ImageChannelDataTypeUnsignedInt16 = 11,
+ ImageChannelDataTypeUnsignedInt32 = 12,
+ ImageChannelDataTypeHalfFloat = 13,
+ ImageChannelDataTypeFloat = 14,
+ ImageChannelDataTypeUnormInt24 = 15,
+ ImageChannelDataTypeUnormInt101010_2 = 16,
+ ImageChannelDataTypeMax = 0x7fffffff,
+};
+
+enum ImageOperandsShift {
+ ImageOperandsBiasShift = 0,
+ ImageOperandsLodShift = 1,
+ ImageOperandsGradShift = 2,
+ ImageOperandsConstOffsetShift = 3,
+ ImageOperandsOffsetShift = 4,
+ ImageOperandsConstOffsetsShift = 5,
+ ImageOperandsSampleShift = 6,
+ ImageOperandsMinLodShift = 7,
+ ImageOperandsMakeTexelAvailableShift = 8,
+ ImageOperandsMakeTexelAvailableKHRShift = 8,
+ ImageOperandsMakeTexelVisibleShift = 9,
+ ImageOperandsMakeTexelVisibleKHRShift = 9,
+ ImageOperandsNonPrivateTexelShift = 10,
+ ImageOperandsNonPrivateTexelKHRShift = 10,
+ ImageOperandsVolatileTexelShift = 11,
+ ImageOperandsVolatileTexelKHRShift = 11,
+ ImageOperandsSignExtendShift = 12,
+ ImageOperandsZeroExtendShift = 13,
+ ImageOperandsNontemporalShift = 14,
+ ImageOperandsOffsetsShift = 16,
+ ImageOperandsMax = 0x7fffffff,
+};
+
+enum ImageOperandsMask {
+ ImageOperandsMaskNone = 0,
+ ImageOperandsBiasMask = 0x00000001,
+ ImageOperandsLodMask = 0x00000002,
+ ImageOperandsGradMask = 0x00000004,
+ ImageOperandsConstOffsetMask = 0x00000008,
+ ImageOperandsOffsetMask = 0x00000010,
+ ImageOperandsConstOffsetsMask = 0x00000020,
+ ImageOperandsSampleMask = 0x00000040,
+ ImageOperandsMinLodMask = 0x00000080,
+ ImageOperandsMakeTexelAvailableMask = 0x00000100,
+ ImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
+ ImageOperandsMakeTexelVisibleMask = 0x00000200,
+ ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
+ ImageOperandsNonPrivateTexelMask = 0x00000400,
+ ImageOperandsNonPrivateTexelKHRMask = 0x00000400,
+ ImageOperandsVolatileTexelMask = 0x00000800,
+ ImageOperandsVolatileTexelKHRMask = 0x00000800,
+ ImageOperandsSignExtendMask = 0x00001000,
+ ImageOperandsZeroExtendMask = 0x00002000,
+ ImageOperandsNontemporalMask = 0x00004000,
+ ImageOperandsOffsetsMask = 0x00010000,
+};
+
+enum FPFastMathModeShift {
+ FPFastMathModeNotNaNShift = 0,
+ FPFastMathModeNotInfShift = 1,
+ FPFastMathModeNSZShift = 2,
+ FPFastMathModeAllowRecipShift = 3,
+ FPFastMathModeFastShift = 4,
+ FPFastMathModeAllowContractFastINTELShift = 16,
+ FPFastMathModeAllowReassocINTELShift = 17,
+ FPFastMathModeMax = 0x7fffffff,
+};
+
+enum FPFastMathModeMask {
+ FPFastMathModeMaskNone = 0,
+ FPFastMathModeNotNaNMask = 0x00000001,
+ FPFastMathModeNotInfMask = 0x00000002,
+ FPFastMathModeNSZMask = 0x00000004,
+ FPFastMathModeAllowRecipMask = 0x00000008,
+ FPFastMathModeFastMask = 0x00000010,
+ FPFastMathModeAllowContractFastINTELMask = 0x00010000,
+ FPFastMathModeAllowReassocINTELMask = 0x00020000,
+};
+
+enum FPRoundingMode {
+ FPRoundingModeRTE = 0,
+ FPRoundingModeRTZ = 1,
+ FPRoundingModeRTP = 2,
+ FPRoundingModeRTN = 3,
+ FPRoundingModeMax = 0x7fffffff,
+};
+
+enum LinkageType {
+ LinkageTypeExport = 0,
+ LinkageTypeImport = 1,
+ LinkageTypeLinkOnceODR = 2,
+ LinkageTypeMax = 0x7fffffff,
+};
+
+enum AccessQualifier {
+ AccessQualifierReadOnly = 0,
+ AccessQualifierWriteOnly = 1,
+ AccessQualifierReadWrite = 2,
+ AccessQualifierMax = 0x7fffffff,
+};
+
+enum FunctionParameterAttribute {
+ FunctionParameterAttributeZext = 0,
+ FunctionParameterAttributeSext = 1,
+ FunctionParameterAttributeByVal = 2,
+ FunctionParameterAttributeSret = 3,
+ FunctionParameterAttributeNoAlias = 4,
+ FunctionParameterAttributeNoCapture = 5,
+ FunctionParameterAttributeNoWrite = 6,
+ FunctionParameterAttributeNoReadWrite = 7,
+ FunctionParameterAttributeRuntimeAlignedINTEL = 5940,
+ FunctionParameterAttributeMax = 0x7fffffff,
+};
+
+enum Decoration {
+ DecorationRelaxedPrecision = 0,
+ DecorationSpecId = 1,
+ DecorationBlock = 2,
+ DecorationBufferBlock = 3,
+ DecorationRowMajor = 4,
+ DecorationColMajor = 5,
+ DecorationArrayStride = 6,
+ DecorationMatrixStride = 7,
+ DecorationGLSLShared = 8,
+ DecorationGLSLPacked = 9,
+ DecorationCPacked = 10,
+ DecorationBuiltIn = 11,
+ DecorationNoPerspective = 13,
+ DecorationFlat = 14,
+ DecorationPatch = 15,
+ DecorationCentroid = 16,
+ DecorationSample = 17,
+ DecorationInvariant = 18,
+ DecorationRestrict = 19,
+ DecorationAliased = 20,
+ DecorationVolatile = 21,
+ DecorationConstant = 22,
+ DecorationCoherent = 23,
+ DecorationNonWritable = 24,
+ DecorationNonReadable = 25,
+ DecorationUniform = 26,
+ DecorationUniformId = 27,
+ DecorationSaturatedConversion = 28,
+ DecorationStream = 29,
+ DecorationLocation = 30,
+ DecorationComponent = 31,
+ DecorationIndex = 32,
+ DecorationBinding = 33,
+ DecorationDescriptorSet = 34,
+ DecorationOffset = 35,
+ DecorationXfbBuffer = 36,
+ DecorationXfbStride = 37,
+ DecorationFuncParamAttr = 38,
+ DecorationFPRoundingMode = 39,
+ DecorationFPFastMathMode = 40,
+ DecorationLinkageAttributes = 41,
+ DecorationNoContraction = 42,
+ DecorationInputAttachmentIndex = 43,
+ DecorationAlignment = 44,
+ DecorationMaxByteOffset = 45,
+ DecorationAlignmentId = 46,
+ DecorationMaxByteOffsetId = 47,
+ DecorationNoSignedWrap = 4469,
+ DecorationNoUnsignedWrap = 4470,
+ DecorationExplicitInterpAMD = 4999,
+ DecorationOverrideCoverageNV = 5248,
+ DecorationPassthroughNV = 5250,
+ DecorationViewportRelativeNV = 5252,
+ DecorationSecondaryViewportRelativeNV = 5256,
+ DecorationPerPrimitiveEXT = 5271,
+ DecorationPerPrimitiveNV = 5271,
+ DecorationPerViewNV = 5272,
+ DecorationPerTaskNV = 5273,
+ DecorationPerVertexKHR = 5285,
+ DecorationPerVertexNV = 5285,
+ DecorationNonUniform = 5300,
+ DecorationNonUniformEXT = 5300,
+ DecorationRestrictPointer = 5355,
+ DecorationRestrictPointerEXT = 5355,
+ DecorationAliasedPointer = 5356,
+ DecorationAliasedPointerEXT = 5356,
+ DecorationHitObjectShaderRecordBufferNV = 5386,
+ DecorationBindlessSamplerNV = 5398,
+ DecorationBindlessImageNV = 5399,
+ DecorationBoundSamplerNV = 5400,
+ DecorationBoundImageNV = 5401,
+ DecorationSIMTCallINTEL = 5599,
+ DecorationReferencedIndirectlyINTEL = 5602,
+ DecorationClobberINTEL = 5607,
+ DecorationSideEffectsINTEL = 5608,
+ DecorationVectorComputeVariableINTEL = 5624,
+ DecorationFuncParamIOKindINTEL = 5625,
+ DecorationVectorComputeFunctionINTEL = 5626,
+ DecorationStackCallINTEL = 5627,
+ DecorationGlobalVariableOffsetINTEL = 5628,
+ DecorationCounterBuffer = 5634,
+ DecorationHlslCounterBufferGOOGLE = 5634,
+ DecorationHlslSemanticGOOGLE = 5635,
+ DecorationUserSemantic = 5635,
+ DecorationUserTypeGOOGLE = 5636,
+ DecorationFunctionRoundingModeINTEL = 5822,
+ DecorationFunctionDenormModeINTEL = 5823,
+ DecorationRegisterINTEL = 5825,
+ DecorationMemoryINTEL = 5826,
+ DecorationNumbanksINTEL = 5827,
+ DecorationBankwidthINTEL = 5828,
+ DecorationMaxPrivateCopiesINTEL = 5829,
+ DecorationSinglepumpINTEL = 5830,
+ DecorationDoublepumpINTEL = 5831,
+ DecorationMaxReplicatesINTEL = 5832,
+ DecorationSimpleDualPortINTEL = 5833,
+ DecorationMergeINTEL = 5834,
+ DecorationBankBitsINTEL = 5835,
+ DecorationForcePow2DepthINTEL = 5836,
+ DecorationBurstCoalesceINTEL = 5899,
+ DecorationCacheSizeINTEL = 5900,
+ DecorationDontStaticallyCoalesceINTEL = 5901,
+ DecorationPrefetchINTEL = 5902,
+ DecorationStallEnableINTEL = 5905,
+ DecorationFuseLoopsInFunctionINTEL = 5907,
+ DecorationMathOpDSPModeINTEL = 5909,
+ DecorationAliasScopeINTEL = 5914,
+ DecorationNoAliasINTEL = 5915,
+ DecorationInitiationIntervalINTEL = 5917,
+ DecorationMaxConcurrencyINTEL = 5918,
+ DecorationPipelineEnableINTEL = 5919,
+ DecorationBufferLocationINTEL = 5921,
+ DecorationIOPipeStorageINTEL = 5944,
+ DecorationFunctionFloatingPointModeINTEL = 6080,
+ DecorationSingleElementVectorINTEL = 6085,
+ DecorationVectorComputeCallableFunctionINTEL = 6087,
+ DecorationMediaBlockIOINTEL = 6140,
+ DecorationMax = 0x7fffffff,
+};
+
+enum BuiltIn {
+ BuiltInPosition = 0,
+ BuiltInPointSize = 1,
+ BuiltInClipDistance = 3,
+ BuiltInCullDistance = 4,
+ BuiltInVertexId = 5,
+ BuiltInInstanceId = 6,
+ BuiltInPrimitiveId = 7,
+ BuiltInInvocationId = 8,
+ BuiltInLayer = 9,
+ BuiltInViewportIndex = 10,
+ BuiltInTessLevelOuter = 11,
+ BuiltInTessLevelInner = 12,
+ BuiltInTessCoord = 13,
+ BuiltInPatchVertices = 14,
+ BuiltInFragCoord = 15,
+ BuiltInPointCoord = 16,
+ BuiltInFrontFacing = 17,
+ BuiltInSampleId = 18,
+ BuiltInSamplePosition = 19,
+ BuiltInSampleMask = 20,
+ BuiltInFragDepth = 22,
+ BuiltInHelperInvocation = 23,
+ BuiltInNumWorkgroups = 24,
+ BuiltInWorkgroupSize = 25,
+ BuiltInWorkgroupId = 26,
+ BuiltInLocalInvocationId = 27,
+ BuiltInGlobalInvocationId = 28,
+ BuiltInLocalInvocationIndex = 29,
+ BuiltInWorkDim = 30,
+ BuiltInGlobalSize = 31,
+ BuiltInEnqueuedWorkgroupSize = 32,
+ BuiltInGlobalOffset = 33,
+ BuiltInGlobalLinearId = 34,
+ BuiltInSubgroupSize = 36,
+ BuiltInSubgroupMaxSize = 37,
+ BuiltInNumSubgroups = 38,
+ BuiltInNumEnqueuedSubgroups = 39,
+ BuiltInSubgroupId = 40,
+ BuiltInSubgroupLocalInvocationId = 41,
+ BuiltInVertexIndex = 42,
+ BuiltInInstanceIndex = 43,
+ BuiltInCoreIDARM = 4160,
+ BuiltInCoreCountARM = 4161,
+ BuiltInCoreMaxIDARM = 4162,
+ BuiltInWarpIDARM = 4163,
+ BuiltInWarpMaxIDARM = 4164,
+ BuiltInSubgroupEqMask = 4416,
+ BuiltInSubgroupEqMaskKHR = 4416,
+ BuiltInSubgroupGeMask = 4417,
+ BuiltInSubgroupGeMaskKHR = 4417,
+ BuiltInSubgroupGtMask = 4418,
+ BuiltInSubgroupGtMaskKHR = 4418,
+ BuiltInSubgroupLeMask = 4419,
+ BuiltInSubgroupLeMaskKHR = 4419,
+ BuiltInSubgroupLtMask = 4420,
+ BuiltInSubgroupLtMaskKHR = 4420,
+ BuiltInBaseVertex = 4424,
+ BuiltInBaseInstance = 4425,
+ BuiltInDrawIndex = 4426,
+ BuiltInPrimitiveShadingRateKHR = 4432,
+ BuiltInDeviceIndex = 4438,
+ BuiltInViewIndex = 4440,
+ BuiltInShadingRateKHR = 4444,
+ BuiltInBaryCoordNoPerspAMD = 4992,
+ BuiltInBaryCoordNoPerspCentroidAMD = 4993,
+ BuiltInBaryCoordNoPerspSampleAMD = 4994,
+ BuiltInBaryCoordSmoothAMD = 4995,
+ BuiltInBaryCoordSmoothCentroidAMD = 4996,
+ BuiltInBaryCoordSmoothSampleAMD = 4997,
+ BuiltInBaryCoordPullModelAMD = 4998,
+ BuiltInFragStencilRefEXT = 5014,
+ BuiltInViewportMaskNV = 5253,
+ BuiltInSecondaryPositionNV = 5257,
+ BuiltInSecondaryViewportMaskNV = 5258,
+ BuiltInPositionPerViewNV = 5261,
+ BuiltInViewportMaskPerViewNV = 5262,
+ BuiltInFullyCoveredEXT = 5264,
+ BuiltInTaskCountNV = 5274,
+ BuiltInPrimitiveCountNV = 5275,
+ BuiltInPrimitiveIndicesNV = 5276,
+ BuiltInClipDistancePerViewNV = 5277,
+ BuiltInCullDistancePerViewNV = 5278,
+ BuiltInLayerPerViewNV = 5279,
+ BuiltInMeshViewCountNV = 5280,
+ BuiltInMeshViewIndicesNV = 5281,
+ BuiltInBaryCoordKHR = 5286,
+ BuiltInBaryCoordNV = 5286,
+ BuiltInBaryCoordNoPerspKHR = 5287,
+ BuiltInBaryCoordNoPerspNV = 5287,
+ BuiltInFragSizeEXT = 5292,
+ BuiltInFragmentSizeNV = 5292,
+ BuiltInFragInvocationCountEXT = 5293,
+ BuiltInInvocationsPerPixelNV = 5293,
+ BuiltInPrimitivePointIndicesEXT = 5294,
+ BuiltInPrimitiveLineIndicesEXT = 5295,
+ BuiltInPrimitiveTriangleIndicesEXT = 5296,
+ BuiltInCullPrimitiveEXT = 5299,
+ BuiltInLaunchIdKHR = 5319,
+ BuiltInLaunchIdNV = 5319,
+ BuiltInLaunchSizeKHR = 5320,
+ BuiltInLaunchSizeNV = 5320,
+ BuiltInWorldRayOriginKHR = 5321,
+ BuiltInWorldRayOriginNV = 5321,
+ BuiltInWorldRayDirectionKHR = 5322,
+ BuiltInWorldRayDirectionNV = 5322,
+ BuiltInObjectRayOriginKHR = 5323,
+ BuiltInObjectRayOriginNV = 5323,
+ BuiltInObjectRayDirectionKHR = 5324,
+ BuiltInObjectRayDirectionNV = 5324,
+ BuiltInRayTminKHR = 5325,
+ BuiltInRayTminNV = 5325,
+ BuiltInRayTmaxKHR = 5326,
+ BuiltInRayTmaxNV = 5326,
+ BuiltInInstanceCustomIndexKHR = 5327,
+ BuiltInInstanceCustomIndexNV = 5327,
+ BuiltInObjectToWorldKHR = 5330,
+ BuiltInObjectToWorldNV = 5330,
+ BuiltInWorldToObjectKHR = 5331,
+ BuiltInWorldToObjectNV = 5331,
+ BuiltInHitTNV = 5332,
+ BuiltInHitKindKHR = 5333,
+ BuiltInHitKindNV = 5333,
+ BuiltInCurrentRayTimeNV = 5334,
+ BuiltInIncomingRayFlagsKHR = 5351,
+ BuiltInIncomingRayFlagsNV = 5351,
+ BuiltInRayGeometryIndexKHR = 5352,
+ BuiltInWarpsPerSMNV = 5374,
+ BuiltInSMCountNV = 5375,
+ BuiltInWarpIDNV = 5376,
+ BuiltInSMIDNV = 5377,
+ BuiltInCullMaskKHR = 6021,
+ BuiltInMax = 0x7fffffff,
+};
+
+enum SelectionControlShift {
+ SelectionControlFlattenShift = 0,
+ SelectionControlDontFlattenShift = 1,
+ SelectionControlMax = 0x7fffffff,
+};
+
+enum SelectionControlMask {
+ SelectionControlMaskNone = 0,
+ SelectionControlFlattenMask = 0x00000001,
+ SelectionControlDontFlattenMask = 0x00000002,
+};
+
+enum LoopControlShift {
+ LoopControlUnrollShift = 0,
+ LoopControlDontUnrollShift = 1,
+ LoopControlDependencyInfiniteShift = 2,
+ LoopControlDependencyLengthShift = 3,
+ LoopControlMinIterationsShift = 4,
+ LoopControlMaxIterationsShift = 5,
+ LoopControlIterationMultipleShift = 6,
+ LoopControlPeelCountShift = 7,
+ LoopControlPartialCountShift = 8,
+ LoopControlInitiationIntervalINTELShift = 16,
+ LoopControlMaxConcurrencyINTELShift = 17,
+ LoopControlDependencyArrayINTELShift = 18,
+ LoopControlPipelineEnableINTELShift = 19,
+ LoopControlLoopCoalesceINTELShift = 20,
+ LoopControlMaxInterleavingINTELShift = 21,
+ LoopControlSpeculatedIterationsINTELShift = 22,
+ LoopControlNoFusionINTELShift = 23,
+ LoopControlLoopCountINTELShift = 24,
+ LoopControlMaxReinvocationDelayINTELShift = 25,
+ LoopControlMax = 0x7fffffff,
+};
+
+enum LoopControlMask {
+ LoopControlMaskNone = 0,
+ LoopControlUnrollMask = 0x00000001,
+ LoopControlDontUnrollMask = 0x00000002,
+ LoopControlDependencyInfiniteMask = 0x00000004,
+ LoopControlDependencyLengthMask = 0x00000008,
+ LoopControlMinIterationsMask = 0x00000010,
+ LoopControlMaxIterationsMask = 0x00000020,
+ LoopControlIterationMultipleMask = 0x00000040,
+ LoopControlPeelCountMask = 0x00000080,
+ LoopControlPartialCountMask = 0x00000100,
+ LoopControlInitiationIntervalINTELMask = 0x00010000,
+ LoopControlMaxConcurrencyINTELMask = 0x00020000,
+ LoopControlDependencyArrayINTELMask = 0x00040000,
+ LoopControlPipelineEnableINTELMask = 0x00080000,
+ LoopControlLoopCoalesceINTELMask = 0x00100000,
+ LoopControlMaxInterleavingINTELMask = 0x00200000,
+ LoopControlSpeculatedIterationsINTELMask = 0x00400000,
+ LoopControlNoFusionINTELMask = 0x00800000,
+ LoopControlLoopCountINTELMask = 0x01000000,
+ LoopControlMaxReinvocationDelayINTELMask = 0x02000000,
+};
+
+enum FunctionControlShift {
+ FunctionControlInlineShift = 0,
+ FunctionControlDontInlineShift = 1,
+ FunctionControlPureShift = 2,
+ FunctionControlConstShift = 3,
+ FunctionControlOptNoneINTELShift = 16,
+ FunctionControlMax = 0x7fffffff,
+};
+
+enum FunctionControlMask {
+ FunctionControlMaskNone = 0,
+ FunctionControlInlineMask = 0x00000001,
+ FunctionControlDontInlineMask = 0x00000002,
+ FunctionControlPureMask = 0x00000004,
+ FunctionControlConstMask = 0x00000008,
+ FunctionControlOptNoneINTELMask = 0x00010000,
+};
+
+enum MemorySemanticsShift {
+ MemorySemanticsAcquireShift = 1,
+ MemorySemanticsReleaseShift = 2,
+ MemorySemanticsAcquireReleaseShift = 3,
+ MemorySemanticsSequentiallyConsistentShift = 4,
+ MemorySemanticsUniformMemoryShift = 6,
+ MemorySemanticsSubgroupMemoryShift = 7,
+ MemorySemanticsWorkgroupMemoryShift = 8,
+ MemorySemanticsCrossWorkgroupMemoryShift = 9,
+ MemorySemanticsAtomicCounterMemoryShift = 10,
+ MemorySemanticsImageMemoryShift = 11,
+ MemorySemanticsOutputMemoryShift = 12,
+ MemorySemanticsOutputMemoryKHRShift = 12,
+ MemorySemanticsMakeAvailableShift = 13,
+ MemorySemanticsMakeAvailableKHRShift = 13,
+ MemorySemanticsMakeVisibleShift = 14,
+ MemorySemanticsMakeVisibleKHRShift = 14,
+ MemorySemanticsVolatileShift = 15,
+ MemorySemanticsMax = 0x7fffffff,
+};
+
+enum MemorySemanticsMask {
+ MemorySemanticsMaskNone = 0,
+ MemorySemanticsAcquireMask = 0x00000002,
+ MemorySemanticsReleaseMask = 0x00000004,
+ MemorySemanticsAcquireReleaseMask = 0x00000008,
+ MemorySemanticsSequentiallyConsistentMask = 0x00000010,
+ MemorySemanticsUniformMemoryMask = 0x00000040,
+ MemorySemanticsSubgroupMemoryMask = 0x00000080,
+ MemorySemanticsWorkgroupMemoryMask = 0x00000100,
+ MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
+ MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
+ MemorySemanticsImageMemoryMask = 0x00000800,
+ MemorySemanticsOutputMemoryMask = 0x00001000,
+ MemorySemanticsOutputMemoryKHRMask = 0x00001000,
+ MemorySemanticsMakeAvailableMask = 0x00002000,
+ MemorySemanticsMakeAvailableKHRMask = 0x00002000,
+ MemorySemanticsMakeVisibleMask = 0x00004000,
+ MemorySemanticsMakeVisibleKHRMask = 0x00004000,
+ MemorySemanticsVolatileMask = 0x00008000,
+};
+
+enum MemoryAccessShift {
+ MemoryAccessVolatileShift = 0,
+ MemoryAccessAlignedShift = 1,
+ MemoryAccessNontemporalShift = 2,
+ MemoryAccessMakePointerAvailableShift = 3,
+ MemoryAccessMakePointerAvailableKHRShift = 3,
+ MemoryAccessMakePointerVisibleShift = 4,
+ MemoryAccessMakePointerVisibleKHRShift = 4,
+ MemoryAccessNonPrivatePointerShift = 5,
+ MemoryAccessNonPrivatePointerKHRShift = 5,
+ MemoryAccessAliasScopeINTELMaskShift = 16,
+ MemoryAccessNoAliasINTELMaskShift = 17,
+ MemoryAccessMax = 0x7fffffff,
+};
+
+enum MemoryAccessMask {
+ MemoryAccessMaskNone = 0,
+ MemoryAccessVolatileMask = 0x00000001,
+ MemoryAccessAlignedMask = 0x00000002,
+ MemoryAccessNontemporalMask = 0x00000004,
+ MemoryAccessMakePointerAvailableMask = 0x00000008,
+ MemoryAccessMakePointerAvailableKHRMask = 0x00000008,
+ MemoryAccessMakePointerVisibleMask = 0x00000010,
+ MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
+ MemoryAccessNonPrivatePointerMask = 0x00000020,
+ MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
+ MemoryAccessAliasScopeINTELMaskMask = 0x00010000,
+ MemoryAccessNoAliasINTELMaskMask = 0x00020000,
+};
+
+enum Scope {
+ ScopeCrossDevice = 0,
+ ScopeDevice = 1,
+ ScopeWorkgroup = 2,
+ ScopeSubgroup = 3,
+ ScopeInvocation = 4,
+ ScopeQueueFamily = 5,
+ ScopeQueueFamilyKHR = 5,
+ ScopeShaderCallKHR = 6,
+ ScopeMax = 0x7fffffff,
+};
+
+enum GroupOperation {
+ GroupOperationReduce = 0,
+ GroupOperationInclusiveScan = 1,
+ GroupOperationExclusiveScan = 2,
+ GroupOperationClusteredReduce = 3,
+ GroupOperationPartitionedReduceNV = 6,
+ GroupOperationPartitionedInclusiveScanNV = 7,
+ GroupOperationPartitionedExclusiveScanNV = 8,
+ GroupOperationMax = 0x7fffffff,
+};
+
+enum KernelEnqueueFlags {
+ KernelEnqueueFlagsNoWait = 0,
+ KernelEnqueueFlagsWaitKernel = 1,
+ KernelEnqueueFlagsWaitWorkGroup = 2,
+ KernelEnqueueFlagsMax = 0x7fffffff,
+};
+
+enum KernelProfilingInfoShift {
+ KernelProfilingInfoCmdExecTimeShift = 0,
+ KernelProfilingInfoMax = 0x7fffffff,
+};
+
+enum KernelProfilingInfoMask {
+ KernelProfilingInfoMaskNone = 0,
+ KernelProfilingInfoCmdExecTimeMask = 0x00000001,
+};
+
+enum Capability {
+ CapabilityMatrix = 0,
+ CapabilityShader = 1,
+ CapabilityGeometry = 2,
+ CapabilityTessellation = 3,
+ CapabilityAddresses = 4,
+ CapabilityLinkage = 5,
+ CapabilityKernel = 6,
+ CapabilityVector16 = 7,
+ CapabilityFloat16Buffer = 8,
+ CapabilityFloat16 = 9,
+ CapabilityFloat64 = 10,
+ CapabilityInt64 = 11,
+ CapabilityInt64Atomics = 12,
+ CapabilityImageBasic = 13,
+ CapabilityImageReadWrite = 14,
+ CapabilityImageMipmap = 15,
+ CapabilityPipes = 17,
+ CapabilityGroups = 18,
+ CapabilityDeviceEnqueue = 19,
+ CapabilityLiteralSampler = 20,
+ CapabilityAtomicStorage = 21,
+ CapabilityInt16 = 22,
+ CapabilityTessellationPointSize = 23,
+ CapabilityGeometryPointSize = 24,
+ CapabilityImageGatherExtended = 25,
+ CapabilityStorageImageMultisample = 27,
+ CapabilityUniformBufferArrayDynamicIndexing = 28,
+ CapabilitySampledImageArrayDynamicIndexing = 29,
+ CapabilityStorageBufferArrayDynamicIndexing = 30,
+ CapabilityStorageImageArrayDynamicIndexing = 31,
+ CapabilityClipDistance = 32,
+ CapabilityCullDistance = 33,
+ CapabilityImageCubeArray = 34,
+ CapabilitySampleRateShading = 35,
+ CapabilityImageRect = 36,
+ CapabilitySampledRect = 37,
+ CapabilityGenericPointer = 38,
+ CapabilityInt8 = 39,
+ CapabilityInputAttachment = 40,
+ CapabilitySparseResidency = 41,
+ CapabilityMinLod = 42,
+ CapabilitySampled1D = 43,
+ CapabilityImage1D = 44,
+ CapabilitySampledCubeArray = 45,
+ CapabilitySampledBuffer = 46,
+ CapabilityImageBuffer = 47,
+ CapabilityImageMSArray = 48,
+ CapabilityStorageImageExtendedFormats = 49,
+ CapabilityImageQuery = 50,
+ CapabilityDerivativeControl = 51,
+ CapabilityInterpolationFunction = 52,
+ CapabilityTransformFeedback = 53,
+ CapabilityGeometryStreams = 54,
+ CapabilityStorageImageReadWithoutFormat = 55,
+ CapabilityStorageImageWriteWithoutFormat = 56,
+ CapabilityMultiViewport = 57,
+ CapabilitySubgroupDispatch = 58,
+ CapabilityNamedBarrier = 59,
+ CapabilityPipeStorage = 60,
+ CapabilityGroupNonUniform = 61,
+ CapabilityGroupNonUniformVote = 62,
+ CapabilityGroupNonUniformArithmetic = 63,
+ CapabilityGroupNonUniformBallot = 64,
+ CapabilityGroupNonUniformShuffle = 65,
+ CapabilityGroupNonUniformShuffleRelative = 66,
+ CapabilityGroupNonUniformClustered = 67,
+ CapabilityGroupNonUniformQuad = 68,
+ CapabilityShaderLayer = 69,
+ CapabilityShaderViewportIndex = 70,
+ CapabilityUniformDecoration = 71,
+ CapabilityCoreBuiltinsARM = 4165,
+ CapabilityFragmentShadingRateKHR = 4422,
+ CapabilitySubgroupBallotKHR = 4423,
+ CapabilityDrawParameters = 4427,
+ CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
+ CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
+ CapabilitySubgroupVoteKHR = 4431,
+ CapabilityStorageBuffer16BitAccess = 4433,
+ CapabilityStorageUniformBufferBlock16 = 4433,
+ CapabilityStorageUniform16 = 4434,
+ CapabilityUniformAndStorageBuffer16BitAccess = 4434,
+ CapabilityStoragePushConstant16 = 4435,
+ CapabilityStorageInputOutput16 = 4436,
+ CapabilityDeviceGroup = 4437,
+ CapabilityMultiView = 4439,
+ CapabilityVariablePointersStorageBuffer = 4441,
+ CapabilityVariablePointers = 4442,
+ CapabilityAtomicStorageOps = 4445,
+ CapabilitySampleMaskPostDepthCoverage = 4447,
+ CapabilityStorageBuffer8BitAccess = 4448,
+ CapabilityUniformAndStorageBuffer8BitAccess = 4449,
+ CapabilityStoragePushConstant8 = 4450,
+ CapabilityDenormPreserve = 4464,
+ CapabilityDenormFlushToZero = 4465,
+ CapabilitySignedZeroInfNanPreserve = 4466,
+ CapabilityRoundingModeRTE = 4467,
+ CapabilityRoundingModeRTZ = 4468,
+ CapabilityRayQueryProvisionalKHR = 4471,
+ CapabilityRayQueryKHR = 4472,
+ CapabilityRayTraversalPrimitiveCullingKHR = 4478,
+ CapabilityRayTracingKHR = 4479,
+ CapabilityFloat16ImageAMD = 5008,
+ CapabilityImageGatherBiasLodAMD = 5009,
+ CapabilityFragmentMaskAMD = 5010,
+ CapabilityStencilExportEXT = 5013,
+ CapabilityImageReadWriteLodAMD = 5015,
+ CapabilityInt64ImageEXT = 5016,
+ CapabilityShaderClockKHR = 5055,
+ CapabilitySampleMaskOverrideCoverageNV = 5249,
+ CapabilityGeometryShaderPassthroughNV = 5251,
+ CapabilityShaderViewportIndexLayerEXT = 5254,
+ CapabilityShaderViewportIndexLayerNV = 5254,
+ CapabilityShaderViewportMaskNV = 5255,
+ CapabilityShaderStereoViewNV = 5259,
+ CapabilityPerViewAttributesNV = 5260,
+ CapabilityFragmentFullyCoveredEXT = 5265,
+ CapabilityMeshShadingNV = 5266,
+ CapabilityImageFootprintNV = 5282,
+ CapabilityMeshShadingEXT = 5283,
+ CapabilityFragmentBarycentricKHR = 5284,
+ CapabilityFragmentBarycentricNV = 5284,
+ CapabilityComputeDerivativeGroupQuadsNV = 5288,
+ CapabilityFragmentDensityEXT = 5291,
+ CapabilityShadingRateNV = 5291,
+ CapabilityGroupNonUniformPartitionedNV = 5297,
+ CapabilityShaderNonUniform = 5301,
+ CapabilityShaderNonUniformEXT = 5301,
+ CapabilityRuntimeDescriptorArray = 5302,
+ CapabilityRuntimeDescriptorArrayEXT = 5302,
+ CapabilityInputAttachmentArrayDynamicIndexing = 5303,
+ CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
+ CapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
+ CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
+ CapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
+ CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
+ CapabilityUniformBufferArrayNonUniformIndexing = 5306,
+ CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
+ CapabilitySampledImageArrayNonUniformIndexing = 5307,
+ CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
+ CapabilityStorageBufferArrayNonUniformIndexing = 5308,
+ CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
+ CapabilityStorageImageArrayNonUniformIndexing = 5309,
+ CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
+ CapabilityInputAttachmentArrayNonUniformIndexing = 5310,
+ CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
+ CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
+ CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
+ CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
+ CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+ CapabilityRayTracingNV = 5340,
+ CapabilityRayTracingMotionBlurNV = 5341,
+ CapabilityVulkanMemoryModel = 5345,
+ CapabilityVulkanMemoryModelKHR = 5345,
+ CapabilityVulkanMemoryModelDeviceScope = 5346,
+ CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
+ CapabilityPhysicalStorageBufferAddresses = 5347,
+ CapabilityPhysicalStorageBufferAddressesEXT = 5347,
+ CapabilityComputeDerivativeGroupLinearNV = 5350,
+ CapabilityRayTracingProvisionalKHR = 5353,
+ CapabilityCooperativeMatrixNV = 5357,
+ CapabilityFragmentShaderSampleInterlockEXT = 5363,
+ CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
+ CapabilityShaderSMBuiltinsNV = 5373,
+ CapabilityFragmentShaderPixelInterlockEXT = 5378,
+ CapabilityDemoteToHelperInvocation = 5379,
+ CapabilityDemoteToHelperInvocationEXT = 5379,
+ CapabilityRayTracingOpacityMicromapEXT = 5381,
+ CapabilityShaderInvocationReorderNV = 5383,
+ CapabilityBindlessTextureNV = 5390,
+ CapabilitySubgroupShuffleINTEL = 5568,
+ CapabilitySubgroupBufferBlockIOINTEL = 5569,
+ CapabilitySubgroupImageBlockIOINTEL = 5570,
+ CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ CapabilityRoundToInfinityINTEL = 5582,
+ CapabilityFloatingPointModeINTEL = 5583,
+ CapabilityIntegerFunctions2INTEL = 5584,
+ CapabilityFunctionPointersINTEL = 5603,
+ CapabilityIndirectReferencesINTEL = 5604,
+ CapabilityAsmINTEL = 5606,
+ CapabilityAtomicFloat32MinMaxEXT = 5612,
+ CapabilityAtomicFloat64MinMaxEXT = 5613,
+ CapabilityAtomicFloat16MinMaxEXT = 5616,
+ CapabilityVectorComputeINTEL = 5617,
+ CapabilityVectorAnyINTEL = 5619,
+ CapabilityExpectAssumeKHR = 5629,
+ CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
+ CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
+ CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
+ CapabilityVariableLengthArrayINTEL = 5817,
+ CapabilityFunctionFloatControlINTEL = 5821,
+ CapabilityFPGAMemoryAttributesINTEL = 5824,
+ CapabilityFPFastMathModeINTEL = 5837,
+ CapabilityArbitraryPrecisionIntegersINTEL = 5844,
+ CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
+ CapabilityUnstructuredLoopControlsINTEL = 5886,
+ CapabilityFPGALoopControlsINTEL = 5888,
+ CapabilityKernelAttributesINTEL = 5892,
+ CapabilityFPGAKernelAttributesINTEL = 5897,
+ CapabilityFPGAMemoryAccessesINTEL = 5898,
+ CapabilityFPGAClusterAttributesINTEL = 5904,
+ CapabilityLoopFuseINTEL = 5906,
+ CapabilityFPGADSPControlINTEL = 5908,
+ CapabilityMemoryAccessAliasingINTEL = 5910,
+ CapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
+ CapabilityFPGABufferLocationINTEL = 5920,
+ CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
+ CapabilityUSMStorageClassesINTEL = 5935,
+ CapabilityRuntimeAlignedAttributeINTEL = 5939,
+ CapabilityIOPipesINTEL = 5943,
+ CapabilityBlockingPipesINTEL = 5945,
+ CapabilityFPGARegINTEL = 5948,
+ CapabilityDotProductInputAll = 6016,
+ CapabilityDotProductInputAllKHR = 6016,
+ CapabilityDotProductInput4x8Bit = 6017,
+ CapabilityDotProductInput4x8BitKHR = 6017,
+ CapabilityDotProductInput4x8BitPacked = 6018,
+ 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,
+};
+
+enum RayFlagsShift {
+ RayFlagsOpaqueKHRShift = 0,
+ RayFlagsNoOpaqueKHRShift = 1,
+ RayFlagsTerminateOnFirstHitKHRShift = 2,
+ RayFlagsSkipClosestHitShaderKHRShift = 3,
+ RayFlagsCullBackFacingTrianglesKHRShift = 4,
+ RayFlagsCullFrontFacingTrianglesKHRShift = 5,
+ RayFlagsCullOpaqueKHRShift = 6,
+ RayFlagsCullNoOpaqueKHRShift = 7,
+ RayFlagsSkipTrianglesKHRShift = 8,
+ RayFlagsSkipAABBsKHRShift = 9,
+ RayFlagsForceOpacityMicromap2StateEXTShift = 10,
+ RayFlagsMax = 0x7fffffff,
+};
+
+enum RayFlagsMask {
+ RayFlagsMaskNone = 0,
+ RayFlagsOpaqueKHRMask = 0x00000001,
+ RayFlagsNoOpaqueKHRMask = 0x00000002,
+ RayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
+ RayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
+ RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
+ RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
+ RayFlagsCullOpaqueKHRMask = 0x00000040,
+ RayFlagsCullNoOpaqueKHRMask = 0x00000080,
+ RayFlagsSkipTrianglesKHRMask = 0x00000100,
+ RayFlagsSkipAABBsKHRMask = 0x00000200,
+ RayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
+};
+
+enum RayQueryIntersection {
+ RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
+ RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
+ RayQueryIntersectionMax = 0x7fffffff,
+};
+
+enum RayQueryCommittedIntersectionType {
+ RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
+ RayQueryCommittedIntersectionTypeMax = 0x7fffffff,
+};
+
+enum RayQueryCandidateIntersectionType {
+ RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
+ RayQueryCandidateIntersectionTypeMax = 0x7fffffff,
+};
+
+enum FragmentShadingRateShift {
+ FragmentShadingRateVertical2PixelsShift = 0,
+ FragmentShadingRateVertical4PixelsShift = 1,
+ FragmentShadingRateHorizontal2PixelsShift = 2,
+ FragmentShadingRateHorizontal4PixelsShift = 3,
+ FragmentShadingRateMax = 0x7fffffff,
+};
+
+enum FragmentShadingRateMask {
+ FragmentShadingRateMaskNone = 0,
+ FragmentShadingRateVertical2PixelsMask = 0x00000001,
+ FragmentShadingRateVertical4PixelsMask = 0x00000002,
+ FragmentShadingRateHorizontal2PixelsMask = 0x00000004,
+ FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
+};
+
+enum FPDenormMode {
+ FPDenormModePreserve = 0,
+ FPDenormModeFlushToZero = 1,
+ FPDenormModeMax = 0x7fffffff,
+};
+
+enum FPOperationMode {
+ FPOperationModeIEEE = 0,
+ FPOperationModeALT = 1,
+ FPOperationModeMax = 0x7fffffff,
+};
+
+enum QuantizationModes {
+ QuantizationModesTRN = 0,
+ QuantizationModesTRN_ZERO = 1,
+ QuantizationModesRND = 2,
+ QuantizationModesRND_ZERO = 3,
+ QuantizationModesRND_INF = 4,
+ QuantizationModesRND_MIN_INF = 5,
+ QuantizationModesRND_CONV = 6,
+ QuantizationModesRND_CONV_ODD = 7,
+ QuantizationModesMax = 0x7fffffff,
+};
+
+enum OverflowModes {
+ OverflowModesWRAP = 0,
+ OverflowModesSAT = 1,
+ OverflowModesSAT_ZERO = 2,
+ OverflowModesSAT_SYM = 3,
+ OverflowModesMax = 0x7fffffff,
+};
+
+enum PackedVectorFormat {
+ PackedVectorFormatPackedVectorFormat4x8Bit = 0,
+ PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
+ PackedVectorFormatMax = 0x7fffffff,
+};
+
+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,
+ OpHitObjectRecordHitMotionNV = 5249,
+ OpHitObjectRecordHitWithIndexMotionNV = 5250,
+ OpHitObjectRecordMissMotionNV = 5251,
+ OpHitObjectGetWorldToObjectNV = 5252,
+ OpHitObjectGetObjectToWorldNV = 5253,
+ OpHitObjectGetObjectRayDirectionNV = 5254,
+ OpHitObjectGetObjectRayOriginNV = 5255,
+ OpHitObjectTraceRayMotionNV = 5256,
+ OpHitObjectGetShaderRecordBufferHandleNV = 5257,
+ OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+ OpHitObjectRecordEmptyNV = 5259,
+ OpHitObjectTraceRayNV = 5260,
+ OpHitObjectRecordHitNV = 5261,
+ OpHitObjectRecordHitWithIndexNV = 5262,
+ OpHitObjectRecordMissNV = 5263,
+ OpHitObjectExecuteShaderNV = 5264,
+ OpHitObjectGetCurrentTimeNV = 5265,
+ OpHitObjectGetAttributesNV = 5266,
+ OpHitObjectGetHitKindNV = 5267,
+ OpHitObjectGetPrimitiveIndexNV = 5268,
+ OpHitObjectGetGeometryIndexNV = 5269,
+ OpHitObjectGetInstanceIdNV = 5270,
+ OpHitObjectGetInstanceCustomIndexNV = 5271,
+ OpHitObjectGetWorldRayDirectionNV = 5272,
+ OpHitObjectGetWorldRayOriginNV = 5273,
+ OpHitObjectGetRayTMaxNV = 5274,
+ OpHitObjectGetRayTMinNV = 5275,
+ OpHitObjectIsEmptyNV = 5276,
+ OpHitObjectIsHitNV = 5277,
+ OpHitObjectIsMissNV = 5278,
+ OpReorderThreadWithHitObjectNV = 5279,
+ OpReorderThreadWithHintNV = 5280,
+ OpTypeHitObjectNV = 5281,
+ 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,
+ 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) {
+ default: /* unknown opcode */ break;
+ case OpNop: *hasResult = false; *hasResultType = false; break;
+ case OpUndef: *hasResult = true; *hasResultType = true; break;
+ case OpSourceContinued: *hasResult = false; *hasResultType = false; break;
+ case OpSource: *hasResult = false; *hasResultType = false; break;
+ case OpSourceExtension: *hasResult = false; *hasResultType = false; break;
+ case OpName: *hasResult = false; *hasResultType = false; break;
+ case OpMemberName: *hasResult = false; *hasResultType = false; break;
+ case OpString: *hasResult = true; *hasResultType = false; break;
+ case OpLine: *hasResult = false; *hasResultType = false; break;
+ case OpExtension: *hasResult = false; *hasResultType = false; break;
+ case OpExtInstImport: *hasResult = true; *hasResultType = false; break;
+ case OpExtInst: *hasResult = true; *hasResultType = true; break;
+ case OpMemoryModel: *hasResult = false; *hasResultType = false; break;
+ case OpEntryPoint: *hasResult = false; *hasResultType = false; break;
+ case OpExecutionMode: *hasResult = false; *hasResultType = false; break;
+ case OpCapability: *hasResult = false; *hasResultType = false; break;
+ case OpTypeVoid: *hasResult = true; *hasResultType = false; break;
+ case OpTypeBool: *hasResult = true; *hasResultType = false; break;
+ case OpTypeInt: *hasResult = true; *hasResultType = false; break;
+ case OpTypeFloat: *hasResult = true; *hasResultType = false; break;
+ case OpTypeVector: *hasResult = true; *hasResultType = false; break;
+ case OpTypeMatrix: *hasResult = true; *hasResultType = false; break;
+ case OpTypeImage: *hasResult = true; *hasResultType = false; break;
+ case OpTypeSampler: *hasResult = true; *hasResultType = false; break;
+ case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
+ case OpTypeArray: *hasResult = true; *hasResultType = false; break;
+ case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
+ case OpTypeStruct: *hasResult = true; *hasResultType = false; break;
+ case OpTypeOpaque: *hasResult = true; *hasResultType = false; break;
+ case OpTypePointer: *hasResult = true; *hasResultType = false; break;
+ case OpTypeFunction: *hasResult = true; *hasResultType = false; break;
+ case OpTypeEvent: *hasResult = true; *hasResultType = false; break;
+ case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
+ case OpTypeReserveId: *hasResult = true; *hasResultType = false; break;
+ case OpTypeQueue: *hasResult = true; *hasResultType = false; break;
+ case OpTypePipe: *hasResult = true; *hasResultType = false; break;
+ case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
+ case OpConstantTrue: *hasResult = true; *hasResultType = true; break;
+ case OpConstantFalse: *hasResult = true; *hasResultType = true; break;
+ case OpConstant: *hasResult = true; *hasResultType = true; break;
+ case OpConstantComposite: *hasResult = true; *hasResultType = true; break;
+ case OpConstantSampler: *hasResult = true; *hasResultType = true; break;
+ case OpConstantNull: *hasResult = true; *hasResultType = true; break;
+ case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
+ case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
+ case OpSpecConstant: *hasResult = true; *hasResultType = true; break;
+ case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
+ case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
+ case OpFunction: *hasResult = true; *hasResultType = true; break;
+ case OpFunctionParameter: *hasResult = true; *hasResultType = true; break;
+ case OpFunctionEnd: *hasResult = false; *hasResultType = false; break;
+ case OpFunctionCall: *hasResult = true; *hasResultType = true; break;
+ case OpVariable: *hasResult = true; *hasResultType = true; break;
+ case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
+ case OpLoad: *hasResult = true; *hasResultType = true; break;
+ case OpStore: *hasResult = false; *hasResultType = false; break;
+ case OpCopyMemory: *hasResult = false; *hasResultType = false; break;
+ case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
+ case OpAccessChain: *hasResult = true; *hasResultType = true; break;
+ case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
+ case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
+ case OpArrayLength: *hasResult = true; *hasResultType = true; break;
+ case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
+ case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
+ case OpDecorate: *hasResult = false; *hasResultType = false; break;
+ case OpMemberDecorate: *hasResult = false; *hasResultType = false; break;
+ case OpDecorationGroup: *hasResult = true; *hasResultType = false; break;
+ case OpGroupDecorate: *hasResult = false; *hasResultType = false; break;
+ case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
+ case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
+ case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
+ case OpVectorShuffle: *hasResult = true; *hasResultType = true; break;
+ case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
+ case OpCompositeExtract: *hasResult = true; *hasResultType = true; break;
+ case OpCompositeInsert: *hasResult = true; *hasResultType = true; break;
+ case OpCopyObject: *hasResult = true; *hasResultType = true; break;
+ case OpTranspose: *hasResult = true; *hasResultType = true; break;
+ case OpSampledImage: *hasResult = true; *hasResultType = true; break;
+ case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageFetch: *hasResult = true; *hasResultType = true; break;
+ case OpImageGather: *hasResult = true; *hasResultType = true; break;
+ case OpImageDrefGather: *hasResult = true; *hasResultType = true; break;
+ case OpImageRead: *hasResult = true; *hasResultType = true; break;
+ case OpImageWrite: *hasResult = false; *hasResultType = false; break;
+ case OpImage: *hasResult = true; *hasResultType = true; break;
+ case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
+ case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
+ case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageQuerySize: *hasResult = true; *hasResultType = true; break;
+ case OpImageQueryLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
+ case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
+ case OpConvertFToU: *hasResult = true; *hasResultType = true; break;
+ case OpConvertFToS: *hasResult = true; *hasResultType = true; break;
+ case OpConvertSToF: *hasResult = true; *hasResultType = true; break;
+ case OpConvertUToF: *hasResult = true; *hasResultType = true; break;
+ case OpUConvert: *hasResult = true; *hasResultType = true; break;
+ case OpSConvert: *hasResult = true; *hasResultType = true; break;
+ case OpFConvert: *hasResult = true; *hasResultType = true; break;
+ case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
+ case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
+ case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
+ case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
+ case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
+ case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
+ case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
+ case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
+ case OpBitcast: *hasResult = true; *hasResultType = true; break;
+ case OpSNegate: *hasResult = true; *hasResultType = true; break;
+ case OpFNegate: *hasResult = true; *hasResultType = true; break;
+ case OpIAdd: *hasResult = true; *hasResultType = true; break;
+ case OpFAdd: *hasResult = true; *hasResultType = true; break;
+ case OpISub: *hasResult = true; *hasResultType = true; break;
+ case OpFSub: *hasResult = true; *hasResultType = true; break;
+ case OpIMul: *hasResult = true; *hasResultType = true; break;
+ case OpFMul: *hasResult = true; *hasResultType = true; break;
+ case OpUDiv: *hasResult = true; *hasResultType = true; break;
+ case OpSDiv: *hasResult = true; *hasResultType = true; break;
+ case OpFDiv: *hasResult = true; *hasResultType = true; break;
+ case OpUMod: *hasResult = true; *hasResultType = true; break;
+ case OpSRem: *hasResult = true; *hasResultType = true; break;
+ case OpSMod: *hasResult = true; *hasResultType = true; break;
+ case OpFRem: *hasResult = true; *hasResultType = true; break;
+ case OpFMod: *hasResult = true; *hasResultType = true; break;
+ case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
+ case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
+ case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
+ case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
+ case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
+ case OpOuterProduct: *hasResult = true; *hasResultType = true; break;
+ case OpDot: *hasResult = true; *hasResultType = true; break;
+ case OpIAddCarry: *hasResult = true; *hasResultType = true; break;
+ case OpISubBorrow: *hasResult = true; *hasResultType = true; break;
+ case OpUMulExtended: *hasResult = true; *hasResultType = true; break;
+ case OpSMulExtended: *hasResult = true; *hasResultType = true; break;
+ case OpAny: *hasResult = true; *hasResultType = true; break;
+ case OpAll: *hasResult = true; *hasResultType = true; break;
+ case OpIsNan: *hasResult = true; *hasResultType = true; break;
+ case OpIsInf: *hasResult = true; *hasResultType = true; break;
+ case OpIsFinite: *hasResult = true; *hasResultType = true; break;
+ case OpIsNormal: *hasResult = true; *hasResultType = true; break;
+ case OpSignBitSet: *hasResult = true; *hasResultType = true; break;
+ case OpLessOrGreater: *hasResult = true; *hasResultType = true; break;
+ case OpOrdered: *hasResult = true; *hasResultType = true; break;
+ case OpUnordered: *hasResult = true; *hasResultType = true; break;
+ case OpLogicalEqual: *hasResult = true; *hasResultType = true; break;
+ case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
+ case OpLogicalOr: *hasResult = true; *hasResultType = true; break;
+ case OpLogicalAnd: *hasResult = true; *hasResultType = true; break;
+ case OpLogicalNot: *hasResult = true; *hasResultType = true; break;
+ case OpSelect: *hasResult = true; *hasResultType = true; break;
+ case OpIEqual: *hasResult = true; *hasResultType = true; break;
+ case OpINotEqual: *hasResult = true; *hasResultType = true; break;
+ case OpUGreaterThan: *hasResult = true; *hasResultType = true; break;
+ case OpSGreaterThan: *hasResult = true; *hasResultType = true; break;
+ case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
+ case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
+ case OpULessThan: *hasResult = true; *hasResultType = true; break;
+ case OpSLessThan: *hasResult = true; *hasResultType = true; break;
+ case OpULessThanEqual: *hasResult = true; *hasResultType = true; break;
+ case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
+ case OpFOrdEqual: *hasResult = true; *hasResultType = true; break;
+ case OpFUnordEqual: *hasResult = true; *hasResultType = true; break;
+ case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
+ case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
+ case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
+ case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
+ case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
+ case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
+ case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
+ case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
+ case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
+ case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
+ case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
+ case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
+ case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
+ case OpBitwiseOr: *hasResult = true; *hasResultType = true; break;
+ case OpBitwiseXor: *hasResult = true; *hasResultType = true; break;
+ case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
+ case OpNot: *hasResult = true; *hasResultType = true; break;
+ case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
+ case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
+ case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
+ case OpBitReverse: *hasResult = true; *hasResultType = true; break;
+ case OpBitCount: *hasResult = true; *hasResultType = true; break;
+ case OpDPdx: *hasResult = true; *hasResultType = true; break;
+ case OpDPdy: *hasResult = true; *hasResultType = true; break;
+ case OpFwidth: *hasResult = true; *hasResultType = true; break;
+ case OpDPdxFine: *hasResult = true; *hasResultType = true; break;
+ case OpDPdyFine: *hasResult = true; *hasResultType = true; break;
+ case OpFwidthFine: *hasResult = true; *hasResultType = true; break;
+ case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
+ case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
+ case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
+ case OpEmitVertex: *hasResult = false; *hasResultType = false; break;
+ case OpEndPrimitive: *hasResult = false; *hasResultType = false; break;
+ case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
+ case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
+ case OpControlBarrier: *hasResult = false; *hasResultType = false; break;
+ case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
+ case OpAtomicLoad: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicStore: *hasResult = false; *hasResultType = false; break;
+ case OpAtomicExchange: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicISub: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicSMin: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicUMin: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicSMax: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicUMax: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicAnd: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicOr: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicXor: *hasResult = true; *hasResultType = true; break;
+ case OpPhi: *hasResult = true; *hasResultType = true; break;
+ case OpLoopMerge: *hasResult = false; *hasResultType = false; break;
+ case OpSelectionMerge: *hasResult = false; *hasResultType = false; break;
+ case OpLabel: *hasResult = true; *hasResultType = false; break;
+ case OpBranch: *hasResult = false; *hasResultType = false; break;
+ case OpBranchConditional: *hasResult = false; *hasResultType = false; break;
+ case OpSwitch: *hasResult = false; *hasResultType = false; break;
+ case OpKill: *hasResult = false; *hasResultType = false; break;
+ case OpReturn: *hasResult = false; *hasResultType = false; break;
+ case OpReturnValue: *hasResult = false; *hasResultType = false; break;
+ case OpUnreachable: *hasResult = false; *hasResultType = false; break;
+ case OpLifetimeStart: *hasResult = false; *hasResultType = false; break;
+ case OpLifetimeStop: *hasResult = false; *hasResultType = false; break;
+ case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
+ case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
+ case OpGroupAll: *hasResult = true; *hasResultType = true; break;
+ case OpGroupAny: *hasResult = true; *hasResultType = true; break;
+ case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
+ case OpGroupIAdd: *hasResult = true; *hasResultType = true; break;
+ case OpGroupFAdd: *hasResult = true; *hasResultType = true; break;
+ case OpGroupFMin: *hasResult = true; *hasResultType = true; break;
+ case OpGroupUMin: *hasResult = true; *hasResultType = true; break;
+ case OpGroupSMin: *hasResult = true; *hasResultType = true; break;
+ case OpGroupFMax: *hasResult = true; *hasResultType = true; break;
+ case OpGroupUMax: *hasResult = true; *hasResultType = true; break;
+ case OpGroupSMax: *hasResult = true; *hasResultType = true; break;
+ case OpReadPipe: *hasResult = true; *hasResultType = true; break;
+ case OpWritePipe: *hasResult = true; *hasResultType = true; break;
+ case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
+ case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
+ case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
+ case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
+ case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
+ case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
+ case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
+ case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
+ case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
+ case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
+ case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
+ case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
+ case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
+ case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
+ case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
+ case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
+ case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
+ case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
+ case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
+ case OpRetainEvent: *hasResult = false; *hasResultType = false; break;
+ case OpReleaseEvent: *hasResult = false; *hasResultType = false; break;
+ case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
+ case OpIsValidEvent: *hasResult = true; *hasResultType = true; break;
+ case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
+ case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
+ case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
+ case OpBuildNDRange: *hasResult = true; *hasResultType = true; break;
+ case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
+ case OpImageSparseGather: *hasResult = true; *hasResultType = true; break;
+ case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
+ case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
+ case OpNoLine: *hasResult = false; *hasResultType = false; break;
+ case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
+ case OpImageSparseRead: *hasResult = true; *hasResultType = true; break;
+ case OpSizeOf: *hasResult = true; *hasResultType = true; break;
+ case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
+ case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
+ case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
+ case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
+ case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
+ case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
+ case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
+ case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
+ case OpModuleProcessed: *hasResult = false; *hasResultType = false; break;
+ case OpExecutionModeId: *hasResult = false; *hasResultType = false; break;
+ case OpDecorateId: *hasResult = false; *hasResultType = false; break;
+ case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
+ case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
+ case OpCopyLogical: *hasResult = true; *hasResultType = true; break;
+ case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
+ case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
+ case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
+ case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
+ case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
+ 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;
+ case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
+ case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+ case OpSDot: *hasResult = true; *hasResultType = true; break;
+ case OpUDot: *hasResult = true; *hasResultType = true; break;
+ case OpSUDot: *hasResult = true; *hasResultType = true; break;
+ case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
+ case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
+ case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
+ case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
+ case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
+ case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
+ case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
+ case OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
+ case OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
+ case OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
+ case OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
+ case OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
+ case OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
+ case OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
+ case OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
+ case OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
+ case OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
+ case OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
+ case OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
+ case OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
+ case OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
+ case OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; 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;
+ case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
+ case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
+ case OpTraceNV: *hasResult = false; *hasResultType = false; break;
+ case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
+ case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
+ case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
+ case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
+ case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
+ case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
+ case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
+ case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
+ case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
+ case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
+ case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
+ case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
+ case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
+ case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
+ case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
+ case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
+ case OpExpectKHR: *hasResult = true; *hasResultType = true; break;
+ case OpDecorateString: *hasResult = false; *hasResultType = false; break;
+ case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
+ case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+ 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;
+ case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ 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 */
+
+// Overload operator| for mask bit combining
+
+inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
+inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
+inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
+inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
+inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
+inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
+inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
+inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
+inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
+
+} // end namespace spv
+
+#endif // #ifndef spirv_HPP
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.hpp11 b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.hpp11
new file mode 100644
index 0000000000..a73ebe6846
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.hpp11
@@ -0,0 +1,2669 @@
+// 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.
+
+#ifndef spirv_HPP
+#define spirv_HPP
+
+namespace spv {
+
+typedef unsigned int Id;
+
+#define SPV_VERSION 0x10600
+#define SPV_REVISION 1
+
+static const unsigned int MagicNumber = 0x07230203;
+static const unsigned int Version = 0x00010600;
+static const unsigned int Revision = 1;
+static const unsigned int OpCodeMask = 0xffff;
+static const unsigned int WordCountShift = 16;
+
+enum class SourceLanguage : unsigned {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ CPP_for_OpenCL = 6,
+ SYCL = 7,
+ Max = 0x7fffffff,
+};
+
+enum class ExecutionModel : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class AddressingModel : unsigned {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ PhysicalStorageBuffer64 = 5348,
+ PhysicalStorageBuffer64EXT = 5348,
+ Max = 0x7fffffff,
+};
+
+enum class MemoryModel : unsigned {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ Vulkan = 3,
+ VulkanKHR = 3,
+ Max = 0x7fffffff,
+};
+
+enum class ExecutionMode : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class StorageClass : unsigned {
+ 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,
+ HitObjectAttributeNV = 5385,
+ TaskPayloadWorkgroupEXT = 5402,
+ CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
+ Max = 0x7fffffff,
+};
+
+enum class Dim : unsigned {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ Max = 0x7fffffff,
+};
+
+enum class SamplerAddressingMode : unsigned {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ Max = 0x7fffffff,
+};
+
+enum class SamplerFilterMode : unsigned {
+ Nearest = 0,
+ Linear = 1,
+ Max = 0x7fffffff,
+};
+
+enum class ImageFormat : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageChannelOrder : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageChannelDataType : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageOperandsShift : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class ImageOperandsMask : unsigned {
+ 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,
+};
+
+enum class FPFastMathModeShift : unsigned {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
+ Max = 0x7fffffff,
+};
+
+enum class FPFastMathModeMask : unsigned {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
+};
+
+enum class FPRoundingMode : unsigned {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ Max = 0x7fffffff,
+};
+
+enum class LinkageType : unsigned {
+ Export = 0,
+ Import = 1,
+ LinkOnceODR = 2,
+ Max = 0x7fffffff,
+};
+
+enum class AccessQualifier : unsigned {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ Max = 0x7fffffff,
+};
+
+enum class FunctionParameterAttribute : unsigned {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ RuntimeAlignedINTEL = 5940,
+ Max = 0x7fffffff,
+};
+
+enum class Decoration : unsigned {
+ 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,
+ HitObjectShaderRecordBufferNV = 5386,
+ 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,
+ MathOpDSPModeINTEL = 5909,
+ AliasScopeINTEL = 5914,
+ NoAliasINTEL = 5915,
+ InitiationIntervalINTEL = 5917,
+ MaxConcurrencyINTEL = 5918,
+ PipelineEnableINTEL = 5919,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
+ MediaBlockIOINTEL = 6140,
+ Max = 0x7fffffff,
+};
+
+enum class BuiltIn : unsigned {
+ 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,
+ CoreIDARM = 4160,
+ CoreCountARM = 4161,
+ CoreMaxIDARM = 4162,
+ WarpIDARM = 4163,
+ WarpMaxIDARM = 4164,
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class SelectionControlShift : unsigned {
+ Flatten = 0,
+ DontFlatten = 1,
+ Max = 0x7fffffff,
+};
+
+enum class SelectionControlMask : unsigned {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+};
+
+enum class LoopControlShift : unsigned {
+ 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,
+ LoopCountINTEL = 24,
+ MaxReinvocationDelayINTEL = 25,
+ Max = 0x7fffffff,
+};
+
+enum class LoopControlMask : unsigned {
+ 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,
+ LoopCountINTEL = 0x01000000,
+ MaxReinvocationDelayINTEL = 0x02000000,
+};
+
+enum class FunctionControlShift : unsigned {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ OptNoneINTEL = 16,
+ Max = 0x7fffffff,
+};
+
+enum class FunctionControlMask : unsigned {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+ OptNoneINTEL = 0x00010000,
+};
+
+enum class MemorySemanticsShift : unsigned {
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class MemorySemanticsMask : unsigned {
+ 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,
+};
+
+enum class MemoryAccessShift : unsigned {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ MakePointerAvailable = 3,
+ MakePointerAvailableKHR = 3,
+ MakePointerVisible = 4,
+ MakePointerVisibleKHR = 4,
+ NonPrivatePointer = 5,
+ NonPrivatePointerKHR = 5,
+ AliasScopeINTELMask = 16,
+ NoAliasINTELMask = 17,
+ Max = 0x7fffffff,
+};
+
+enum class MemoryAccessMask : unsigned {
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+ MakePointerAvailable = 0x00000008,
+ MakePointerAvailableKHR = 0x00000008,
+ MakePointerVisible = 0x00000010,
+ MakePointerVisibleKHR = 0x00000010,
+ NonPrivatePointer = 0x00000020,
+ NonPrivatePointerKHR = 0x00000020,
+ AliasScopeINTELMask = 0x00010000,
+ NoAliasINTELMask = 0x00020000,
+};
+
+enum class Scope : unsigned {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ QueueFamily = 5,
+ QueueFamilyKHR = 5,
+ ShaderCallKHR = 6,
+ Max = 0x7fffffff,
+};
+
+enum class GroupOperation : unsigned {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ ClusteredReduce = 3,
+ PartitionedReduceNV = 6,
+ PartitionedInclusiveScanNV = 7,
+ PartitionedExclusiveScanNV = 8,
+ Max = 0x7fffffff,
+};
+
+enum class KernelEnqueueFlags : unsigned {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ Max = 0x7fffffff,
+};
+
+enum class KernelProfilingInfoShift : unsigned {
+ CmdExecTime = 0,
+ Max = 0x7fffffff,
+};
+
+enum class KernelProfilingInfoMask : unsigned {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+};
+
+enum class Capability : unsigned {
+ 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,
+ CoreBuiltinsARM = 4165,
+ 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,
+ RayTracingOpacityMicromapEXT = 5381,
+ ShaderInvocationReorderNV = 5383,
+ 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,
+ FPGADSPControlINTEL = 5908,
+ MemoryAccessAliasingINTEL = 5910,
+ FPGAInvocationPipeliningAttributesINTEL = 5916,
+ FPGABufferLocationINTEL = 5920,
+ ArbitraryPrecisionFixedPointINTEL = 5922,
+ USMStorageClassesINTEL = 5935,
+ RuntimeAlignedAttributeINTEL = 5939,
+ 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,
+ Max = 0x7fffffff,
+};
+
+enum class RayFlagsShift : unsigned {
+ OpaqueKHR = 0,
+ NoOpaqueKHR = 1,
+ TerminateOnFirstHitKHR = 2,
+ SkipClosestHitShaderKHR = 3,
+ CullBackFacingTrianglesKHR = 4,
+ CullFrontFacingTrianglesKHR = 5,
+ CullOpaqueKHR = 6,
+ CullNoOpaqueKHR = 7,
+ SkipTrianglesKHR = 8,
+ SkipAABBsKHR = 9,
+ ForceOpacityMicromap2StateEXT = 10,
+ Max = 0x7fffffff,
+};
+
+enum class RayFlagsMask : unsigned {
+ MaskNone = 0,
+ OpaqueKHR = 0x00000001,
+ NoOpaqueKHR = 0x00000002,
+ TerminateOnFirstHitKHR = 0x00000004,
+ SkipClosestHitShaderKHR = 0x00000008,
+ CullBackFacingTrianglesKHR = 0x00000010,
+ CullFrontFacingTrianglesKHR = 0x00000020,
+ CullOpaqueKHR = 0x00000040,
+ CullNoOpaqueKHR = 0x00000080,
+ SkipTrianglesKHR = 0x00000100,
+ SkipAABBsKHR = 0x00000200,
+ ForceOpacityMicromap2StateEXT = 0x00000400,
+};
+
+enum class RayQueryIntersection : unsigned {
+ RayQueryCandidateIntersectionKHR = 0,
+ RayQueryCommittedIntersectionKHR = 1,
+ Max = 0x7fffffff,
+};
+
+enum class RayQueryCommittedIntersectionType : unsigned {
+ RayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionGeneratedKHR = 2,
+ Max = 0x7fffffff,
+};
+
+enum class RayQueryCandidateIntersectionType : unsigned {
+ RayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionAABBKHR = 1,
+ Max = 0x7fffffff,
+};
+
+enum class FragmentShadingRateShift : unsigned {
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+ Max = 0x7fffffff,
+};
+
+enum class FragmentShadingRateMask : unsigned {
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+};
+
+enum class FPDenormMode : unsigned {
+ Preserve = 0,
+ FlushToZero = 1,
+ Max = 0x7fffffff,
+};
+
+enum class FPOperationMode : unsigned {
+ IEEE = 0,
+ ALT = 1,
+ Max = 0x7fffffff,
+};
+
+enum class QuantizationModes : unsigned {
+ TRN = 0,
+ TRN_ZERO = 1,
+ RND = 2,
+ RND_ZERO = 3,
+ RND_INF = 4,
+ RND_MIN_INF = 5,
+ RND_CONV = 6,
+ RND_CONV_ODD = 7,
+ Max = 0x7fffffff,
+};
+
+enum class OverflowModes : unsigned {
+ WRAP = 0,
+ SAT = 1,
+ SAT_ZERO = 2,
+ SAT_SYM = 3,
+ Max = 0x7fffffff,
+};
+
+enum class PackedVectorFormat : unsigned {
+ PackedVectorFormat4x8Bit = 0,
+ PackedVectorFormat4x8BitKHR = 0,
+ Max = 0x7fffffff,
+};
+
+enum class Op : unsigned {
+ 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,
+ OpHitObjectRecordHitMotionNV = 5249,
+ OpHitObjectRecordHitWithIndexMotionNV = 5250,
+ OpHitObjectRecordMissMotionNV = 5251,
+ OpHitObjectGetWorldToObjectNV = 5252,
+ OpHitObjectGetObjectToWorldNV = 5253,
+ OpHitObjectGetObjectRayDirectionNV = 5254,
+ OpHitObjectGetObjectRayOriginNV = 5255,
+ OpHitObjectTraceRayMotionNV = 5256,
+ OpHitObjectGetShaderRecordBufferHandleNV = 5257,
+ OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+ OpHitObjectRecordEmptyNV = 5259,
+ OpHitObjectTraceRayNV = 5260,
+ OpHitObjectRecordHitNV = 5261,
+ OpHitObjectRecordHitWithIndexNV = 5262,
+ OpHitObjectRecordMissNV = 5263,
+ OpHitObjectExecuteShaderNV = 5264,
+ OpHitObjectGetCurrentTimeNV = 5265,
+ OpHitObjectGetAttributesNV = 5266,
+ OpHitObjectGetHitKindNV = 5267,
+ OpHitObjectGetPrimitiveIndexNV = 5268,
+ OpHitObjectGetGeometryIndexNV = 5269,
+ OpHitObjectGetInstanceIdNV = 5270,
+ OpHitObjectGetInstanceCustomIndexNV = 5271,
+ OpHitObjectGetWorldRayDirectionNV = 5272,
+ OpHitObjectGetWorldRayOriginNV = 5273,
+ OpHitObjectGetRayTMaxNV = 5274,
+ OpHitObjectGetRayTMinNV = 5275,
+ OpHitObjectIsEmptyNV = 5276,
+ OpHitObjectIsHitNV = 5277,
+ OpHitObjectIsMissNV = 5278,
+ OpReorderThreadWithHitObjectNV = 5279,
+ OpReorderThreadWithHintNV = 5280,
+ OpTypeHitObjectNV = 5281,
+ 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,
+ 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) {
+ default: /* unknown opcode */ break;
+ case Op::OpNop: *hasResult = false; *hasResultType = false; break;
+ case Op::OpUndef: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSourceContinued: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSource: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSourceExtension: *hasResult = false; *hasResultType = false; break;
+ case Op::OpName: *hasResult = false; *hasResultType = false; break;
+ case Op::OpMemberName: *hasResult = false; *hasResultType = false; break;
+ case Op::OpString: *hasResult = true; *hasResultType = false; break;
+ case Op::OpLine: *hasResult = false; *hasResultType = false; break;
+ case Op::OpExtension: *hasResult = false; *hasResultType = false; break;
+ case Op::OpExtInstImport: *hasResult = true; *hasResultType = false; break;
+ case Op::OpExtInst: *hasResult = true; *hasResultType = true; break;
+ case Op::OpMemoryModel: *hasResult = false; *hasResultType = false; break;
+ case Op::OpEntryPoint: *hasResult = false; *hasResultType = false; break;
+ case Op::OpExecutionMode: *hasResult = false; *hasResultType = false; break;
+ case Op::OpCapability: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTypeVoid: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeBool: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeInt: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeFloat: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeVector: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeMatrix: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeImage: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeSampler: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeArray: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeStruct: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeOpaque: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypePointer: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeFunction: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeEvent: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeReserveId: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeQueue: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypePipe: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
+ case Op::OpConstantTrue: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConstantFalse: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConstant: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConstantComposite: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConstantSampler: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConstantNull: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSpecConstant: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFunction: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFunctionParameter: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFunctionEnd: *hasResult = false; *hasResultType = false; break;
+ case Op::OpFunctionCall: *hasResult = true; *hasResultType = true; break;
+ case Op::OpVariable: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
+ case Op::OpLoad: *hasResult = true; *hasResultType = true; break;
+ case Op::OpStore: *hasResult = false; *hasResultType = false; break;
+ case Op::OpCopyMemory: *hasResult = false; *hasResultType = false; break;
+ case Op::OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
+ case Op::OpAccessChain: *hasResult = true; *hasResultType = true; break;
+ case Op::OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
+ case Op::OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArrayLength: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
+ case Op::OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
+ case Op::OpDecorate: *hasResult = false; *hasResultType = false; break;
+ case Op::OpMemberDecorate: *hasResult = false; *hasResultType = false; break;
+ case Op::OpDecorationGroup: *hasResult = true; *hasResultType = false; break;
+ case Op::OpGroupDecorate: *hasResult = false; *hasResultType = false; break;
+ case Op::OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
+ case Op::OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
+ case Op::OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
+ case Op::OpVectorShuffle: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCompositeExtract: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCompositeInsert: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCopyObject: *hasResult = true; *hasResultType = true; break;
+ case Op::OpTranspose: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSampledImage: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageFetch: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageGather: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageDrefGather: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageRead: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageWrite: *hasResult = false; *hasResultType = false; break;
+ case Op::OpImage: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageQuerySize: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageQueryLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertFToU: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertFToS: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertSToF: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertUToF: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUConvert: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSConvert: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFConvert: *hasResult = true; *hasResultType = true; break;
+ case Op::OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
+ case Op::OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
+ case Op::OpBitcast: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSNegate: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFNegate: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIAdd: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFAdd: *hasResult = true; *hasResultType = true; break;
+ case Op::OpISub: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFSub: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIMul: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFMul: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUDiv: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSDiv: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFDiv: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUMod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSRem: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSMod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFRem: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFMod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
+ case Op::OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
+ case Op::OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
+ case Op::OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
+ case Op::OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
+ case Op::OpOuterProduct: *hasResult = true; *hasResultType = true; break;
+ case Op::OpDot: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIAddCarry: *hasResult = true; *hasResultType = true; break;
+ case Op::OpISubBorrow: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUMulExtended: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSMulExtended: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAny: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAll: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIsNan: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIsInf: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIsFinite: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIsNormal: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSignBitSet: *hasResult = true; *hasResultType = true; break;
+ case Op::OpLessOrGreater: *hasResult = true; *hasResultType = true; break;
+ case Op::OpOrdered: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUnordered: *hasResult = true; *hasResultType = true; break;
+ case Op::OpLogicalEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpLogicalOr: *hasResult = true; *hasResultType = true; break;
+ case Op::OpLogicalAnd: *hasResult = true; *hasResultType = true; break;
+ case Op::OpLogicalNot: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSelect: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpINotEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUGreaterThan: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSGreaterThan: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpULessThan: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSLessThan: *hasResult = true; *hasResultType = true; break;
+ case Op::OpULessThanEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFOrdEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFUnordEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
+ case Op::OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
+ case Op::OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
+ case Op::OpBitwiseOr: *hasResult = true; *hasResultType = true; break;
+ case Op::OpBitwiseXor: *hasResult = true; *hasResultType = true; break;
+ case Op::OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
+ case Op::OpNot: *hasResult = true; *hasResultType = true; break;
+ case Op::OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
+ case Op::OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
+ case Op::OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
+ case Op::OpBitReverse: *hasResult = true; *hasResultType = true; break;
+ case Op::OpBitCount: *hasResult = true; *hasResultType = true; break;
+ case Op::OpDPdx: *hasResult = true; *hasResultType = true; break;
+ case Op::OpDPdy: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFwidth: *hasResult = true; *hasResultType = true; break;
+ case Op::OpDPdxFine: *hasResult = true; *hasResultType = true; break;
+ case Op::OpDPdyFine: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFwidthFine: *hasResult = true; *hasResultType = true; break;
+ case Op::OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
+ case Op::OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
+ case Op::OpEmitVertex: *hasResult = false; *hasResultType = false; break;
+ case Op::OpEndPrimitive: *hasResult = false; *hasResultType = false; break;
+ case Op::OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
+ case Op::OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
+ case Op::OpControlBarrier: *hasResult = false; *hasResultType = false; break;
+ case Op::OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
+ case Op::OpAtomicLoad: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicStore: *hasResult = false; *hasResultType = false; break;
+ case Op::OpAtomicExchange: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicISub: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicSMin: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicUMin: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicSMax: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicUMax: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicAnd: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicOr: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicXor: *hasResult = true; *hasResultType = true; break;
+ case Op::OpPhi: *hasResult = true; *hasResultType = true; break;
+ case Op::OpLoopMerge: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSelectionMerge: *hasResult = false; *hasResultType = false; break;
+ case Op::OpLabel: *hasResult = true; *hasResultType = false; break;
+ case Op::OpBranch: *hasResult = false; *hasResultType = false; break;
+ case Op::OpBranchConditional: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSwitch: *hasResult = false; *hasResultType = false; break;
+ case Op::OpKill: *hasResult = false; *hasResultType = false; break;
+ case Op::OpReturn: *hasResult = false; *hasResultType = false; break;
+ case Op::OpReturnValue: *hasResult = false; *hasResultType = false; break;
+ case Op::OpUnreachable: *hasResult = false; *hasResultType = false; break;
+ case Op::OpLifetimeStart: *hasResult = false; *hasResultType = false; break;
+ case Op::OpLifetimeStop: *hasResult = false; *hasResultType = false; break;
+ case Op::OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
+ case Op::OpGroupAll: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupAny: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupIAdd: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupFAdd: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupFMin: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupUMin: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupSMin: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupFMax: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupUMax: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupSMax: *hasResult = true; *hasResultType = true; break;
+ case Op::OpReadPipe: *hasResult = true; *hasResultType = true; break;
+ case Op::OpWritePipe: *hasResult = true; *hasResultType = true; break;
+ case Op::OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
+ case Op::OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
+ case Op::OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
+ case Op::OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
+ case Op::OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
+ case Op::OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
+ case Op::OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
+ case Op::OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
+ case Op::OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRetainEvent: *hasResult = false; *hasResultType = false; break;
+ case Op::OpReleaseEvent: *hasResult = false; *hasResultType = false; break;
+ case Op::OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIsValidEvent: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
+ case Op::OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
+ case Op::OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
+ case Op::OpBuildNDRange: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSparseGather: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
+ case Op::OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
+ case Op::OpNoLine: *hasResult = false; *hasResultType = false; break;
+ case Op::OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
+ case Op::OpImageSparseRead: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSizeOf: *hasResult = true; *hasResultType = true; break;
+ case Op::OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
+ case Op::OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
+ case Op::OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
+ case Op::OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
+ case Op::OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
+ case Op::OpModuleProcessed: *hasResult = false; *hasResultType = false; break;
+ case Op::OpExecutionModeId: *hasResult = false; *hasResultType = false; break;
+ case Op::OpDecorateId: *hasResult = false; *hasResultType = false; break;
+ case Op::OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCopyLogical: *hasResult = true; *hasResultType = true; break;
+ case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
+ case Op::OpPtrDiff: *hasResult = true; *hasResultType = true; break;
+ case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
+ 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;
+ case Op::OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSDot: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUDot: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSUDot: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
+ case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case Op::OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
+ case Op::OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; 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;
+ case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
+ case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
+ case Op::OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
+ case Op::OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
+ case Op::OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
+ case Op::OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpExpectKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpDecorateString: *hasResult = false; *hasResultType = false; break;
+ case Op::OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
+ case Op::OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+ 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;
+ case Op::OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case Op::OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ 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 */
+
+// Overload operator| for mask bit combining
+
+inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
+inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
+inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
+inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
+inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
+inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
+inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
+inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
+inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
+
+} // end namespace spv
+
+#endif // #ifndef spirv_HPP
+
diff --git a/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.json b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.json
new file mode 100644
index 0000000000..73ca694baf
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.json
@@ -0,0 +1,1941 @@
+{
+ "spv":
+ {
+ "meta":
+ {
+ "Comment":
+ [
+ [
+ "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."
+ ]
+ ],
+ "MagicNumber": 119734787,
+ "Version": 67072,
+ "Revision": 1,
+ "OpCodeMask": 65535,
+ "WordCountShift": 16
+ },
+ "enum":
+ [
+ {
+ "Name": "SourceLanguage",
+ "Type": "Value",
+ "Values":
+ {
+ "Unknown": 0,
+ "ESSL": 1,
+ "GLSL": 2,
+ "OpenCL_C": 3,
+ "OpenCL_CPP": 4,
+ "HLSL": 5,
+ "CPP_for_OpenCL": 6,
+ "SYCL": 7
+ }
+ },
+ {
+ "Name": "ExecutionModel",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "AddressingModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Logical": 0,
+ "Physical32": 1,
+ "Physical64": 2,
+ "PhysicalStorageBuffer64": 5348,
+ "PhysicalStorageBuffer64EXT": 5348
+ }
+ },
+ {
+ "Name": "MemoryModel",
+ "Type": "Value",
+ "Values":
+ {
+ "Simple": 0,
+ "GLSL450": 1,
+ "OpenCL": 2,
+ "Vulkan": 3,
+ "VulkanKHR": 3
+ }
+ },
+ {
+ "Name": "ExecutionMode",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "StorageClass",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "HitObjectAttributeNV": 5385,
+ "TaskPayloadWorkgroupEXT": 5402,
+ "CodeSectionINTEL": 5605,
+ "DeviceOnlyINTEL": 5936,
+ "HostOnlyINTEL": 5937
+ }
+ },
+ {
+ "Name": "Dim",
+ "Type": "Value",
+ "Values":
+ {
+ "Dim1D": 0,
+ "Dim2D": 1,
+ "Dim3D": 2,
+ "Cube": 3,
+ "Rect": 4,
+ "Buffer": 5,
+ "SubpassData": 6
+ }
+ },
+ {
+ "Name": "SamplerAddressingMode",
+ "Type": "Value",
+ "Values":
+ {
+ "None": 0,
+ "ClampToEdge": 1,
+ "Clamp": 2,
+ "Repeat": 3,
+ "RepeatMirrored": 4
+ }
+ },
+ {
+ "Name": "SamplerFilterMode",
+ "Type": "Value",
+ "Values":
+ {
+ "Nearest": 0,
+ "Linear": 1
+ }
+ },
+ {
+ "Name": "ImageFormat",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "ImageChannelOrder",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "ImageChannelDataType",
+ "Type": "Value",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "ImageOperands",
+ "Type": "Bit",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "FPFastMathMode",
+ "Type": "Bit",
+ "Values":
+ {
+ "NotNaN": 0,
+ "NotInf": 1,
+ "NSZ": 2,
+ "AllowRecip": 3,
+ "Fast": 4,
+ "AllowContractFastINTEL": 16,
+ "AllowReassocINTEL": 17
+ }
+ },
+ {
+ "Name": "FPRoundingMode",
+ "Type": "Value",
+ "Values":
+ {
+ "RTE": 0,
+ "RTZ": 1,
+ "RTP": 2,
+ "RTN": 3
+ }
+ },
+ {
+ "Name": "LinkageType",
+ "Type": "Value",
+ "Values":
+ {
+ "Export": 0,
+ "Import": 1,
+ "LinkOnceODR": 2
+ }
+ },
+ {
+ "Name": "AccessQualifier",
+ "Type": "Value",
+ "Values":
+ {
+ "ReadOnly": 0,
+ "WriteOnly": 1,
+ "ReadWrite": 2
+ }
+ },
+ {
+ "Name": "FunctionParameterAttribute",
+ "Type": "Value",
+ "Values":
+ {
+ "Zext": 0,
+ "Sext": 1,
+ "ByVal": 2,
+ "Sret": 3,
+ "NoAlias": 4,
+ "NoCapture": 5,
+ "NoWrite": 6,
+ "NoReadWrite": 7,
+ "RuntimeAlignedINTEL": 5940
+ }
+ },
+ {
+ "Name": "Decoration",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "HitObjectShaderRecordBufferNV": 5386,
+ "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,
+ "MathOpDSPModeINTEL": 5909,
+ "AliasScopeINTEL": 5914,
+ "NoAliasINTEL": 5915,
+ "InitiationIntervalINTEL": 5917,
+ "MaxConcurrencyINTEL": 5918,
+ "PipelineEnableINTEL": 5919,
+ "BufferLocationINTEL": 5921,
+ "IOPipeStorageINTEL": 5944,
+ "FunctionFloatingPointModeINTEL": 6080,
+ "SingleElementVectorINTEL": 6085,
+ "VectorComputeCallableFunctionINTEL": 6087,
+ "MediaBlockIOINTEL": 6140
+ }
+ },
+ {
+ "Name": "BuiltIn",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "CoreIDARM": 4160,
+ "CoreCountARM": 4161,
+ "CoreMaxIDARM": 4162,
+ "WarpIDARM": 4163,
+ "WarpMaxIDARM": 4164,
+ "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
+ }
+ },
+ {
+ "Name": "SelectionControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Flatten": 0,
+ "DontFlatten": 1
+ }
+ },
+ {
+ "Name": "LoopControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "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,
+ "LoopCountINTEL": 24,
+ "MaxReinvocationDelayINTEL": 25
+ }
+ },
+ {
+ "Name": "FunctionControl",
+ "Type": "Bit",
+ "Values":
+ {
+ "Inline": 0,
+ "DontInline": 1,
+ "Pure": 2,
+ "Const": 3,
+ "OptNoneINTEL": 16
+ }
+ },
+ {
+ "Name": "MemorySemantics",
+ "Type": "Bit",
+ "Values":
+ {
+ "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
+ }
+ },
+ {
+ "Name": "MemoryAccess",
+ "Type": "Bit",
+ "Values":
+ {
+ "Volatile": 0,
+ "Aligned": 1,
+ "Nontemporal": 2,
+ "MakePointerAvailable": 3,
+ "MakePointerAvailableKHR": 3,
+ "MakePointerVisible": 4,
+ "MakePointerVisibleKHR": 4,
+ "NonPrivatePointer": 5,
+ "NonPrivatePointerKHR": 5,
+ "AliasScopeINTELMask": 16,
+ "NoAliasINTELMask": 17
+ }
+ },
+ {
+ "Name": "Scope",
+ "Type": "Value",
+ "Values":
+ {
+ "CrossDevice": 0,
+ "Device": 1,
+ "Workgroup": 2,
+ "Subgroup": 3,
+ "Invocation": 4,
+ "QueueFamily": 5,
+ "QueueFamilyKHR": 5,
+ "ShaderCallKHR": 6
+ }
+ },
+ {
+ "Name": "GroupOperation",
+ "Type": "Value",
+ "Values":
+ {
+ "Reduce": 0,
+ "InclusiveScan": 1,
+ "ExclusiveScan": 2,
+ "ClusteredReduce": 3,
+ "PartitionedReduceNV": 6,
+ "PartitionedInclusiveScanNV": 7,
+ "PartitionedExclusiveScanNV": 8
+ }
+ },
+ {
+ "Name": "KernelEnqueueFlags",
+ "Type": "Value",
+ "Values":
+ {
+ "NoWait": 0,
+ "WaitKernel": 1,
+ "WaitWorkGroup": 2
+ }
+ },
+ {
+ "Name": "KernelProfilingInfo",
+ "Type": "Bit",
+ "Values":
+ {
+ "CmdExecTime": 0
+ }
+ },
+ {
+ "Name": "Capability",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "CoreBuiltinsARM": 4165,
+ "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,
+ "RayTracingOpacityMicromapEXT": 5381,
+ "ShaderInvocationReorderNV": 5383,
+ "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,
+ "FPGADSPControlINTEL": 5908,
+ "MemoryAccessAliasingINTEL": 5910,
+ "FPGAInvocationPipeliningAttributesINTEL": 5916,
+ "FPGABufferLocationINTEL": 5920,
+ "ArbitraryPrecisionFixedPointINTEL": 5922,
+ "USMStorageClassesINTEL": 5935,
+ "RuntimeAlignedAttributeINTEL": 5939,
+ "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
+ }
+ },
+ {
+ "Name": "RayFlags",
+ "Type": "Bit",
+ "Values":
+ {
+ "OpaqueKHR": 0,
+ "NoOpaqueKHR": 1,
+ "TerminateOnFirstHitKHR": 2,
+ "SkipClosestHitShaderKHR": 3,
+ "CullBackFacingTrianglesKHR": 4,
+ "CullFrontFacingTrianglesKHR": 5,
+ "CullOpaqueKHR": 6,
+ "CullNoOpaqueKHR": 7,
+ "SkipTrianglesKHR": 8,
+ "SkipAABBsKHR": 9,
+ "ForceOpacityMicromap2StateEXT": 10
+ }
+ },
+ {
+ "Name": "RayQueryIntersection",
+ "Type": "Value",
+ "Values":
+ {
+ "RayQueryCandidateIntersectionKHR": 0,
+ "RayQueryCommittedIntersectionKHR": 1
+ }
+ },
+ {
+ "Name": "RayQueryCommittedIntersectionType",
+ "Type": "Value",
+ "Values":
+ {
+ "RayQueryCommittedIntersectionNoneKHR": 0,
+ "RayQueryCommittedIntersectionTriangleKHR": 1,
+ "RayQueryCommittedIntersectionGeneratedKHR": 2
+ }
+ },
+ {
+ "Name": "RayQueryCandidateIntersectionType",
+ "Type": "Value",
+ "Values":
+ {
+ "RayQueryCandidateIntersectionTriangleKHR": 0,
+ "RayQueryCandidateIntersectionAABBKHR": 1
+ }
+ },
+ {
+ "Name": "FragmentShadingRate",
+ "Type": "Bit",
+ "Values":
+ {
+ "Vertical2Pixels": 0,
+ "Vertical4Pixels": 1,
+ "Horizontal2Pixels": 2,
+ "Horizontal4Pixels": 3
+ }
+ },
+ {
+ "Name": "FPDenormMode",
+ "Type": "Value",
+ "Values":
+ {
+ "Preserve": 0,
+ "FlushToZero": 1
+ }
+ },
+ {
+ "Name": "FPOperationMode",
+ "Type": "Value",
+ "Values":
+ {
+ "IEEE": 0,
+ "ALT": 1
+ }
+ },
+ {
+ "Name": "QuantizationModes",
+ "Type": "Value",
+ "Values":
+ {
+ "TRN": 0,
+ "TRN_ZERO": 1,
+ "RND": 2,
+ "RND_ZERO": 3,
+ "RND_INF": 4,
+ "RND_MIN_INF": 5,
+ "RND_CONV": 6,
+ "RND_CONV_ODD": 7
+ }
+ },
+ {
+ "Name": "OverflowModes",
+ "Type": "Value",
+ "Values":
+ {
+ "WRAP": 0,
+ "SAT": 1,
+ "SAT_ZERO": 2,
+ "SAT_SYM": 3
+ }
+ },
+ {
+ "Name": "PackedVectorFormat",
+ "Type": "Value",
+ "Values":
+ {
+ "PackedVectorFormat4x8Bit": 0,
+ "PackedVectorFormat4x8BitKHR": 0
+ }
+ },
+ {
+ "Name": "Op",
+ "Type": "Value",
+ "Values":
+ {
+ "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,
+ "OpHitObjectRecordHitMotionNV": 5249,
+ "OpHitObjectRecordHitWithIndexMotionNV": 5250,
+ "OpHitObjectRecordMissMotionNV": 5251,
+ "OpHitObjectGetWorldToObjectNV": 5252,
+ "OpHitObjectGetObjectToWorldNV": 5253,
+ "OpHitObjectGetObjectRayDirectionNV": 5254,
+ "OpHitObjectGetObjectRayOriginNV": 5255,
+ "OpHitObjectTraceRayMotionNV": 5256,
+ "OpHitObjectGetShaderRecordBufferHandleNV": 5257,
+ "OpHitObjectGetShaderBindingTableRecordIndexNV": 5258,
+ "OpHitObjectRecordEmptyNV": 5259,
+ "OpHitObjectTraceRayNV": 5260,
+ "OpHitObjectRecordHitNV": 5261,
+ "OpHitObjectRecordHitWithIndexNV": 5262,
+ "OpHitObjectRecordMissNV": 5263,
+ "OpHitObjectExecuteShaderNV": 5264,
+ "OpHitObjectGetCurrentTimeNV": 5265,
+ "OpHitObjectGetAttributesNV": 5266,
+ "OpHitObjectGetHitKindNV": 5267,
+ "OpHitObjectGetPrimitiveIndexNV": 5268,
+ "OpHitObjectGetGeometryIndexNV": 5269,
+ "OpHitObjectGetInstanceIdNV": 5270,
+ "OpHitObjectGetInstanceCustomIndexNV": 5271,
+ "OpHitObjectGetWorldRayDirectionNV": 5272,
+ "OpHitObjectGetWorldRayOriginNV": 5273,
+ "OpHitObjectGetRayTMaxNV": 5274,
+ "OpHitObjectGetRayTMinNV": 5275,
+ "OpHitObjectIsEmptyNV": 5276,
+ "OpHitObjectIsHitNV": 5277,
+ "OpHitObjectIsMissNV": 5278,
+ "OpReorderThreadWithHitObjectNV": 5279,
+ "OpReorderThreadWithHintNV": 5280,
+ "OpTypeHitObjectNV": 5281,
+ "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/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.lua b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.lua
new file mode 100644
index 0000000000..26d797682d
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.lua
@@ -0,0 +1,1900 @@
+-- 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.
+
+spv = {
+ MagicNumber = 0x07230203,
+ Version = 0x00010600,
+ Revision = 1,
+ OpCodeMask = 0xffff,
+ WordCountShift = 16,
+
+ SourceLanguage = {
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ CPP_for_OpenCL = 6,
+ SYCL = 7,
+ },
+
+ 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,
+ },
+
+ AddressingModel = {
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ PhysicalStorageBuffer64 = 5348,
+ PhysicalStorageBuffer64EXT = 5348,
+ },
+
+ MemoryModel = {
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ Vulkan = 3,
+ VulkanKHR = 3,
+ },
+
+ ExecutionMode = {
+ Invocations = 0,
+ SpacingEqual = 1,
+ SpacingFractionalEven = 2,
+ SpacingFractionalOdd = 3,
+ VertexOrderCw = 4,
+ VertexOrderCcw = 5,
+ PixelCenterInteger = 6,
+ OriginUpperLeft = 7,
+ OriginLowerLeft = 8,
+ EarlyFragmentTests = 9,
+ PointMode = 10,
+ Xfb = 11,
+ DepthReplacing = 12,
+ DepthGreater = 14,
+ DepthLess = 15,
+ DepthUnchanged = 16,
+ LocalSize = 17,
+ LocalSizeHint = 18,
+ InputPoints = 19,
+ InputLines = 20,
+ InputLinesAdjacency = 21,
+ Triangles = 22,
+ InputTrianglesAdjacency = 23,
+ Quads = 24,
+ Isolines = 25,
+ OutputVertices = 26,
+ OutputPoints = 27,
+ OutputLineStrip = 28,
+ OutputTriangleStrip = 29,
+ VecTypeHint = 30,
+ ContractionOff = 31,
+ Initializer = 33,
+ Finalizer = 34,
+ SubgroupSize = 35,
+ SubgroupsPerWorkgroup = 36,
+ SubgroupsPerWorkgroupId = 37,
+ LocalSizeId = 38,
+ LocalSizeHintId = 39,
+ SubgroupUniformControlFlowKHR = 4421,
+ PostDepthCoverage = 4446,
+ DenormPreserve = 4459,
+ DenormFlushToZero = 4460,
+ SignedZeroInfNanPreserve = 4461,
+ RoundingModeRTE = 4462,
+ RoundingModeRTZ = 4463,
+ 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,
+ },
+
+ 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,
+ HitObjectAttributeNV = 5385,
+ TaskPayloadWorkgroupEXT = 5402,
+ CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
+ },
+
+ Dim = {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+ },
+
+ SamplerAddressingMode = {
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+ },
+
+ SamplerFilterMode = {
+ Nearest = 0,
+ Linear = 1,
+ },
+
+ ImageFormat = {
+ Unknown = 0,
+ Rgba32f = 1,
+ Rgba16f = 2,
+ R32f = 3,
+ Rgba8 = 4,
+ Rgba8Snorm = 5,
+ Rg32f = 6,
+ Rg16f = 7,
+ R11fG11fB10f = 8,
+ R16f = 9,
+ Rgba16 = 10,
+ Rgb10A2 = 11,
+ Rg16 = 12,
+ Rg8 = 13,
+ R16 = 14,
+ R8 = 15,
+ Rgba16Snorm = 16,
+ Rg16Snorm = 17,
+ Rg8Snorm = 18,
+ R16Snorm = 19,
+ R8Snorm = 20,
+ Rgba32i = 21,
+ Rgba16i = 22,
+ Rgba8i = 23,
+ R32i = 24,
+ Rg32i = 25,
+ Rg16i = 26,
+ Rg8i = 27,
+ R16i = 28,
+ R8i = 29,
+ Rgba32ui = 30,
+ Rgba16ui = 31,
+ Rgba8ui = 32,
+ R32ui = 33,
+ Rgb10a2ui = 34,
+ Rg32ui = 35,
+ Rg16ui = 36,
+ Rg8ui = 37,
+ R16ui = 38,
+ R8ui = 39,
+ R64ui = 40,
+ R64i = 41,
+ },
+
+ 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,
+ },
+
+ 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,
+ },
+
+ 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,
+ },
+
+ 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,
+ },
+
+ FPFastMathModeShift = {
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
+ },
+
+ FPFastMathModeMask = {
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
+ },
+
+ FPRoundingMode = {
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+ },
+
+ LinkageType = {
+ Export = 0,
+ Import = 1,
+ LinkOnceODR = 2,
+ },
+
+ AccessQualifier = {
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+ },
+
+ FunctionParameterAttribute = {
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ RuntimeAlignedINTEL = 5940,
+ },
+
+ 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,
+ HitObjectShaderRecordBufferNV = 5386,
+ 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,
+ MathOpDSPModeINTEL = 5909,
+ AliasScopeINTEL = 5914,
+ NoAliasINTEL = 5915,
+ InitiationIntervalINTEL = 5917,
+ MaxConcurrencyINTEL = 5918,
+ PipelineEnableINTEL = 5919,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
+ MediaBlockIOINTEL = 6140,
+ },
+
+ 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,
+ CoreIDARM = 4160,
+ CoreCountARM = 4161,
+ CoreMaxIDARM = 4162,
+ WarpIDARM = 4163,
+ WarpMaxIDARM = 4164,
+ 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,
+ },
+
+ SelectionControlShift = {
+ Flatten = 0,
+ DontFlatten = 1,
+ },
+
+ SelectionControlMask = {
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+ },
+
+ 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,
+ LoopCountINTEL = 24,
+ MaxReinvocationDelayINTEL = 25,
+ },
+
+ 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,
+ LoopCountINTEL = 0x01000000,
+ MaxReinvocationDelayINTEL = 0x02000000,
+ },
+
+ FunctionControlShift = {
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ OptNoneINTEL = 16,
+ },
+
+ FunctionControlMask = {
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+ OptNoneINTEL = 0x00010000,
+ },
+
+ 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,
+ },
+
+ 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,
+ },
+
+ MemoryAccessShift = {
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ MakePointerAvailable = 3,
+ MakePointerAvailableKHR = 3,
+ MakePointerVisible = 4,
+ MakePointerVisibleKHR = 4,
+ NonPrivatePointer = 5,
+ NonPrivatePointerKHR = 5,
+ AliasScopeINTELMask = 16,
+ NoAliasINTELMask = 17,
+ },
+
+ 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,
+ },
+
+ Scope = {
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ QueueFamily = 5,
+ QueueFamilyKHR = 5,
+ ShaderCallKHR = 6,
+ },
+
+ GroupOperation = {
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ ClusteredReduce = 3,
+ PartitionedReduceNV = 6,
+ PartitionedInclusiveScanNV = 7,
+ PartitionedExclusiveScanNV = 8,
+ },
+
+ KernelEnqueueFlags = {
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+ },
+
+ KernelProfilingInfoShift = {
+ CmdExecTime = 0,
+ },
+
+ KernelProfilingInfoMask = {
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+ },
+
+ 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,
+ CoreBuiltinsARM = 4165,
+ 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,
+ RayTracingOpacityMicromapEXT = 5381,
+ ShaderInvocationReorderNV = 5383,
+ 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,
+ FPGADSPControlINTEL = 5908,
+ MemoryAccessAliasingINTEL = 5910,
+ FPGAInvocationPipeliningAttributesINTEL = 5916,
+ FPGABufferLocationINTEL = 5920,
+ ArbitraryPrecisionFixedPointINTEL = 5922,
+ USMStorageClassesINTEL = 5935,
+ RuntimeAlignedAttributeINTEL = 5939,
+ 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,
+ },
+
+ RayFlagsShift = {
+ OpaqueKHR = 0,
+ NoOpaqueKHR = 1,
+ TerminateOnFirstHitKHR = 2,
+ SkipClosestHitShaderKHR = 3,
+ CullBackFacingTrianglesKHR = 4,
+ CullFrontFacingTrianglesKHR = 5,
+ CullOpaqueKHR = 6,
+ CullNoOpaqueKHR = 7,
+ SkipTrianglesKHR = 8,
+ SkipAABBsKHR = 9,
+ ForceOpacityMicromap2StateEXT = 10,
+ },
+
+ RayFlagsMask = {
+ MaskNone = 0,
+ OpaqueKHR = 0x00000001,
+ NoOpaqueKHR = 0x00000002,
+ TerminateOnFirstHitKHR = 0x00000004,
+ SkipClosestHitShaderKHR = 0x00000008,
+ CullBackFacingTrianglesKHR = 0x00000010,
+ CullFrontFacingTrianglesKHR = 0x00000020,
+ CullOpaqueKHR = 0x00000040,
+ CullNoOpaqueKHR = 0x00000080,
+ SkipTrianglesKHR = 0x00000100,
+ SkipAABBsKHR = 0x00000200,
+ ForceOpacityMicromap2StateEXT = 0x00000400,
+ },
+
+ RayQueryIntersection = {
+ RayQueryCandidateIntersectionKHR = 0,
+ RayQueryCommittedIntersectionKHR = 1,
+ },
+
+ RayQueryCommittedIntersectionType = {
+ RayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionGeneratedKHR = 2,
+ },
+
+ RayQueryCandidateIntersectionType = {
+ RayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionAABBKHR = 1,
+ },
+
+ FragmentShadingRateShift = {
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+ },
+
+ FragmentShadingRateMask = {
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+ },
+
+ FPDenormMode = {
+ Preserve = 0,
+ FlushToZero = 1,
+ },
+
+ FPOperationMode = {
+ IEEE = 0,
+ ALT = 1,
+ },
+
+ 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,
+ },
+
+ OverflowModes = {
+ WRAP = 0,
+ SAT = 1,
+ SAT_ZERO = 2,
+ SAT_SYM = 3,
+ },
+
+ PackedVectorFormat = {
+ PackedVectorFormat4x8Bit = 0,
+ PackedVectorFormat4x8BitKHR = 0,
+ },
+
+ 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,
+ OpHitObjectRecordHitMotionNV = 5249,
+ OpHitObjectRecordHitWithIndexMotionNV = 5250,
+ OpHitObjectRecordMissMotionNV = 5251,
+ OpHitObjectGetWorldToObjectNV = 5252,
+ OpHitObjectGetObjectToWorldNV = 5253,
+ OpHitObjectGetObjectRayDirectionNV = 5254,
+ OpHitObjectGetObjectRayOriginNV = 5255,
+ OpHitObjectTraceRayMotionNV = 5256,
+ OpHitObjectGetShaderRecordBufferHandleNV = 5257,
+ OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+ OpHitObjectRecordEmptyNV = 5259,
+ OpHitObjectTraceRayNV = 5260,
+ OpHitObjectRecordHitNV = 5261,
+ OpHitObjectRecordHitWithIndexNV = 5262,
+ OpHitObjectRecordMissNV = 5263,
+ OpHitObjectExecuteShaderNV = 5264,
+ OpHitObjectGetCurrentTimeNV = 5265,
+ OpHitObjectGetAttributesNV = 5266,
+ OpHitObjectGetHitKindNV = 5267,
+ OpHitObjectGetPrimitiveIndexNV = 5268,
+ OpHitObjectGetGeometryIndexNV = 5269,
+ OpHitObjectGetInstanceIdNV = 5270,
+ OpHitObjectGetInstanceCustomIndexNV = 5271,
+ OpHitObjectGetWorldRayDirectionNV = 5272,
+ OpHitObjectGetWorldRayOriginNV = 5273,
+ OpHitObjectGetRayTMaxNV = 5274,
+ OpHitObjectGetRayTMinNV = 5275,
+ OpHitObjectIsEmptyNV = 5276,
+ OpHitObjectIsHitNV = 5277,
+ OpHitObjectIsMissNV = 5278,
+ OpReorderThreadWithHitObjectNV = 5279,
+ OpReorderThreadWithHintNV = 5280,
+ OpTypeHitObjectNV = 5281,
+ 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/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.py b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.py
new file mode 100644
index 0000000000..549df51496
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spirv.py
@@ -0,0 +1,1900 @@
+# 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.
+
+spv = {
+ 'MagicNumber' : 0x07230203,
+ 'Version' : 0x00010600,
+ 'Revision' : 1,
+ 'OpCodeMask' : 0xffff,
+ 'WordCountShift' : 16,
+
+ 'SourceLanguage' : {
+ 'Unknown' : 0,
+ 'ESSL' : 1,
+ 'GLSL' : 2,
+ 'OpenCL_C' : 3,
+ 'OpenCL_CPP' : 4,
+ 'HLSL' : 5,
+ 'CPP_for_OpenCL' : 6,
+ 'SYCL' : 7,
+ },
+
+ '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,
+ },
+
+ 'AddressingModel' : {
+ 'Logical' : 0,
+ 'Physical32' : 1,
+ 'Physical64' : 2,
+ 'PhysicalStorageBuffer64' : 5348,
+ 'PhysicalStorageBuffer64EXT' : 5348,
+ },
+
+ 'MemoryModel' : {
+ 'Simple' : 0,
+ 'GLSL450' : 1,
+ 'OpenCL' : 2,
+ 'Vulkan' : 3,
+ 'VulkanKHR' : 3,
+ },
+
+ 'ExecutionMode' : {
+ 'Invocations' : 0,
+ 'SpacingEqual' : 1,
+ 'SpacingFractionalEven' : 2,
+ 'SpacingFractionalOdd' : 3,
+ 'VertexOrderCw' : 4,
+ 'VertexOrderCcw' : 5,
+ 'PixelCenterInteger' : 6,
+ 'OriginUpperLeft' : 7,
+ 'OriginLowerLeft' : 8,
+ 'EarlyFragmentTests' : 9,
+ 'PointMode' : 10,
+ 'Xfb' : 11,
+ 'DepthReplacing' : 12,
+ 'DepthGreater' : 14,
+ 'DepthLess' : 15,
+ 'DepthUnchanged' : 16,
+ 'LocalSize' : 17,
+ 'LocalSizeHint' : 18,
+ 'InputPoints' : 19,
+ 'InputLines' : 20,
+ 'InputLinesAdjacency' : 21,
+ 'Triangles' : 22,
+ 'InputTrianglesAdjacency' : 23,
+ 'Quads' : 24,
+ 'Isolines' : 25,
+ 'OutputVertices' : 26,
+ 'OutputPoints' : 27,
+ 'OutputLineStrip' : 28,
+ 'OutputTriangleStrip' : 29,
+ 'VecTypeHint' : 30,
+ 'ContractionOff' : 31,
+ 'Initializer' : 33,
+ 'Finalizer' : 34,
+ 'SubgroupSize' : 35,
+ 'SubgroupsPerWorkgroup' : 36,
+ 'SubgroupsPerWorkgroupId' : 37,
+ 'LocalSizeId' : 38,
+ 'LocalSizeHintId' : 39,
+ 'SubgroupUniformControlFlowKHR' : 4421,
+ 'PostDepthCoverage' : 4446,
+ 'DenormPreserve' : 4459,
+ 'DenormFlushToZero' : 4460,
+ 'SignedZeroInfNanPreserve' : 4461,
+ 'RoundingModeRTE' : 4462,
+ 'RoundingModeRTZ' : 4463,
+ '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,
+ },
+
+ '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,
+ 'HitObjectAttributeNV' : 5385,
+ 'TaskPayloadWorkgroupEXT' : 5402,
+ 'CodeSectionINTEL' : 5605,
+ 'DeviceOnlyINTEL' : 5936,
+ 'HostOnlyINTEL' : 5937,
+ },
+
+ 'Dim' : {
+ 'Dim1D' : 0,
+ 'Dim2D' : 1,
+ 'Dim3D' : 2,
+ 'Cube' : 3,
+ 'Rect' : 4,
+ 'Buffer' : 5,
+ 'SubpassData' : 6,
+ },
+
+ 'SamplerAddressingMode' : {
+ 'None' : 0,
+ 'ClampToEdge' : 1,
+ 'Clamp' : 2,
+ 'Repeat' : 3,
+ 'RepeatMirrored' : 4,
+ },
+
+ 'SamplerFilterMode' : {
+ 'Nearest' : 0,
+ 'Linear' : 1,
+ },
+
+ 'ImageFormat' : {
+ 'Unknown' : 0,
+ 'Rgba32f' : 1,
+ 'Rgba16f' : 2,
+ 'R32f' : 3,
+ 'Rgba8' : 4,
+ 'Rgba8Snorm' : 5,
+ 'Rg32f' : 6,
+ 'Rg16f' : 7,
+ 'R11fG11fB10f' : 8,
+ 'R16f' : 9,
+ 'Rgba16' : 10,
+ 'Rgb10A2' : 11,
+ 'Rg16' : 12,
+ 'Rg8' : 13,
+ 'R16' : 14,
+ 'R8' : 15,
+ 'Rgba16Snorm' : 16,
+ 'Rg16Snorm' : 17,
+ 'Rg8Snorm' : 18,
+ 'R16Snorm' : 19,
+ 'R8Snorm' : 20,
+ 'Rgba32i' : 21,
+ 'Rgba16i' : 22,
+ 'Rgba8i' : 23,
+ 'R32i' : 24,
+ 'Rg32i' : 25,
+ 'Rg16i' : 26,
+ 'Rg8i' : 27,
+ 'R16i' : 28,
+ 'R8i' : 29,
+ 'Rgba32ui' : 30,
+ 'Rgba16ui' : 31,
+ 'Rgba8ui' : 32,
+ 'R32ui' : 33,
+ 'Rgb10a2ui' : 34,
+ 'Rg32ui' : 35,
+ 'Rg16ui' : 36,
+ 'Rg8ui' : 37,
+ 'R16ui' : 38,
+ 'R8ui' : 39,
+ 'R64ui' : 40,
+ 'R64i' : 41,
+ },
+
+ '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,
+ },
+
+ '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,
+ },
+
+ '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,
+ },
+
+ '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,
+ },
+
+ 'FPFastMathModeShift' : {
+ 'NotNaN' : 0,
+ 'NotInf' : 1,
+ 'NSZ' : 2,
+ 'AllowRecip' : 3,
+ 'Fast' : 4,
+ 'AllowContractFastINTEL' : 16,
+ 'AllowReassocINTEL' : 17,
+ },
+
+ 'FPFastMathModeMask' : {
+ 'MaskNone' : 0,
+ 'NotNaN' : 0x00000001,
+ 'NotInf' : 0x00000002,
+ 'NSZ' : 0x00000004,
+ 'AllowRecip' : 0x00000008,
+ 'Fast' : 0x00000010,
+ 'AllowContractFastINTEL' : 0x00010000,
+ 'AllowReassocINTEL' : 0x00020000,
+ },
+
+ 'FPRoundingMode' : {
+ 'RTE' : 0,
+ 'RTZ' : 1,
+ 'RTP' : 2,
+ 'RTN' : 3,
+ },
+
+ 'LinkageType' : {
+ 'Export' : 0,
+ 'Import' : 1,
+ 'LinkOnceODR' : 2,
+ },
+
+ 'AccessQualifier' : {
+ 'ReadOnly' : 0,
+ 'WriteOnly' : 1,
+ 'ReadWrite' : 2,
+ },
+
+ 'FunctionParameterAttribute' : {
+ 'Zext' : 0,
+ 'Sext' : 1,
+ 'ByVal' : 2,
+ 'Sret' : 3,
+ 'NoAlias' : 4,
+ 'NoCapture' : 5,
+ 'NoWrite' : 6,
+ 'NoReadWrite' : 7,
+ 'RuntimeAlignedINTEL' : 5940,
+ },
+
+ '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,
+ 'HitObjectShaderRecordBufferNV' : 5386,
+ '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,
+ 'MathOpDSPModeINTEL' : 5909,
+ 'AliasScopeINTEL' : 5914,
+ 'NoAliasINTEL' : 5915,
+ 'InitiationIntervalINTEL' : 5917,
+ 'MaxConcurrencyINTEL' : 5918,
+ 'PipelineEnableINTEL' : 5919,
+ 'BufferLocationINTEL' : 5921,
+ 'IOPipeStorageINTEL' : 5944,
+ 'FunctionFloatingPointModeINTEL' : 6080,
+ 'SingleElementVectorINTEL' : 6085,
+ 'VectorComputeCallableFunctionINTEL' : 6087,
+ 'MediaBlockIOINTEL' : 6140,
+ },
+
+ '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,
+ 'CoreIDARM' : 4160,
+ 'CoreCountARM' : 4161,
+ 'CoreMaxIDARM' : 4162,
+ 'WarpIDARM' : 4163,
+ 'WarpMaxIDARM' : 4164,
+ '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,
+ },
+
+ 'SelectionControlShift' : {
+ 'Flatten' : 0,
+ 'DontFlatten' : 1,
+ },
+
+ 'SelectionControlMask' : {
+ 'MaskNone' : 0,
+ 'Flatten' : 0x00000001,
+ 'DontFlatten' : 0x00000002,
+ },
+
+ '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,
+ 'LoopCountINTEL' : 24,
+ 'MaxReinvocationDelayINTEL' : 25,
+ },
+
+ '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,
+ 'LoopCountINTEL' : 0x01000000,
+ 'MaxReinvocationDelayINTEL' : 0x02000000,
+ },
+
+ 'FunctionControlShift' : {
+ 'Inline' : 0,
+ 'DontInline' : 1,
+ 'Pure' : 2,
+ 'Const' : 3,
+ 'OptNoneINTEL' : 16,
+ },
+
+ 'FunctionControlMask' : {
+ 'MaskNone' : 0,
+ 'Inline' : 0x00000001,
+ 'DontInline' : 0x00000002,
+ 'Pure' : 0x00000004,
+ 'Const' : 0x00000008,
+ 'OptNoneINTEL' : 0x00010000,
+ },
+
+ '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,
+ },
+
+ '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,
+ },
+
+ 'MemoryAccessShift' : {
+ 'Volatile' : 0,
+ 'Aligned' : 1,
+ 'Nontemporal' : 2,
+ 'MakePointerAvailable' : 3,
+ 'MakePointerAvailableKHR' : 3,
+ 'MakePointerVisible' : 4,
+ 'MakePointerVisibleKHR' : 4,
+ 'NonPrivatePointer' : 5,
+ 'NonPrivatePointerKHR' : 5,
+ 'AliasScopeINTELMask' : 16,
+ 'NoAliasINTELMask' : 17,
+ },
+
+ '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,
+ },
+
+ 'Scope' : {
+ 'CrossDevice' : 0,
+ 'Device' : 1,
+ 'Workgroup' : 2,
+ 'Subgroup' : 3,
+ 'Invocation' : 4,
+ 'QueueFamily' : 5,
+ 'QueueFamilyKHR' : 5,
+ 'ShaderCallKHR' : 6,
+ },
+
+ 'GroupOperation' : {
+ 'Reduce' : 0,
+ 'InclusiveScan' : 1,
+ 'ExclusiveScan' : 2,
+ 'ClusteredReduce' : 3,
+ 'PartitionedReduceNV' : 6,
+ 'PartitionedInclusiveScanNV' : 7,
+ 'PartitionedExclusiveScanNV' : 8,
+ },
+
+ 'KernelEnqueueFlags' : {
+ 'NoWait' : 0,
+ 'WaitKernel' : 1,
+ 'WaitWorkGroup' : 2,
+ },
+
+ 'KernelProfilingInfoShift' : {
+ 'CmdExecTime' : 0,
+ },
+
+ 'KernelProfilingInfoMask' : {
+ 'MaskNone' : 0,
+ 'CmdExecTime' : 0x00000001,
+ },
+
+ '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,
+ 'CoreBuiltinsARM' : 4165,
+ '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,
+ 'RayTracingOpacityMicromapEXT' : 5381,
+ 'ShaderInvocationReorderNV' : 5383,
+ '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,
+ 'FPGADSPControlINTEL' : 5908,
+ 'MemoryAccessAliasingINTEL' : 5910,
+ 'FPGAInvocationPipeliningAttributesINTEL' : 5916,
+ 'FPGABufferLocationINTEL' : 5920,
+ 'ArbitraryPrecisionFixedPointINTEL' : 5922,
+ 'USMStorageClassesINTEL' : 5935,
+ 'RuntimeAlignedAttributeINTEL' : 5939,
+ '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,
+ },
+
+ 'RayFlagsShift' : {
+ 'OpaqueKHR' : 0,
+ 'NoOpaqueKHR' : 1,
+ 'TerminateOnFirstHitKHR' : 2,
+ 'SkipClosestHitShaderKHR' : 3,
+ 'CullBackFacingTrianglesKHR' : 4,
+ 'CullFrontFacingTrianglesKHR' : 5,
+ 'CullOpaqueKHR' : 6,
+ 'CullNoOpaqueKHR' : 7,
+ 'SkipTrianglesKHR' : 8,
+ 'SkipAABBsKHR' : 9,
+ 'ForceOpacityMicromap2StateEXT' : 10,
+ },
+
+ 'RayFlagsMask' : {
+ 'MaskNone' : 0,
+ 'OpaqueKHR' : 0x00000001,
+ 'NoOpaqueKHR' : 0x00000002,
+ 'TerminateOnFirstHitKHR' : 0x00000004,
+ 'SkipClosestHitShaderKHR' : 0x00000008,
+ 'CullBackFacingTrianglesKHR' : 0x00000010,
+ 'CullFrontFacingTrianglesKHR' : 0x00000020,
+ 'CullOpaqueKHR' : 0x00000040,
+ 'CullNoOpaqueKHR' : 0x00000080,
+ 'SkipTrianglesKHR' : 0x00000100,
+ 'SkipAABBsKHR' : 0x00000200,
+ 'ForceOpacityMicromap2StateEXT' : 0x00000400,
+ },
+
+ 'RayQueryIntersection' : {
+ 'RayQueryCandidateIntersectionKHR' : 0,
+ 'RayQueryCommittedIntersectionKHR' : 1,
+ },
+
+ 'RayQueryCommittedIntersectionType' : {
+ 'RayQueryCommittedIntersectionNoneKHR' : 0,
+ 'RayQueryCommittedIntersectionTriangleKHR' : 1,
+ 'RayQueryCommittedIntersectionGeneratedKHR' : 2,
+ },
+
+ 'RayQueryCandidateIntersectionType' : {
+ 'RayQueryCandidateIntersectionTriangleKHR' : 0,
+ 'RayQueryCandidateIntersectionAABBKHR' : 1,
+ },
+
+ 'FragmentShadingRateShift' : {
+ 'Vertical2Pixels' : 0,
+ 'Vertical4Pixels' : 1,
+ 'Horizontal2Pixels' : 2,
+ 'Horizontal4Pixels' : 3,
+ },
+
+ 'FragmentShadingRateMask' : {
+ 'MaskNone' : 0,
+ 'Vertical2Pixels' : 0x00000001,
+ 'Vertical4Pixels' : 0x00000002,
+ 'Horizontal2Pixels' : 0x00000004,
+ 'Horizontal4Pixels' : 0x00000008,
+ },
+
+ 'FPDenormMode' : {
+ 'Preserve' : 0,
+ 'FlushToZero' : 1,
+ },
+
+ 'FPOperationMode' : {
+ 'IEEE' : 0,
+ 'ALT' : 1,
+ },
+
+ '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,
+ },
+
+ 'OverflowModes' : {
+ 'WRAP' : 0,
+ 'SAT' : 1,
+ 'SAT_ZERO' : 2,
+ 'SAT_SYM' : 3,
+ },
+
+ 'PackedVectorFormat' : {
+ 'PackedVectorFormat4x8Bit' : 0,
+ 'PackedVectorFormat4x8BitKHR' : 0,
+ },
+
+ '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,
+ 'OpHitObjectRecordHitMotionNV' : 5249,
+ 'OpHitObjectRecordHitWithIndexMotionNV' : 5250,
+ 'OpHitObjectRecordMissMotionNV' : 5251,
+ 'OpHitObjectGetWorldToObjectNV' : 5252,
+ 'OpHitObjectGetObjectToWorldNV' : 5253,
+ 'OpHitObjectGetObjectRayDirectionNV' : 5254,
+ 'OpHitObjectGetObjectRayOriginNV' : 5255,
+ 'OpHitObjectTraceRayMotionNV' : 5256,
+ 'OpHitObjectGetShaderRecordBufferHandleNV' : 5257,
+ 'OpHitObjectGetShaderBindingTableRecordIndexNV' : 5258,
+ 'OpHitObjectRecordEmptyNV' : 5259,
+ 'OpHitObjectTraceRayNV' : 5260,
+ 'OpHitObjectRecordHitNV' : 5261,
+ 'OpHitObjectRecordHitWithIndexNV' : 5262,
+ 'OpHitObjectRecordMissNV' : 5263,
+ 'OpHitObjectExecuteShaderNV' : 5264,
+ 'OpHitObjectGetCurrentTimeNV' : 5265,
+ 'OpHitObjectGetAttributesNV' : 5266,
+ 'OpHitObjectGetHitKindNV' : 5267,
+ 'OpHitObjectGetPrimitiveIndexNV' : 5268,
+ 'OpHitObjectGetGeometryIndexNV' : 5269,
+ 'OpHitObjectGetInstanceIdNV' : 5270,
+ 'OpHitObjectGetInstanceCustomIndexNV' : 5271,
+ 'OpHitObjectGetWorldRayDirectionNV' : 5272,
+ 'OpHitObjectGetWorldRayOriginNV' : 5273,
+ 'OpHitObjectGetRayTMaxNV' : 5274,
+ 'OpHitObjectGetRayTMinNV' : 5275,
+ 'OpHitObjectIsEmptyNV' : 5276,
+ 'OpHitObjectIsHitNV' : 5277,
+ 'OpHitObjectIsMissNV' : 5278,
+ 'OpReorderThreadWithHitObjectNV' : 5279,
+ 'OpReorderThreadWithHintNV' : 5280,
+ 'OpTypeHitObjectNV' : 5281,
+ '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/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spv.d b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spv.d
new file mode 100644
index 0000000000..538602b038
--- /dev/null
+++ b/externals/sirit/externals/SPIRV-Headers/include/spirv/unified1/spv.d
@@ -0,0 +1,1957 @@
+/+
+ + 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.
+ +/
+
+module spv;
+
+enum uint MagicNumber = 0x07230203;
+enum uint Version = 0x00010600;
+enum uint Revision = 1;
+enum uint OpCodeMask = 0xffff;
+enum uint WordCountShift = 16;
+
+enum SourceLanguage : uint
+{
+ Unknown = 0,
+ ESSL = 1,
+ GLSL = 2,
+ OpenCL_C = 3,
+ OpenCL_CPP = 4,
+ HLSL = 5,
+ CPP_for_OpenCL = 6,
+ SYCL = 7,
+}
+
+enum ExecutionModel : uint
+{
+ 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,
+}
+
+enum AddressingModel : uint
+{
+ Logical = 0,
+ Physical32 = 1,
+ Physical64 = 2,
+ PhysicalStorageBuffer64 = 5348,
+ PhysicalStorageBuffer64EXT = 5348,
+}
+
+enum MemoryModel : uint
+{
+ Simple = 0,
+ GLSL450 = 1,
+ OpenCL = 2,
+ Vulkan = 3,
+ VulkanKHR = 3,
+}
+
+enum ExecutionMode : uint
+{
+ 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,
+}
+
+enum StorageClass : uint
+{
+ 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,
+ HitObjectAttributeNV = 5385,
+ TaskPayloadWorkgroupEXT = 5402,
+ CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
+}
+
+enum Dim : uint
+{
+ _1D = 0,
+ _2D = 1,
+ _3D = 2,
+ Cube = 3,
+ Rect = 4,
+ Buffer = 5,
+ SubpassData = 6,
+}
+
+enum SamplerAddressingMode : uint
+{
+ None = 0,
+ ClampToEdge = 1,
+ Clamp = 2,
+ Repeat = 3,
+ RepeatMirrored = 4,
+}
+
+enum SamplerFilterMode : uint
+{
+ Nearest = 0,
+ Linear = 1,
+}
+
+enum ImageFormat : uint
+{
+ 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,
+}
+
+enum ImageChannelOrder : uint
+{
+ 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,
+}
+
+enum ImageChannelDataType : uint
+{
+ 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,
+}
+
+enum ImageOperandsShift : uint
+{
+ 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,
+}
+
+enum ImageOperandsMask : uint
+{
+ 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,
+}
+
+enum FPFastMathModeShift : uint
+{
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
+}
+
+enum FPFastMathModeMask : uint
+{
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
+}
+
+enum FPRoundingMode : uint
+{
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+}
+
+enum LinkageType : uint
+{
+ Export = 0,
+ Import = 1,
+ LinkOnceODR = 2,
+}
+
+enum AccessQualifier : uint
+{
+ ReadOnly = 0,
+ WriteOnly = 1,
+ ReadWrite = 2,
+}
+
+enum FunctionParameterAttribute : uint
+{
+ Zext = 0,
+ Sext = 1,
+ ByVal = 2,
+ Sret = 3,
+ NoAlias = 4,
+ NoCapture = 5,
+ NoWrite = 6,
+ NoReadWrite = 7,
+ RuntimeAlignedINTEL = 5940,
+}
+
+enum Decoration : uint
+{
+ 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,
+ HitObjectShaderRecordBufferNV = 5386,
+ 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,
+ MathOpDSPModeINTEL = 5909,
+ AliasScopeINTEL = 5914,
+ NoAliasINTEL = 5915,
+ InitiationIntervalINTEL = 5917,
+ MaxConcurrencyINTEL = 5918,
+ PipelineEnableINTEL = 5919,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
+ MediaBlockIOINTEL = 6140,
+}
+
+enum BuiltIn : uint
+{
+ 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,
+ CoreIDARM = 4160,
+ CoreCountARM = 4161,
+ CoreMaxIDARM = 4162,
+ WarpIDARM = 4163,
+ WarpMaxIDARM = 4164,
+ 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,
+}
+
+enum SelectionControlShift : uint
+{
+ Flatten = 0,
+ DontFlatten = 1,
+}
+
+enum SelectionControlMask : uint
+{
+ MaskNone = 0,
+ Flatten = 0x00000001,
+ DontFlatten = 0x00000002,
+}
+
+enum LoopControlShift : uint
+{
+ 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,
+ LoopCountINTEL = 24,
+ MaxReinvocationDelayINTEL = 25,
+}
+
+enum LoopControlMask : uint
+{
+ 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,
+ LoopCountINTEL = 0x01000000,
+ MaxReinvocationDelayINTEL = 0x02000000,
+}
+
+enum FunctionControlShift : uint
+{
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+ OptNoneINTEL = 16,
+}
+
+enum FunctionControlMask : uint
+{
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+ OptNoneINTEL = 0x00010000,
+}
+
+enum MemorySemanticsShift : uint
+{
+ 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,
+}
+
+enum MemorySemanticsMask : uint
+{
+ 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,
+}
+
+enum MemoryAccessShift : uint
+{
+ Volatile = 0,
+ Aligned = 1,
+ Nontemporal = 2,
+ MakePointerAvailable = 3,
+ MakePointerAvailableKHR = 3,
+ MakePointerVisible = 4,
+ MakePointerVisibleKHR = 4,
+ NonPrivatePointer = 5,
+ NonPrivatePointerKHR = 5,
+ AliasScopeINTELMask = 16,
+ NoAliasINTELMask = 17,
+}
+
+enum MemoryAccessMask : uint
+{
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+ MakePointerAvailable = 0x00000008,
+ MakePointerAvailableKHR = 0x00000008,
+ MakePointerVisible = 0x00000010,
+ MakePointerVisibleKHR = 0x00000010,
+ NonPrivatePointer = 0x00000020,
+ NonPrivatePointerKHR = 0x00000020,
+ AliasScopeINTELMask = 0x00010000,
+ NoAliasINTELMask = 0x00020000,
+}
+
+enum Scope : uint
+{
+ CrossDevice = 0,
+ Device = 1,
+ Workgroup = 2,
+ Subgroup = 3,
+ Invocation = 4,
+ QueueFamily = 5,
+ QueueFamilyKHR = 5,
+ ShaderCallKHR = 6,
+}
+
+enum GroupOperation : uint
+{
+ Reduce = 0,
+ InclusiveScan = 1,
+ ExclusiveScan = 2,
+ ClusteredReduce = 3,
+ PartitionedReduceNV = 6,
+ PartitionedInclusiveScanNV = 7,
+ PartitionedExclusiveScanNV = 8,
+}
+
+enum KernelEnqueueFlags : uint
+{
+ NoWait = 0,
+ WaitKernel = 1,
+ WaitWorkGroup = 2,
+}
+
+enum KernelProfilingInfoShift : uint
+{
+ CmdExecTime = 0,
+}
+
+enum KernelProfilingInfoMask : uint
+{
+ MaskNone = 0,
+ CmdExecTime = 0x00000001,
+}
+
+enum Capability : uint
+{
+ 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,
+ CoreBuiltinsARM = 4165,
+ 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,
+ RayTracingOpacityMicromapEXT = 5381,
+ ShaderInvocationReorderNV = 5383,
+ 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,
+ FPGADSPControlINTEL = 5908,
+ MemoryAccessAliasingINTEL = 5910,
+ FPGAInvocationPipeliningAttributesINTEL = 5916,
+ FPGABufferLocationINTEL = 5920,
+ ArbitraryPrecisionFixedPointINTEL = 5922,
+ USMStorageClassesINTEL = 5935,
+ RuntimeAlignedAttributeINTEL = 5939,
+ 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,
+}
+
+enum RayFlagsShift : uint
+{
+ OpaqueKHR = 0,
+ NoOpaqueKHR = 1,
+ TerminateOnFirstHitKHR = 2,
+ SkipClosestHitShaderKHR = 3,
+ CullBackFacingTrianglesKHR = 4,
+ CullFrontFacingTrianglesKHR = 5,
+ CullOpaqueKHR = 6,
+ CullNoOpaqueKHR = 7,
+ SkipTrianglesKHR = 8,
+ SkipAABBsKHR = 9,
+ ForceOpacityMicromap2StateEXT = 10,
+}
+
+enum RayFlagsMask : uint
+{
+ MaskNone = 0,
+ OpaqueKHR = 0x00000001,
+ NoOpaqueKHR = 0x00000002,
+ TerminateOnFirstHitKHR = 0x00000004,
+ SkipClosestHitShaderKHR = 0x00000008,
+ CullBackFacingTrianglesKHR = 0x00000010,
+ CullFrontFacingTrianglesKHR = 0x00000020,
+ CullOpaqueKHR = 0x00000040,
+ CullNoOpaqueKHR = 0x00000080,
+ SkipTrianglesKHR = 0x00000100,
+ SkipAABBsKHR = 0x00000200,
+ ForceOpacityMicromap2StateEXT = 0x00000400,
+}
+
+enum RayQueryIntersection : uint
+{
+ RayQueryCandidateIntersectionKHR = 0,
+ RayQueryCommittedIntersectionKHR = 1,
+}
+
+enum RayQueryCommittedIntersectionType : uint
+{
+ RayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionGeneratedKHR = 2,
+}
+
+enum RayQueryCandidateIntersectionType : uint
+{
+ RayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionAABBKHR = 1,
+}
+
+enum FragmentShadingRateShift : uint
+{
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+}
+
+enum FragmentShadingRateMask : uint
+{
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+}
+
+enum FPDenormMode : uint
+{
+ Preserve = 0,
+ FlushToZero = 1,
+}
+
+enum FPOperationMode : uint
+{
+ IEEE = 0,
+ ALT = 1,
+}
+
+enum QuantizationModes : uint
+{
+ TRN = 0,
+ TRN_ZERO = 1,
+ RND = 2,
+ RND_ZERO = 3,
+ RND_INF = 4,
+ RND_MIN_INF = 5,
+ RND_CONV = 6,
+ RND_CONV_ODD = 7,
+}
+
+enum OverflowModes : uint
+{
+ WRAP = 0,
+ SAT = 1,
+ SAT_ZERO = 2,
+ SAT_SYM = 3,
+}
+
+enum PackedVectorFormat : uint
+{
+ PackedVectorFormat4x8Bit = 0,
+ PackedVectorFormat4x8BitKHR = 0,
+}
+
+enum Op : uint
+{
+ 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,
+ OpHitObjectRecordHitMotionNV = 5249,
+ OpHitObjectRecordHitWithIndexMotionNV = 5250,
+ OpHitObjectRecordMissMotionNV = 5251,
+ OpHitObjectGetWorldToObjectNV = 5252,
+ OpHitObjectGetObjectToWorldNV = 5253,
+ OpHitObjectGetObjectRayDirectionNV = 5254,
+ OpHitObjectGetObjectRayOriginNV = 5255,
+ OpHitObjectTraceRayMotionNV = 5256,
+ OpHitObjectGetShaderRecordBufferHandleNV = 5257,
+ OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+ OpHitObjectRecordEmptyNV = 5259,
+ OpHitObjectTraceRayNV = 5260,
+ OpHitObjectRecordHitNV = 5261,
+ OpHitObjectRecordHitWithIndexNV = 5262,
+ OpHitObjectRecordMissNV = 5263,
+ OpHitObjectExecuteShaderNV = 5264,
+ OpHitObjectGetCurrentTimeNV = 5265,
+ OpHitObjectGetAttributesNV = 5266,
+ OpHitObjectGetHitKindNV = 5267,
+ OpHitObjectGetPrimitiveIndexNV = 5268,
+ OpHitObjectGetGeometryIndexNV = 5269,
+ OpHitObjectGetInstanceIdNV = 5270,
+ OpHitObjectGetInstanceCustomIndexNV = 5271,
+ OpHitObjectGetWorldRayDirectionNV = 5272,
+ OpHitObjectGetWorldRayOriginNV = 5273,
+ OpHitObjectGetRayTMaxNV = 5274,
+ OpHitObjectGetRayTMinNV = 5275,
+ OpHitObjectIsEmptyNV = 5276,
+ OpHitObjectIsHitNV = 5277,
+ OpHitObjectIsMissNV = 5278,
+ OpReorderThreadWithHitObjectNV = 5279,
+ OpReorderThreadWithHintNV = 5280,
+ OpTypeHitObjectNV = 5281,
+ 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/externals/sirit/include/sirit/sirit.h b/externals/sirit/include/sirit/sirit.h
new file mode 100644
index 0000000000..aea446824b
--- /dev/null
+++ b/externals/sirit/include/sirit/sirit.h
@@ -0,0 +1,1330 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#pragma once
+
+#include <array>
+#include <cstdint>
+#include <functional>
+#include <memory>
+#include <optional>
+#include <span>
+#include <string>
+#include <string_view>
+#include <type_traits>
+#include <unordered_set>
+#include <variant>
+#include <vector>
+
+#include <spirv/unified1/spirv.hpp11>
+
+namespace Sirit {
+
+constexpr std::uint32_t GENERATOR_MAGIC_NUMBER = 0;
+
+class Declarations;
+class Operand;
+class Stream;
+
+using Literal =
+ std::variant<std::uint32_t, std::uint64_t, std::int32_t, std::int64_t, float, double>;
+
+struct Id {
+ std::uint32_t value;
+};
+
+[[nodiscard]] inline bool ValidId(Id id) noexcept {
+ return id.value != 0;
+}
+
+class Module {
+public:
+ explicit Module(std::uint32_t version = spv::Version);
+ ~Module();
+
+ /**
+ * Assembles current module into a SPIR-V stream.
+ * It can be called multiple times but it's recommended to copy code
+ * externally.
+ * @return A stream of bytes representing a SPIR-V module.
+ */
+ std::vector<std::uint32_t> Assemble() const;
+
+ /// Patches deferred phi nodes calling the passed function on each phi argument
+ void PatchDeferredPhi(const std::function<Id(std::size_t index)>& func);
+
+ /// Adds a SPIR-V extension.
+ void AddExtension(std::string extension_name);
+
+ /// Adds a module capability.
+ void AddCapability(spv::Capability capability);
+
+ /// Sets module memory model.
+ void SetMemoryModel(spv::AddressingModel addressing_model_, spv::MemoryModel memory_model_);
+
+ /// Adds an entry point.
+ void AddEntryPoint(spv::ExecutionModel execution_model, Id entry_point, std::string_view name,
+ std::span<const Id> interfaces = {});
+
+ /// Adds an entry point.
+ // TODO: Change std::is_convertible_v to std::convertible_to when compilers
+ // support it; same elsewhere.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) void AddEntryPoint(
+ spv::ExecutionModel execution_model, Id entry_point, std::string_view name,
+ Ts&&... interfaces) {
+ AddEntryPoint(execution_model, std::move(entry_point), name,
+ std::span<const Id>({interfaces...}));
+ }
+
+ /// Declare an execution mode for an entry point.
+ void AddExecutionMode(Id entry_point, spv::ExecutionMode mode,
+ std::span<const Literal> literals = {});
+
+ /// Declare an execution mode for an entry point.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Literal>) void AddExecutionMode(
+ Id entry_point, spv::ExecutionMode mode, Ts&&... literals) {
+ AddExecutionMode(entry_point, mode, std::span<const Literal>({literals...}));
+ }
+
+ /**
+ * Adds an existing label to the code
+ * @param label Label to insert into code.
+ * @return Returns label.
+ */
+ Id AddLabel(Id label);
+
+ /**
+ * Adds a label to the code
+ * @return Returns the created label.
+ */
+ Id AddLabel() {
+ return AddLabel(OpLabel());
+ }
+
+ /// Adds a local variable to the code
+ Id AddLocalVariable(Id result_type, spv::StorageClass storage_class,
+ std::optional<Id> initializer = std::nullopt);
+
+ /// Adds a global variable
+ Id AddGlobalVariable(Id result_type, spv::StorageClass storage_class,
+ std::optional<Id> initializer = std::nullopt);
+
+ // Types
+
+ /// Returns type void.
+ Id TypeVoid();
+
+ /// Returns type bool.
+ Id TypeBool();
+
+ /// Returns type integer.
+ Id TypeInt(int width, bool is_signed);
+
+ /// Returns type signed integer.
+ Id TypeSInt(int width);
+
+ /// Returns type unsigned integer.
+ Id TypeUInt(int width);
+
+ /// Returns type float.
+ Id TypeFloat(int width);
+
+ /// Returns type vector.
+ Id TypeVector(Id component_type, int component_count);
+
+ /// Returns type matrix.
+ Id TypeMatrix(Id column_type, int column_count);
+
+ /// Returns type image.
+ Id TypeImage(Id sampled_type, spv::Dim dim, int depth, bool arrayed, bool ms, int sampled,
+ spv::ImageFormat image_format,
+ std::optional<spv::AccessQualifier> access_qualifier = std::nullopt);
+
+ /// Returns type sampler.
+ Id TypeSampler();
+
+ /// Returns type sampled image.
+ Id TypeSampledImage(Id image_type);
+
+ /// Returns type array.
+ Id TypeArray(Id element_type, Id length);
+
+ /// Returns type runtime array.
+ Id TypeRuntimeArray(Id element_type);
+
+ /// Returns type struct.
+ Id TypeStruct(std::span<const Id> members = {});
+
+ /// Returns type struct.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id TypeStruct(Ts&&... members) {
+ return TypeStruct(std::span<const Id>({members...}));
+ }
+
+ /// Returns type opaque.
+ Id TypeOpaque(std::string_view name);
+
+ /// Returns type pointer.
+ Id TypePointer(spv::StorageClass storage_class, Id type);
+
+ /// Returns type function.
+ Id TypeFunction(Id return_type, std::span<const Id> arguments = {});
+
+ /// Returns type function.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ TypeFunction(Id return_type, Ts&&... arguments) {
+ return TypeFunction(return_type, std::span<const Id>({arguments...}));
+ }
+
+ /// Returns type event.
+ Id TypeEvent();
+
+ /// Returns type device event.
+ Id TypeDeviceEvent();
+
+ /// Returns type reserve id.
+ Id TypeReserveId();
+
+ /// Returns type queue.
+ Id TypeQueue();
+
+ /// Returns type pipe.
+ Id TypePipe(spv::AccessQualifier access_qualifier);
+
+ // Constant
+
+ /// Returns a true scalar constant.
+ Id ConstantTrue(Id result_type);
+
+ /// Returns a false scalar constant.
+ Id ConstantFalse(Id result_type);
+
+ /// Returns a numeric scalar constant.
+ Id Constant(Id result_type, const Literal& literal);
+
+ /// Returns a numeric scalar constant.
+ Id ConstantComposite(Id result_type, std::span<const Id> constituents);
+
+ /// Returns a numeric scalar constant.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ ConstantComposite(Id result_type, Ts&&... constituents) {
+ return ConstantComposite(result_type, std::span<const Id>({constituents...}));
+ }
+
+ /// Returns a sampler constant.
+ Id ConstantSampler(Id result_type, spv::SamplerAddressingMode addressing_mode, bool normalized,
+ spv::SamplerFilterMode filter_mode);
+
+ /// Returns a null constant value.
+ Id ConstantNull(Id result_type);
+
+ // Function
+
+ /// Declares a function.
+ Id OpFunction(Id result_type, spv::FunctionControlMask function_control, Id function_type);
+
+ /// Ends a function.
+ void OpFunctionEnd();
+
+ /// Call a function.
+ Id OpFunctionCall(Id result_type, Id function, std::span<const Id> arguments = {});
+
+ /// Call a function.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpFunctionCall(Id result_type, Id function, Ts&&... arguments) {
+ return OpFunctionCall(result_type, function, std::span<const Id>({arguments...}));
+ }
+
+ /// Declare a formal parameter of the current function.
+ Id OpFunctionParameter(Id result_type);
+
+ // Flow
+
+ /**
+ * The SSA phi function.
+ *
+ * @param result_type The result type.
+ * @param operands An immutable span of variable, parent block pairs
+ */
+ Id OpPhi(Id result_type, std::span<const Id> operands);
+
+ /**
+ * The SSA phi function. This instruction will be revisited when patching phi nodes.
+ *
+ * @param result_type The result type.
+ * @param blocks An immutable span of block pairs.
+ */
+ Id DeferredOpPhi(Id result_type, std::span<const Id> blocks);
+
+ /// Declare a structured loop.
+ Id OpLoopMerge(Id merge_block, Id continue_target, spv::LoopControlMask loop_control,
+ std::span<const Id> literals = {});
+
+ /// Declare a structured loop.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpLoopMerge(Id merge_block, Id continue_target, spv::LoopControlMask loop_control,
+ Ts&&... literals) {
+ return OpLoopMerge(merge_block, continue_target, loop_control,
+ std::span<const Id>({literals...}));
+ }
+
+ /// Declare a structured selection.
+ Id OpSelectionMerge(Id merge_block, spv::SelectionControlMask selection_control);
+
+ /// The block label instruction: Any reference to a block is through this ref.
+ Id OpLabel();
+
+ /// The block label instruction: Any reference to a block is through this ref.
+ Id OpLabel(std::string_view label_name) {
+ return Name(OpLabel(), label_name);
+ }
+
+ /// Unconditional jump to label.
+ Id OpBranch(Id target_label);
+
+ /// If condition is true branch to true_label, otherwise branch to
+ /// false_label.
+ Id OpBranchConditional(Id condition, Id true_label, Id false_label,
+ std::uint32_t true_weight = 0, std::uint32_t false_weight = 0);
+
+ /// Multi-way branch to one of the operand label.
+ Id OpSwitch(Id selector, Id default_label, std::span<const Literal> literals,
+ std::span<const Id> labels);
+
+ /// Returns with no value from a function with void return type.
+ void OpReturn();
+
+ /// Behavior is undefined if this instruction is executed.
+ void OpUnreachable();
+
+ /// Return a value from a function.
+ Id OpReturnValue(Id value);
+
+ /// Deprecated fragment-shader discard.
+ void OpKill();
+
+ /// Demote fragment shader invocation to a helper invocation
+ void OpDemoteToHelperInvocation();
+ void OpDemoteToHelperInvocationEXT();
+
+ /// Fragment-shader discard.
+ void OpTerminateInvocation();
+
+ // Debug
+
+ /// Assign a name string to a reference.
+ /// @return target
+ Id Name(Id target, std::string_view name);
+
+ /// Assign a name string to a member of a structure type.
+ /// @return type
+ Id MemberName(Id type, std::uint32_t member, std::string_view name);
+
+ /// Assign a Result <id> to a string for use by other debug instructions.
+ Id String(std::string_view string);
+
+ /// Add source-level location information
+ Id OpLine(Id file, Literal line, Literal column);
+
+ // Memory
+
+ /// Form a pointer to a texel of an image. Use of such a pointer is limited to atomic
+ /// operations.
+ Id OpImageTexelPointer(Id result_type, Id image, Id coordinate, Id sample);
+
+ /// Load through a pointer.
+ Id OpLoad(Id result_type, Id pointer,
+ std::optional<spv::MemoryAccessMask> memory_access = std::nullopt);
+
+ /// Store through a pointer.
+ Id OpStore(Id pointer, Id object,
+ std::optional<spv::MemoryAccessMask> memory_access = std::nullopt);
+
+ /// Create a pointer into a composite object that can be used with OpLoad and OpStore.
+ Id OpAccessChain(Id result_type, Id base, std::span<const Id> indexes = {});
+
+ /// Create a pointer into a composite object that can be used with OpLoad and OpStore.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpAccessChain(Id result_type, Id base, Ts&&... indexes) {
+ return OpAccessChain(result_type, base, std::span<const Id>({indexes...}));
+ }
+
+ /// Extract a single, dynamically selected, component of a vector.
+ Id OpVectorExtractDynamic(Id result_type, Id vector, Id index);
+
+ /// Make a copy of a vector, with a single, variably selected, component modified.
+ Id OpVectorInsertDynamic(Id result_type, Id vector, Id component, Id index);
+
+ /// Make a copy of a composite object, while modifying one part of it.
+ Id OpCompositeInsert(Id result_type, Id object, Id composite,
+ std::span<const Literal> indexes = {});
+
+ /// Make a copy of a composite object, while modifying one part of it.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Literal>) Id
+ OpCompositeInsert(Id result_type, Id object, Id composite, Ts&&... indexes) {
+ const Literal stack_indexes[] = {std::forward<Ts>(indexes)...};
+ return OpCompositeInsert(result_type, object, composite,
+ std::span<const Literal>{stack_indexes});
+ }
+
+ /// Extract a part of a composite object.
+ Id OpCompositeExtract(Id result_type, Id composite, std::span<const Literal> indexes = {});
+
+ /// Extract a part of a composite object.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Literal>) Id
+ OpCompositeExtract(Id result_type, Id composite, Ts&&... indexes) {
+ const Literal stack_indexes[] = {std::forward<Ts>(indexes)...};
+ return OpCompositeExtract(result_type, composite, std::span<const Literal>{stack_indexes});
+ }
+
+ /// Construct a new composite object from a set of constituent objects that will fully form it.
+ Id OpCompositeConstruct(Id result_type, std::span<const Id> ids);
+
+ /// Construct a new composite object from a set of constituent objects that will fully form it.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpCompositeConstruct(Id result_type, Ts&&... ids) {
+ return OpCompositeConstruct(result_type, std::span<const Id>({ids...}));
+ }
+
+ // Annotation
+
+ /// Add a decoration to target.
+ Id Decorate(Id target, spv::Decoration decoration, std::span<const Literal> literals = {});
+
+ /// Add a decoration to target.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Literal>) Id
+ Decorate(Id target, spv::Decoration decoration, Ts&&... literals) {
+ const Literal stack_literals[] = {std::forward<Ts>(literals)...};
+ return Decorate(target, decoration, std::span<const Literal>{stack_literals});
+ }
+
+ /// Add a decoration to target.
+ template <typename T>
+ requires std::is_enum_v<T> Id Decorate(Id target, spv::Decoration decoration, T literal) {
+ return Decorate(target, decoration, static_cast<std::uint32_t>(literal));
+ }
+
+ Id MemberDecorate(Id structure_type, Literal member, spv::Decoration decoration,
+ std::span<const Literal> literals = {});
+
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Literal>) Id
+ MemberDecorate(Id structure_type, Literal member, spv::Decoration decoration,
+ Ts&&... literals) {
+ const Literal stack_literals[] = {std::forward<Ts>(literals)...};
+ return MemberDecorate(structure_type, member, decoration,
+ std::span<const Literal>{stack_literals});
+ }
+
+ // Misc
+
+ /// Make an intermediate object whose value is undefined.
+ Id OpUndef(Id result_type);
+
+ /// Emits the current values of all output variables to the current output primitive.
+ void OpEmitVertex();
+
+ /// Finish the current primitive and start a new one. No vertex is emitted.
+ void OpEndPrimitive();
+
+ /// Emits the current values of all output variables to the current output primitive. After
+ /// execution, the values of all output variables are undefined.
+ void OpEmitStreamVertex(Id stream);
+
+ /// Finish the current primitive and start a new one. No vertex is emitted.
+ void OpEndStreamPrimitive(Id stream);
+
+ // Barrier
+
+ /// Wait for other invocations of this module to reach the current point of execution.
+ Id OpControlBarrier(Id execution, Id memory, Id semantics);
+
+ /// Control the order that memory accesses are observed.
+ Id OpMemoryBarrier(Id scope, Id semantics);
+
+ // Logical
+
+ /// Result is true if any component of Vector is true, otherwise result is false.
+ Id OpAny(Id result_type, Id vector);
+
+ /// Result is true if all components of Vector are true, otherwise result is false.
+ Id OpAll(Id result_type, Id vector);
+
+ /// Result is true if x is an IEEE NaN, otherwise result is false.
+ Id OpIsNan(Id result_type, Id operand);
+
+ /// Result is true if x is an IEEE Inf, otherwise result is false.
+ Id OpIsInf(Id result_type, Id operand);
+
+ /// Result is true if Operand 1 and Operand 2 have the same value. Result is false if Operand 1
+ /// and Operand 2 have different values.
+ Id OpLogicalEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Result is true if Operand 1 and Operand 2 have different values. Result is false if Operand
+ /// 1 and Operand 2 have the same value.
+ Id OpLogicalNotEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Result is true if either Operand 1 or Operand 2 is true. Result is false if both Operand 1
+ /// and Operand 2 are false.
+ Id OpLogicalOr(Id result_type, Id operand_1, Id operand_2);
+
+ /// Result is true if both Operand 1 and Operand 2 are true. Result is false if either Operand 1
+ /// or Operand 2 are false.
+ Id OpLogicalAnd(Id result_type, Id operand_1, Id operand_2);
+
+ /// Result is true if Operand is false. Result is false if Operand is true.
+ Id OpLogicalNot(Id result_type, Id operand);
+
+ /// Select components from two objects.
+ Id OpSelect(Id result_type, Id condition, Id operand_1, Id operand_2);
+
+ /// Integer comparison for equality.
+ Id OpIEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Integer comparison for inequality.
+ Id OpINotEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Unsigned-integer comparison if Operand 1 is greater than Operand 2.
+ Id OpUGreaterThan(Id result_type, Id operand_1, Id operand_2);
+
+ /// Signed-integer comparison if Operand 1 is greater than Operand 2.
+ Id OpSGreaterThan(Id result_type, Id operand_1, Id operand_2);
+
+ /// Unsigned-integer comparison if Operand 1 is greater than or equal to Operand 2.
+ Id OpUGreaterThanEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Signed-integer comparison if Operand 1 is greater than or equal to Operand 2.
+ Id OpSGreaterThanEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Unsigned-integer comparison if Operand 1 is less than Operand 2.
+ Id OpULessThan(Id result_type, Id operand_1, Id operand_2);
+
+ /// Signed-integer comparison if Operand 1 is less than Operand 2.
+ Id OpSLessThan(Id result_type, Id operand_1, Id operand_2);
+
+ /// Unsigned-integer comparison if Operand 1 is less than or equal to Operand 2.
+ Id OpULessThanEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Signed-integer comparison if Operand 1 is less than or equal to Operand 2.
+ Id OpSLessThanEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point comparison for being ordered and equal.
+ Id OpFOrdEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point comparison for being unordered or equal.
+ Id OpFUnordEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point comparison for being ordered and not equal.
+ Id OpFOrdNotEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point comparison for being unordered or not equal.
+ Id OpFUnordNotEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point comparison if operands are ordered and Operand 1 is less than Operand 2.
+ Id OpFOrdLessThan(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point comparison if operands are unordered or Operand 1 is less than Operand 2.
+ Id OpFUnordLessThan(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point comparison if operands are ordered and Operand 1 is greater than Operand 2.
+ Id OpFOrdGreaterThan(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point comparison if operands are unordered or Operand 1 is greater than Operand 2.
+ Id OpFUnordGreaterThan(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point comparison if operands are ordered and Operand 1 is less than or equal to
+ /// Operand 2.
+ Id OpFOrdLessThanEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point comparison if operands are unordered or Operand 1 is less than or equal to
+ /// Operand 2.
+ Id OpFUnordLessThanEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point comparison if operands are ordered and Operand 1 is greater than or equal to
+ /// Operand 2.
+ Id OpFOrdGreaterThanEqual(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point comparison if operands are unordered or Operand 1 is greater than or equal to
+ /// Operand 2.
+ Id OpFUnordGreaterThanEqual(Id result_type, Id operand_1, Id operand_2);
+
+ // Conversion
+
+ /// Convert (value preserving) from floating point to unsigned integer, with round toward 0.0.
+ Id OpConvertFToU(Id result_type, Id operand);
+
+ /// Convert (value preserving) from floating point to signed integer, with round toward 0.0.
+ Id OpConvertFToS(Id result_type, Id operand);
+
+ /// Convert (value preserving) from signed integer to floating point.
+ Id OpConvertSToF(Id result_type, Id operand);
+
+ /// Convert (value preserving) from unsigned integer to floating point.
+ Id OpConvertUToF(Id result_type, Id operand);
+
+ /// Convert (value preserving) unsigned width. This is either a truncate or a zero extend.
+ Id OpUConvert(Id result_type, Id operand);
+
+ /// Convert (value preserving) signed width. This is either a truncate or a sign extend.
+ Id OpSConvert(Id result_type, Id operand);
+
+ /// Convert (value preserving) floating-point width.
+ Id OpFConvert(Id result_type, Id operand);
+
+ /// Quantize a floating-point value to what is expressible by a 16-bit floating-point value.
+ Id OpQuantizeToF16(Id result_type, Id operand);
+
+ /// Bit pattern-preserving type conversion.
+ Id OpBitcast(Id result_type, Id operand);
+
+ // Bit
+
+ /// Shift the bits in Base right by the number of bits specified in Shift.
+ /// The most-significant bits will be zero filled.
+ Id OpShiftRightLogical(Id result_type, Id base, Id shift);
+
+ /// Shift the bits in Base right by the number of bits specified in Shift.
+ /// The most-significant bits will be filled with the sign bit from Base.
+ Id OpShiftRightArithmetic(Id result_type, Id base, Id shift);
+
+ /// Shift the bits in Base left by the number of bits specified in Shift.
+ /// The least-significant bits will be zero filled.
+ Id OpShiftLeftLogical(Id result_type, Id base, Id shift);
+
+ /// Does a bitwise Or between operands 1 and 2.
+ Id OpBitwiseOr(Id result_type, Id operand_1, Id operand_2);
+
+ /// Does a bitwise Xor between operands 1 and 2.
+ Id OpBitwiseXor(Id result_type, Id operand_1, Id operand_2);
+
+ /// Result is 1 if both Operand 1 and Operand 2 are 1. Result is 0 if either
+ /// Operand 1 or Operand 2 are 0.
+ Id OpBitwiseAnd(Id result_type, Id operand_1, Id operand_2);
+
+ /// Does a bitwise Not on the operand.
+ Id OpNot(Id result_type, Id operand);
+
+ /// Make a copy of an object, with a modified bit field that comes from another object.
+ Id OpBitFieldInsert(Id result_type, Id base, Id insert, Id offset, Id count);
+
+ /// Extract a bit field from an object, with sign extension.
+ Id OpBitFieldSExtract(Id result_type, Id base, Id offset, Id count);
+
+ /// Extract a bit field from an object, without sign extension.
+ Id OpBitFieldUExtract(Id result_type, Id base, Id offset, Id count);
+
+ /// Reverse the bits in an object.
+ Id OpBitReverse(Id result_type, Id base);
+
+ /// Count the number of set bits in an object.
+ Id OpBitCount(Id result_type, Id base);
+
+ // Arithmetic
+
+ /// Floating-point subtract of Operand from zero.
+ Id OpSNegate(Id result_type, Id operand);
+
+ /// Floating-point subtract of Operand from zero.
+ Id OpFNegate(Id result_type, Id operand);
+
+ /// Integer addition of Operand 1 and Operand 2.
+ Id OpIAdd(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point addition of Operand 1 and Operand 2.
+ Id OpFAdd(Id result_type, Id operand_1, Id operand_2);
+
+ /// Integer substraction of Operand 1 and Operand 2.
+ Id OpISub(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point subtraction of Operand 1 and Operand 2.
+ Id OpFSub(Id result_type, Id operand_1, Id operand_2);
+
+ /// Integer multiplication of Operand 1 and Operand 2.
+ Id OpIMul(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point multiplication of Operand 1 and Operand 2.
+ Id OpFMul(Id result_type, Id operand_1, Id operand_2);
+
+ /// Unsigned-integer division of Operand 1 divided by Operand 2.
+ Id OpUDiv(Id result_type, Id operand_1, Id operand_2);
+
+ /// signed-integer division of Operand 1 divided by Operand 2.
+ Id OpSDiv(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point division of Operand 1 divided by Operand 2.
+ Id OpFDiv(Id result_type, Id operand_1, Id operand_2);
+
+ /// Unsigned modulo operation of Operand 1 modulo Operand 2.
+ Id OpUMod(Id result_type, Id operand_1, Id operand_2);
+
+ /// Signed modulo operation of Operand 1 modulo Operand 2.
+ Id OpSMod(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point modulo operation of Operand 1 modulo Operand 2.
+ Id OpFMod(Id result_type, Id operand_1, Id operand_2);
+
+ /// Signed reminder operation of Operand 1 modulo Operand 2.
+ Id OpSRem(Id result_type, Id operand_1, Id operand_2);
+
+ /// Floating-point reminder operation of Operand 1 modulo Operand 2.
+ Id OpFRem(Id result_type, Id operand_1, Id operand_2);
+
+ /// Result is the unsigned integer addition of Operand 1 and Operand 2, including its carry.
+ Id OpIAddCarry(Id result_type, Id operand_1, Id operand_2);
+
+ // Extensions
+
+ /// Execute an instruction in an imported set of extended instructions.
+ Id OpExtInst(Id result_type, Id set, std::uint32_t instruction, std::span<const Id> operands);
+
+ /// Execute an instruction in an imported set of extended instructions.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpExtInst(Id result_type, Id set, std::uint32_t instruction, Ts&&... operands) {
+ return OpExtInst(result_type, set, instruction, std::span<const Id>({operands...}));
+ }
+
+ /// Result is x if x >= 0; otherwise result is -x.
+ Id OpFAbs(Id result_type, Id x);
+
+ /// Result is x if x >= 0; otherwise result is -x.
+ Id OpSAbs(Id result_type, Id x);
+
+ /// Result is the value equal to the nearest whole number to x. The fraction 0.5 will round in a
+ /// direction chosen by the implementation, presumably the direction that is fastest.
+ Id OpRound(Id result_type, Id x);
+
+ /// Result is the value equal to the nearest whole number to x. A fractional part of 0.5 will
+ /// round toward the nearest even whole number.
+ Id OpRoundEven(Id result_type, Id x);
+
+ /// Result is the value equal to the nearest whole number to x whose absolute value is not
+ /// larger than the absolute value of x.
+ Id OpTrunc(Id result_type, Id x);
+
+ /// Result is 1.0 if x > 0, 0.0 if x = 0, or -1.0 if x < 0.
+ Id OpFSign(Id result_type, Id x);
+
+ /// Result is 1 if x > 0, 0 if x = 0, or -1 if x < 0, where x is interpreted as a signed
+ /// integer.
+ Id OpSSign(Id result_type, Id x);
+
+ /// Result is the value equal to the nearest whole number that is less than or equal to x.
+ Id OpFloor(Id result_type, Id x);
+
+ /// Result is the value equal to the nearest whole number that is greater than or equal to x.
+ Id OpCeil(Id result_type, Id x);
+
+ /// Result is x - floor x.
+ Id OpFract(Id result_type, Id x);
+
+ /// The standard trigonometric sine of x radians.
+ Id OpSin(Id result_type, Id x);
+
+ /// The standard trigonometric cosine of x radians.
+ Id OpCos(Id result_type, Id x);
+
+ /// Arc sine. Result is an angle, in radians, whose sine is x. The range of result values is
+ /// [-pi / 2, pi / 2]. Result is undefined if abs x > 1.
+ Id OpAsin(Id result_type, Id x);
+
+ /// Arc cosine. Result is an angle, in radians, whose cosine is x. The range of result values is
+ /// [0, pi]. Result is undefined if abs x > 1.
+ Id OpAcos(Id result_type, Id x);
+
+ /// Result is x raised to the y power. Result is undefined if x < 0. Result is undefined if x =
+ /// 0 and y <= 0.
+ Id OpPow(Id result_type, Id x, Id y);
+
+ /// Result is the natural exponentiation of x.
+ Id OpExp(Id result_type, Id x);
+
+ /// Result is the natural logarithm of x. Result is undefined if x <= 0.
+ Id OpLog(Id result_type, Id x);
+
+ /// Result is 2 raised to the x power.
+ Id OpExp2(Id result_type, Id x);
+
+ /// Result is the base-2 logarithm of x. Result is undefined if x <= 0.
+ Id OpLog2(Id result_type, Id x);
+
+ /// Result is the square root of x. Result is undefined if x < 0.
+ Id OpSqrt(Id result_type, Id x);
+
+ /// Result is the reciprocal of sqrt x. Result is undefined if x <= 0.
+ Id OpInverseSqrt(Id result_type, Id x);
+
+ /// Result is y if y < x; otherwise result is x. Which operand is the result is undefined if one
+ /// of the operands is a NaN.
+ Id OpFMin(Id result_type, Id x, Id y);
+
+ /// Result is y if y < x; otherwise result is x, where x and y are interpreted as unsigned
+ /// integers.
+ Id OpUMin(Id result_type, Id x, Id y);
+
+ /// Result is y if y < x; otherwise result is x, where x and y are interpreted as signed
+ /// integers.
+ Id OpSMin(Id result_type, Id x, Id y);
+
+ /// Result is y if x < y; otherwise result is x. Which operand is the result is undefined if one
+ /// of the operands is a NaN.
+ Id OpFMax(Id result_type, Id x, Id y);
+
+ /// Result is y if x < y; otherwise result is x, where x and y are interpreted as unsigned
+ /// integers.
+ Id OpUMax(Id result_type, Id x, Id y);
+
+ /// Result is y if x < y; otherwise result is x, where x and y are interpreted as signed
+ /// integers.
+ Id OpSMax(Id result_type, Id x, Id y);
+
+ /// Result is min(max(x, minVal), maxVal). Result is undefined if minVal > maxVal.The semantics
+ /// used by min() and max() are those of FMin and FMax.
+ Id OpFClamp(Id result_type, Id x, Id min_val, Id max_val);
+
+ /// Result is min(max(x, minVal), maxVal), where x, minVal and maxVal are interpreted as
+ /// unsigned integers. Result is undefined if minVal > maxVal.
+ Id OpUClamp(Id result_type, Id x, Id min_val, Id max_val);
+
+ /// Result is min(max(x, minVal), maxVal), where x, minVal and maxVal are interpreted as signed
+ /// integers. Result is undefined if minVal > maxVal.
+ Id OpSClamp(Id result_type, Id x, Id min_val, Id max_val);
+
+ /// Computes a * b + c.
+ Id OpFma(Id result_type, Id a, Id b, Id c);
+
+ /// Result is the unsigned integer obtained by converting the components of a two-component
+ /// floating-point vector to the 16-bit OpTypeFloat, and then packing these two 16-bit integers
+ /// into a 32-bit unsigned integer.
+ Id OpPackHalf2x16(Id result_type, Id v);
+
+ /// Result is the two-component floating-point vector with components obtained by unpacking a
+ /// 32-bit unsigned integer into a pair of 16-bit values.
+ Id OpUnpackHalf2x16(Id result_type, Id v);
+
+ /// Integer least-significant bit.
+ Id OpFindILsb(Id result_type, Id value);
+
+ /// Signed-integer most-significant bit, with value interpreted as a signed integer.
+ Id OpFindSMsb(Id result_type, Id value);
+
+ /// Unsigned-integer most-significant bit.
+ Id OpFindUMsb(Id result_type, Id value);
+
+ /// Result is the value of the input interpolant sampled at a location inside both the pixel and
+ /// the primitive being processed.
+ Id OpInterpolateAtCentroid(Id result_type, Id interpolant);
+
+ /// Result is the value of the input interpolant variable at the location of sample number
+ /// sample.
+ Id OpInterpolateAtSample(Id result_type, Id interpolant, Id sample);
+
+ /// Result is the value of the input interpolant variable sampled at an offset from the center
+ /// of the pixel specified by offset.
+ Id OpInterpolateAtOffset(Id result_type, Id interpolant, Id offset);
+
+ // Derivatives
+
+ /// Same result as either OpDPdxFine or OpDPdxCoarse on the input.
+ /// Selection of which one is based on external factors.
+ Id OpDPdx(Id result_type, Id operand);
+
+ /// Same result as either OpDPdyFine or OpDPdyCoarse on the input.
+ /// Selection of which one is based on external factors.
+ Id OpDPdy(Id result_type, Id operand);
+
+ /// Result is the same as computing the sum of the absolute values of OpDPdx and OpDPdy
+ /// on the input.
+ Id OpFwidth(Id result_type, Id operand);
+
+ /// Result is the partial derivative of the input with respect to the window x coordinate.
+ /// Uses local differencing based on the value of the input for the current fragment and
+ /// its immediate neighbor(s).
+ Id OpDPdxFine(Id result_type, Id operand);
+
+ /// Result is the partial derivative of the input with respect to the window y coordinate.
+ /// Uses local differencing based on the value of the input for the current fragment and
+ /// its immediate neighbor(s).
+ Id OpDPdyFine(Id result_type, Id operand);
+
+ /// Result is the same as computing the sum of the absolute values of OpDPdxFine and OpDPdyFine
+ /// on the input.
+ Id OpFwidthFine(Id result_type, Id operand);
+
+ /// Result is the partial derivative of the input with respect to the window x coordinate.
+ /// Uses local differencing based on the value of the input for the current fragment's
+ /// neighbors, and possibly, but not necessarily, includes the value of the input for the
+ /// current fragment. That is, over a given area, the implementation can compute x derivatives
+ /// in fewer unique locations than would be allowed for OpDPdxFine.
+ Id OpDPdxCoarse(Id result_type, Id operand);
+
+ /// Result is the partial derivative of the input with respect to the window y coordinate.
+ /// Uses local differencing based on the value of the input for the current fragment's
+ /// neighbors, and possibly, but not necessarily, includes the value of the input for the
+ /// current fragment. That is, over a given area, the implementation can compute y derivatives
+ /// in fewer unique locations than would be allowed for OpDPdyFine.
+ Id OpDPdyCoarse(Id result_type, Id operand);
+
+ /// Result is the same as computing the sum of the absolute values of OpDPdxCoarse and
+ /// OpDPdyCoarse on the input.
+ Id OpFwidthCoarse(Id result_type, Id operand);
+
+ // Image
+
+ /// Create a sampled image, containing both a sampler and an image.
+ Id OpSampledImage(Id result_type, Id image, Id sampler);
+
+ /// Sample an image with an implicit level of detail.
+ Id OpImageSampleImplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ std::optional<spv::ImageOperandsMask> image_operands = std::nullopt,
+ std::span<const Id> operands = {});
+
+ /// Sample an image with an implicit level of detail.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageSampleImplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ spv::ImageOperandsMask image_operands, Ts&&... operands) {
+ return OpImageSampleImplicitLod(result_type, sampled_image, coordinate, image_operands,
+ std::span<const Id>({operands...}));
+ }
+
+ /// Sample an image using an explicit level of detail.
+ Id OpImageSampleExplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ spv::ImageOperandsMask image_operands,
+ std::span<const Id> operands = {});
+
+ /// Sample an image using an explicit level of detail.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageSampleExplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ spv::ImageOperandsMask image_operands, Ts&&... operands) {
+ return OpImageSampleExplicitLod(result_type, sampled_image, coordinate, image_operands,
+ std::span<const Id>({operands...}));
+ }
+
+ /// Sample an image doing depth-comparison with an implicit level of detail.
+ Id OpImageSampleDrefImplicitLod(
+ Id result_type, Id sampled_image, Id coordinate, Id dref,
+ std::optional<spv::ImageOperandsMask> image_operands = std::nullopt,
+ std::span<const Id> operands = {});
+
+ /// Sample an image doing depth-comparison with an implicit level of detail.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageSampleDrefImplicitLod(Id result_type, Id sampled_image, Id coordinate, Id dref,
+ spv::ImageOperandsMask image_operands, Ts&&... operands) {
+ return OpImageSampleDrefImplicitLod(result_type, sampled_image, coordinate, dref,
+ image_operands, std::span<const Id>({operands...}));
+ }
+
+ /// Sample an image doing depth-comparison using an explicit level of detail.
+ Id OpImageSampleDrefExplicitLod(Id result_type, Id sampled_image, Id coordinate, Id dref,
+ spv::ImageOperandsMask image_operands,
+ std::span<const Id> operands = {});
+
+ /// Sample an image doing depth-comparison using an explicit level of detail.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageSampleDrefExplicitLod(Id result_type, Id sampled_image, Id coordinate, Id dref,
+ spv::ImageOperandsMask image_operands, Ts&&... operands) {
+ return OpImageSampleDrefExplicitLod(result_type, sampled_image, coordinate, dref,
+ image_operands, std::span<const Id>({operands...}));
+ }
+
+ /// Sample an image with with a project coordinate and an implicit level of detail.
+ Id OpImageSampleProjImplicitLod(
+ Id result_type, Id sampled_image, Id coordinate,
+ std::optional<spv::ImageOperandsMask> image_operands = std::nullopt,
+ std::span<const Id> operands = {});
+
+ /// Sample an image with with a project coordinate and an implicit level of detail.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageSampleProjImplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ spv::ImageOperandsMask image_operands, Ts&&... operands) {
+ return OpImageSampleProjImplicitLod(result_type, sampled_image, coordinate, image_operands,
+ std::span<const Id>({operands...}));
+ }
+
+ /// Sample an image with a project coordinate using an explicit level of detail.
+ Id OpImageSampleProjExplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ spv::ImageOperandsMask image_operands,
+ std::span<const Id> operands = {});
+
+ /// Sample an image with a project coordinate using an explicit level of detail.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageSampleProjExplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ spv::ImageOperandsMask image_operands, Ts&&... operands) {
+ return OpImageSampleProjExplicitLod(result_type, sampled_image, coordinate, image_operands,
+ std::span<const Id>({operands...}));
+ }
+
+ /// Sample an image with a project coordinate, doing depth-comparison, with an implicit level of
+ /// detail.
+ Id OpImageSampleProjDrefImplicitLod(
+ Id result_type, Id sampled_image, Id coordinate, Id dref,
+ std::optional<spv::ImageOperandsMask> image_operands = std::nullopt,
+ std::span<const Id> operands = {});
+
+ /// Sample an image with a project coordinate, doing depth-comparison, with an implicit level of
+ /// detail.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageSampleProjDrefImplicitLod(Id result_type, Id sampled_image, Id coordinate, Id dref,
+ spv::ImageOperandsMask image_operands, Ts&&... operands) {
+ return OpImageSampleProjDrefImplicitLod(result_type, sampled_image, coordinate, dref,
+ image_operands, std::span<const Id>({operands...}));
+ }
+
+ /// Sample an image with a project coordinate, doing depth-comparison, using an explicit level
+ /// of detail.
+ Id OpImageSampleProjDrefExplicitLod(Id result_type, Id sampled_image, Id coordinate, Id dref,
+ spv::ImageOperandsMask image_operands,
+ std::span<const Id> operands = {});
+
+ /// Sample an image with a project coordinate, doing depth-comparison, using an explicit level
+ /// of detail.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageSampleProjDrefExplicitLod(Id result_type, Id sampled_image, Id coordinate, Id dref,
+ spv::ImageOperandsMask image_operands, Ts&&... operands) {
+ return OpImageSampleProjDrefExplicitLod(result_type, sampled_image, coordinate, dref,
+ image_operands, std::span<const Id>({operands...}));
+ }
+
+ /// Fetch a single texel from an image whose Sampled operand is 1.
+ Id OpImageFetch(Id result_type, Id sampled_image, Id coordinate,
+ std::optional<spv::ImageOperandsMask> image_operands = std::nullopt,
+ std::span<const Id> operands = {});
+
+ /// Fetch a single texel from an image whose Sampled operand is 1.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageFetch(Id result_type, Id sampled_image, Id coordinate,
+ spv::ImageOperandsMask image_operands, Ts&&... operands) {
+ return OpImageFetch(result_type, sampled_image, coordinate, image_operands,
+ std::span<const Id>({operands...}));
+ }
+
+ /// Gathers the requested component from four texels.
+ Id OpImageGather(Id result_type, Id sampled_image, Id coordinate, Id component,
+ std::optional<spv::ImageOperandsMask> image_operands = std::nullopt,
+ std::span<const Id> operands = {});
+
+ /// Gathers the requested component from four texels.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageGather(Id result_type, Id sampled_image, Id coordinate, Id component,
+ spv::ImageOperandsMask image_operands, Ts&&... operands) {
+ return OpImageGather(result_type, sampled_image, coordinate, component, image_operands,
+ std::span<const Id>({operands...}));
+ }
+
+ /// Gathers the requested depth-comparison from four texels.
+ Id OpImageDrefGather(Id result_type, Id sampled_image, Id coordinate, Id dref,
+ std::optional<spv::ImageOperandsMask> image_operands = std::nullopt,
+ std::span<const Id> operands = {});
+
+ /// Gathers the requested depth-comparison from four texels.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageDrefGather(Id result_type, Id sampled_image, Id coordinate, Id dref,
+ spv::ImageOperandsMask image_operands, Ts&&... operands) {
+ return OpImageDrefGather(result_type, sampled_image, coordinate, dref, image_operands,
+ std::span<const Id>({operands...}));
+ }
+
+ /// Read a texel from an image without a sampler.
+ Id OpImageRead(Id result_type, Id sampled_image, Id coordinate,
+ std::optional<spv::ImageOperandsMask> image_operands = std::nullopt,
+ std::span<const Id> operands = {});
+
+ /// Read a texel from an image without a sampler.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageRead(Id result_type, Id sampled_image, Id coordinate,
+ spv::ImageOperandsMask image_operands, Ts&&... operands) {
+ return OpImageRead(result_type, sampled_image, coordinate, image_operands,
+ std::span<const Id>({operands...}));
+ }
+
+ /// Write a texel to an image without a sampler.
+ Id OpImageWrite(Id image, Id coordinate, Id texel,
+ std::optional<spv::ImageOperandsMask> image_operands = std::nullopt,
+ std::span<const Id> operands = {});
+
+ /// Write a texel to an image without a sampler.
+ template <typename... Ts>
+ requires(...&& std::is_convertible_v<Ts, Id>) Id
+ OpImageWrite(Id image, Id coordinate, Id texel, spv::ImageOperandsMask image_operands,
+ Ts&&... operands) {
+ return OpImageWrite(image, coordinate, texel, image_operands,
+ std::span<const Id>({operands...}));
+ }
+
+ /// Extract the image from a sampled image.
+ Id OpImage(Id result_type, Id sampled_image);
+
+ /// Query the dimensions of Image for mipmap level for Level of Detail.
+ Id OpImageQuerySizeLod(Id result_type, Id image, Id level_of_detail);
+
+ /// Query the dimensions of Image, with no level of detail.
+ Id OpImageQuerySize(Id result_type, Id image);
+
+ /// Query the mipmap level and the level of detail for a hypothetical sampling of Image at
+ /// Coordinate using an implicit level of detail.
+ Id OpImageQueryLod(Id result_type, Id image, Id coordinate);
+
+ /// Query the number of mipmap levels accessible through Image.
+ Id OpImageQueryLevels(Id result_type, Id image);
+
+ /// Query the number of samples available per texel fetch in a multisample image.
+ Id OpImageQuerySamples(Id result_type, Id image);
+
+ /// Sample a sparse image with an implicit level of detail.
+ Id OpImageSparseSampleImplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands);
+
+ /// Sample a sparse image using an explicit level of detail.
+ Id OpImageSparseSampleExplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ spv::ImageOperandsMask image_operands,
+ std::span<const Id> operands);
+
+ /// Sample a sparse image doing depth-comparison with an implicit level of detail.
+ Id OpImageSparseSampleDrefImplicitLod(Id result_type, Id sampled_image, Id coordinate, Id dref,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands);
+
+ /// Sample a sparse image doing depth-comparison using an explicit level of detail.
+ Id OpImageSparseSampleDrefExplicitLod(Id result_type, Id sampled_image, Id coordinate, Id dref,
+ spv::ImageOperandsMask image_operands,
+ std::span<const Id> operands);
+
+ /// Fetch a single texel from a sampled sparse image.
+ Id OpImageSparseFetch(Id result_type, Id image, Id coordinate,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands);
+
+ /// Gathers the requested component from four texels of a sparse image.
+ Id OpImageSparseGather(Id result_type, Id sampled_image, Id coordinate, Id component,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands);
+
+ /// Gathers the requested depth-comparison from four texels of a sparse image.
+ Id OpImageSparseDrefGather(Id result_type, Id sampled_image, Id coordinate, Id dref,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands);
+
+ /// Translates a Resident Code into a Boolean. Result is false if any of the texels were in
+ /// uncommitted texture memory, and true otherwise.
+ Id OpImageSparseTexelsResident(Id result_type, Id resident_code);
+
+ /// Read a texel from a sparse image without a sampler.
+ Id OpImageSparseRead(Id result_type, Id image, Id coordinate,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands);
+
+ // Group
+
+ /// Computes a bitfield value combining the Predicate value from all invocations in the current
+ /// Subgroup that execute the same dynamic instance of this instruction.
+ Id OpSubgroupBallotKHR(Id result_type, Id predicate);
+
+ /// Return the value from the invocation in the subgroup with an invocation ID equal to index.
+ /// The index must be the same for all active invocations in the subgroup, otherwise the results
+ /// are undefined.
+ Id OpSubgroupReadInvocationKHR(Id result_type, Id value, Id index);
+
+ /// TBD
+ Id OpSubgroupAllKHR(Id result_type, Id predicate);
+
+ /// TBD
+ Id OpSubgroupAnyKHR(Id result_type, Id predicate);
+
+ /// TBD
+ Id OpSubgroupAllEqualKHR(Id result_type, Id predicate);
+
+ // Result is true only in the active invocation with the lowest id in the group, otherwise
+ // result is false.
+ Id OpGroupNonUniformElect(Id result_type, Id scope);
+
+ // Result is the Value of the invocation from the active invocation with the lowest id in the
+ // group to all active invocations in the group.
+ Id OpGroupNonUniformBroadcastFirst(Id result_type, Id scope, Id value);
+
+ // Result is the Value of the invocation identified by the id Id to all active invocations in
+ // the group.
+ Id OpGroupNonUniformBroadcast(Id result_type, Id scope, Id value, Id id);
+
+ // Result is the Value of the invocation identified by the id Id.
+ Id OpGroupNonUniformShuffle(Id result_type, Id scope, Id value, Id id);
+
+ /// Return the value of the invocation identified by the current invocation's id within the
+ /// group xor'ed with mask.
+ Id OpGroupNonUniformShuffleXor(Id result_type, Id scope, Id value, Id mask);
+
+ /// Evaluates a predicate for all active invocations in the group, resulting in
+ /// true if predicate evaluates to true for all active invocations in the
+ /// group, otherwise the result is false.
+ Id OpGroupNonUniformAll(Id result_type, Id scope, Id predicate);
+
+ /// Evaluates a predicate for all active invocations in the group,
+ /// resulting in true if predicate evaluates to true for any active
+ /// invocation in the group, otherwise the result is false.
+ Id OpGroupNonUniformAny(Id result_type, Id scope, Id predicate);
+
+ /// Evaluates a value for all active invocations in the group. The result
+ /// is true if Value is equal for all active invocations in the group.
+ /// Otherwise, the result is false.
+ Id OpGroupNonUniformAllEqual(Id result_type, Id scope, Id value);
+
+ /// Result is a bitfield value combining the Predicate value from all
+ /// invocations in the group that execute the same dynamic instance of this
+ /// instruction. The bit is set to one if the corresponding invocation is
+ /// active and the Predicate for that invocation evaluated to true;
+ /// otherwise, it is set to zero.
+ Id OpGroupNonUniformBallot(Id result_type, Id scope, Id predicate);
+
+ // Atomic
+
+ /// Atomically load through Pointer using the given Semantics. All subparts of the value that is
+ /// loaded will be read atomically with respect to all other atomic accesses to it within Scope.
+ Id OpAtomicLoad(Id result_type, Id pointer, Id memory, Id semantics);
+
+ /// Atomically store through Pointer using the given Semantics. All subparts of Value will be
+ /// written atomically with respect to all other atomic accesses to it within Scope.
+ Id OpAtomicStore(Id pointer, Id memory, Id semantics, Id value);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value from copying Value, and
+ /// 3) store the New Value back through Pointer.
+ Id OpAtomicExchange(Id result_type, Id pointer, Id memory, Id semantics, Id value);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value from Value only if Original Value equals Comparator, and
+ /// 3) store the New Value back through Pointer only if 'Original Value equaled Comparator.
+ Id OpAtomicCompareExchange(Id result_type, Id pointer, Id memory, Id equal, Id unequal,
+ Id value, Id comparator);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value through integer addition of 1 to Original Value, and
+ /// 3) store the New Value back through Pointer.
+ Id OpAtomicIIncrement(Id result_type, Id pointer, Id memory, Id semantics);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value through integer subtraction of 1 from Original Value, and
+ /// 3) store the New Value back through Pointer.
+ Id OpAtomicIDecrement(Id result_type, Id pointer, Id memory, Id semantics);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value by integer addition of Original Value and Value, and
+ /// 3) store the New Value back through Pointer.
+ Id OpAtomicIAdd(Id result_type, Id pointer, Id memory, Id semantics, Id value);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value by integer subtraction of Value from Original Value, and
+ /// 3) store the New Value back through Pointer.
+ Id OpAtomicISub(Id result_type, Id pointer, Id memory, Id semantics, Id value);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value by finding the smallest signed integer of Original Value and Value, and
+ /// 3) store the New Value back through Pointer.
+ Id OpAtomicSMin(Id result_type, Id pointer, Id memory, Id semantics, Id value);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value by finding the smallest unsigned integer of Original Value and Value, and
+ /// 3) store the New Value back through Pointer.
+ Id OpAtomicUMin(Id result_type, Id pointer, Id memory, Id semantics, Id value);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value by finding the largest signed integer of Original Value and Value, and
+ /// 3) store the New Value back through Pointer.
+ Id OpAtomicSMax(Id result_type, Id pointer, Id memory, Id semantics, Id value);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value by finding the largest unsigned integer of Original Value and Value, and
+ /// 3) store the New Value back through Pointer.
+ Id OpAtomicUMax(Id result_type, Id pointer, Id memory, Id semantics, Id value);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value by the bitwise AND of Original Value and Value, and
+ /// 3) store the New Value back through Pointer.
+ Id OpAtomicAnd(Id result_type, Id pointer, Id memory, Id semantics, Id value);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value by the bitwise OR of Original Value and Value, and
+ /// 3) store the New Value back through Pointer.
+ Id OpAtomicOr(Id result_type, Id pointer, Id memory, Id semantics, Id value);
+
+ /// Perform the following steps atomically with respect to any other atomic accesses within
+ /// Scope to the same location:
+ /// 1) load through Pointer to get an Original Value,
+ /// 2) get a New Value by the bitwise exclusive OR of Original Value and Value, and
+ /// 3) store the New Value back through Pointer.
+ Id OpAtomicXor(Id result_type, Id pointer, Id memory, Id semantics, Id value);
+
+private:
+ Id GetGLSLstd450();
+
+ std::uint32_t version{};
+ std::uint32_t bound{};
+
+ std::unordered_set<std::string> extensions;
+ std::unordered_set<spv::Capability> capabilities;
+ std::optional<Id> glsl_std_450;
+
+ spv::AddressingModel addressing_model{spv::AddressingModel::Logical};
+ spv::MemoryModel memory_model{spv::MemoryModel::GLSL450};
+
+ std::unique_ptr<Stream> ext_inst_imports;
+ std::unique_ptr<Stream> entry_points;
+ std::unique_ptr<Stream> execution_modes;
+ std::unique_ptr<Stream> debug;
+ std::unique_ptr<Stream> annotations;
+ std::unique_ptr<Declarations> declarations;
+ std::unique_ptr<Stream> global_variables;
+ std::unique_ptr<Stream> code;
+ std::vector<std::uint32_t> deferred_phi_nodes;
+};
+
+} // namespace Sirit
diff --git a/externals/sirit/src/.gitignore b/externals/sirit/src/.gitignore
new file mode 100644
index 0000000000..06d55cbb24
--- /dev/null
+++ b/externals/sirit/src/.gitignore
@@ -0,0 +1 @@
+sirit.h
diff --git a/externals/sirit/src/CMakeLists.txt b/externals/sirit/src/CMakeLists.txt
new file mode 100644
index 0000000000..18f3e1b112
--- /dev/null
+++ b/externals/sirit/src/CMakeLists.txt
@@ -0,0 +1,32 @@
+add_library(sirit
+ ../include/sirit/sirit.h
+ sirit.cpp
+ stream.h
+ common_types.h
+ instructions/type.cpp
+ instructions/constant.cpp
+ instructions/function.cpp
+ instructions/flow.cpp
+ instructions/debug.cpp
+ instructions/derivatives.cpp
+ instructions/memory.cpp
+ instructions/annotation.cpp
+ instructions/misc.cpp
+ instructions/logical.cpp
+ instructions/conversion.cpp
+ instructions/bit.cpp
+ instructions/arithmetic.cpp
+ instructions/extension.cpp
+ instructions/image.cpp
+ instructions/group.cpp
+ instructions/barrier.cpp
+ instructions/atomic.cpp
+)
+
+target_compile_options(sirit PRIVATE ${SIRIT_CXX_FLAGS})
+
+target_include_directories(sirit
+ PUBLIC ../include
+ PRIVATE .)
+
+target_link_libraries(sirit PUBLIC SPIRV-Headers::SPIRV-Headers)
diff --git a/externals/sirit/src/common_types.h b/externals/sirit/src/common_types.h
new file mode 100644
index 0000000000..42df6f6c3b
--- /dev/null
+++ b/externals/sirit/src/common_types.h
@@ -0,0 +1,31 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#pragma once
+
+#include <cstddef>
+#include <cstdint>
+
+namespace Sirit {
+
+using u8 = std::uint8_t;
+using u16 = std::uint16_t;
+using u32 = std::uint32_t;
+using u64 = std::uint64_t;
+using uptr = std::uintptr_t;
+
+using s8 = std::int8_t;
+using s16 = std::int16_t;
+using s32 = std::int32_t;
+using s64 = std::int64_t;
+using sptr = std::intptr_t;
+
+using f32 = float;
+using f64 = double;
+static_assert(sizeof(f32) == sizeof(u32), "f32 must be 32 bits wide");
+static_assert(sizeof(f64) == sizeof(u64), "f64 must be 64 bits wide");
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/annotation.cpp b/externals/sirit/src/instructions/annotation.cpp
new file mode 100644
index 0000000000..e3524bb83a
--- /dev/null
+++ b/externals/sirit/src/instructions/annotation.cpp
@@ -0,0 +1,27 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include <span>
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::Decorate(Id target, spv::Decoration decoration, std::span<const Literal> literals) {
+ annotations->Reserve(3 + literals.size());
+ return *annotations << spv::Op::OpDecorate << target << decoration << literals << EndOp{};
+}
+
+Id Module::MemberDecorate(Id structure_type, Literal member, spv::Decoration decoration,
+ std::span<const Literal> literals) {
+ annotations->Reserve(4 + literals.size());
+ return *annotations << spv::Op::OpMemberDecorate << structure_type << member << decoration
+ << literals << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/arithmetic.cpp b/externals/sirit/src/instructions/arithmetic.cpp
new file mode 100644
index 0000000000..4fa8057e37
--- /dev/null
+++ b/externals/sirit/src/instructions/arithmetic.cpp
@@ -0,0 +1,44 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+#define DEFINE_UNARY(funcname, opcode) \
+ Id Module::funcname(Id result_type, Id operand) { \
+ code->Reserve(4); \
+ return *code << OpId{opcode, result_type} << operand << EndOp{}; \
+ }
+
+#define DEFINE_BINARY(funcname, opcode) \
+ Id Module::funcname(Id result_type, Id operand_1, Id operand_2) { \
+ code->Reserve(5); \
+ return *code << OpId{opcode, result_type} << operand_1 << operand_2 << EndOp{}; \
+ }
+
+DEFINE_UNARY(OpSNegate, spv::Op::OpSNegate)
+DEFINE_UNARY(OpFNegate, spv::Op::OpFNegate)
+
+DEFINE_BINARY(OpIAdd, spv::Op::OpIAdd)
+DEFINE_BINARY(OpFAdd, spv::Op::OpFAdd)
+DEFINE_BINARY(OpISub, spv::Op::OpISub)
+DEFINE_BINARY(OpFSub, spv::Op::OpFSub)
+DEFINE_BINARY(OpIMul, spv::Op::OpIMul)
+DEFINE_BINARY(OpFMul, spv::Op::OpFMul)
+DEFINE_BINARY(OpUDiv, spv::Op::OpUDiv)
+DEFINE_BINARY(OpSDiv, spv::Op::OpSDiv)
+DEFINE_BINARY(OpFDiv, spv::Op::OpFDiv)
+DEFINE_BINARY(OpUMod, spv::Op::OpUMod)
+DEFINE_BINARY(OpSMod, spv::Op::OpSMod)
+DEFINE_BINARY(OpFMod, spv::Op::OpFMod)
+DEFINE_BINARY(OpSRem, spv::Op::OpSRem)
+DEFINE_BINARY(OpFRem, spv::Op::OpFRem)
+DEFINE_BINARY(OpIAddCarry, spv::Op::OpIAddCarry)
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/atomic.cpp b/externals/sirit/src/instructions/atomic.cpp
new file mode 100644
index 0000000000..cee8849f57
--- /dev/null
+++ b/externals/sirit/src/instructions/atomic.cpp
@@ -0,0 +1,104 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::OpAtomicLoad(Id result_type, Id pointer, Id memory, Id semantics) {
+ code->Reserve(6);
+ return *code << OpId{spv::Op::OpAtomicLoad, result_type} << pointer << memory << semantics
+ << EndOp{};
+}
+
+Id Module::OpAtomicStore(Id pointer, Id memory, Id semantics, Id value) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpAtomicStore} << pointer << memory << semantics << value
+ << EndOp{};
+}
+
+Id Module::OpAtomicExchange(Id result_type, Id pointer, Id memory, Id semantics, Id value) {
+ code->Reserve(7);
+ return *code << OpId{spv::Op::OpAtomicExchange, result_type} << pointer << memory << semantics
+ << value << EndOp{};
+}
+
+Id Module::OpAtomicCompareExchange(Id result_type, Id pointer, Id memory, Id equal, Id unequal,
+ Id value, Id comparator) {
+ code->Reserve(9);
+ return *code << OpId{spv::Op::OpAtomicCompareExchange, result_type} << pointer << memory
+ << equal << unequal << value << comparator << EndOp{};
+}
+
+Id Module::OpAtomicIIncrement(Id result_type, Id pointer, Id memory, Id semantics) {
+ code->Reserve(6);
+ return *code << OpId{spv::Op::OpAtomicIIncrement, result_type} << pointer << memory << semantics
+ << EndOp{};
+}
+
+Id Module::OpAtomicIDecrement(Id result_type, Id pointer, Id memory, Id semantics) {
+ code->Reserve(6);
+ return *code << OpId{spv::Op::OpAtomicIDecrement, result_type} << pointer << memory << semantics
+ << EndOp{};
+}
+
+Id Module::OpAtomicIAdd(Id result_type, Id pointer, Id memory, Id semantics, Id value) {
+ code->Reserve(7);
+ return *code << OpId{spv::Op::OpAtomicIAdd, result_type} << pointer << memory << semantics
+ << value << EndOp{};
+}
+
+Id Module::OpAtomicISub(Id result_type, Id pointer, Id memory, Id semantics, Id value) {
+ code->Reserve(7);
+ return *code << OpId{spv::Op::OpAtomicISub, result_type} << pointer << memory << semantics
+ << value << EndOp{};
+}
+
+Id Module::OpAtomicSMin(Id result_type, Id pointer, Id memory, Id semantics, Id value) {
+ code->Reserve(7);
+ return *code << OpId{spv::Op::OpAtomicSMin, result_type} << pointer << memory << semantics
+ << value << EndOp{};
+}
+
+Id Module::OpAtomicUMin(Id result_type, Id pointer, Id memory, Id semantics, Id value) {
+ code->Reserve(7);
+ return *code << OpId{spv::Op::OpAtomicUMin, result_type} << pointer << memory << semantics
+ << value << EndOp{};
+}
+
+Id Module::OpAtomicSMax(Id result_type, Id pointer, Id memory, Id semantics, Id value) {
+ code->Reserve(7);
+ return *code << OpId{spv::Op::OpAtomicSMax, result_type} << pointer << memory << semantics
+ << value << EndOp{};
+}
+
+Id Module::OpAtomicUMax(Id result_type, Id pointer, Id memory, Id semantics, Id value) {
+ code->Reserve(7);
+ return *code << OpId{spv::Op::OpAtomicUMax, result_type} << pointer << memory << semantics
+ << value << EndOp{};
+}
+
+Id Module::OpAtomicAnd(Id result_type, Id pointer, Id memory, Id semantics, Id value) {
+ code->Reserve(7);
+ return *code << OpId{spv::Op::OpAtomicAnd, result_type} << pointer << memory << semantics
+ << value << EndOp{};
+}
+
+Id Module::OpAtomicOr(Id result_type, Id pointer, Id memory, Id semantics, Id value) {
+ code->Reserve(7);
+ return *code << OpId{spv::Op::OpAtomicOr, result_type} << pointer << memory << semantics
+ << value << EndOp{};
+}
+
+Id Module::OpAtomicXor(Id result_type, Id pointer, Id memory, Id semantics, Id value) {
+ code->Reserve(7);
+ return *code << OpId{spv::Op::OpAtomicXor, result_type} << pointer << memory << semantics
+ << value << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/barrier.cpp b/externals/sirit/src/instructions/barrier.cpp
new file mode 100644
index 0000000000..646b5cfb4d
--- /dev/null
+++ b/externals/sirit/src/instructions/barrier.cpp
@@ -0,0 +1,23 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::OpControlBarrier(Id execution, Id memory, Id semantics) {
+ code->Reserve(4);
+ return *code << spv::Op::OpControlBarrier << execution << memory << semantics << EndOp{};
+}
+
+Id Module::OpMemoryBarrier(Id scope, Id semantics) {
+ code->Reserve(3);
+ return *code << spv::Op::OpMemoryBarrier << scope << semantics << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/bit.cpp b/externals/sirit/src/instructions/bit.cpp
new file mode 100644
index 0000000000..c860613fcf
--- /dev/null
+++ b/externals/sirit/src/instructions/bit.cpp
@@ -0,0 +1,76 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::OpShiftRightLogical(Id result_type, Id base, Id shift) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpShiftRightLogical, result_type} << base << shift << EndOp{};
+}
+
+Id Module::OpShiftRightArithmetic(Id result_type, Id base, Id shift) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpShiftRightArithmetic, result_type} << base << shift << EndOp{};
+}
+
+Id Module::OpShiftLeftLogical(Id result_type, Id base, Id shift) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpShiftLeftLogical, result_type} << base << shift << EndOp{};
+}
+
+Id Module::OpBitwiseOr(Id result_type, Id operand_1, Id operand_2) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpBitwiseOr, result_type} << operand_1 << operand_2 << EndOp{};
+}
+
+Id Module::OpBitwiseXor(Id result_type, Id operand_1, Id operand_2) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpBitwiseXor, result_type} << operand_1 << operand_2 << EndOp{};
+}
+
+Id Module::OpBitwiseAnd(Id result_type, Id operand_1, Id operand_2) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpBitwiseAnd, result_type} << operand_1 << operand_2 << EndOp{};
+}
+
+Id Module::OpNot(Id result_type, Id operand) {
+ code->Reserve(4);
+ return *code << OpId{spv::Op::OpNot, result_type} << operand << EndOp{};
+}
+
+Id Module::OpBitFieldInsert(Id result_type, Id base, Id insert, Id offset, Id count) {
+ code->Reserve(7);
+ return *code << OpId{spv::Op::OpBitFieldInsert, result_type} << base << insert << offset
+ << count << EndOp{};
+}
+
+Id Module::OpBitFieldSExtract(Id result_type, Id base, Id offset, Id count) {
+ code->Reserve(6);
+ return *code << OpId{spv::Op::OpBitFieldSExtract, result_type} << base << offset << count
+ << EndOp{};
+}
+
+Id Module::OpBitFieldUExtract(Id result_type, Id base, Id offset, Id count) {
+ code->Reserve(6);
+ return *code << OpId{spv::Op::OpBitFieldUExtract, result_type} << base << offset << count
+ << EndOp{};
+}
+
+Id Module::OpBitReverse(Id result_type, Id base) {
+ code->Reserve(4);
+ return *code << OpId{spv::Op::OpBitReverse, result_type} << base << EndOp{};
+}
+
+Id Module::OpBitCount(Id result_type, Id base) {
+ code->Reserve(4);
+ return *code << OpId{spv::Op::OpBitCount, result_type} << base << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/constant.cpp b/externals/sirit/src/instructions/constant.cpp
new file mode 100644
index 0000000000..612049c4f8
--- /dev/null
+++ b/externals/sirit/src/instructions/constant.cpp
@@ -0,0 +1,48 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include <cassert>
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::ConstantTrue(Id result_type) {
+ declarations->Reserve(3);
+ return *declarations << OpId{spv::Op::OpConstantTrue, result_type} << EndOp{};
+}
+
+Id Module::ConstantFalse(Id result_type) {
+ declarations->Reserve(3);
+ return *declarations << OpId{spv::Op::OpConstantFalse, result_type} << EndOp{};
+}
+
+Id Module::Constant(Id result_type, const Literal& literal) {
+ declarations->Reserve(3 + 2);
+ return *declarations << OpId{spv::Op::OpConstant, result_type} << literal << EndOp{};
+}
+
+Id Module::ConstantComposite(Id result_type, std::span<const Id> constituents) {
+ declarations->Reserve(3 + constituents.size());
+ return *declarations << OpId{spv::Op::OpConstantComposite, result_type} << constituents
+ << EndOp{};
+}
+
+Id Module::ConstantSampler(Id result_type, spv::SamplerAddressingMode addressing_mode,
+ bool normalized, spv::SamplerFilterMode filter_mode) {
+ declarations->Reserve(6);
+ return *declarations << OpId{spv::Op::OpConstantSampler, result_type} << addressing_mode
+ << normalized << filter_mode << EndOp{};
+}
+
+Id Module::ConstantNull(Id result_type) {
+ declarations->Reserve(3);
+ return *declarations << OpId{spv::Op::OpConstantNull, result_type} << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/conversion.cpp b/externals/sirit/src/instructions/conversion.cpp
new file mode 100644
index 0000000000..0b4e2c8a3f
--- /dev/null
+++ b/externals/sirit/src/instructions/conversion.cpp
@@ -0,0 +1,29 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+#define DEFINE_UNARY(opcode) \
+ Id Module::opcode(Id result_type, Id operand) { \
+ code->Reserve(4); \
+ return *code << OpId{spv::Op::opcode, result_type} << operand << EndOp{}; \
+ }
+
+DEFINE_UNARY(OpConvertFToU)
+DEFINE_UNARY(OpConvertFToS)
+DEFINE_UNARY(OpConvertSToF)
+DEFINE_UNARY(OpConvertUToF)
+DEFINE_UNARY(OpUConvert)
+DEFINE_UNARY(OpSConvert)
+DEFINE_UNARY(OpFConvert)
+DEFINE_UNARY(OpQuantizeToF16)
+DEFINE_UNARY(OpBitcast)
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/debug.cpp b/externals/sirit/src/instructions/debug.cpp
new file mode 100644
index 0000000000..1ca3462654
--- /dev/null
+++ b/externals/sirit/src/instructions/debug.cpp
@@ -0,0 +1,36 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include "sirit/sirit.h"
+
+#include "common_types.h"
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::Name(Id target, std::string_view name) {
+ debug->Reserve(3 + WordsInString(name));
+ *debug << spv::Op::OpName << target << name << EndOp{};
+ return target;
+}
+
+Id Module::MemberName(Id type, u32 member, std::string_view name) {
+ debug->Reserve(4 + WordsInString(name));
+ *debug << spv::Op::OpMemberName << type << member << name << EndOp{};
+ return type;
+}
+
+Id Module::String(std::string_view string) {
+ debug->Reserve(3 + WordsInString(string));
+ return *debug << OpId{spv::Op::OpString} << string << EndOp{};
+}
+
+Id Module::OpLine(Id file, Literal line, Literal column) {
+ debug->Reserve(4);
+ return *debug << spv::Op::OpLine << file << line << column << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/derivatives.cpp b/externals/sirit/src/instructions/derivatives.cpp
new file mode 100644
index 0000000000..c944e2a52a
--- /dev/null
+++ b/externals/sirit/src/instructions/derivatives.cpp
@@ -0,0 +1,29 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2021 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+#define DEFINE_UNARY(funcname, opcode) \
+ Id Module::funcname(Id result_type, Id operand) { \
+ code->Reserve(4); \
+ return *code << OpId{opcode, result_type} << operand << EndOp{}; \
+ }
+
+DEFINE_UNARY(OpDPdx, spv::Op::OpDPdx)
+DEFINE_UNARY(OpDPdy, spv::Op::OpDPdy)
+DEFINE_UNARY(OpFwidth, spv::Op::OpFwidth)
+DEFINE_UNARY(OpDPdxFine, spv::Op::OpDPdxFine)
+DEFINE_UNARY(OpDPdyFine, spv::Op::OpDPdyFine)
+DEFINE_UNARY(OpFwidthFine, spv::Op::OpFwidthFine)
+DEFINE_UNARY(OpDPdxCoarse, spv::Op::OpDPdxCoarse)
+DEFINE_UNARY(OpDPdyCoarse, spv::Op::OpDPdyCoarse)
+DEFINE_UNARY(OpFwidthCoarse, spv::Op::OpFwidthCoarse)
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/extension.cpp b/externals/sirit/src/instructions/extension.cpp
new file mode 100644
index 0000000000..9f7aa43050
--- /dev/null
+++ b/externals/sirit/src/instructions/extension.cpp
@@ -0,0 +1,76 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include <spirv/unified1/GLSL.std.450.h>
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::OpExtInst(Id result_type, Id set, u32 instruction, std::span<const Id> operands) {
+ code->Reserve(5 + operands.size());
+ return *code << OpId{spv::Op::OpExtInst, result_type} << set << instruction << operands
+ << EndOp{};
+}
+
+#define DEFINE_UNARY(funcname, opcode) \
+ Id Module::funcname(Id result_type, Id operand) { \
+ return OpExtInst(result_type, GetGLSLstd450(), opcode, operand); \
+ }
+
+#define DEFINE_BINARY(funcname, opcode) \
+ Id Module::funcname(Id result_type, Id operand_1, Id operand_2) { \
+ return OpExtInst(result_type, GetGLSLstd450(), opcode, operand_1, operand_2); \
+ }
+
+#define DEFINE_TRINARY(funcname, opcode) \
+ Id Module::funcname(Id result_type, Id operand_1, Id operand_2, Id operand_3) { \
+ return OpExtInst(result_type, GetGLSLstd450(), opcode, operand_1, operand_2, operand_3); \
+ }
+
+DEFINE_UNARY(OpFAbs, GLSLstd450FAbs)
+DEFINE_UNARY(OpSAbs, GLSLstd450SAbs)
+DEFINE_UNARY(OpRound, GLSLstd450Round)
+DEFINE_UNARY(OpRoundEven, GLSLstd450RoundEven)
+DEFINE_UNARY(OpTrunc, GLSLstd450Trunc)
+DEFINE_UNARY(OpFSign, GLSLstd450FSign)
+DEFINE_UNARY(OpSSign, GLSLstd450SSign)
+DEFINE_UNARY(OpFloor, GLSLstd450Floor)
+DEFINE_UNARY(OpCeil, GLSLstd450Ceil)
+DEFINE_UNARY(OpFract, GLSLstd450Fract)
+DEFINE_UNARY(OpSin, GLSLstd450Sin)
+DEFINE_UNARY(OpCos, GLSLstd450Cos)
+DEFINE_UNARY(OpAsin, GLSLstd450Asin)
+DEFINE_UNARY(OpAcos, GLSLstd450Acos)
+DEFINE_BINARY(OpPow, GLSLstd450Pow)
+DEFINE_UNARY(OpExp, GLSLstd450Exp)
+DEFINE_UNARY(OpLog, GLSLstd450Log)
+DEFINE_UNARY(OpExp2, GLSLstd450Exp2)
+DEFINE_UNARY(OpLog2, GLSLstd450Log2)
+DEFINE_UNARY(OpSqrt, GLSLstd450Sqrt)
+DEFINE_UNARY(OpInverseSqrt, GLSLstd450InverseSqrt)
+DEFINE_BINARY(OpFMin, GLSLstd450FMin)
+DEFINE_BINARY(OpUMin, GLSLstd450UMin)
+DEFINE_BINARY(OpSMin, GLSLstd450SMin)
+DEFINE_BINARY(OpFMax, GLSLstd450FMax)
+DEFINE_BINARY(OpUMax, GLSLstd450UMax)
+DEFINE_BINARY(OpSMax, GLSLstd450SMax)
+DEFINE_TRINARY(OpFClamp, GLSLstd450FClamp)
+DEFINE_TRINARY(OpUClamp, GLSLstd450UClamp)
+DEFINE_TRINARY(OpSClamp, GLSLstd450SClamp)
+DEFINE_TRINARY(OpFma, GLSLstd450Fma)
+DEFINE_UNARY(OpPackHalf2x16, GLSLstd450PackHalf2x16)
+DEFINE_UNARY(OpUnpackHalf2x16, GLSLstd450UnpackHalf2x16)
+DEFINE_UNARY(OpFindILsb, GLSLstd450FindILsb)
+DEFINE_UNARY(OpFindSMsb, GLSLstd450FindSMsb)
+DEFINE_UNARY(OpFindUMsb, GLSLstd450FindUMsb)
+DEFINE_UNARY(OpInterpolateAtCentroid, GLSLstd450InterpolateAtCentroid)
+DEFINE_BINARY(OpInterpolateAtSample, GLSLstd450InterpolateAtSample)
+DEFINE_BINARY(OpInterpolateAtOffset, GLSLstd450InterpolateAtOffset)
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/flow.cpp b/externals/sirit/src/instructions/flow.cpp
new file mode 100644
index 0000000000..5f6b693d54
--- /dev/null
+++ b/externals/sirit/src/instructions/flow.cpp
@@ -0,0 +1,109 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include <cassert>
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::OpPhi(Id result_type, std::span<const Id> operands) {
+ assert(operands.size() % 2 == 0);
+ code->Reserve(3 + operands.size());
+ return *code << OpId{spv::Op::OpPhi, result_type} << operands << EndOp{};
+}
+
+Id Module::DeferredOpPhi(Id result_type, std::span<const Id> blocks) {
+ deferred_phi_nodes.push_back(code->LocalAddress());
+ code->Reserve(3 + blocks.size() * 2);
+ *code << OpId{spv::Op::OpPhi, result_type};
+ for (const Id block : blocks) {
+ *code << u32{0} << block;
+ }
+ return *code << EndOp{};
+}
+
+Id Module::OpLoopMerge(Id merge_block, Id continue_target, spv::LoopControlMask loop_control,
+ std::span<const Id> literals) {
+ code->Reserve(4 + literals.size());
+ return *code << spv::Op::OpLoopMerge << merge_block << continue_target << loop_control
+ << literals << EndOp{};
+}
+
+Id Module::OpSelectionMerge(Id merge_block, spv::SelectionControlMask selection_control) {
+ code->Reserve(3);
+ return *code << spv::Op::OpSelectionMerge << merge_block << selection_control << EndOp{};
+}
+
+Id Module::OpLabel() {
+ return Id{++bound};
+}
+
+Id Module::OpBranch(Id target_label) {
+ code->Reserve(2);
+ return *code << spv::Op::OpBranch << target_label << EndOp{};
+}
+
+Id Module::OpBranchConditional(Id condition, Id true_label, Id false_label, u32 true_weight,
+ u32 false_weight) {
+ code->Reserve(6);
+ *code << spv::Op::OpBranchConditional << condition << true_label << false_label;
+ if (true_weight != 0 || false_weight != 0) {
+ *code << true_weight << false_weight;
+ }
+ return *code << EndOp{};
+}
+
+Id Module::OpSwitch(Id selector, Id default_label, std::span<const Literal> literals,
+ std::span<const Id> labels) {
+ assert(literals.size() == labels.size());
+ const size_t size = literals.size();
+ code->Reserve(3 + size * 2);
+
+ *code << spv::Op::OpSwitch << selector << default_label;
+ for (std::size_t i = 0; i < size; ++i) {
+ *code << literals[i] << labels[i];
+ }
+ return *code << EndOp{};
+}
+
+void Module::OpReturn() {
+ code->Reserve(1);
+ *code << spv::Op::OpReturn << EndOp{};
+}
+
+void Module::OpUnreachable() {
+ code->Reserve(1);
+ *code << spv::Op::OpUnreachable << EndOp{};
+}
+
+Id Module::OpReturnValue(Id value) {
+ code->Reserve(2);
+ return *code << spv::Op::OpReturnValue << value << EndOp{};
+}
+
+void Module::OpKill() {
+ code->Reserve(1);
+ *code << spv::Op::OpKill << EndOp{};
+}
+
+void Module::OpDemoteToHelperInvocation() {
+ code->Reserve(1);
+ *code << spv::Op::OpDemoteToHelperInvocation << EndOp{};
+}
+
+void Module::OpDemoteToHelperInvocationEXT() {
+ OpDemoteToHelperInvocation();
+}
+
+void Module::OpTerminateInvocation() {
+ code->Reserve(1);
+ *code << spv::Op::OpTerminateInvocation << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/function.cpp b/externals/sirit/src/instructions/function.cpp
new file mode 100644
index 0000000000..f84cd7ff53
--- /dev/null
+++ b/externals/sirit/src/instructions/function.cpp
@@ -0,0 +1,34 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::OpFunction(Id result_type, spv::FunctionControlMask function_control, Id function_type) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpFunction, result_type} << function_control << function_type
+ << EndOp{};
+}
+
+void Module::OpFunctionEnd() {
+ code->Reserve(1);
+ *code << spv::Op::OpFunctionEnd << EndOp{};
+}
+
+Id Module::OpFunctionCall(Id result_type, Id function, std::span<const Id> arguments) {
+ code->Reserve(4 + arguments.size());
+ return *code << OpId{spv::Op::OpFunctionCall, result_type} << function << arguments << EndOp{};
+}
+
+Id Module::OpFunctionParameter(Id result_type) {
+ code->Reserve(3);
+ return *code << OpId{spv::Op::OpFunctionParameter, result_type} << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/group.cpp b/externals/sirit/src/instructions/group.cpp
new file mode 100644
index 0000000000..b8532847a1
--- /dev/null
+++ b/externals/sirit/src/instructions/group.cpp
@@ -0,0 +1,88 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::OpSubgroupBallotKHR(Id result_type, Id predicate) {
+ code->Reserve(4);
+ return *code << OpId{spv::Op::OpSubgroupBallotKHR, result_type} << predicate << EndOp{};
+}
+
+Id Module::OpSubgroupReadInvocationKHR(Id result_type, Id value, Id index) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpSubgroupReadInvocationKHR, result_type} << value << index
+ << EndOp{};
+}
+
+Id Module::OpSubgroupAllKHR(Id result_type, Id predicate) {
+ code->Reserve(4);
+ return *code << OpId{spv::Op::OpSubgroupAllKHR, result_type} << predicate << EndOp{};
+}
+
+Id Module::OpSubgroupAnyKHR(Id result_type, Id predicate) {
+ code->Reserve(4);
+ return *code << OpId{spv::Op::OpSubgroupAnyKHR, result_type} << predicate << EndOp{};
+}
+
+Id Module::OpSubgroupAllEqualKHR(Id result_type, Id predicate) {
+ code->Reserve(4);
+ return *code << OpId{spv::Op::OpSubgroupAllEqualKHR, result_type} << predicate << EndOp{};
+}
+
+Id Module::OpGroupNonUniformElect(Id result_type, Id scope) {
+ code->Reserve(4);
+ return *code << OpId{spv::Op::OpGroupNonUniformElect, result_type} << scope << EndOp{};
+}
+
+Id Module::OpGroupNonUniformBroadcastFirst(Id result_type, Id scope, Id value) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpGroupNonUniformBroadcastFirst, result_type} << scope << value
+ << EndOp{};
+}
+
+Id Module::OpGroupNonUniformBroadcast(Id result_type, Id scope, Id value, Id id) {
+ code->Reserve(6);
+ return *code << OpId{spv::Op::OpGroupNonUniformBroadcast, result_type} << scope << value
+ << id << EndOp{};
+}
+
+Id Module::OpGroupNonUniformShuffle(Id result_type, Id scope, Id value, Id id) {
+ code->Reserve(6);
+ return *code << OpId{spv::Op::OpGroupNonUniformShuffle, result_type} << scope << value << id
+ << EndOp{};
+}
+
+Id Module::OpGroupNonUniformShuffleXor(Id result_type, Id scope, Id value, Id mask) {
+ code->Reserve(6);
+ return *code << OpId{spv::Op::OpGroupNonUniformShuffleXor, result_type} << scope << value
+ << mask << EndOp{};
+}
+
+Id Module::OpGroupNonUniformAll(Id result_type, Id scope, Id predicate) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpGroupNonUniformAll, result_type} << scope << predicate << EndOp{};
+}
+
+Id Module::OpGroupNonUniformAny(Id result_type, Id scope, Id predicate) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpGroupNonUniformAny, result_type} << scope << predicate << EndOp{};
+}
+
+Id Module::OpGroupNonUniformAllEqual(Id result_type, Id scope, Id value) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpGroupNonUniformAllEqual, result_type} << scope << value << EndOp{};
+}
+
+Id Module::OpGroupNonUniformBallot(Id result_type, Id scope, Id predicate) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpGroupNonUniformBallot, result_type} << scope << predicate << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/image.cpp b/externals/sirit/src/instructions/image.cpp
new file mode 100644
index 0000000000..e68447f1e9
--- /dev/null
+++ b/externals/sirit/src/instructions/image.cpp
@@ -0,0 +1,169 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include <cassert>
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+#define DEFINE_IMAGE_OP(opcode) \
+ Id Module::opcode(Id result_type, Id sampled_image, Id coordinate, \
+ std::optional<spv::ImageOperandsMask> image_operands, \
+ std::span<const Id> operands) { \
+ code->Reserve(6 + operands.size()); \
+ return *code << OpId{spv::Op::opcode, result_type} << sampled_image << coordinate \
+ << image_operands << operands << EndOp{}; \
+ }
+
+#define DEFINE_IMAGE_EXP_OP(opcode) \
+ Id Module::opcode(Id result_type, Id sampled_image, Id coordinate, \
+ spv::ImageOperandsMask image_operands, std::span<const Id> operands) { \
+ code->Reserve(6 + operands.size()); \
+ return *code << OpId{spv::Op::opcode, result_type} << sampled_image << coordinate \
+ << image_operands << operands << EndOp{}; \
+ }
+
+#define DEFINE_IMAGE_EXTRA_OP(opcode) \
+ Id Module::opcode(Id result_type, Id sampled_image, Id coordinate, Id extra, \
+ std::optional<spv::ImageOperandsMask> image_operands, \
+ std::span<const Id> operands) { \
+ code->Reserve(7 + operands.size()); \
+ return *code << OpId{spv::Op::opcode, result_type} << sampled_image << coordinate << extra \
+ << image_operands << operands << EndOp{}; \
+ }
+
+#define DEFINE_IMAGE_EXTRA_EXP_OP(opcode) \
+ Id Module::opcode(Id result_type, Id sampled_image, Id coordinate, Id extra, \
+ spv::ImageOperandsMask image_operands, std::span<const Id> operands) { \
+ code->Reserve(8 + operands.size()); \
+ return *code << OpId{spv::Op::opcode, result_type} << sampled_image << coordinate << extra \
+ << image_operands << operands << EndOp{}; \
+ }
+
+#define DEFINE_IMAGE_QUERY_OP(opcode) \
+ Id Module::opcode(Id result_type, Id image) { \
+ code->Reserve(5); \
+ return *code << OpId{spv::Op::opcode, result_type} << image << EndOp{}; \
+ }
+
+#define DEFINE_IMAGE_QUERY_BIN_OP(opcode) \
+ Id Module::opcode(Id result_type, Id image, Id extra) { \
+ code->Reserve(5); \
+ return *code << OpId{spv::Op::opcode, result_type} << image << extra << EndOp{}; \
+ }
+
+DEFINE_IMAGE_OP(OpImageSampleImplicitLod)
+DEFINE_IMAGE_EXP_OP(OpImageSampleExplicitLod)
+DEFINE_IMAGE_EXTRA_OP(OpImageSampleDrefImplicitLod)
+DEFINE_IMAGE_EXTRA_EXP_OP(OpImageSampleDrefExplicitLod)
+DEFINE_IMAGE_OP(OpImageSampleProjImplicitLod)
+DEFINE_IMAGE_EXP_OP(OpImageSampleProjExplicitLod)
+DEFINE_IMAGE_EXTRA_OP(OpImageSampleProjDrefImplicitLod)
+DEFINE_IMAGE_EXTRA_EXP_OP(OpImageSampleProjDrefExplicitLod)
+DEFINE_IMAGE_OP(OpImageFetch)
+DEFINE_IMAGE_EXTRA_OP(OpImageGather)
+DEFINE_IMAGE_EXTRA_OP(OpImageDrefGather)
+DEFINE_IMAGE_OP(OpImageRead)
+DEFINE_IMAGE_QUERY_BIN_OP(OpImageQuerySizeLod)
+DEFINE_IMAGE_QUERY_OP(OpImageQuerySize)
+DEFINE_IMAGE_QUERY_BIN_OP(OpImageQueryLod)
+DEFINE_IMAGE_QUERY_OP(OpImageQueryLevels)
+DEFINE_IMAGE_QUERY_OP(OpImageQuerySamples)
+
+Id Module::OpSampledImage(Id result_type, Id image, Id sampler) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpSampledImage, result_type} << image << sampler << EndOp{};
+}
+
+Id Module::OpImageWrite(Id image, Id coordinate, Id texel,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands) {
+ assert(image_operands.has_value() != operands.empty());
+ code->Reserve(5 + operands.size());
+ return *code << spv::Op::OpImageWrite << image << coordinate << texel << image_operands
+ << operands << EndOp{};
+}
+
+Id Module::OpImage(Id result_type, Id sampled_image) {
+ code->Reserve(4);
+ return *code << OpId{spv::Op::OpImage, result_type} << sampled_image << EndOp{};
+}
+
+Id Module::OpImageSparseSampleImplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands) {
+ code->Reserve(5 + (image_operands.has_value() ? 1 : 0) + operands.size());
+ return *code << OpId{spv::Op::OpImageSparseSampleImplicitLod, result_type} << sampled_image
+ << coordinate << image_operands << operands << EndOp{};
+}
+
+Id Module::OpImageSparseSampleExplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ spv::ImageOperandsMask image_operands,
+ std::span<const Id> operands) {
+ code->Reserve(6 + operands.size());
+ return *code << OpId{spv::Op::OpImageSparseSampleExplicitLod, result_type} << sampled_image
+ << coordinate << image_operands << operands << EndOp{};
+}
+
+Id Module::OpImageSparseSampleDrefImplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ Id dref,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands) {
+ code->Reserve(6 + (image_operands.has_value() ? 1 : 0) + operands.size());
+ return *code << OpId{spv::Op::OpImageSparseSampleDrefImplicitLod, result_type} << sampled_image
+ << coordinate << dref << image_operands << operands << EndOp{};
+}
+
+Id Module::OpImageSparseSampleDrefExplicitLod(Id result_type, Id sampled_image, Id coordinate,
+ Id dref, spv::ImageOperandsMask image_operands,
+ std::span<const Id> operands) {
+ code->Reserve(7 + operands.size());
+ return *code << OpId{spv::Op::OpImageSparseSampleDrefExplicitLod, result_type} << sampled_image
+ << coordinate << dref << image_operands << operands << EndOp{};
+}
+
+Id Module::OpImageSparseFetch(Id result_type, Id image, Id coordinate,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands) {
+ code->Reserve(5 + (image_operands.has_value() ? 1 : 0) + operands.size());
+ return *code << OpId{spv::Op::OpImageSparseFetch, result_type} << image << coordinate
+ << image_operands << operands << EndOp{};
+}
+
+Id Module::OpImageSparseGather(Id result_type, Id sampled_image, Id coordinate, Id component,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands) {
+ code->Reserve(6 + operands.size());
+ return *code << OpId{spv::Op::OpImageSparseGather, result_type} << sampled_image << coordinate
+ << component << image_operands << operands << EndOp{};
+}
+
+Id Module::OpImageSparseDrefGather(Id result_type, Id sampled_image, Id coordinate, Id dref,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands) {
+ code->Reserve(6 + operands.size());
+ return *code << OpId{spv::Op::OpImageSparseDrefGather, result_type} << sampled_image
+ << coordinate << dref << image_operands << operands << EndOp{};
+}
+
+Id Module::OpImageSparseTexelsResident(Id result_type, Id resident_code) {
+ code->Reserve(4);
+ return *code << OpId{spv::Op::OpImageSparseTexelsResident, result_type} << resident_code
+ << EndOp{};
+}
+
+Id Module::OpImageSparseRead(Id result_type, Id image, Id coordinate,
+ std::optional<spv::ImageOperandsMask> image_operands,
+ std::span<const Id> operands) {
+ code->Reserve(5 + (image_operands.has_value() ? 1 : 0) + operands.size());
+ return *code << OpId{spv::Op::OpImageSparseTexelsResident, result_type} << image << coordinate
+ << image_operands << operands << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/logical.cpp b/externals/sirit/src/instructions/logical.cpp
new file mode 100644
index 0000000000..4d7292bf02
--- /dev/null
+++ b/externals/sirit/src/instructions/logical.cpp
@@ -0,0 +1,65 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+#define DEFINE_UNARY(opcode) \
+ Id Module::opcode(Id result_type, Id operand) { \
+ code->Reserve(4); \
+ return *code << OpId{spv::Op::opcode, result_type} << operand << EndOp{}; \
+ }
+
+#define DEFINE_BINARY(opcode) \
+ Id Module::opcode(Id result_type, Id operand_1, Id operand_2) { \
+ code->Reserve(5); \
+ return *code << OpId{spv::Op::opcode, result_type} << operand_1 << operand_2 << EndOp{}; \
+ }
+
+#define DEFINE_TRINARY(opcode) \
+ Id Module::opcode(Id result_type, Id operand_1, Id operand_2, Id operand_3) { \
+ code->Reserve(6); \
+ return *code << OpId{spv::Op::opcode, result_type} << operand_1 << operand_2 << operand_3 \
+ << EndOp{}; \
+ }
+
+DEFINE_UNARY(OpAny)
+DEFINE_UNARY(OpAll)
+DEFINE_UNARY(OpIsNan)
+DEFINE_UNARY(OpIsInf)
+DEFINE_BINARY(OpLogicalEqual)
+DEFINE_BINARY(OpLogicalNotEqual)
+DEFINE_BINARY(OpLogicalOr)
+DEFINE_BINARY(OpLogicalAnd)
+DEFINE_UNARY(OpLogicalNot)
+DEFINE_TRINARY(OpSelect)
+DEFINE_BINARY(OpIEqual)
+DEFINE_BINARY(OpINotEqual)
+DEFINE_BINARY(OpUGreaterThan)
+DEFINE_BINARY(OpSGreaterThan)
+DEFINE_BINARY(OpUGreaterThanEqual)
+DEFINE_BINARY(OpSGreaterThanEqual)
+DEFINE_BINARY(OpULessThan)
+DEFINE_BINARY(OpSLessThan)
+DEFINE_BINARY(OpULessThanEqual)
+DEFINE_BINARY(OpSLessThanEqual)
+DEFINE_BINARY(OpFOrdEqual)
+DEFINE_BINARY(OpFUnordEqual)
+DEFINE_BINARY(OpFOrdNotEqual)
+DEFINE_BINARY(OpFUnordNotEqual)
+DEFINE_BINARY(OpFOrdLessThan)
+DEFINE_BINARY(OpFUnordLessThan)
+DEFINE_BINARY(OpFOrdGreaterThan)
+DEFINE_BINARY(OpFUnordGreaterThan)
+DEFINE_BINARY(OpFOrdLessThanEqual)
+DEFINE_BINARY(OpFUnordLessThanEqual)
+DEFINE_BINARY(OpFOrdGreaterThanEqual)
+DEFINE_BINARY(OpFUnordGreaterThanEqual)
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/memory.cpp b/externals/sirit/src/instructions/memory.cpp
new file mode 100644
index 0000000000..a542e9fcca
--- /dev/null
+++ b/externals/sirit/src/instructions/memory.cpp
@@ -0,0 +1,68 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include <cassert>
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::OpImageTexelPointer(Id result_type, Id image, Id coordinate, Id sample) {
+ code->Reserve(6);
+ return *code << OpId{spv::Op::OpImageTexelPointer, result_type} << image << coordinate << sample
+ << EndOp{};
+}
+
+Id Module::OpLoad(Id result_type, Id pointer, std::optional<spv::MemoryAccessMask> memory_access) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpLoad, result_type} << pointer << memory_access << EndOp{};
+}
+
+Id Module::OpStore(Id pointer, Id object, std::optional<spv::MemoryAccessMask> memory_access) {
+ code->Reserve(4);
+ return *code << spv::Op::OpStore << pointer << object << memory_access << EndOp{};
+}
+
+Id Module::OpAccessChain(Id result_type, Id base, std::span<const Id> indexes) {
+ assert(!indexes.empty());
+ code->Reserve(4 + indexes.size());
+ return *code << OpId{spv::Op::OpAccessChain, result_type} << base << indexes << EndOp{};
+}
+
+Id Module::OpVectorExtractDynamic(Id result_type, Id vector, Id index) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpVectorExtractDynamic, result_type} << vector << index
+ << EndOp{};
+}
+
+Id Module::OpVectorInsertDynamic(Id result_type, Id vector, Id component, Id index) {
+ code->Reserve(6);
+ return *code << OpId{spv::Op::OpVectorInsertDynamic, result_type} << vector << component
+ << index << EndOp{};
+}
+
+Id Module::OpCompositeInsert(Id result_type, Id object, Id composite,
+ std::span<const Literal> indexes) {
+ code->Reserve(5 + indexes.size());
+ return *code << OpId{spv::Op::OpCompositeInsert, result_type} << object << composite << indexes
+ << EndOp{};
+}
+
+Id Module::OpCompositeExtract(Id result_type, Id composite, std::span<const Literal> indexes) {
+ code->Reserve(4 + indexes.size());
+ return *code << OpId{spv::Op::OpCompositeExtract, result_type} << composite << indexes
+ << EndOp{};
+}
+
+Id Module::OpCompositeConstruct(Id result_type, std::span<const Id> ids) {
+ assert(ids.size() >= 1);
+ code->Reserve(3 + ids.size());
+ return *code << OpId{spv::Op::OpCompositeConstruct, result_type} << ids << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/misc.cpp b/externals/sirit/src/instructions/misc.cpp
new file mode 100644
index 0000000000..6785346eb1
--- /dev/null
+++ b/externals/sirit/src/instructions/misc.cpp
@@ -0,0 +1,38 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::OpUndef(Id result_type) {
+ code->Reserve(3);
+ return *code << OpId{spv::Op::OpUndef, result_type} << EndOp{};
+}
+
+void Module::OpEmitVertex() {
+ code->Reserve(1);
+ *code << spv::Op::OpEmitVertex << EndOp{};
+}
+
+void Module::OpEndPrimitive() {
+ code->Reserve(1);
+ *code << spv::Op::OpEndPrimitive << EndOp{};
+}
+
+void Module::OpEmitStreamVertex(Id stream) {
+ code->Reserve(2);
+ *code << spv::Op::OpEmitStreamVertex << stream << EndOp{};
+}
+
+void Module::OpEndStreamPrimitive(Id stream) {
+ code->Reserve(2);
+ *code << spv::Op::OpEndStreamPrimitive << stream << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/instructions/type.cpp b/externals/sirit/src/instructions/type.cpp
new file mode 100644
index 0000000000..3509d1f472
--- /dev/null
+++ b/externals/sirit/src/instructions/type.cpp
@@ -0,0 +1,130 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include <cassert>
+#include <optional>
+
+#include "sirit/sirit.h"
+
+#include "stream.h"
+
+namespace Sirit {
+
+Id Module::TypeVoid() {
+ declarations->Reserve(2);
+ return *declarations << OpId{spv::Op::OpTypeVoid} << EndOp{};
+}
+
+Id Module::TypeBool() {
+ declarations->Reserve(2);
+ return *declarations << OpId{spv::Op::OpTypeBool} << EndOp{};
+}
+
+Id Module::TypeInt(int width, bool is_signed) {
+ declarations->Reserve(4);
+ return *declarations << OpId{spv::Op::OpTypeInt} << width << is_signed << EndOp{};
+}
+
+Id Module::TypeSInt(int width) {
+ return TypeInt(width, true);
+}
+
+Id Module::TypeUInt(int width) {
+ return TypeInt(width, false);
+}
+
+Id Module::TypeFloat(int width) {
+ declarations->Reserve(3);
+ return *declarations << OpId{spv::Op::OpTypeFloat} << width << EndOp{};
+}
+
+Id Module::TypeVector(Id component_type, int component_count) {
+ assert(component_count >= 2);
+ declarations->Reserve(4);
+ return *declarations << OpId{spv::Op::OpTypeVector} << component_type << component_count
+ << EndOp{};
+}
+
+Id Module::TypeMatrix(Id column_type, int column_count) {
+ assert(column_count >= 2);
+ declarations->Reserve(4);
+ return *declarations << OpId{spv::Op::OpTypeMatrix} << column_type << column_count << EndOp{};
+}
+
+Id Module::TypeImage(Id sampled_type, spv::Dim dim, int depth, bool arrayed, bool ms, int sampled,
+ spv::ImageFormat image_format,
+ std::optional<spv::AccessQualifier> access_qualifier) {
+ declarations->Reserve(10);
+ return *declarations << OpId{spv::Op::OpTypeImage} << sampled_type << dim << depth << arrayed
+ << ms << sampled << image_format << access_qualifier << EndOp{};
+}
+
+Id Module::TypeSampler() {
+ declarations->Reserve(2);
+ return *declarations << OpId{spv::Op::OpTypeSampler} << EndOp{};
+}
+
+Id Module::TypeSampledImage(Id image_type) {
+ declarations->Reserve(3);
+ return *declarations << OpId{spv::Op::OpTypeSampledImage} << image_type << EndOp{};
+}
+
+Id Module::TypeArray(Id element_type, Id length) {
+ declarations->Reserve(4);
+ return *declarations << OpId{spv::Op::OpTypeArray} << element_type << length << EndOp{};
+}
+
+Id Module::TypeRuntimeArray(Id element_type) {
+ declarations->Reserve(3);
+ return *declarations << OpId{spv::Op::OpTypeRuntimeArray} << element_type << EndOp{};
+}
+
+Id Module::TypeStruct(std::span<const Id> members) {
+ declarations->Reserve(2 + members.size());
+ return *declarations << OpId{spv::Op::OpTypeStruct} << members << EndOp{};
+}
+
+Id Module::TypeOpaque(std::string_view name) {
+ declarations->Reserve(3 + WordsInString(name));
+ return *declarations << OpId{spv::Op::OpTypeOpaque} << name << EndOp{};
+}
+
+Id Module::TypePointer(spv::StorageClass storage_class, Id type) {
+ declarations->Reserve(4);
+ return *declarations << OpId{spv::Op::OpTypePointer} << storage_class << type << EndOp{};
+}
+
+Id Module::TypeFunction(Id return_type, std::span<const Id> arguments) {
+ declarations->Reserve(3 + arguments.size());
+ return *declarations << OpId{spv::Op::OpTypeFunction} << return_type << arguments << EndOp{};
+}
+
+Id Module::TypeEvent() {
+ declarations->Reserve(2);
+ return *declarations << OpId{spv::Op::OpTypeEvent} << EndOp{};
+}
+
+Id Module::TypeDeviceEvent() {
+ declarations->Reserve(2);
+ return *declarations << OpId{spv::Op::OpTypeDeviceEvent} << EndOp{};
+}
+
+Id Module::TypeReserveId() {
+ declarations->Reserve(2);
+ return *declarations << OpId{spv::Op::OpTypeReserveId} << EndOp{};
+}
+
+Id Module::TypeQueue() {
+ declarations->Reserve(2);
+ return *declarations << OpId{spv::Op::OpTypeQueue} << EndOp{};
+}
+
+Id Module::TypePipe(spv::AccessQualifier access_qualifier) {
+ declarations->Reserve(2);
+ return *declarations << OpId{spv::Op::OpTypePipe} << access_qualifier << EndOp{};
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/sirit.cpp b/externals/sirit/src/sirit.cpp
new file mode 100644
index 0000000000..7075f23e15
--- /dev/null
+++ b/externals/sirit/src/sirit.cpp
@@ -0,0 +1,142 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include <cassert>
+
+#include "sirit/sirit.h"
+
+#include "common_types.h"
+#include "stream.h"
+
+namespace Sirit {
+
+constexpr u32 MakeWord0(spv::Op op, size_t word_count) {
+ return static_cast<u32>(op) | static_cast<u32>(word_count) << 16;
+}
+
+Module::Module(u32 version_)
+ : version{version_}, ext_inst_imports{std::make_unique<Stream>(&bound)},
+ entry_points{std::make_unique<Stream>(&bound)},
+ execution_modes{std::make_unique<Stream>(&bound)}, debug{std::make_unique<Stream>(&bound)},
+ annotations{std::make_unique<Stream>(&bound)}, declarations{std::make_unique<Declarations>(
+ &bound)},
+ global_variables{std::make_unique<Stream>(&bound)}, code{std::make_unique<Stream>(&bound)} {}
+
+Module::~Module() = default;
+
+std::vector<u32> Module::Assemble() const {
+ std::vector<u32> words = {spv::MagicNumber, version, GENERATOR_MAGIC_NUMBER, bound + 1, 0};
+ const auto insert = [&words](std::span<const u32> input) {
+ words.insert(words.end(), input.begin(), input.end());
+ };
+
+ words.reserve(words.size() + capabilities.size() * 2);
+ for (const spv::Capability capability : capabilities) {
+ insert(std::array{
+ MakeWord0(spv::Op::OpCapability, 2),
+ static_cast<u32>(capability),
+ });
+ }
+
+ for (const std::string_view extension_name : extensions) {
+ size_t string_words = WordsInString(extension_name);
+ words.push_back(MakeWord0(spv::Op::OpExtension, string_words + 1));
+ size_t insert_index = words.size();
+ words.resize(words.size() + string_words);
+ InsertStringView(words, insert_index, extension_name);
+ }
+
+ insert(ext_inst_imports->Words());
+
+ insert(std::array{
+ MakeWord0(spv::Op::OpMemoryModel, 3),
+ static_cast<u32>(addressing_model),
+ static_cast<u32>(memory_model),
+ });
+
+ insert(entry_points->Words());
+ insert(execution_modes->Words());
+ insert(debug->Words());
+ insert(annotations->Words());
+ insert(declarations->Words());
+ insert(global_variables->Words());
+ insert(code->Words());
+
+ return words;
+}
+
+void Module::PatchDeferredPhi(const std::function<Id(std::size_t index)>& func) {
+ for (const u32 phi_index : deferred_phi_nodes) {
+ const u32 first_word = code->Value(phi_index);
+ [[maybe_unused]] const spv::Op op = static_cast<spv::Op>(first_word & 0xffff);
+ assert(op == spv::Op::OpPhi);
+ const u32 num_words = first_word >> 16;
+ const u32 num_args = (num_words - 3) / 2;
+ u32 cursor = phi_index + 3;
+ for (u32 arg = 0; arg < num_args; ++arg, cursor += 2) {
+ code->SetValue(cursor, func(arg).value);
+ }
+ }
+}
+
+void Module::AddExtension(std::string extension_name) {
+ extensions.insert(std::move(extension_name));
+}
+
+void Module::AddCapability(spv::Capability capability) {
+ capabilities.insert(capability);
+}
+
+void Module::SetMemoryModel(spv::AddressingModel addressing_model_,
+ spv::MemoryModel memory_model_) {
+ addressing_model = addressing_model_;
+ memory_model = memory_model_;
+}
+
+void Module::AddEntryPoint(spv::ExecutionModel execution_model, Id entry_point,
+ std::string_view name, std::span<const Id> interfaces) {
+ entry_points->Reserve(4 + WordsInString(name) + interfaces.size());
+ *entry_points << spv::Op::OpEntryPoint << execution_model << entry_point << name << interfaces
+ << EndOp{};
+}
+
+void Module::AddExecutionMode(Id entry_point, spv::ExecutionMode mode,
+ std::span<const Literal> literals) {
+ execution_modes->Reserve(3 + literals.size());
+ *execution_modes << spv::Op::OpExecutionMode << entry_point << mode << literals << EndOp{};
+}
+
+Id Module::AddLabel(Id label) {
+ assert(label.value != 0);
+ code->Reserve(2);
+ *code << MakeWord0(spv::Op::OpLabel, 2) << label.value;
+ return label;
+}
+
+Id Module::AddLocalVariable(Id result_type, spv::StorageClass storage_class,
+ std::optional<Id> initializer) {
+ code->Reserve(5);
+ return *code << OpId{spv::Op::OpVariable, result_type} << storage_class << initializer
+ << EndOp{};
+}
+
+Id Module::AddGlobalVariable(Id result_type, spv::StorageClass storage_class,
+ std::optional<Id> initializer) {
+ global_variables->Reserve(5);
+ return *global_variables << OpId{spv::Op::OpVariable, result_type} << storage_class
+ << initializer << EndOp{};
+}
+
+Id Module::GetGLSLstd450() {
+ if (!glsl_std_450) {
+ ext_inst_imports->Reserve(3 + 4);
+ glsl_std_450 = *ext_inst_imports << OpId{spv::Op::OpExtInstImport} << "GLSL.std.450"
+ << EndOp{};
+ }
+ return *glsl_std_450;
+}
+
+} // namespace Sirit
diff --git a/externals/sirit/src/stream.cpp b/externals/sirit/src/stream.cpp
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/externals/sirit/src/stream.cpp
diff --git a/externals/sirit/src/stream.h b/externals/sirit/src/stream.h
new file mode 100644
index 0000000000..7029b6c4e7
--- /dev/null
+++ b/externals/sirit/src/stream.h
@@ -0,0 +1,266 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#pragma once
+
+#include <bit>
+#include <cassert>
+#include <concepts>
+#include <cstddef>
+#include <functional>
+#include <string_view>
+#include <unordered_map>
+#include <variant>
+#include <vector>
+#include <utility>
+
+#ifndef __cpp_lib_bit_cast
+#include <cstring>
+#endif
+
+#include <spirv/unified1/spirv.hpp>
+
+#include "common_types.h"
+
+namespace Sirit {
+
+class Declarations;
+
+struct OpId {
+ OpId(spv::Op opcode_) : opcode{opcode_} {}
+ OpId(spv::Op opcode_, Id result_type_) : opcode{opcode_}, result_type{result_type_} {
+ assert(result_type.value != 0);
+ }
+
+ spv::Op opcode{};
+ Id result_type{};
+};
+
+struct EndOp {};
+
+inline size_t WordsInString(std::string_view string) {
+ return string.size() / sizeof(u32) + 1;
+}
+
+inline void InsertStringView(std::vector<u32>& words, size_t& insert_index,
+ std::string_view string) {
+ const size_t size = string.size();
+ const auto read = [string, size](size_t offset) {
+ return offset < size ? static_cast<u32>(string[offset]) : 0u;
+ };
+
+ for (size_t i = 0; i < size; i += sizeof(u32)) {
+ words[insert_index++] = read(i) | read(i + 1) << 8 | read(i + 2) << 16 | read(i + 3) << 24;
+ }
+ if (size % sizeof(u32) == 0) {
+ words[insert_index++] = 0;
+ }
+}
+
+class Stream {
+ friend Declarations;
+
+public:
+ explicit Stream(u32* bound_) : bound{bound_} {}
+
+ void Reserve(size_t num_words) {
+ if (insert_index + num_words <= words.size()) {
+ return;
+ }
+ words.resize(insert_index + num_words);
+ }
+
+ std::span<const u32> Words() const noexcept {
+ return std::span(words.data(), insert_index);
+ }
+
+ u32 LocalAddress() const noexcept {
+ return static_cast<u32>(words.size());
+ }
+
+ u32 Value(u32 index) const noexcept {
+ return words[index];
+ }
+
+ void SetValue(u32 index, u32 value) noexcept {
+ words[index] = value;
+ }
+
+ Stream& operator<<(spv::Op op) {
+ op_index = insert_index;
+ words[insert_index++] = static_cast<u32>(op);
+ return *this;
+ }
+
+ Stream& operator<<(OpId op) {
+ op_index = insert_index;
+ words[insert_index++] = static_cast<u32>(op.opcode);
+ if (op.result_type.value != 0) {
+ words[insert_index++] = op.result_type.value;
+ }
+ words[insert_index++] = ++*bound;
+ return *this;
+ }
+
+ Id operator<<(EndOp) {
+ const size_t num_words = insert_index - op_index;
+ words[op_index] |= static_cast<u32>(num_words) << 16;
+ return Id{*bound};
+ }
+
+ Stream& operator<<(u32 value) {
+ words[insert_index++] = value;
+ return *this;
+ }
+
+ Stream& operator<<(s32 value) {
+ return *this << static_cast<u32>(value);
+ }
+
+ Stream& operator<<(u64 value) {
+ return *this << static_cast<u32>(value) << static_cast<u32>(value >> 32);
+ }
+
+ Stream& operator<<(s64 value) {
+ return *this << static_cast<u64>(value);
+ }
+
+ Stream& operator<<(float value) {
+#ifdef __cpp_lib_bit_cast
+ return *this << std::bit_cast<u32>(value);
+#else
+ static_assert(sizeof(float) == sizeof(u32));
+ u32 int_value;
+ std::memcpy(&int_value, &value, sizeof(int_value));
+ return *this << int_value;
+#endif
+ }
+
+ Stream& operator<<(double value) {
+#ifdef __cpp_lib_bit_cast
+ return *this << std::bit_cast<u64>(value);
+#else
+ static_assert(sizeof(double) == sizeof(u64));
+ u64 int_value;
+ std::memcpy(&int_value, &value, sizeof(int_value));
+ return *this << int_value;
+#endif
+ }
+
+ Stream& operator<<(bool value) {
+ return *this << static_cast<u32>(value ? 1 : 0);
+ }
+
+ Stream& operator<<(Id value) {
+ assert(value.value != 0);
+ return *this << value.value;
+ }
+
+ Stream& operator<<(const Literal& literal) {
+ std::visit([this](auto value) { *this << value; }, literal);
+ return *this;
+ }
+
+ Stream& operator<<(std::string_view string) {
+ InsertStringView(words, insert_index, string);
+ return *this;
+ }
+
+ Stream& operator<<(const char* string) {
+ return *this << std::string_view{string};
+ }
+
+ template <typename T>
+ requires std::is_enum_v<T> Stream& operator<<(T value) {
+ static_assert(sizeof(T) == sizeof(u32));
+ return *this << static_cast<u32>(value);
+ }
+
+ template <typename T>
+ Stream& operator<<(std::optional<T> value) {
+ if (value) {
+ *this << *value;
+ }
+ return *this;
+ }
+
+ template <typename T>
+ Stream& operator<<(std::span<const T> values) {
+ for (const auto& value : values) {
+ *this << value;
+ }
+ return *this;
+ }
+
+private:
+ u32* bound = nullptr;
+ std::vector<u32> words;
+ size_t insert_index = 0;
+ size_t op_index = 0;
+};
+
+class Declarations {
+public:
+ explicit Declarations(u32* bound) : stream{bound} {}
+
+ void Reserve(size_t num_words) {
+ return stream.Reserve(num_words);
+ }
+
+ std::span<const u32> Words() const noexcept {
+ return stream.Words();
+ }
+
+ template <typename T>
+ Declarations& operator<<(const T& value) {
+ stream << value;
+ return *this;
+ }
+
+ // Declarations without an id don't exist
+ Declarations& operator<<(spv::Op) = delete;
+
+ Declarations& operator<<(OpId op) {
+ id_index = op.result_type.value != 0 ? 2 : 1;
+ stream << op;
+ return *this;
+ }
+
+ Id operator<<(EndOp) {
+ const auto begin = stream.words.data();
+ std::vector<u32> declarations(begin + stream.op_index, begin + stream.insert_index);
+
+ // Normalize result id for lookups
+ const u32 id = std::exchange(declarations[id_index], 0);
+
+ const auto [entry, inserted] = existing_declarations.emplace(declarations, id);
+ if (inserted) {
+ return stream << EndOp{};
+ }
+ // If the declaration already exists, undo the operation
+ stream.insert_index = stream.op_index;
+ --*stream.bound;
+
+ return Id{entry->second};
+ }
+
+private:
+ struct HashVector {
+ size_t operator()(const std::vector<u32>& vector) const noexcept {
+ size_t hash = std::hash<size_t>{}(vector.size());
+ for (const u32 value : vector) {
+ hash ^= std::hash<u32>{}(value);
+ }
+ return hash;
+ }
+ };
+
+ Stream stream;
+ std::unordered_map<std::vector<u32>, u32, HashVector> existing_declarations;
+ size_t id_index = 0;
+};
+
+} // namespace Sirit
diff --git a/externals/sirit/tests/CMakeLists.txt b/externals/sirit/tests/CMakeLists.txt
new file mode 100644
index 0000000000..a3f953403e
--- /dev/null
+++ b/externals/sirit/tests/CMakeLists.txt
@@ -0,0 +1,6 @@
+add_executable(sirit_tests
+ main.cpp)
+target_link_libraries(sirit_tests PRIVATE sirit)
+target_include_directories(sirit_tests PRIVATE . ../include)
+
+add_test(sirit_tests sirit_tests)
diff --git a/externals/sirit/tests/main.cpp b/externals/sirit/tests/main.cpp
new file mode 100644
index 0000000000..d119c2533e
--- /dev/null
+++ b/externals/sirit/tests/main.cpp
@@ -0,0 +1,139 @@
+/* This file is part of the sirit project.
+ * Copyright (c) 2019 sirit
+ * This software may be used and distributed according to the terms of the
+ * 3-Clause BSD License
+ */
+
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+
+#include <sirit/sirit.h>
+
+class MyModule : public Sirit::Module {
+public:
+ MyModule() : Sirit::Module{0x00010300} {}
+ ~MyModule() = default;
+
+ void Generate() {
+ AddCapability(spv::Capability::Shader);
+ SetMemoryModel(spv::AddressingModel::Logical, spv::MemoryModel::GLSL450);
+
+ const auto t_void = Name(TypeVoid(), "void");
+ const auto t_uint = Name(TypeInt(32, false), "uint");
+ const auto t_float = Name(TypeFloat(32), "float");
+
+ const auto float4 = Name(TypeVector(t_float, 4), "float4");
+ const auto in_float = Name(TypePointer(spv::StorageClass::Input, t_float), "in_float");
+ const auto in_float4 = Name(TypePointer(spv::StorageClass::Input, float4), "in_float4");
+ const auto out_float4 = Name(TypePointer(spv::StorageClass::Output, float4), "out_float4");
+
+ const auto gl_per_vertex = Name(TypeStruct(float4), "gl_PerVertex");
+ const auto gl_per_vertex_ptr =
+ Name(TypePointer(spv::StorageClass::Output, gl_per_vertex), "out_gl_PerVertex");
+
+ const auto in_pos = Name(AddGlobalVariable(in_float4, spv::StorageClass::Input), "in_pos");
+ const auto per_vertex =
+ Name(AddGlobalVariable(gl_per_vertex_ptr, spv::StorageClass::Output), "per_vertex");
+
+ Decorate(in_pos, spv::Decoration::Location, 0);
+ Decorate(gl_per_vertex, spv::Decoration::Block);
+ Decorate(gl_per_vertex, spv::Decoration::Block);
+ MemberDecorate(gl_per_vertex, 0, spv::Decoration::BuiltIn,
+ static_cast<std::uint32_t>(spv::BuiltIn::Position));
+
+ const auto main_func = Name(
+ OpFunction(t_void, spv::FunctionControlMask::MaskNone, TypeFunction(t_void)), "main");
+ AddLabel();
+
+ const auto ptr_pos_x = OpAccessChain(in_float, in_pos, Constant(t_uint, 0u));
+ const auto ptr_pos_y = OpAccessChain(in_float, in_pos, Constant(t_uint, 1u));
+
+ const auto pos_x = OpLoad(t_float, ptr_pos_x);
+ const auto pos_y = OpLoad(t_float, ptr_pos_y);
+
+ auto tmp_position = OpUndef(float4);
+ tmp_position = OpCompositeInsert(float4, pos_x, tmp_position, 0);
+ tmp_position = OpCompositeInsert(float4, pos_y, tmp_position, 1);
+ tmp_position = OpCompositeInsert(float4, Constant(t_float, 0.0f), tmp_position, 2);
+ tmp_position = OpCompositeInsert(float4, Constant(t_float, 1.0f), tmp_position, 3);
+
+ const auto gl_position = OpAccessChain(out_float4, per_vertex, Constant(t_uint, 0u));
+ OpStore(gl_position, tmp_position);
+
+ OpReturn();
+ OpFunctionEnd();
+
+ AddEntryPoint(spv::ExecutionModel::Vertex, main_func, "main", in_pos, per_vertex);
+ }
+};
+
+static constexpr std::uint8_t expected_binary[] = {
+ 0x03, 0x02, 0x23, 0x07, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x0d, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
+ 0x0b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x76, 0x6f, 0x69, 0x64,
+ 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x75, 0x69, 0x6e, 0x74,
+ 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x66, 0x6c, 0x6f, 0x61,
+ 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x66, 0x6c, 0x6f, 0x61,
+ 0x74, 0x34, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x5f, 0x66,
+ 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
+ 0x69, 0x6e, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
+ 0x07, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x00, 0x00,
+ 0x05, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65,
+ 0x72, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00,
+ 0x6f, 0x75, 0x74, 0x5f, 0x67, 0x6c, 0x5f, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78,
+ 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x5f, 0x70,
+ 0x6f, 0x73, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x70, 0x65, 0x72, 0x5f,
+ 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00,
+ 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00,
+ 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x48, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x2b, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x2b, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x2b, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x2b, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f,
+ 0x3b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x3b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0x36, 0x00, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x0c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
+ 0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
+ 0x41, 0x00, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
+ 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+ 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
+ 0x52, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
+ 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00,
+ 0x17, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x52, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
+ 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x52, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00,
+ 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0x41, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
+ 0x0f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00,
+ 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00,
+};
+
+int main(int argc, char** argv) {
+ MyModule module;
+ module.Generate();
+
+ std::vector<std::uint32_t> code = module.Assemble();
+ if (std::size(code) * sizeof(std::uint32_t) != std::size(expected_binary)) {
+ return EXIT_FAILURE;
+ }
+ if (std::memcmp(std::data(code), std::data(expected_binary), std::size(expected_binary)) != 0) {
+ return EXIT_FAILURE;
+ }
+ return EXIT_SUCCESS;
+}