Snap for 5254928 from 33de1aef825029c0cf7927a72df63ebe79745c6f to qt-release am: 9661b7f76f
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/deqp-deps/SPIRV-Headers/+/6152733
Change-Id: Iee100c129a8ee9072c46b2c7b168a6c1e0d59aa4
diff --git a/.gitignore b/.gitignore
index 9bcdd5a..f33592c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
build
out
+.DS_Store
diff --git a/Android.bp b/Android.bp
index 7cb7498..60f5a07 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,34 +1,20 @@
-filegroup {
- name: "deqp_spirv.core.grammar.json-1.0",
- srcs: ["include/spirv/1.0/spirv.core.grammar.json"],
-}
filegroup {
- name: "deqp_spirv.core.grammar.json-1.1",
- srcs: ["include/spirv/1.1/spirv.core.grammar.json"],
-}
-
-filegroup {
- name: "deqp_spirv.core.grammar.json-1.2",
- srcs: ["include/spirv/1.2/spirv.core.grammar.json"],
-}
-
-filegroup {
- name: "deqp_spirv.core.grammar.json-unified1",
+ name: "deqp_spirv_headers_unified1_spirv.core.grammar.json",
srcs: ["include/spirv/unified1/spirv.core.grammar.json"],
}
filegroup {
- name: "deqp_spirv.glsl.grammar.json",
- srcs: ["include/spirv/1.2/extinst.glsl.std.450.grammar.json"],
+ name: "deqp_spirv_headers_unified1_extinst.opencl.std.100.grammar.json",
+ srcs: ["include/spirv/unified1/extinst.opencl.std.100.grammar.json"],
}
filegroup {
- name: "deqp_spirv.opencl.grammar.json",
- srcs: ["include/spirv/1.2/extinst.opencl.std.100.grammar.json"],
+ name: "deqp_spirv_headers_unified1_extinst.glsl.std.450.grammar.json",
+ srcs: ["include/spirv/unified1/extinst.glsl.std.450.grammar.json"],
}
filegroup {
- name: "deqp_spirv.registry.xml",
+ name: "deqp_spirv_headers_spir-v.xml",
srcs: ["include/spirv/spir-v.xml"],
}
diff --git a/BUILD.bazel b/BUILD.bazel
new file mode 100644
index 0000000..9c53db3
--- /dev/null
+++ b/BUILD.bazel
@@ -0,0 +1,125 @@
+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"],
+)
+
+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/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/BUILD.gn b/BUILD.gn
new file mode 100644
index 0000000..57e35f0
--- /dev/null
+++ b/BUILD.gn
@@ -0,0 +1,43 @@
+# 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/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/CMakeLists.txt b/CMakeLists.txt
index 167a3e7..eb46947 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,8 +28,8 @@
# The SPIR-V headers from the SPIR-V Registry
# https://www.khronos.org/registry/spir-v/
#
-cmake_minimum_required(VERSION 2.8.11)
-project(SPIRV-Headers)
+cmake_minimum_required(VERSION 3.0)
+project(SPIRV-Headers VERSION 1.5.1)
# There are two ways to use this project.
#
@@ -44,14 +44,6 @@
# 2. cmake ..
# 3. cmake --build . --target install
-file(GLOB_RECURSE HEADER_FILES
- RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
- include/spirv/*)
-foreach(HEADER_FILE ${HEADER_FILES})
- get_filename_component(HEADER_INSTALL_DIR ${HEADER_FILE} PATH)
- install(FILES ${HEADER_FILE} DESTINATION ${HEADER_INSTALL_DIR})
-endforeach()
-
# legacy
add_custom_target(install-headers
COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv
@@ -59,10 +51,77 @@
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)
+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_LIBDIR}/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)
+ write_basic_package_version_file(
+ "${version_config}"
+ COMPATIBILITY SameMajorVersion
+ )
+
+ 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}"
+ )
+endif()
diff --git a/README.md b/README.md
index 846b20d..2ea3dc5 100644
--- a/README.md
+++ b/README.md
@@ -25,10 +25,18 @@
The SPIR-V XML registry file is updated by Khronos whenever a new enum range is allocated.
-Pull requests can be made to
+Pull requests can be made to
- request allocation of new enum ranges in the XML registry file
- reserve specific tokens in the JSON grammar
+### 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
```
@@ -45,6 +53,7 @@
## 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.
@@ -61,7 +70,56 @@
See also the [example](example/) subdirectory. But since that example is
*inside* this repostory, it doesn't use and `add_subdirectory` directive.
-## Generating the headers from the JSON grammar
+### 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,
@@ -79,6 +137,26 @@
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?*
diff --git a/WORKSPACE b/WORKSPACE
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/WORKSPACE
diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in
new file mode 100644
index 0000000..38bbde7
--- /dev/null
+++ b/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/include/spirv/1.2/spirv.py b/include/spirv/1.2/spirv.py
old mode 100755
new mode 100644
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index d7e6e48..2fac9c5 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -52,7 +52,7 @@
<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 Neil Henning, neil@codeplay.com"/>
+ <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 Alexander Galazin, alexander.galazin@arm.com"/>
<id value="6" vendor="Khronos" tool="LLVM/SPIR-V Translator" comment="Contact Yaxun (Sam) Liu, yaxun.liu@amd.com"/>
@@ -70,7 +70,9 @@
<id value="18" vendor="Wine" tool="VKD3D Shader Compiler" comment="Contact wine-devel@winehq.org"/>
<id value="19" vendor="Clay" tool="Clay Shader Compiler" comment="Contact info@clayengine.com"/>
<id value="20" vendor="W3C WebGPU Group" tool="WHLSL Shader Translator" comment="https://github.com/gpuweb/WHLSL"/>
- <unused start="21" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
+ <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"/>
+ <unused start="23" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
</ids>
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
@@ -99,7 +101,7 @@
<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"/>
- <ids type="opcode" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, neil@codeplay.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"/>
@@ -107,6 +109,9 @@
<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"/>
<!-- Opcodes & enumerants reservable 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
@@ -115,6 +120,27 @@
<!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
- <ids type="opcode" start="5824" end="4294967295" comment="Opcode range reservable for future use by vendors"/>
+ <ids type="opcode" start="6080" end="4294967295" comment="Opcode range reservable for future use by vendors"/>
+
+
+ <!-- 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="22" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="LoopControl" start="23" 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"/>
</registry>
diff --git a/include/spirv/unified1/AMD_gcn_shader.h b/include/spirv/unified1/AMD_gcn_shader.h
new file mode 100644
index 0000000..80165ae
--- /dev/null
+++ b/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/include/spirv/unified1/AMD_shader_ballot.h b/include/spirv/unified1/AMD_shader_ballot.h
new file mode 100644
index 0000000..8a8bb6e
--- /dev/null
+++ b/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/include/spirv/unified1/AMD_shader_explicit_vertex_parameter.h b/include/spirv/unified1/AMD_shader_explicit_vertex_parameter.h
new file mode 100644
index 0000000..12b6480
--- /dev/null
+++ b/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/include/spirv/unified1/AMD_shader_trinary_minmax.h b/include/spirv/unified1/AMD_shader_trinary_minmax.h
new file mode 100644
index 0000000..1b14997
--- /dev/null
+++ b/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/include/spirv/unified1/DebugInfo.h b/include/spirv/unified1/DebugInfo.h
new file mode 100644
index 0000000..c50a131
--- /dev/null
+++ b/include/spirv/unified1/DebugInfo.h
@@ -0,0 +1,143 @@
+// 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 {
+ 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/include/spirv/unified1/NonSemanticDebugPrintf.h b/include/spirv/unified1/NonSemanticDebugPrintf.h
new file mode 100644
index 0000000..83796d7
--- /dev/null
+++ b/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/include/spirv/unified1/OpenCL.std.h b/include/spirv/unified1/OpenCL.std.h
index fe759e1..2745e30 100644
--- a/include/spirv/unified1/OpenCL.std.h
+++ b/include/spirv/unified1/OpenCL.std.h
@@ -1,5 +1,5 @@
/*
-** Copyright (c) 2015-2017 The Khronos Group Inc.
+** 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"),
@@ -27,6 +27,7 @@
#ifndef OPENCLstd_H
#define OPENCLstd_H
+#ifdef __cplusplus
namespace OpenCLLIB {
enum Entrypoints {
@@ -212,4 +213,189 @@
} // 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/include/spirv/unified1/OpenCLDebugInfo100.h b/include/spirv/unified1/OpenCLDebugInfo100.h
new file mode 100644
index 0000000..1149980
--- /dev/null
+++ b/include/spirv/unified1/OpenCLDebugInfo100.h
@@ -0,0 +1,156 @@
+// 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,
+ OpenCLDebugInfo100InstructionsMax = 0x7fffffff
+};
+
+
+enum OpenCLDebugInfo100DebugInfoFlags {
+ 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/include/spirv/unified1/extinst.debuginfo.grammar.json b/include/spirv/unified1/extinst.debuginfo.grammar.json
new file mode 100644
index 0000000..9212f6f
--- /dev/null
+++ b/include/spirv/unified1/extinst.debuginfo.grammar.json
@@ -0,0 +1,568 @@
+{
+ "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" : "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/include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json b/include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json
new file mode 100644
index 0000000..71fa711
--- /dev/null
+++ b/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/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json b/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
new file mode 100644
index 0000000..08062be
--- /dev/null
+++ b/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
@@ -0,0 +1,632 @@
+{
+ "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" : "?" }
+ ]
+ }
+ ],
+ "operand_kinds" : [
+ {
+ "category" : "BitEnum",
+ "kind" : "DebugInfoFlags",
+ "enumerants" : [
+ {
+ "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/include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json b/include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json
new file mode 100644
index 0000000..e18251b
--- /dev/null
+++ b/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/include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json b/include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json
new file mode 100644
index 0000000..62a470e
--- /dev/null
+++ b/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/include/spirv/unified1/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json b/include/spirv/unified1/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json
new file mode 100644
index 0000000..e156b1b
--- /dev/null
+++ b/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/include/spirv/unified1/extinst.spv-amd-shader-trinary-minmax.grammar.json b/include/spirv/unified1/extinst.spv-amd-shader-trinary-minmax.grammar.json
new file mode 100644
index 0000000..c681976
--- /dev/null
+++ b/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/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
old mode 100755
new mode 100644
index cd17859..824ae4b
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -1,6 +1,6 @@
{
"copyright" : [
- "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "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\"),",
@@ -26,15 +26,122 @@
],
"magic_number" : "0x07230203",
"major_version" : 1,
- "minor_version" : 3,
+ "minor_version" : 5,
"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" },
@@ -43,6 +150,7 @@
},
{
"opname" : "OpSourceContinued",
+ "class" : "Debug",
"opcode" : 2,
"operands" : [
{ "kind" : "LiteralString", "name" : "'Continued Source'" }
@@ -50,6 +158,7 @@
},
{
"opname" : "OpSource",
+ "class" : "Debug",
"opcode" : 3,
"operands" : [
{ "kind" : "SourceLanguage" },
@@ -60,6 +169,7 @@
},
{
"opname" : "OpSourceExtension",
+ "class" : "Debug",
"opcode" : 4,
"operands" : [
{ "kind" : "LiteralString", "name" : "'Extension'" }
@@ -67,6 +177,7 @@
},
{
"opname" : "OpName",
+ "class" : "Debug",
"opcode" : 5,
"operands" : [
{ "kind" : "IdRef", "name" : "'Target'" },
@@ -75,6 +186,7 @@
},
{
"opname" : "OpMemberName",
+ "class" : "Debug",
"opcode" : 6,
"operands" : [
{ "kind" : "IdRef", "name" : "'Type'" },
@@ -84,6 +196,7 @@
},
{
"opname" : "OpString",
+ "class" : "Debug",
"opcode" : 7,
"operands" : [
{ "kind" : "IdResult" },
@@ -92,6 +205,7 @@
},
{
"opname" : "OpLine",
+ "class" : "Debug",
"opcode" : 8,
"operands" : [
{ "kind" : "IdRef", "name" : "'File'" },
@@ -101,6 +215,7 @@
},
{
"opname" : "OpExtension",
+ "class" : "Extension",
"opcode" : 10,
"operands" : [
{ "kind" : "LiteralString", "name" : "'Name'" }
@@ -108,6 +223,7 @@
},
{
"opname" : "OpExtInstImport",
+ "class" : "Extension",
"opcode" : 11,
"operands" : [
{ "kind" : "IdResult" },
@@ -116,6 +232,7 @@
},
{
"opname" : "OpExtInst",
+ "class" : "Extension",
"opcode" : 12,
"operands" : [
{ "kind" : "IdResultType" },
@@ -127,6 +244,7 @@
},
{
"opname" : "OpMemoryModel",
+ "class" : "Mode-Setting",
"opcode" : 14,
"operands" : [
{ "kind" : "AddressingModel" },
@@ -135,6 +253,7 @@
},
{
"opname" : "OpEntryPoint",
+ "class" : "Mode-Setting",
"opcode" : 15,
"operands" : [
{ "kind" : "ExecutionModel" },
@@ -145,6 +264,7 @@
},
{
"opname" : "OpExecutionMode",
+ "class" : "Mode-Setting",
"opcode" : 16,
"operands" : [
{ "kind" : "IdRef", "name" : "'Entry Point'" },
@@ -153,6 +273,7 @@
},
{
"opname" : "OpCapability",
+ "class" : "Mode-Setting",
"opcode" : 17,
"operands" : [
{ "kind" : "Capability", "name" : "'Capability'" }
@@ -160,6 +281,7 @@
},
{
"opname" : "OpTypeVoid",
+ "class" : "Type-Declaration",
"opcode" : 19,
"operands" : [
{ "kind" : "IdResult" }
@@ -167,6 +289,7 @@
},
{
"opname" : "OpTypeBool",
+ "class" : "Type-Declaration",
"opcode" : 20,
"operands" : [
{ "kind" : "IdResult" }
@@ -174,6 +297,7 @@
},
{
"opname" : "OpTypeInt",
+ "class" : "Type-Declaration",
"opcode" : 21,
"operands" : [
{ "kind" : "IdResult" },
@@ -183,6 +307,7 @@
},
{
"opname" : "OpTypeFloat",
+ "class" : "Type-Declaration",
"opcode" : 22,
"operands" : [
{ "kind" : "IdResult" },
@@ -191,6 +316,7 @@
},
{
"opname" : "OpTypeVector",
+ "class" : "Type-Declaration",
"opcode" : 23,
"operands" : [
{ "kind" : "IdResult" },
@@ -200,6 +326,7 @@
},
{
"opname" : "OpTypeMatrix",
+ "class" : "Type-Declaration",
"opcode" : 24,
"operands" : [
{ "kind" : "IdResult" },
@@ -210,6 +337,7 @@
},
{
"opname" : "OpTypeImage",
+ "class" : "Type-Declaration",
"opcode" : 25,
"operands" : [
{ "kind" : "IdResult" },
@@ -225,6 +353,7 @@
},
{
"opname" : "OpTypeSampler",
+ "class" : "Type-Declaration",
"opcode" : 26,
"operands" : [
{ "kind" : "IdResult" }
@@ -232,6 +361,7 @@
},
{
"opname" : "OpTypeSampledImage",
+ "class" : "Type-Declaration",
"opcode" : 27,
"operands" : [
{ "kind" : "IdResult" },
@@ -240,6 +370,7 @@
},
{
"opname" : "OpTypeArray",
+ "class" : "Type-Declaration",
"opcode" : 28,
"operands" : [
{ "kind" : "IdResult" },
@@ -249,6 +380,7 @@
},
{
"opname" : "OpTypeRuntimeArray",
+ "class" : "Type-Declaration",
"opcode" : 29,
"operands" : [
{ "kind" : "IdResult" },
@@ -258,6 +390,7 @@
},
{
"opname" : "OpTypeStruct",
+ "class" : "Type-Declaration",
"opcode" : 30,
"operands" : [
{ "kind" : "IdResult" },
@@ -266,6 +399,7 @@
},
{
"opname" : "OpTypeOpaque",
+ "class" : "Type-Declaration",
"opcode" : 31,
"operands" : [
{ "kind" : "IdResult" },
@@ -275,6 +409,7 @@
},
{
"opname" : "OpTypePointer",
+ "class" : "Type-Declaration",
"opcode" : 32,
"operands" : [
{ "kind" : "IdResult" },
@@ -284,6 +419,7 @@
},
{
"opname" : "OpTypeFunction",
+ "class" : "Type-Declaration",
"opcode" : 33,
"operands" : [
{ "kind" : "IdResult" },
@@ -293,6 +429,7 @@
},
{
"opname" : "OpTypeEvent",
+ "class" : "Type-Declaration",
"opcode" : 34,
"operands" : [
{ "kind" : "IdResult" }
@@ -301,6 +438,7 @@
},
{
"opname" : "OpTypeDeviceEvent",
+ "class" : "Type-Declaration",
"opcode" : 35,
"operands" : [
{ "kind" : "IdResult" }
@@ -309,6 +447,7 @@
},
{
"opname" : "OpTypeReserveId",
+ "class" : "Type-Declaration",
"opcode" : 36,
"operands" : [
{ "kind" : "IdResult" }
@@ -317,6 +456,7 @@
},
{
"opname" : "OpTypeQueue",
+ "class" : "Type-Declaration",
"opcode" : 37,
"operands" : [
{ "kind" : "IdResult" }
@@ -325,6 +465,7 @@
},
{
"opname" : "OpTypePipe",
+ "class" : "Type-Declaration",
"opcode" : 38,
"operands" : [
{ "kind" : "IdResult" },
@@ -334,15 +475,20 @@
},
{
"opname" : "OpTypeForwardPointer",
+ "class" : "Type-Declaration",
"opcode" : 39,
"operands" : [
{ "kind" : "IdRef", "name" : "'Pointer Type'" },
{ "kind" : "StorageClass" }
],
- "capabilities" : [ "Addresses" ]
+ "capabilities" : [
+ "Addresses",
+ "PhysicalStorageBufferAddresses"
+ ]
},
{
"opname" : "OpConstantTrue",
+ "class" : "Constant-Creation",
"opcode" : 41,
"operands" : [
{ "kind" : "IdResultType" },
@@ -351,6 +497,7 @@
},
{
"opname" : "OpConstantFalse",
+ "class" : "Constant-Creation",
"opcode" : 42,
"operands" : [
{ "kind" : "IdResultType" },
@@ -359,6 +506,7 @@
},
{
"opname" : "OpConstant",
+ "class" : "Constant-Creation",
"opcode" : 43,
"operands" : [
{ "kind" : "IdResultType" },
@@ -368,6 +516,7 @@
},
{
"opname" : "OpConstantComposite",
+ "class" : "Constant-Creation",
"opcode" : 44,
"operands" : [
{ "kind" : "IdResultType" },
@@ -377,6 +526,7 @@
},
{
"opname" : "OpConstantSampler",
+ "class" : "Constant-Creation",
"opcode" : 45,
"operands" : [
{ "kind" : "IdResultType" },
@@ -389,6 +539,7 @@
},
{
"opname" : "OpConstantNull",
+ "class" : "Constant-Creation",
"opcode" : 46,
"operands" : [
{ "kind" : "IdResultType" },
@@ -397,6 +548,7 @@
},
{
"opname" : "OpSpecConstantTrue",
+ "class" : "Constant-Creation",
"opcode" : 48,
"operands" : [
{ "kind" : "IdResultType" },
@@ -405,6 +557,7 @@
},
{
"opname" : "OpSpecConstantFalse",
+ "class" : "Constant-Creation",
"opcode" : 49,
"operands" : [
{ "kind" : "IdResultType" },
@@ -413,6 +566,7 @@
},
{
"opname" : "OpSpecConstant",
+ "class" : "Constant-Creation",
"opcode" : 50,
"operands" : [
{ "kind" : "IdResultType" },
@@ -422,6 +576,7 @@
},
{
"opname" : "OpSpecConstantComposite",
+ "class" : "Constant-Creation",
"opcode" : 51,
"operands" : [
{ "kind" : "IdResultType" },
@@ -431,6 +586,7 @@
},
{
"opname" : "OpSpecConstantOp",
+ "class" : "Constant-Creation",
"opcode" : 52,
"operands" : [
{ "kind" : "IdResultType" },
@@ -440,6 +596,7 @@
},
{
"opname" : "OpFunction",
+ "class" : "Function",
"opcode" : 54,
"operands" : [
{ "kind" : "IdResultType" },
@@ -450,6 +607,7 @@
},
{
"opname" : "OpFunctionParameter",
+ "class" : "Function",
"opcode" : 55,
"operands" : [
{ "kind" : "IdResultType" },
@@ -458,10 +616,12 @@
},
{
"opname" : "OpFunctionEnd",
+ "class" : "Function",
"opcode" : 56
},
{
"opname" : "OpFunctionCall",
+ "class" : "Function",
"opcode" : 57,
"operands" : [
{ "kind" : "IdResultType" },
@@ -472,6 +632,7 @@
},
{
"opname" : "OpVariable",
+ "class" : "Memory",
"opcode" : 59,
"operands" : [
{ "kind" : "IdResultType" },
@@ -482,6 +643,7 @@
},
{
"opname" : "OpImageTexelPointer",
+ "class" : "Memory",
"opcode" : 60,
"operands" : [
{ "kind" : "IdResultType" },
@@ -493,6 +655,7 @@
},
{
"opname" : "OpLoad",
+ "class" : "Memory",
"opcode" : 61,
"operands" : [
{ "kind" : "IdResultType" },
@@ -503,6 +666,7 @@
},
{
"opname" : "OpStore",
+ "class" : "Memory",
"opcode" : 62,
"operands" : [
{ "kind" : "IdRef", "name" : "'Pointer'" },
@@ -512,26 +676,31 @@
},
{
"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" },
@@ -542,6 +711,7 @@
},
{
"opname" : "OpInBoundsAccessChain",
+ "class" : "Memory",
"opcode" : 66,
"operands" : [
{ "kind" : "IdResultType" },
@@ -552,6 +722,7 @@
},
{
"opname" : "OpPtrAccessChain",
+ "class" : "Memory",
"opcode" : 67,
"operands" : [
{ "kind" : "IdResultType" },
@@ -563,11 +734,13 @@
"capabilities" : [
"Addresses",
"VariablePointers",
- "VariablePointersStorageBuffer"
+ "VariablePointersStorageBuffer",
+ "PhysicalStorageBufferAddresses"
]
},
{
"opname" : "OpArrayLength",
+ "class" : "Memory",
"opcode" : 68,
"operands" : [
{ "kind" : "IdResultType" },
@@ -579,6 +752,7 @@
},
{
"opname" : "OpGenericPtrMemSemantics",
+ "class" : "Memory",
"opcode" : 69,
"operands" : [
{ "kind" : "IdResultType" },
@@ -589,6 +763,7 @@
},
{
"opname" : "OpInBoundsPtrAccessChain",
+ "class" : "Memory",
"opcode" : 70,
"operands" : [
{ "kind" : "IdResultType" },
@@ -601,6 +776,7 @@
},
{
"opname" : "OpDecorate",
+ "class" : "Annotation",
"opcode" : 71,
"operands" : [
{ "kind" : "IdRef", "name" : "'Target'" },
@@ -609,6 +785,7 @@
},
{
"opname" : "OpMemberDecorate",
+ "class" : "Annotation",
"opcode" : 72,
"operands" : [
{ "kind" : "IdRef", "name" : "'Structure Type'" },
@@ -618,6 +795,7 @@
},
{
"opname" : "OpDecorationGroup",
+ "class" : "Annotation",
"opcode" : 73,
"operands" : [
{ "kind" : "IdResult" }
@@ -625,6 +803,7 @@
},
{
"opname" : "OpGroupDecorate",
+ "class" : "Annotation",
"opcode" : 74,
"operands" : [
{ "kind" : "IdRef", "name" : "'Decoration Group'" },
@@ -633,6 +812,7 @@
},
{
"opname" : "OpGroupMemberDecorate",
+ "class" : "Annotation",
"opcode" : 75,
"operands" : [
{ "kind" : "IdRef", "name" : "'Decoration Group'" },
@@ -641,6 +821,7 @@
},
{
"opname" : "OpVectorExtractDynamic",
+ "class" : "Composite",
"opcode" : 77,
"operands" : [
{ "kind" : "IdResultType" },
@@ -651,6 +832,7 @@
},
{
"opname" : "OpVectorInsertDynamic",
+ "class" : "Composite",
"opcode" : 78,
"operands" : [
{ "kind" : "IdResultType" },
@@ -662,6 +844,7 @@
},
{
"opname" : "OpVectorShuffle",
+ "class" : "Composite",
"opcode" : 79,
"operands" : [
{ "kind" : "IdResultType" },
@@ -673,6 +856,7 @@
},
{
"opname" : "OpCompositeConstruct",
+ "class" : "Composite",
"opcode" : 80,
"operands" : [
{ "kind" : "IdResultType" },
@@ -682,6 +866,7 @@
},
{
"opname" : "OpCompositeExtract",
+ "class" : "Composite",
"opcode" : 81,
"operands" : [
{ "kind" : "IdResultType" },
@@ -692,6 +877,7 @@
},
{
"opname" : "OpCompositeInsert",
+ "class" : "Composite",
"opcode" : 82,
"operands" : [
{ "kind" : "IdResultType" },
@@ -703,6 +889,7 @@
},
{
"opname" : "OpCopyObject",
+ "class" : "Composite",
"opcode" : 83,
"operands" : [
{ "kind" : "IdResultType" },
@@ -712,6 +899,7 @@
},
{
"opname" : "OpTranspose",
+ "class" : "Composite",
"opcode" : 84,
"operands" : [
{ "kind" : "IdResultType" },
@@ -722,6 +910,7 @@
},
{
"opname" : "OpSampledImage",
+ "class" : "Image",
"opcode" : 86,
"operands" : [
{ "kind" : "IdResultType" },
@@ -732,6 +921,7 @@
},
{
"opname" : "OpImageSampleImplicitLod",
+ "class" : "Image",
"opcode" : 87,
"operands" : [
{ "kind" : "IdResultType" },
@@ -744,6 +934,7 @@
},
{
"opname" : "OpImageSampleExplicitLod",
+ "class" : "Image",
"opcode" : 88,
"operands" : [
{ "kind" : "IdResultType" },
@@ -755,6 +946,7 @@
},
{
"opname" : "OpImageSampleDrefImplicitLod",
+ "class" : "Image",
"opcode" : 89,
"operands" : [
{ "kind" : "IdResultType" },
@@ -768,6 +960,7 @@
},
{
"opname" : "OpImageSampleDrefExplicitLod",
+ "class" : "Image",
"opcode" : 90,
"operands" : [
{ "kind" : "IdResultType" },
@@ -781,6 +974,7 @@
},
{
"opname" : "OpImageSampleProjImplicitLod",
+ "class" : "Image",
"opcode" : 91,
"operands" : [
{ "kind" : "IdResultType" },
@@ -793,6 +987,7 @@
},
{
"opname" : "OpImageSampleProjExplicitLod",
+ "class" : "Image",
"opcode" : 92,
"operands" : [
{ "kind" : "IdResultType" },
@@ -805,6 +1000,7 @@
},
{
"opname" : "OpImageSampleProjDrefImplicitLod",
+ "class" : "Image",
"opcode" : 93,
"operands" : [
{ "kind" : "IdResultType" },
@@ -818,6 +1014,7 @@
},
{
"opname" : "OpImageSampleProjDrefExplicitLod",
+ "class" : "Image",
"opcode" : 94,
"operands" : [
{ "kind" : "IdResultType" },
@@ -831,6 +1028,7 @@
},
{
"opname" : "OpImageFetch",
+ "class" : "Image",
"opcode" : 95,
"operands" : [
{ "kind" : "IdResultType" },
@@ -842,6 +1040,7 @@
},
{
"opname" : "OpImageGather",
+ "class" : "Image",
"opcode" : 96,
"operands" : [
{ "kind" : "IdResultType" },
@@ -855,6 +1054,7 @@
},
{
"opname" : "OpImageDrefGather",
+ "class" : "Image",
"opcode" : 97,
"operands" : [
{ "kind" : "IdResultType" },
@@ -868,6 +1068,7 @@
},
{
"opname" : "OpImageRead",
+ "class" : "Image",
"opcode" : 98,
"operands" : [
{ "kind" : "IdResultType" },
@@ -879,6 +1080,7 @@
},
{
"opname" : "OpImageWrite",
+ "class" : "Image",
"opcode" : 99,
"operands" : [
{ "kind" : "IdRef", "name" : "'Image'" },
@@ -889,6 +1091,7 @@
},
{
"opname" : "OpImage",
+ "class" : "Image",
"opcode" : 100,
"operands" : [
{ "kind" : "IdResultType" },
@@ -898,6 +1101,7 @@
},
{
"opname" : "OpImageQueryFormat",
+ "class" : "Image",
"opcode" : 101,
"operands" : [
{ "kind" : "IdResultType" },
@@ -908,6 +1112,7 @@
},
{
"opname" : "OpImageQueryOrder",
+ "class" : "Image",
"opcode" : 102,
"operands" : [
{ "kind" : "IdResultType" },
@@ -918,6 +1123,7 @@
},
{
"opname" : "OpImageQuerySizeLod",
+ "class" : "Image",
"opcode" : 103,
"operands" : [
{ "kind" : "IdResultType" },
@@ -929,6 +1135,7 @@
},
{
"opname" : "OpImageQuerySize",
+ "class" : "Image",
"opcode" : 104,
"operands" : [
{ "kind" : "IdResultType" },
@@ -939,6 +1146,7 @@
},
{
"opname" : "OpImageQueryLod",
+ "class" : "Image",
"opcode" : 105,
"operands" : [
{ "kind" : "IdResultType" },
@@ -950,6 +1158,7 @@
},
{
"opname" : "OpImageQueryLevels",
+ "class" : "Image",
"opcode" : 106,
"operands" : [
{ "kind" : "IdResultType" },
@@ -960,6 +1169,7 @@
},
{
"opname" : "OpImageQuerySamples",
+ "class" : "Image",
"opcode" : 107,
"operands" : [
{ "kind" : "IdResultType" },
@@ -970,6 +1180,7 @@
},
{
"opname" : "OpConvertFToU",
+ "class" : "Conversion",
"opcode" : 109,
"operands" : [
{ "kind" : "IdResultType" },
@@ -979,6 +1190,7 @@
},
{
"opname" : "OpConvertFToS",
+ "class" : "Conversion",
"opcode" : 110,
"operands" : [
{ "kind" : "IdResultType" },
@@ -988,6 +1200,7 @@
},
{
"opname" : "OpConvertSToF",
+ "class" : "Conversion",
"opcode" : 111,
"operands" : [
{ "kind" : "IdResultType" },
@@ -997,6 +1210,7 @@
},
{
"opname" : "OpConvertUToF",
+ "class" : "Conversion",
"opcode" : 112,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1006,6 +1220,7 @@
},
{
"opname" : "OpUConvert",
+ "class" : "Conversion",
"opcode" : 113,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1015,6 +1230,7 @@
},
{
"opname" : "OpSConvert",
+ "class" : "Conversion",
"opcode" : 114,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1024,6 +1240,7 @@
},
{
"opname" : "OpFConvert",
+ "class" : "Conversion",
"opcode" : 115,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1033,6 +1250,7 @@
},
{
"opname" : "OpQuantizeToF16",
+ "class" : "Conversion",
"opcode" : 116,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1042,16 +1260,21 @@
},
{
"opname" : "OpConvertPtrToU",
+ "class" : "Conversion",
"opcode" : 117,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" }
],
- "capabilities" : [ "Addresses" ]
+ "capabilities" : [
+ "Addresses",
+ "PhysicalStorageBufferAddresses"
+ ]
},
{
"opname" : "OpSatConvertSToU",
+ "class" : "Conversion",
"opcode" : 118,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1062,6 +1285,7 @@
},
{
"opname" : "OpSatConvertUToS",
+ "class" : "Conversion",
"opcode" : 119,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1072,16 +1296,21 @@
},
{
"opname" : "OpConvertUToPtr",
+ "class" : "Conversion",
"opcode" : 120,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Integer Value'" }
],
- "capabilities" : [ "Addresses" ]
+ "capabilities" : [
+ "Addresses",
+ "PhysicalStorageBufferAddresses"
+ ]
},
{
"opname" : "OpPtrCastToGeneric",
+ "class" : "Conversion",
"opcode" : 121,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1092,6 +1321,7 @@
},
{
"opname" : "OpGenericCastToPtr",
+ "class" : "Conversion",
"opcode" : 122,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1102,6 +1332,7 @@
},
{
"opname" : "OpGenericCastToPtrExplicit",
+ "class" : "Conversion",
"opcode" : 123,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1113,6 +1344,7 @@
},
{
"opname" : "OpBitcast",
+ "class" : "Conversion",
"opcode" : 124,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1122,6 +1354,7 @@
},
{
"opname" : "OpSNegate",
+ "class" : "Arithmetic",
"opcode" : 126,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1131,6 +1364,7 @@
},
{
"opname" : "OpFNegate",
+ "class" : "Arithmetic",
"opcode" : 127,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1140,6 +1374,7 @@
},
{
"opname" : "OpIAdd",
+ "class" : "Arithmetic",
"opcode" : 128,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1150,6 +1385,7 @@
},
{
"opname" : "OpFAdd",
+ "class" : "Arithmetic",
"opcode" : 129,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1160,6 +1396,7 @@
},
{
"opname" : "OpISub",
+ "class" : "Arithmetic",
"opcode" : 130,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1170,6 +1407,7 @@
},
{
"opname" : "OpFSub",
+ "class" : "Arithmetic",
"opcode" : 131,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1180,6 +1418,7 @@
},
{
"opname" : "OpIMul",
+ "class" : "Arithmetic",
"opcode" : 132,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1190,6 +1429,7 @@
},
{
"opname" : "OpFMul",
+ "class" : "Arithmetic",
"opcode" : 133,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1200,6 +1440,7 @@
},
{
"opname" : "OpUDiv",
+ "class" : "Arithmetic",
"opcode" : 134,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1210,6 +1451,7 @@
},
{
"opname" : "OpSDiv",
+ "class" : "Arithmetic",
"opcode" : 135,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1220,6 +1462,7 @@
},
{
"opname" : "OpFDiv",
+ "class" : "Arithmetic",
"opcode" : 136,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1230,6 +1473,7 @@
},
{
"opname" : "OpUMod",
+ "class" : "Arithmetic",
"opcode" : 137,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1240,6 +1484,7 @@
},
{
"opname" : "OpSRem",
+ "class" : "Arithmetic",
"opcode" : 138,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1250,6 +1495,7 @@
},
{
"opname" : "OpSMod",
+ "class" : "Arithmetic",
"opcode" : 139,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1260,6 +1506,7 @@
},
{
"opname" : "OpFRem",
+ "class" : "Arithmetic",
"opcode" : 140,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1270,6 +1517,7 @@
},
{
"opname" : "OpFMod",
+ "class" : "Arithmetic",
"opcode" : 141,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1280,6 +1528,7 @@
},
{
"opname" : "OpVectorTimesScalar",
+ "class" : "Arithmetic",
"opcode" : 142,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1290,6 +1539,7 @@
},
{
"opname" : "OpMatrixTimesScalar",
+ "class" : "Arithmetic",
"opcode" : 143,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1301,6 +1551,7 @@
},
{
"opname" : "OpVectorTimesMatrix",
+ "class" : "Arithmetic",
"opcode" : 144,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1312,6 +1563,7 @@
},
{
"opname" : "OpMatrixTimesVector",
+ "class" : "Arithmetic",
"opcode" : 145,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1323,6 +1575,7 @@
},
{
"opname" : "OpMatrixTimesMatrix",
+ "class" : "Arithmetic",
"opcode" : 146,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1334,6 +1587,7 @@
},
{
"opname" : "OpOuterProduct",
+ "class" : "Arithmetic",
"opcode" : 147,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1345,6 +1599,7 @@
},
{
"opname" : "OpDot",
+ "class" : "Arithmetic",
"opcode" : 148,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1355,6 +1610,7 @@
},
{
"opname" : "OpIAddCarry",
+ "class" : "Arithmetic",
"opcode" : 149,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1365,6 +1621,7 @@
},
{
"opname" : "OpISubBorrow",
+ "class" : "Arithmetic",
"opcode" : 150,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1375,6 +1632,7 @@
},
{
"opname" : "OpUMulExtended",
+ "class" : "Arithmetic",
"opcode" : 151,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1385,6 +1643,7 @@
},
{
"opname" : "OpSMulExtended",
+ "class" : "Arithmetic",
"opcode" : 152,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1395,6 +1654,7 @@
},
{
"opname" : "OpAny",
+ "class" : "Relational_and_Logical",
"opcode" : 154,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1404,6 +1664,7 @@
},
{
"opname" : "OpAll",
+ "class" : "Relational_and_Logical",
"opcode" : 155,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1413,6 +1674,7 @@
},
{
"opname" : "OpIsNan",
+ "class" : "Relational_and_Logical",
"opcode" : 156,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1422,6 +1684,7 @@
},
{
"opname" : "OpIsInf",
+ "class" : "Relational_and_Logical",
"opcode" : 157,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1431,6 +1694,7 @@
},
{
"opname" : "OpIsFinite",
+ "class" : "Relational_and_Logical",
"opcode" : 158,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1441,6 +1705,7 @@
},
{
"opname" : "OpIsNormal",
+ "class" : "Relational_and_Logical",
"opcode" : 159,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1451,6 +1716,7 @@
},
{
"opname" : "OpSignBitSet",
+ "class" : "Relational_and_Logical",
"opcode" : 160,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1461,6 +1727,7 @@
},
{
"opname" : "OpLessOrGreater",
+ "class" : "Relational_and_Logical",
"opcode" : 161,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1472,6 +1739,7 @@
},
{
"opname" : "OpOrdered",
+ "class" : "Relational_and_Logical",
"opcode" : 162,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1483,6 +1751,7 @@
},
{
"opname" : "OpUnordered",
+ "class" : "Relational_and_Logical",
"opcode" : 163,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1494,6 +1763,7 @@
},
{
"opname" : "OpLogicalEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 164,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1504,6 +1774,7 @@
},
{
"opname" : "OpLogicalNotEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 165,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1514,6 +1785,7 @@
},
{
"opname" : "OpLogicalOr",
+ "class" : "Relational_and_Logical",
"opcode" : 166,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1524,6 +1796,7 @@
},
{
"opname" : "OpLogicalAnd",
+ "class" : "Relational_and_Logical",
"opcode" : 167,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1534,6 +1807,7 @@
},
{
"opname" : "OpLogicalNot",
+ "class" : "Relational_and_Logical",
"opcode" : 168,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1543,6 +1817,7 @@
},
{
"opname" : "OpSelect",
+ "class" : "Relational_and_Logical",
"opcode" : 169,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1554,6 +1829,7 @@
},
{
"opname" : "OpIEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 170,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1564,6 +1840,7 @@
},
{
"opname" : "OpINotEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 171,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1574,6 +1851,7 @@
},
{
"opname" : "OpUGreaterThan",
+ "class" : "Relational_and_Logical",
"opcode" : 172,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1584,6 +1862,7 @@
},
{
"opname" : "OpSGreaterThan",
+ "class" : "Relational_and_Logical",
"opcode" : 173,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1594,6 +1873,7 @@
},
{
"opname" : "OpUGreaterThanEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 174,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1604,6 +1884,7 @@
},
{
"opname" : "OpSGreaterThanEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 175,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1614,6 +1895,7 @@
},
{
"opname" : "OpULessThan",
+ "class" : "Relational_and_Logical",
"opcode" : 176,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1624,6 +1906,7 @@
},
{
"opname" : "OpSLessThan",
+ "class" : "Relational_and_Logical",
"opcode" : 177,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1634,6 +1917,7 @@
},
{
"opname" : "OpULessThanEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 178,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1644,6 +1928,7 @@
},
{
"opname" : "OpSLessThanEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 179,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1654,6 +1939,7 @@
},
{
"opname" : "OpFOrdEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 180,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1664,6 +1950,7 @@
},
{
"opname" : "OpFUnordEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 181,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1674,6 +1961,7 @@
},
{
"opname" : "OpFOrdNotEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 182,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1684,6 +1972,7 @@
},
{
"opname" : "OpFUnordNotEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 183,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1694,6 +1983,7 @@
},
{
"opname" : "OpFOrdLessThan",
+ "class" : "Relational_and_Logical",
"opcode" : 184,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1704,6 +1994,7 @@
},
{
"opname" : "OpFUnordLessThan",
+ "class" : "Relational_and_Logical",
"opcode" : 185,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1714,6 +2005,7 @@
},
{
"opname" : "OpFOrdGreaterThan",
+ "class" : "Relational_and_Logical",
"opcode" : 186,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1724,6 +2016,7 @@
},
{
"opname" : "OpFUnordGreaterThan",
+ "class" : "Relational_and_Logical",
"opcode" : 187,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1734,6 +2027,7 @@
},
{
"opname" : "OpFOrdLessThanEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 188,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1744,6 +2038,7 @@
},
{
"opname" : "OpFUnordLessThanEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 189,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1754,6 +2049,7 @@
},
{
"opname" : "OpFOrdGreaterThanEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 190,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1764,6 +2060,7 @@
},
{
"opname" : "OpFUnordGreaterThanEqual",
+ "class" : "Relational_and_Logical",
"opcode" : 191,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1774,6 +2071,7 @@
},
{
"opname" : "OpShiftRightLogical",
+ "class" : "Bit",
"opcode" : 194,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1784,6 +2082,7 @@
},
{
"opname" : "OpShiftRightArithmetic",
+ "class" : "Bit",
"opcode" : 195,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1794,6 +2093,7 @@
},
{
"opname" : "OpShiftLeftLogical",
+ "class" : "Bit",
"opcode" : 196,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1804,6 +2104,7 @@
},
{
"opname" : "OpBitwiseOr",
+ "class" : "Bit",
"opcode" : 197,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1814,6 +2115,7 @@
},
{
"opname" : "OpBitwiseXor",
+ "class" : "Bit",
"opcode" : 198,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1824,6 +2126,7 @@
},
{
"opname" : "OpBitwiseAnd",
+ "class" : "Bit",
"opcode" : 199,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1834,6 +2137,7 @@
},
{
"opname" : "OpNot",
+ "class" : "Bit",
"opcode" : 200,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1843,6 +2147,7 @@
},
{
"opname" : "OpBitFieldInsert",
+ "class" : "Bit",
"opcode" : 201,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1856,6 +2161,7 @@
},
{
"opname" : "OpBitFieldSExtract",
+ "class" : "Bit",
"opcode" : 202,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1868,6 +2174,7 @@
},
{
"opname" : "OpBitFieldUExtract",
+ "class" : "Bit",
"opcode" : 203,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1880,6 +2187,7 @@
},
{
"opname" : "OpBitReverse",
+ "class" : "Bit",
"opcode" : 204,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1890,6 +2198,7 @@
},
{
"opname" : "OpBitCount",
+ "class" : "Bit",
"opcode" : 205,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1899,6 +2208,7 @@
},
{
"opname" : "OpDPdx",
+ "class" : "Derivative",
"opcode" : 207,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1909,6 +2219,7 @@
},
{
"opname" : "OpDPdy",
+ "class" : "Derivative",
"opcode" : 208,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1919,6 +2230,7 @@
},
{
"opname" : "OpFwidth",
+ "class" : "Derivative",
"opcode" : 209,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1929,6 +2241,7 @@
},
{
"opname" : "OpDPdxFine",
+ "class" : "Derivative",
"opcode" : 210,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1939,6 +2252,7 @@
},
{
"opname" : "OpDPdyFine",
+ "class" : "Derivative",
"opcode" : 211,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1949,6 +2263,7 @@
},
{
"opname" : "OpFwidthFine",
+ "class" : "Derivative",
"opcode" : 212,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1959,6 +2274,7 @@
},
{
"opname" : "OpDPdxCoarse",
+ "class" : "Derivative",
"opcode" : 213,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1969,6 +2285,7 @@
},
{
"opname" : "OpDPdyCoarse",
+ "class" : "Derivative",
"opcode" : 214,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1979,6 +2296,7 @@
},
{
"opname" : "OpFwidthCoarse",
+ "class" : "Derivative",
"opcode" : 215,
"operands" : [
{ "kind" : "IdResultType" },
@@ -1989,16 +2307,19 @@
},
{
"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'" }
@@ -2007,6 +2328,7 @@
},
{
"opname" : "OpEndStreamPrimitive",
+ "class" : "Primitive",
"opcode" : 221,
"operands" : [
{ "kind" : "IdRef", "name" : "'Stream'" }
@@ -2015,6 +2337,7 @@
},
{
"opname" : "OpControlBarrier",
+ "class" : "Barrier",
"opcode" : 224,
"operands" : [
{ "kind" : "IdScope", "name" : "'Execution'" },
@@ -2024,6 +2347,7 @@
},
{
"opname" : "OpMemoryBarrier",
+ "class" : "Barrier",
"opcode" : 225,
"operands" : [
{ "kind" : "IdScope", "name" : "'Memory'" },
@@ -2032,45 +2356,49 @@
},
{
"opname" : "OpAtomicLoad",
+ "class" : "Atomic",
"opcode" : 227,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
- { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
]
},
{
"opname" : "OpAtomicStore",
+ "class" : "Atomic",
"opcode" : 228,
"operands" : [
{ "kind" : "IdRef", "name" : "'Pointer'" },
- { "kind" : "IdScope", "name" : "'Scope'" },
+ { "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" : "'Scope'" },
+ { "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" : "'Scope'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Equal'" },
{ "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
{ "kind" : "IdRef", "name" : "'Value'" },
@@ -2079,151 +2407,165 @@
},
{
"opname" : "OpAtomicCompareExchangeWeak",
+ "class" : "Atomic",
"opcode" : 231,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
- { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Equal'" },
{ "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'Comparator'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "lastVersion" : "1.3"
},
{
"opname" : "OpAtomicIIncrement",
+ "class" : "Atomic",
"opcode" : 232,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
- { "kind" : "IdScope", "name" : "'Scope'" },
+ { "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" : "'Scope'" },
+ { "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" : "'Scope'" },
+ { "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" : "'Scope'" },
+ { "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" : "'Scope'" },
+ { "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" : "'Scope'" },
+ { "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" : "'Scope'" },
+ { "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" : "'Scope'" },
+ { "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" : "'Scope'" },
+ { "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" : "'Scope'" },
+ { "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" : "'Scope'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
]
},
{
"opname" : "OpPhi",
+ "class" : "Control-Flow",
"opcode" : 245,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2233,6 +2575,7 @@
},
{
"opname" : "OpLoopMerge",
+ "class" : "Control-Flow",
"opcode" : 246,
"operands" : [
{ "kind" : "IdRef", "name" : "'Merge Block'" },
@@ -2242,6 +2585,7 @@
},
{
"opname" : "OpSelectionMerge",
+ "class" : "Control-Flow",
"opcode" : 247,
"operands" : [
{ "kind" : "IdRef", "name" : "'Merge Block'" },
@@ -2250,6 +2594,7 @@
},
{
"opname" : "OpLabel",
+ "class" : "Control-Flow",
"opcode" : 248,
"operands" : [
{ "kind" : "IdResult" }
@@ -2257,6 +2602,7 @@
},
{
"opname" : "OpBranch",
+ "class" : "Control-Flow",
"opcode" : 249,
"operands" : [
{ "kind" : "IdRef", "name" : "'Target Label'" }
@@ -2264,6 +2610,7 @@
},
{
"opname" : "OpBranchConditional",
+ "class" : "Control-Flow",
"opcode" : 250,
"operands" : [
{ "kind" : "IdRef", "name" : "'Condition'" },
@@ -2274,6 +2621,7 @@
},
{
"opname" : "OpSwitch",
+ "class" : "Control-Flow",
"opcode" : 251,
"operands" : [
{ "kind" : "IdRef", "name" : "'Selector'" },
@@ -2283,15 +2631,18 @@
},
{
"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'" }
@@ -2299,10 +2650,12 @@
},
{
"opname" : "OpUnreachable",
+ "class" : "Control-Flow",
"opcode" : 255
},
{
"opname" : "OpLifetimeStart",
+ "class" : "Control-Flow",
"opcode" : 256,
"operands" : [
{ "kind" : "IdRef", "name" : "'Pointer'" },
@@ -2312,6 +2665,7 @@
},
{
"opname" : "OpLifetimeStop",
+ "class" : "Control-Flow",
"opcode" : 257,
"operands" : [
{ "kind" : "IdRef", "name" : "'Pointer'" },
@@ -2321,6 +2675,7 @@
},
{
"opname" : "OpGroupAsyncCopy",
+ "class" : "Group",
"opcode" : 259,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2336,6 +2691,7 @@
},
{
"opname" : "OpGroupWaitEvents",
+ "class" : "Group",
"opcode" : 260,
"operands" : [
{ "kind" : "IdScope", "name" : "'Execution'" },
@@ -2346,6 +2702,7 @@
},
{
"opname" : "OpGroupAll",
+ "class" : "Group",
"opcode" : 261,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2357,6 +2714,7 @@
},
{
"opname" : "OpGroupAny",
+ "class" : "Group",
"opcode" : 262,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2368,6 +2726,7 @@
},
{
"opname" : "OpGroupBroadcast",
+ "class" : "Group",
"opcode" : 263,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2380,6 +2739,7 @@
},
{
"opname" : "OpGroupIAdd",
+ "class" : "Group",
"opcode" : 264,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2392,6 +2752,7 @@
},
{
"opname" : "OpGroupFAdd",
+ "class" : "Group",
"opcode" : 265,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2404,6 +2765,7 @@
},
{
"opname" : "OpGroupFMin",
+ "class" : "Group",
"opcode" : 266,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2416,6 +2778,7 @@
},
{
"opname" : "OpGroupUMin",
+ "class" : "Group",
"opcode" : 267,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2428,6 +2791,7 @@
},
{
"opname" : "OpGroupSMin",
+ "class" : "Group",
"opcode" : 268,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2440,6 +2804,7 @@
},
{
"opname" : "OpGroupFMax",
+ "class" : "Group",
"opcode" : 269,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2452,6 +2817,7 @@
},
{
"opname" : "OpGroupUMax",
+ "class" : "Group",
"opcode" : 270,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2464,6 +2830,7 @@
},
{
"opname" : "OpGroupSMax",
+ "class" : "Group",
"opcode" : 271,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2476,6 +2843,7 @@
},
{
"opname" : "OpReadPipe",
+ "class" : "Pipe",
"opcode" : 274,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2489,6 +2857,7 @@
},
{
"opname" : "OpWritePipe",
+ "class" : "Pipe",
"opcode" : 275,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2502,6 +2871,7 @@
},
{
"opname" : "OpReservedReadPipe",
+ "class" : "Pipe",
"opcode" : 276,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2517,6 +2887,7 @@
},
{
"opname" : "OpReservedWritePipe",
+ "class" : "Pipe",
"opcode" : 277,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2532,6 +2903,7 @@
},
{
"opname" : "OpReserveReadPipePackets",
+ "class" : "Pipe",
"opcode" : 278,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2545,6 +2917,7 @@
},
{
"opname" : "OpReserveWritePipePackets",
+ "class" : "Pipe",
"opcode" : 279,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2558,6 +2931,7 @@
},
{
"opname" : "OpCommitReadPipe",
+ "class" : "Pipe",
"opcode" : 280,
"operands" : [
{ "kind" : "IdRef", "name" : "'Pipe'" },
@@ -2569,6 +2943,7 @@
},
{
"opname" : "OpCommitWritePipe",
+ "class" : "Pipe",
"opcode" : 281,
"operands" : [
{ "kind" : "IdRef", "name" : "'Pipe'" },
@@ -2580,6 +2955,7 @@
},
{
"opname" : "OpIsValidReserveId",
+ "class" : "Pipe",
"opcode" : 282,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2590,6 +2966,7 @@
},
{
"opname" : "OpGetNumPipePackets",
+ "class" : "Pipe",
"opcode" : 283,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2602,6 +2979,7 @@
},
{
"opname" : "OpGetMaxPipePackets",
+ "class" : "Pipe",
"opcode" : 284,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2614,6 +2992,7 @@
},
{
"opname" : "OpGroupReserveReadPipePackets",
+ "class" : "Pipe",
"opcode" : 285,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2628,6 +3007,7 @@
},
{
"opname" : "OpGroupReserveWritePipePackets",
+ "class" : "Pipe",
"opcode" : 286,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2642,6 +3022,7 @@
},
{
"opname" : "OpGroupCommitReadPipe",
+ "class" : "Pipe",
"opcode" : 287,
"operands" : [
{ "kind" : "IdScope", "name" : "'Execution'" },
@@ -2654,6 +3035,7 @@
},
{
"opname" : "OpGroupCommitWritePipe",
+ "class" : "Pipe",
"opcode" : 288,
"operands" : [
{ "kind" : "IdScope", "name" : "'Execution'" },
@@ -2666,6 +3048,7 @@
},
{
"opname" : "OpEnqueueMarker",
+ "class" : "Device-Side_Enqueue",
"opcode" : 291,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2679,6 +3062,7 @@
},
{
"opname" : "OpEnqueueKernel",
+ "class" : "Device-Side_Enqueue",
"opcode" : 292,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2699,6 +3083,7 @@
},
{
"opname" : "OpGetKernelNDrangeSubGroupCount",
+ "class" : "Device-Side_Enqueue",
"opcode" : 293,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2713,6 +3098,7 @@
},
{
"opname" : "OpGetKernelNDrangeMaxSubGroupSize",
+ "class" : "Device-Side_Enqueue",
"opcode" : 294,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2727,6 +3113,7 @@
},
{
"opname" : "OpGetKernelWorkGroupSize",
+ "class" : "Device-Side_Enqueue",
"opcode" : 295,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2740,6 +3127,7 @@
},
{
"opname" : "OpGetKernelPreferredWorkGroupSizeMultiple",
+ "class" : "Device-Side_Enqueue",
"opcode" : 296,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2753,6 +3141,7 @@
},
{
"opname" : "OpRetainEvent",
+ "class" : "Device-Side_Enqueue",
"opcode" : 297,
"operands" : [
{ "kind" : "IdRef", "name" : "'Event'" }
@@ -2761,6 +3150,7 @@
},
{
"opname" : "OpReleaseEvent",
+ "class" : "Device-Side_Enqueue",
"opcode" : 298,
"operands" : [
{ "kind" : "IdRef", "name" : "'Event'" }
@@ -2769,6 +3159,7 @@
},
{
"opname" : "OpCreateUserEvent",
+ "class" : "Device-Side_Enqueue",
"opcode" : 299,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2778,6 +3169,7 @@
},
{
"opname" : "OpIsValidEvent",
+ "class" : "Device-Side_Enqueue",
"opcode" : 300,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2788,6 +3180,7 @@
},
{
"opname" : "OpSetUserEventStatus",
+ "class" : "Device-Side_Enqueue",
"opcode" : 301,
"operands" : [
{ "kind" : "IdRef", "name" : "'Event'" },
@@ -2797,6 +3190,7 @@
},
{
"opname" : "OpCaptureEventProfilingInfo",
+ "class" : "Device-Side_Enqueue",
"opcode" : 302,
"operands" : [
{ "kind" : "IdRef", "name" : "'Event'" },
@@ -2807,6 +3201,7 @@
},
{
"opname" : "OpGetDefaultQueue",
+ "class" : "Device-Side_Enqueue",
"opcode" : 303,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2816,6 +3211,7 @@
},
{
"opname" : "OpBuildNDRange",
+ "class" : "Device-Side_Enqueue",
"opcode" : 304,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2828,6 +3224,7 @@
},
{
"opname" : "OpImageSparseSampleImplicitLod",
+ "class" : "Image",
"opcode" : 305,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2840,6 +3237,7 @@
},
{
"opname" : "OpImageSparseSampleExplicitLod",
+ "class" : "Image",
"opcode" : 306,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2852,6 +3250,7 @@
},
{
"opname" : "OpImageSparseSampleDrefImplicitLod",
+ "class" : "Image",
"opcode" : 307,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2865,6 +3264,7 @@
},
{
"opname" : "OpImageSparseSampleDrefExplicitLod",
+ "class" : "Image",
"opcode" : 308,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2878,6 +3278,7 @@
},
{
"opname" : "OpImageSparseSampleProjImplicitLod",
+ "class" : "Image",
"opcode" : 309,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2891,6 +3292,7 @@
},
{
"opname" : "OpImageSparseSampleProjExplicitLod",
+ "class" : "Image",
"opcode" : 310,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2904,6 +3306,7 @@
},
{
"opname" : "OpImageSparseSampleProjDrefImplicitLod",
+ "class" : "Image",
"opcode" : 311,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2918,6 +3321,7 @@
},
{
"opname" : "OpImageSparseSampleProjDrefExplicitLod",
+ "class" : "Image",
"opcode" : 312,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2932,6 +3336,7 @@
},
{
"opname" : "OpImageSparseFetch",
+ "class" : "Image",
"opcode" : 313,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2944,6 +3349,7 @@
},
{
"opname" : "OpImageSparseGather",
+ "class" : "Image",
"opcode" : 314,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2957,6 +3363,7 @@
},
{
"opname" : "OpImageSparseDrefGather",
+ "class" : "Image",
"opcode" : 315,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2970,6 +3377,7 @@
},
{
"opname" : "OpImageSparseTexelsResident",
+ "class" : "Image",
"opcode" : 316,
"operands" : [
{ "kind" : "IdResultType" },
@@ -2980,32 +3388,36 @@
},
{
"opname" : "OpNoLine",
+ "class" : "Debug",
"opcode" : 317
},
{
"opname" : "OpAtomicFlagTestAndSet",
+ "class" : "Atomic",
"opcode" : 318,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
- { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpAtomicFlagClear",
+ "class" : "Atomic",
"opcode" : 319,
"operands" : [
{ "kind" : "IdRef", "name" : "'Pointer'" },
- { "kind" : "IdScope", "name" : "'Scope'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpImageSparseRead",
+ "class" : "Image",
"opcode" : 320,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3018,6 +3430,7 @@
},
{
"opname" : "OpSizeOf",
+ "class" : "Miscellaneous",
"opcode" : 321,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3029,6 +3442,7 @@
},
{
"opname" : "OpTypePipeStorage",
+ "class" : "Type-Declaration",
"opcode" : 322,
"operands" : [
{ "kind" : "IdResult" }
@@ -3038,6 +3452,7 @@
},
{
"opname" : "OpConstantPipeStorage",
+ "class" : "Pipe",
"opcode" : 323,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3051,6 +3466,7 @@
},
{
"opname" : "OpCreatePipeFromPipeStorage",
+ "class" : "Pipe",
"opcode" : 324,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3062,6 +3478,7 @@
},
{
"opname" : "OpGetKernelLocalSizeForSubgroupCount",
+ "class" : "Device-Side_Enqueue",
"opcode" : 325,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3077,6 +3494,7 @@
},
{
"opname" : "OpGetKernelMaxNumSubgroups",
+ "class" : "Device-Side_Enqueue",
"opcode" : 326,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3091,6 +3509,7 @@
},
{
"opname" : "OpTypeNamedBarrier",
+ "class" : "Type-Declaration",
"opcode" : 327,
"operands" : [
{ "kind" : "IdResult" }
@@ -3100,6 +3519,7 @@
},
{
"opname" : "OpNamedBarrierInitialize",
+ "class" : "Barrier",
"opcode" : 328,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3111,6 +3531,7 @@
},
{
"opname" : "OpMemoryNamedBarrier",
+ "class" : "Barrier",
"opcode" : 329,
"operands" : [
{ "kind" : "IdRef", "name" : "'Named Barrier'" },
@@ -3122,6 +3543,7 @@
},
{
"opname" : "OpModuleProcessed",
+ "class" : "Debug",
"opcode" : 330,
"operands" : [
{ "kind" : "LiteralString", "name" : "'Process'" }
@@ -3130,6 +3552,7 @@
},
{
"opname" : "OpExecutionModeId",
+ "class" : "Mode-Setting",
"opcode" : 331,
"operands" : [
{ "kind" : "IdRef", "name" : "'Entry Point'" },
@@ -3139,6 +3562,7 @@
},
{
"opname" : "OpDecorateId",
+ "class" : "Annotation",
"opcode" : 332,
"operands" : [
{ "kind" : "IdRef", "name" : "'Target'" },
@@ -3149,6 +3573,7 @@
},
{
"opname" : "OpGroupNonUniformElect",
+ "class" : "Non-Uniform",
"opcode" : 333,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3160,6 +3585,7 @@
},
{
"opname" : "OpGroupNonUniformAll",
+ "class" : "Non-Uniform",
"opcode" : 334,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3172,6 +3598,7 @@
},
{
"opname" : "OpGroupNonUniformAny",
+ "class" : "Non-Uniform",
"opcode" : 335,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3184,6 +3611,7 @@
},
{
"opname" : "OpGroupNonUniformAllEqual",
+ "class" : "Non-Uniform",
"opcode" : 336,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3196,6 +3624,7 @@
},
{
"opname" : "OpGroupNonUniformBroadcast",
+ "class" : "Non-Uniform",
"opcode" : 337,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3209,6 +3638,7 @@
},
{
"opname" : "OpGroupNonUniformBroadcastFirst",
+ "class" : "Non-Uniform",
"opcode" : 338,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3221,6 +3651,7 @@
},
{
"opname" : "OpGroupNonUniformBallot",
+ "class" : "Non-Uniform",
"opcode" : 339,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3233,6 +3664,7 @@
},
{
"opname" : "OpGroupNonUniformInverseBallot",
+ "class" : "Non-Uniform",
"opcode" : 340,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3245,6 +3677,7 @@
},
{
"opname" : "OpGroupNonUniformBallotBitExtract",
+ "class" : "Non-Uniform",
"opcode" : 341,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3258,6 +3691,7 @@
},
{
"opname" : "OpGroupNonUniformBallotBitCount",
+ "class" : "Non-Uniform",
"opcode" : 342,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3271,6 +3705,7 @@
},
{
"opname" : "OpGroupNonUniformBallotFindLSB",
+ "class" : "Non-Uniform",
"opcode" : 343,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3283,6 +3718,7 @@
},
{
"opname" : "OpGroupNonUniformBallotFindMSB",
+ "class" : "Non-Uniform",
"opcode" : 344,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3295,6 +3731,7 @@
},
{
"opname" : "OpGroupNonUniformShuffle",
+ "class" : "Non-Uniform",
"opcode" : 345,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3308,6 +3745,7 @@
},
{
"opname" : "OpGroupNonUniformShuffleXor",
+ "class" : "Non-Uniform",
"opcode" : 346,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3321,6 +3759,7 @@
},
{
"opname" : "OpGroupNonUniformShuffleUp",
+ "class" : "Non-Uniform",
"opcode" : 347,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3334,6 +3773,7 @@
},
{
"opname" : "OpGroupNonUniformShuffleDown",
+ "class" : "Non-Uniform",
"opcode" : 348,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3347,6 +3787,7 @@
},
{
"opname" : "OpGroupNonUniformIAdd",
+ "class" : "Non-Uniform",
"opcode" : 349,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3356,11 +3797,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformFAdd",
+ "class" : "Non-Uniform",
"opcode" : 350,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3370,11 +3812,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformIMul",
+ "class" : "Non-Uniform",
"opcode" : 351,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3384,11 +3827,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformFMul",
+ "class" : "Non-Uniform",
"opcode" : 352,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3398,11 +3842,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformSMin",
+ "class" : "Non-Uniform",
"opcode" : 353,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3412,11 +3857,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformUMin",
+ "class" : "Non-Uniform",
"opcode" : 354,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3426,11 +3872,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformFMin",
+ "class" : "Non-Uniform",
"opcode" : 355,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3440,11 +3887,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformSMax",
+ "class" : "Non-Uniform",
"opcode" : 356,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3454,11 +3902,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformUMax",
+ "class" : "Non-Uniform",
"opcode" : 357,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3468,11 +3917,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformFMax",
+ "class" : "Non-Uniform",
"opcode" : 358,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3482,11 +3932,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformBitwiseAnd",
+ "class" : "Non-Uniform",
"opcode" : 359,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3496,11 +3947,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformBitwiseOr",
+ "class" : "Non-Uniform",
"opcode" : 360,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3510,11 +3962,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformBitwiseXor",
+ "class" : "Non-Uniform",
"opcode" : 361,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3524,11 +3977,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformLogicalAnd",
+ "class" : "Non-Uniform",
"opcode" : 362,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3538,11 +3992,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformLogicalOr",
+ "class" : "Non-Uniform",
"opcode" : 363,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3552,11 +4007,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformLogicalXor",
+ "class" : "Non-Uniform",
"opcode" : 364,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3566,11 +4022,12 @@
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
],
- "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
+ "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered", "GroupNonUniformPartitionedNV" ],
"version" : "1.3"
},
{
"opname" : "OpGroupNonUniformQuadBroadcast",
+ "class" : "Non-Uniform",
"opcode" : 365,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3584,6 +4041,7 @@
},
{
"opname" : "OpGroupNonUniformQuadSwap",
+ "class" : "Non-Uniform",
"opcode" : 366,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3596,7 +4054,56 @@
"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" : "OpSubgroupBallotKHR",
+ "class" : "Group",
"opcode" : 4421,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3609,6 +4116,7 @@
},
{
"opname" : "OpSubgroupFirstInvocationKHR",
+ "class" : "Group",
"opcode" : 4422,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3621,6 +4129,7 @@
},
{
"opname" : "OpSubgroupAllKHR",
+ "class" : "Group",
"opcode" : 4428,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3635,6 +4144,7 @@
},
{
"opname" : "OpSubgroupAnyKHR",
+ "class" : "Group",
"opcode" : 4429,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3649,6 +4159,7 @@
},
{
"opname" : "OpSubgroupAllEqualKHR",
+ "class" : "Group",
"opcode" : 4430,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3663,6 +4174,7 @@
},
{
"opname" : "OpSubgroupReadInvocationKHR",
+ "class" : "Group",
"opcode" : 4432,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3676,6 +4188,7 @@
},
{
"opname" : "OpGroupIAddNonUniformAMD",
+ "class" : "Group",
"opcode" : 5000,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3690,6 +4203,7 @@
},
{
"opname" : "OpGroupFAddNonUniformAMD",
+ "class" : "Group",
"opcode" : 5001,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3704,6 +4218,7 @@
},
{
"opname" : "OpGroupFMinNonUniformAMD",
+ "class" : "Group",
"opcode" : 5002,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3718,6 +4233,7 @@
},
{
"opname" : "OpGroupUMinNonUniformAMD",
+ "class" : "Group",
"opcode" : 5003,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3732,6 +4248,7 @@
},
{
"opname" : "OpGroupSMinNonUniformAMD",
+ "class" : "Group",
"opcode" : 5004,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3746,6 +4263,7 @@
},
{
"opname" : "OpGroupFMaxNonUniformAMD",
+ "class" : "Group",
"opcode" : 5005,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3760,6 +4278,7 @@
},
{
"opname" : "OpGroupUMaxNonUniformAMD",
+ "class" : "Group",
"opcode" : 5006,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3774,6 +4293,7 @@
},
{
"opname" : "OpGroupSMaxNonUniformAMD",
+ "class" : "Group",
"opcode" : 5007,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3788,6 +4308,7 @@
},
{
"opname" : "OpFragmentMaskFetchAMD",
+ "class" : "Reserved",
"opcode" : 5011,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3801,6 +4322,7 @@
},
{
"opname" : "OpFragmentFetchAMD",
+ "class" : "Reserved",
"opcode" : 5012,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3814,7 +4336,51 @@
"version" : "None"
},
{
+ "opname" : "OpReadClockKHR",
+ "class" : "Reserved",
+ "opcode" : 5056,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdScope", "name" : "'Execution'" }
+ ],
+ "capabilities" : [ "ShaderClockKHR" ],
+ "extensions" : [ "SPV_KHR_shader_clock" ],
+ "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" : "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'" },
@@ -3826,6 +4392,7 @@
},
{
"opname" : "OpReportIntersectionNV",
+ "class" : "Reserved",
"opcode" : 5334,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3833,25 +4400,59 @@
{ "kind" : "IdRef", "name" : "'Hit'" },
{ "kind" : "IdRef", "name" : "'HitKind'" }
],
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "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" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"opname" : "OpIgnoreIntersectionNV",
+ "class" : "Reserved",
"opcode" : 5335,
-
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIgnoreIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 5335,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"opname" : "OpTerminateRayNV",
+ "class" : "Reserved",
"opcode" : 5336,
-
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTerminateRayKHR",
+ "class" : "Reserved",
+ "opcode" : 5336,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"opname" : "OpTraceNV",
+ "class" : "Reserved",
"opcode" : 5337,
"operands" : [
@@ -3867,31 +4468,650 @@
{ "kind" : "IdRef", "name" : "'Ray Tmax'" },
{ "kind" : "IdRef", "name" : "'PayloadId'" }
],
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTraceRayKHR",
+ "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" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"opname" : "OpTypeAccelerationStructureNV",
+ "class" : "Reserved",
"opcode" : 5341,
"operands" : [
{ "kind" : "IdResult" }
],
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR", "RayQueryProvisionalKHR" ],
+ "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" , "RayTracingProvisionalKHR", "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing", "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeRayQueryProvisionalKHR",
+ "class" : "Reserved",
+ "opcode" : 4472,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryTerminateKHR",
+ "class" : "Reserved",
+ "opcode" : 4474,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGenerateIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 4475,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'HitT'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryConfirmIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 4476,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryProceedKHR",
+ "class" : "Reserved",
+ "opcode" : 4477,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetRayTMinKHR",
+ "class" : "Reserved",
+ "opcode" : 6016,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetRayFlagsKHR",
+ "class" : "Reserved",
+ "opcode" : 6017,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR",
+ "class" : "Reserved",
+ "opcode" : 6026,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetWorldRayDirectionKHR",
+ "class" : "Reserved",
+ "opcode" : 6029,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+
+ {
+ "opname" : "OpRayQueryGetWorldRayOriginKHR",
+ "class" : "Reserved",
+ "opcode" : 6030,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "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" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "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" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpExecuteCallableKHR",
+ "class" : "Reserved",
+ "opcode" : 5344,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'SBT Index'" },
+ { "kind" : "IdRef", "name" : "'Callable DataId'" }
+ ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_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" : "OpDemoteToHelperInvocationEXT",
+ "class" : "Reserved",
+ "opcode" : 5380,
+ "capabilities" : [ "DemoteToHelperInvocationEXT" ],
+ "extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIsHelperInvocationEXT",
+ "class" : "Reserved",
+ "opcode" : 5381,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "DemoteToHelperInvocationEXT" ],
+ "extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
+ "version" : "None"
},
{
"opname" : "OpSubgroupShuffleINTEL",
+ "class" : "Group",
"opcode" : 5571,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3904,6 +5124,7 @@
},
{
"opname" : "OpSubgroupShuffleDownINTEL",
+ "class" : "Group",
"opcode" : 5572,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3917,6 +5138,7 @@
},
{
"opname" : "OpSubgroupShuffleUpINTEL",
+ "class" : "Group",
"opcode" : 5573,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3930,6 +5152,7 @@
},
{
"opname" : "OpSubgroupShuffleXorINTEL",
+ "class" : "Group",
"opcode" : 5574,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3942,6 +5165,7 @@
},
{
"opname" : "OpSubgroupBlockReadINTEL",
+ "class" : "Group",
"opcode" : 5575,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3953,6 +5177,7 @@
},
{
"opname" : "OpSubgroupBlockWriteINTEL",
+ "class" : "Group",
"opcode" : 5576,
"operands" : [
{ "kind" : "IdRef", "name" : "'Ptr'" },
@@ -3963,6 +5188,7 @@
},
{
"opname" : "OpSubgroupImageBlockReadINTEL",
+ "class" : "Group",
"opcode" : 5577,
"operands" : [
{ "kind" : "IdResultType" },
@@ -3975,6 +5201,7 @@
},
{
"opname" : "OpSubgroupImageBlockWriteINTEL",
+ "class" : "Group",
"opcode" : 5578,
"operands" : [
{ "kind" : "IdRef", "name" : "'Image'" },
@@ -3985,17 +5212,239 @@
"version" : "None"
},
{
- "opname" : "OpDecorateStringGOOGLE",
+ "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" : "OpDecorateString",
+ "class" : "Annotation",
"opcode" : 5632,
"operands" : [
{ "kind" : "IdRef", "name" : "'Target'" },
{ "kind" : "Decoration" }
],
"extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
- "version" : "None"
+ "version" : "1.4"
},
{
- "opname" : "OpMemberDecorateStringGOOGLE",
+ "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'" },
@@ -4003,34 +5452,1535 @@
{ "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" : "OpGroupNonUniformPartitionNV",
- "opcode" : 5296,
+ "opname" : "OpTypeVmeImageINTEL",
+ "class" : "@exclude",
+ "opcode" : 5700,
"operands" : [
- { "kind" : "IdResultType" },
{ "kind" : "IdResult" },
- { "kind" : "IdRef", "name" : "'Value'" }
+ { "kind" : "IdRef", "name" : "'Image Type'" }
],
- "capabilities" : [ "GroupNonUniformPartitionedNV" ],
- "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
+ "capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
"version" : "None"
},
- {
- "opname" : "OpImageSampleFootprintNV",
- "opcode" : 5283,
+ {
+ "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" : "'Sampled Image'" },
- { "kind" : "IdRef", "name" : "'Coordinate'" },
- { "kind" : "IdRef", "name" : "'Granularity'" },
- { "kind" : "IdRef", "name" : "'Coarse'" },
- { "kind" : "ImageOperands", "quantifier" : "?" }
+ { "kind" : "IdRef", "name" : "'Slice Type'" },
+ { "kind" : "IdRef", "name" : "'Qp'" }
],
- "capabilities" : [ "ImageFootprintNV" ],
- "extensions" : [ "SPV_NV_shader_image_footprint" ],
+ "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"
}
],
@@ -4105,30 +7055,78 @@
]
},
{
- "enumerant" : "MakeTexelAvailableKHR",
+ "enumerant" : "MakeTexelAvailable",
"value" : "0x0100",
- "capabilities" : [ "VulkanMemoryModelKHR" ],
+ "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" : [ "VulkanMemoryModelKHR" ],
+ "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" : [ "VulkanMemoryModelKHR" ]
+ "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" : [ "VulkanMemoryModelKHR" ]
+ "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"
}
]
},
@@ -4213,6 +7211,46 @@
{ "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"
}
]
},
@@ -4297,19 +7335,50 @@
"value" : "0x0800"
},
{
+ "enumerant" : "OutputMemory",
+ "value" : "0x1000",
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
"enumerant" : "OutputMemoryKHR",
"value" : "0x1000",
- "capabilities" : [ "VulkanMemoryModelKHR" ]
+ "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" : [ "VulkanMemoryModelKHR" ]
+ "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" : [ "VulkanMemoryModelKHR" ]
+ "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"
}
]
},
@@ -4337,12 +7406,32 @@
"value" : "0x0004"
},
{
+ "enumerant" : "MakePointerAvailable",
+ "value" : "0x0008",
+ "parameters" : [
+ { "kind" : "IdScope" }
+ ],
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
"enumerant" : "MakePointerAvailableKHR",
"value" : "0x0008",
"parameters" : [
{ "kind" : "IdScope" }
],
- "capabilities" : [ "VulkanMemoryModelKHR" ]
+ "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",
@@ -4350,12 +7439,22 @@
"parameters" : [
{ "kind" : "IdScope" }
],
- "capabilities" : [ "VulkanMemoryModelKHR" ]
+ "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" : [ "VulkanMemoryModelKHR" ]
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
}
]
},
@@ -4375,6 +7474,67 @@
]
},
{
+ "category" : "BitEnum",
+ "kind" : "RayFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "NoneKHR",
+ "value" : "0x0000",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "OpaqueKHR",
+ "value" : "0x0001",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "NoOpaqueKHR",
+ "value" : "0x0002",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "TerminateOnFirstHitKHR",
+ "value" : "0x0004",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "SkipClosestHitShaderKHR",
+ "value" : "0x0008",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "CullBackFacingTrianglesKHR",
+ "value" : "0x0010",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "CullFrontFacingTrianglesKHR",
+ "value" : "0x0020",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "CullOpaqueKHR",
+ "value" : "0x0040",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "CullNoOpaqueKHR",
+ "value" : "0x0080",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "SkipTrianglesKHR",
+ "value" : "0x0100",
+ "capabilities" : [ "RayTraversalPrimitiveCullingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "SkipAABBsKHR",
+ "value" : "0x0200",
+ "capabilities" : [ "RayTraversalPrimitiveCullingProvisionalKHR" ]
+ }
+ ]
+ },
+ {
"category" : "ValueEnum",
"kind" : "SourceLanguage",
"enumerants" : [
@@ -4446,42 +7606,86 @@
{
"enumerant" : "TaskNV",
"value" : 5267,
- "capabilities" : [ "MeshShadingNV" ]
+ "capabilities" : [ "MeshShadingNV" ],
+ "version" : "None"
},
{
"enumerant" : "MeshNV",
"value" : 5268,
- "capabilities" : [ "MeshShadingNV" ]
+ "capabilities" : [ "MeshShadingNV" ],
+ "version" : "None"
},
{
"enumerant" : "RayGenerationNV",
"value" : 5313,
- "capabilities" : [ "RayTracingNV" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayGenerationKHR",
+ "value" : 5313,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
},
{
"enumerant" : "IntersectionNV",
"value" : 5314,
- "capabilities" : [ "RayTracingNV" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IntersectionKHR",
+ "value" : 5314,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
},
{
"enumerant" : "AnyHitNV",
"value" : 5315,
- "capabilities" : [ "RayTracingNV" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AnyHitKHR",
+ "value" : 5315,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
},
{
"enumerant" : "ClosestHitNV",
"value" : 5316,
- "capabilities" : [ "RayTracingNV" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ClosestHitKHR",
+ "value" : 5316,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
},
{
"enumerant" : "MissNV",
"value" : 5317,
- "capabilities" : [ "RayTracingNV" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MissKHR",
+ "value" : 5317,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
},
{
"enumerant" : "CallableNV",
"value" : 5318,
- "capabilities" : [ "RayTracingNV" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CallableKHR",
+ "value" : 5318,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
}
]
},
@@ -4502,6 +7706,20 @@
"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"
}
]
},
@@ -4525,9 +7743,17 @@
"capabilities" : [ "Kernel" ]
},
{
+ "enumerant" : "Vulkan",
+ "value" : 3,
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
"enumerant" : "VulkanKHR",
"value" : 3,
- "capabilities" : [ "VulkanMemoryModelKHR" ]
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+ "version" : "1.5"
}
]
},
@@ -4773,55 +7999,55 @@
"extensions" : [ "SPV_KHR_post_depth_coverage" ],
"version" : "None"
},
-{
+ {
"enumerant" : "DenormPreserve",
"value" : 4459,
- "capabilities" : [ "DenormPreserve"],
+ "capabilities" : [ "DenormPreserve" ],
"extensions" : [ "SPV_KHR_float_controls" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Target Width'" }
],
- "version" : "None"
+ "version" : "1.4"
},
{
"enumerant" : "DenormFlushToZero",
"value" : 4460,
- "capabilities" : [ "DenormFlushToZero"],
+ "capabilities" : [ "DenormFlushToZero" ],
"extensions" : [ "SPV_KHR_float_controls" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Target Width'" }
],
- "version" : "None"
+ "version" : "1.4"
},
{
"enumerant" : "SignedZeroInfNanPreserve",
"value" : 4461,
- "capabilities" : [ "SignedZeroInfNanPreserve"],
+ "capabilities" : [ "SignedZeroInfNanPreserve" ],
"extensions" : [ "SPV_KHR_float_controls" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Target Width'" }
],
- "version" : "None"
+ "version" : "1.4"
},
{
"enumerant" : "RoundingModeRTE",
"value" : 4462,
- "capabilities" : [ "RoundingModeRTE"],
+ "capabilities" : [ "RoundingModeRTE" ],
"extensions" : [ "SPV_KHR_float_controls" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Target Width'" }
],
- "version" : "None"
+ "version" : "1.4"
},
{
"enumerant" : "RoundingModeRTZ",
"value" : 4463,
- "capabilities" : [ "RoundingModeRTZ"],
+ "capabilities" : [ "RoundingModeRTZ" ],
"extensions" : [ "SPV_KHR_float_controls" ],
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Target Width'" }
],
- "version" : "None"
+ "version" : "1.4"
},
{
"enumerant" : "StencilRefReplacingEXT",
@@ -4867,6 +8093,48 @@
"capabilities" : [ "MeshShadingNV" ],
"extensions" : [ "SPV_NV_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"
}
]
},
@@ -4941,38 +8209,100 @@
{
"enumerant" : "CallableDataNV",
"value" : 5328,
- "extensions" : [ "SPV_NV_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" ]
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CallableDataKHR",
+ "value" : 5328,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
},
{
"enumerant" : "IncomingCallableDataNV",
"value" : 5329,
- "extensions" : [ "SPV_NV_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" ]
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IncomingCallableDataKHR",
+ "value" : 5329,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
},
{
"enumerant" : "RayPayloadNV",
"value" : 5338,
- "extensions" : [ "SPV_NV_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" ]
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayPayloadKHR",
+ "value" : 5338,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
},
{
"enumerant" : "HitAttributeNV",
"value" : 5339,
- "extensions" : [ "SPV_NV_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" ]
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HitAttributeKHR",
+ "value" : 5339,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
},
{
"enumerant" : "IncomingRayPayloadNV",
"value" : 5342,
- "extensions" : [ "SPV_NV_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" ]
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IncomingRayPayloadKHR",
+ "value" : 5342,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
},
{
"enumerant" : "ShaderRecordBufferNV",
"value" : 5343,
- "extensions" : [ "SPV_NV_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" ]
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderRecordBufferKHR",
+ "value" : 5343,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "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"
}
]
},
@@ -5595,7 +8925,8 @@
{
"enumerant" : "BufferBlock",
"value" : 3,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader" ],
+ "lastVersion" : "1.3"
},
{
"enumerant" : "RowMajor",
@@ -5710,6 +9041,15 @@
"capabilities" : [ "Shader" ]
},
{
+ "enumerant" : "UniformId",
+ "value" : 27,
+ "capabilities" : [ "Shader" ],
+ "parameters" : [
+ { "kind" : "IdScope", "name" : "'Execution'" }
+ ],
+ "version" : "1.4"
+ },
+ {
"enumerant" : "SaturatedConversion",
"value" : 28,
"capabilities" : [ "Kernel" ]
@@ -5870,13 +9210,13 @@
"enumerant" : "NoSignedWrap",
"value" : 4469,
"extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ],
- "version" : "None"
+ "version" : "1.4"
},
{
"enumerant" : "NoUnsignedWrap",
"value" : 4470,
"extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ],
- "version" : "None"
+ "version" : "1.4"
},
{
"enumerant" : "ExplicitInterpAMD",
@@ -5935,7 +9275,7 @@
"extensions" : [ "SPV_NV_mesh_shader" ],
"version" : "None"
},
- {
+ {
"enumerant" : "PerVertexNV",
"value" : 5285,
"capabilities" : [ "FragmentBarycentricNV" ],
@@ -5943,9 +9283,53 @@
"version" : "None"
},
{
+ "enumerant" : "NonUniform",
+ "value" : 5300,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "version" : "1.5"
+ },
+ {
"enumerant" : "NonUniformEXT",
"value" : 5300,
- "capabilities" : [ "ShaderNonUniformEXT" ]
+ "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" : "CounterBuffer",
+ "value" : 5634,
+ "parameters" : [
+ { "kind" : "IdRef", "name" : "'Counter Buffer'" }
+ ],
+ "version" : "1.4"
},
{
"enumerant" : "HlslCounterBufferGOOGLE",
@@ -5957,6 +9341,14 @@
"version" : "None"
},
{
+ "enumerant" : "UserSemantic",
+ "value" : 5635,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Semantic'" }
+ ],
+ "version" : "1.4"
+ },
+ {
"enumerant" : "HlslSemanticGOOGLE",
"value" : 5635,
"parameters" : [
@@ -5964,6 +9356,15 @@
],
"extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "UserTypeGOOGLE",
+ "value" : 5636,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'User Type'" }
+ ],
+ "extensions" : [ "SPV_GOOGLE_user_type" ],
+ "version" : "None"
}
]
},
@@ -6004,7 +9405,7 @@
{
"enumerant" : "PrimitiveId",
"value" : 7,
- "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV" ]
+ "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingProvisionalKHR" ]
},
{
"enumerant" : "InvocationId",
@@ -6014,12 +9415,12 @@
{
"enumerant" : "Layer",
"value" : 9,
- "capabilities" : [ "Geometry" ]
+ "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT" ]
},
{
"enumerant" : "ViewportIndex",
"value" : 10,
- "capabilities" : [ "MultiViewport" ]
+ "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT" ]
},
{
"enumerant" : "TessLevelOuter",
@@ -6462,86 +9863,233 @@
{
"enumerant" : "LaunchIdNV",
"value" : 5319,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LaunchIdKHR",
+ "value" : 5319,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "LaunchSizeNV",
"value" : 5320,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LaunchSizeKHR",
+ "value" : 5320,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "WorldRayOriginNV",
"value" : 5321,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorldRayOriginKHR",
+ "value" : 5321,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "WorldRayDirectionNV",
"value" : 5322,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorldRayDirectionKHR",
+ "value" : 5322,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "ObjectRayOriginNV",
"value" : 5323,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ObjectRayOriginKHR",
+ "value" : 5323,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "ObjectRayDirectionNV",
"value" : 5324,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ObjectRayDirectionKHR",
+ "value" : 5324,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "RayTminNV",
"value" : 5325,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTminKHR",
+ "value" : 5325,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "RayTmaxNV",
"value" : 5326,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTmaxKHR",
+ "value" : 5326,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "InstanceCustomIndexNV",
"value" : 5327,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "InstanceCustomIndexKHR",
+ "value" : 5327,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "ObjectToWorldNV",
"value" : 5330,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ObjectToWorldKHR",
+ "value" : 5330,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "WorldToObjectNV",
"value" : 5331,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorldToObjectKHR",
+ "value" : 5331,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "HitTNV",
"value" : 5332,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HitTKHR",
+ "value" : 5332,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "HitKindNV",
"value" : 5333,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HitKindKHR",
+ "value" : 5333,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
},
{
"enumerant" : "IncomingRayFlagsNV",
"value" : 5351,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ]
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IncomingRayFlagsKHR",
+ "value" : 5351,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayGeometryIndexKHR",
+ "value" : 5352,
+ "capabilities" : [ "RayTracingProvisionalKHR" ],
+ "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"
}
]
},
@@ -6570,9 +10118,21 @@
"value" : 4
},
{
+ "enumerant" : "QueueFamily",
+ "value" : 5,
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
"enumerant" : "QueueFamilyKHR",
"value" : 5,
- "capabilities" : [ "VulkanMemoryModelKHR" ]
+ "capabilities" : [ "VulkanMemoryModel" ],
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "ShaderCallKHR",
+ "value" : 6,
+ "capabilities" : [ "RayTracingProvisionalKHR" ]
}
]
},
@@ -6729,7 +10289,8 @@
},
{
"enumerant" : "Groups",
- "value" : 18
+ "value" : 18,
+ "extensions" : [ "SPV_AMD_shader_ballot" ]
},
{
"enumerant" : "DeviceEnqueue",
@@ -6983,6 +10544,16 @@
"version" : "1.3"
},
{
+ "enumerant" : "ShaderLayer",
+ "value" : 69,
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "ShaderViewportIndex",
+ "value" : 70,
+ "version" : "1.5"
+ },
+ {
"enumerant" : "SubgroupBallotKHR",
"value" : 4423,
"extensions" : [ "SPV_KHR_shader_ballot" ],
@@ -7088,49 +10659,63 @@
"enumerant" : "StorageBuffer8BitAccess",
"value" : 4448,
"extensions" : [ "SPV_KHR_8bit_storage" ],
- "version" : "None"
+ "version" : "1.5"
},
{
"enumerant" : "UniformAndStorageBuffer8BitAccess",
"value" : 4449,
"capabilities" : [ "StorageBuffer8BitAccess" ],
"extensions" : [ "SPV_KHR_8bit_storage" ],
- "version" : "None"
+ "version" : "1.5"
},
{
"enumerant" : "StoragePushConstant8",
"value" : 4450,
"extensions" : [ "SPV_KHR_8bit_storage" ],
- "version" : "None"
+ "version" : "1.5"
},
{
"enumerant" : "DenormPreserve",
"value" : 4464,
"extensions" : [ "SPV_KHR_float_controls" ],
- "version" : "None"
+ "version" : "1.4"
},
{
"enumerant" : "DenormFlushToZero",
"value" : 4465,
"extensions" : [ "SPV_KHR_float_controls" ],
- "version" : "None"
+ "version" : "1.4"
},
{
"enumerant" : "SignedZeroInfNanPreserve",
"value" : 4466,
"extensions" : [ "SPV_KHR_float_controls" ],
- "version" : "None"
+ "version" : "1.4"
},
{
"enumerant" : "RoundingModeRTE",
"value" : 4467,
"extensions" : [ "SPV_KHR_float_controls" ],
- "version" : "None"
+ "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" : "RayTraversalPrimitiveCullingProvisionalKHR",
+ "value" : 4478,
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query","SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
@@ -7169,6 +10754,13 @@
"version" : "None"
},
{
+ "enumerant" : "ShaderClockKHR",
+ "value" : 5055,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_shader_clock" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "SampleMaskOverrideCoverageNV",
"value" : 5249,
"capabilities" : [ "SampleRateShading" ],
@@ -7232,88 +10824,198 @@
"version" : "None"
},
{
+ "enumerant" : "ImageFootprintNV",
+ "value" : 5282,
+ "extensions" : [ "SPV_NV_shader_image_footprint" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FragmentBarycentricNV",
+ "value" : 5284,
+ "extensions" : [ "SPV_NV_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" : "None"
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "RuntimeDescriptorArray",
+ "value" : 5302,
+ "capabilities" : [ "Shader" ],
+ "version" : "1.5"
},
{
"enumerant" : "RuntimeDescriptorArrayEXT",
"value" : 5302,
"capabilities" : [ "Shader" ],
"extensions" : [ "SPV_EXT_descriptor_indexing" ],
- "version" : "None"
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "InputAttachmentArrayDynamicIndexing",
+ "value" : 5303,
+ "capabilities" : [ "InputAttachment" ],
+ "version" : "1.5"
},
{
"enumerant" : "InputAttachmentArrayDynamicIndexingEXT",
"value" : 5303,
"capabilities" : [ "InputAttachment" ],
"extensions" : [ "SPV_EXT_descriptor_indexing" ],
- "version" : "None"
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "UniformTexelBufferArrayDynamicIndexing",
+ "value" : 5304,
+ "capabilities" : [ "SampledBuffer" ],
+ "version" : "1.5"
},
{
"enumerant" : "UniformTexelBufferArrayDynamicIndexingEXT",
"value" : 5304,
"capabilities" : [ "SampledBuffer" ],
"extensions" : [ "SPV_EXT_descriptor_indexing" ],
- "version" : "None"
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StorageTexelBufferArrayDynamicIndexing",
+ "value" : 5305,
+ "capabilities" : [ "ImageBuffer" ],
+ "version" : "1.5"
},
{
"enumerant" : "StorageTexelBufferArrayDynamicIndexingEXT",
"value" : 5305,
"capabilities" : [ "ImageBuffer" ],
"extensions" : [ "SPV_EXT_descriptor_indexing" ],
- "version" : "None"
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "UniformBufferArrayNonUniformIndexing",
+ "value" : 5306,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "version" : "1.5"
},
{
"enumerant" : "UniformBufferArrayNonUniformIndexingEXT",
"value" : 5306,
- "capabilities" : [ "ShaderNonUniformEXT" ],
+ "capabilities" : [ "ShaderNonUniform" ],
"extensions" : [ "SPV_EXT_descriptor_indexing" ],
- "version" : "None"
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "SampledImageArrayNonUniformIndexing",
+ "value" : 5307,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "version" : "1.5"
},
{
"enumerant" : "SampledImageArrayNonUniformIndexingEXT",
"value" : 5307,
- "capabilities" : [ "ShaderNonUniformEXT" ],
+ "capabilities" : [ "ShaderNonUniform" ],
"extensions" : [ "SPV_EXT_descriptor_indexing" ],
- "version" : "None"
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StorageBufferArrayNonUniformIndexing",
+ "value" : 5308,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "version" : "1.5"
},
{
"enumerant" : "StorageBufferArrayNonUniformIndexingEXT",
"value" : 5308,
- "capabilities" : [ "ShaderNonUniformEXT" ],
+ "capabilities" : [ "ShaderNonUniform" ],
"extensions" : [ "SPV_EXT_descriptor_indexing" ],
- "version" : "None"
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StorageImageArrayNonUniformIndexing",
+ "value" : 5309,
+ "capabilities" : [ "ShaderNonUniform" ],
+ "version" : "1.5"
},
{
"enumerant" : "StorageImageArrayNonUniformIndexingEXT",
"value" : 5309,
- "capabilities" : [ "ShaderNonUniformEXT" ],
+ "capabilities" : [ "ShaderNonUniform" ],
"extensions" : [ "SPV_EXT_descriptor_indexing" ],
- "version" : "None"
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "InputAttachmentArrayNonUniformIndexing",
+ "value" : 5310,
+ "capabilities" : [ "InputAttachment", "ShaderNonUniform" ],
+ "version" : "1.5"
},
{
"enumerant" : "InputAttachmentArrayNonUniformIndexingEXT",
"value" : 5310,
- "capabilities" : [ "InputAttachment", "ShaderNonUniformEXT" ],
+ "capabilities" : [ "InputAttachment", "ShaderNonUniform" ],
"extensions" : [ "SPV_EXT_descriptor_indexing" ],
- "version" : "None"
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "UniformTexelBufferArrayNonUniformIndexing",
+ "value" : 5311,
+ "capabilities" : [ "SampledBuffer", "ShaderNonUniform" ],
+ "version" : "1.5"
},
{
"enumerant" : "UniformTexelBufferArrayNonUniformIndexingEXT",
"value" : 5311,
- "capabilities" : [ "SampledBuffer", "ShaderNonUniformEXT" ],
+ "capabilities" : [ "SampledBuffer", "ShaderNonUniform" ],
"extensions" : [ "SPV_EXT_descriptor_indexing" ],
- "version" : "None"
+ "version" : "1.5"
+ },
+ {
+ "enumerant" : "StorageTexelBufferArrayNonUniformIndexing",
+ "value" : 5312,
+ "capabilities" : [ "ImageBuffer", "ShaderNonUniform" ],
+ "version" : "1.5"
},
{
"enumerant" : "StorageTexelBufferArrayNonUniformIndexingEXT",
"value" : 5312,
- "capabilities" : [ "ImageBuffer", "ShaderNonUniformEXT" ],
+ "capabilities" : [ "ImageBuffer", "ShaderNonUniform" ],
"extensions" : [ "SPV_EXT_descriptor_indexing" ],
- "version" : "None"
+ "version" : "1.5"
},
{
"enumerant" : "RayTracingNV",
@@ -7323,6 +11025,97 @@
"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" : "DemoteToHelperInvocationEXT",
+ "value" : 5379,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "SubgroupShuffleINTEL",
"value" : 5568,
"extensions" : [ "SPV_INTEL_subgroups" ],
@@ -7341,60 +11134,88 @@
"version" : "None"
},
{
- "enumerant" : "GroupNonUniformPartitionedNV",
- "value" : 5297,
- "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
+ "enumerant" : "SubgroupImageMediaBlockIOINTEL",
+ "value" : 5579,
+ "extensions" : [ "SPV_INTEL_media_block_io" ],
"version" : "None"
},
{
- "enumerant" : "VulkanMemoryModelKHR",
- "value" : 5345,
- "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
- "version" : "None"
- },
- {
- "enumerant" : "VulkanMemoryModelDeviceScopeKHR",
- "value" : 5346,
- "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
- "version" : "None"
- },
- {
- "enumerant" : "ImageFootprintNV",
- "value" : 5282,
- "extensions" : [ "SPV_NV_shader_image_footprint" ],
- "version" : "None"
- },
- {
- "enumerant" : "FragmentBarycentricNV",
- "value" : 5284,
- "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
- "version" : "None"
- },
- {
- "enumerant" : "ComputeDerivativeGroupQuadsNV",
- "value" : 5288,
- "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
- "version" : "None"
- },
- {
- "enumerant" : "ComputeDerivativeGroupLinearNV",
- "value" : 5350,
- "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
- "version" : "None"
- },
- {
- "enumerant" : "FragmentDensityEXT",
- "value" : 5291,
+ "enumerant" : "IntegerFunctions2INTEL",
+ "value" : 5584,
"capabilities" : [ "Shader" ],
- "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
+ "extensions" : [ "SPV_INTEL_shader_integer_functions2" ],
"version" : "None"
},
{
- "enumerant" : "ShadingRateNV",
- "value" : 5291,
- "capabilities" : [ "Shader" ],
- "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
+ "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"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "RayQueryIntersection",
+ "enumerants" : [
+ {
+ "enumerant" : "RayQueryCandidateIntersectionKHR",
+ "value" : 0,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "RayQueryCommittedIntersectionKHR",
+ "value" : 1,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "RayQueryCommittedIntersectionType",
+ "enumerants" : [
+ {
+ "enumerant" : "RayQueryCommittedIntersectionNoneKHR",
+ "value" : 0,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "RayQueryCommittedIntersectionTriangleKHR",
+ "value" : 1,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "RayQueryCommittedIntersectionGeneratedKHR",
+ "value" : 2,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "RayQueryCandidateIntersectionType",
+ "enumerants" : [
+ {
+ "enumerant" : "RayQueryCandidateIntersectionTriangleKHR",
+ "value" : 0,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "RayQueryCandidateIntersectionAABBKHR",
+ "value" : 1,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
}
]
},
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index fe187f0..c5ddff9 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2018 The Khronos Group Inc.
+// 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"),
@@ -26,14 +26,16 @@
// 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, C++, C++11, JSON, Lua, Python, C#, D
//
// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
-// - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL
+// - C# will use enum classes in the Specification class located in the "Spv" namespace,
+// e.g.: Spv.Specification.SourceLanguage.GLSL
+// - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
//
// Some tokens act like mask values, which can be OR'd together,
// while others are mutually exclusive. The mask-like ones have
@@ -46,8 +48,8 @@
public static class Specification
{
public const uint MagicNumber = 0x07230203;
- public const uint Version = 0x00010300;
- public const uint Revision = 6;
+ public const uint Version = 0x00010500;
+ public const uint Revision = 1;
public const uint OpCodeMask = 0xffff;
public const uint WordCountShift = 16;
@@ -72,11 +74,17 @@
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,
}
@@ -85,6 +93,8 @@
Logical = 0,
Physical32 = 1,
Physical64 = 2,
+ PhysicalStorageBuffer64 = 5348,
+ PhysicalStorageBuffer64EXT = 5348,
}
public enum MemoryModel
@@ -92,6 +102,7 @@
Simple = 0,
GLSL450 = 1,
OpenCL = 2,
+ Vulkan = 3,
VulkanKHR = 3,
}
@@ -147,6 +158,12 @@
DerivativeGroupQuadsNV = 5289,
DerivativeGroupLinearNV = 5290,
OutputTrianglesNV = 5298,
+ PixelInterlockOrderedEXT = 5366,
+ PixelInterlockUnorderedEXT = 5367,
+ SampleInterlockOrderedEXT = 5368,
+ SampleInterlockUnorderedEXT = 5369,
+ ShadingRateInterlockOrderedEXT = 5370,
+ ShadingRateInterlockUnorderedEXT = 5371,
}
public enum StorageClass
@@ -164,12 +181,20 @@
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,
}
public enum Dim
@@ -297,10 +322,16 @@
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,
}
public enum ImageOperandsMask
@@ -314,10 +345,16 @@
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,
}
public enum FPFastMathModeShift
@@ -400,6 +437,7 @@
NonWritable = 24,
NonReadable = 25,
Uniform = 26,
+ UniformId = 27,
SaturatedConversion = 28,
Stream = 29,
Location = 30,
@@ -431,9 +469,17 @@
PerViewNV = 5272,
PerTaskNV = 5273,
PerVertexNV = 5285,
+ NonUniform = 5300,
NonUniformEXT = 5300,
+ RestrictPointer = 5355,
+ RestrictPointerEXT = 5355,
+ AliasedPointer = 5356,
+ AliasedPointerEXT = 5356,
+ CounterBuffer = 5634,
HlslCounterBufferGOOGLE = 5634,
HlslSemanticGOOGLE = 5635,
+ UserSemantic = 5635,
+ UserTypeGOOGLE = 5636,
}
public enum BuiltIn
@@ -522,20 +568,39 @@
FragmentSizeNV = 5292,
FragInvocationCountEXT = 5293,
InvocationsPerPixelNV = 5293,
+ 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,
+ HitTKHR = 5332,
HitTNV = 5332,
+ HitKindKHR = 5333,
HitKindNV = 5333,
+ IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
+ RayGeometryIndexKHR = 5352,
+ WarpsPerSMNV = 5374,
+ SMCountNV = 5375,
+ WarpIDNV = 5376,
+ SMIDNV = 5377,
}
public enum SelectionControlShift
@@ -557,6 +622,11 @@
DontUnroll = 1,
DependencyInfinite = 2,
DependencyLength = 3,
+ MinIterations = 4,
+ MaxIterations = 5,
+ IterationMultiple = 6,
+ PeelCount = 7,
+ PartialCount = 8,
}
public enum LoopControlMask
@@ -566,6 +636,11 @@
DontUnroll = 0x00000002,
DependencyInfinite = 0x00000004,
DependencyLength = 0x00000008,
+ MinIterations = 0x00000010,
+ MaxIterations = 0x00000020,
+ IterationMultiple = 0x00000040,
+ PeelCount = 0x00000080,
+ PartialCount = 0x00000100,
}
public enum FunctionControlShift
@@ -597,9 +672,13 @@
CrossWorkgroupMemory = 9,
AtomicCounterMemory = 10,
ImageMemory = 11,
+ OutputMemory = 12,
OutputMemoryKHR = 12,
+ MakeAvailable = 13,
MakeAvailableKHR = 13,
+ MakeVisible = 14,
MakeVisibleKHR = 14,
+ Volatile = 15,
}
public enum MemorySemanticsMask
@@ -615,9 +694,13 @@
CrossWorkgroupMemory = 0x00000200,
AtomicCounterMemory = 0x00000400,
ImageMemory = 0x00000800,
+ OutputMemory = 0x00001000,
OutputMemoryKHR = 0x00001000,
+ MakeAvailable = 0x00002000,
MakeAvailableKHR = 0x00002000,
+ MakeVisible = 0x00004000,
MakeVisibleKHR = 0x00004000,
+ Volatile = 0x00008000,
}
public enum MemoryAccessShift
@@ -625,8 +708,11 @@
Volatile = 0,
Aligned = 1,
Nontemporal = 2,
+ MakePointerAvailable = 3,
MakePointerAvailableKHR = 3,
+ MakePointerVisible = 4,
MakePointerVisibleKHR = 4,
+ NonPrivatePointer = 5,
NonPrivatePointerKHR = 5,
}
@@ -636,8 +722,11 @@
Volatile = 0x00000001,
Aligned = 0x00000002,
Nontemporal = 0x00000004,
+ MakePointerAvailable = 0x00000008,
MakePointerAvailableKHR = 0x00000008,
+ MakePointerVisible = 0x00000010,
MakePointerVisibleKHR = 0x00000010,
+ NonPrivatePointer = 0x00000020,
NonPrivatePointerKHR = 0x00000020,
}
@@ -648,7 +737,9 @@
Workgroup = 2,
Subgroup = 3,
Invocation = 4,
+ QueueFamily = 5,
QueueFamilyKHR = 5,
+ ShaderCallKHR = 6,
}
public enum GroupOperation
@@ -749,6 +840,8 @@
GroupNonUniformShuffleRelative = 66,
GroupNonUniformClustered = 67,
GroupNonUniformQuad = 68,
+ ShaderLayer = 69,
+ ShaderViewportIndex = 70,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
SubgroupVoteKHR = 4431,
@@ -772,11 +865,14 @@
SignedZeroInfNanPreserve = 4466,
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
+ RayQueryProvisionalKHR = 4471,
+ RayTraversalPrimitiveCullingProvisionalKHR = 4478,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
StencilExportEXT = 5013,
ImageReadWriteLodAMD = 5015,
+ ShaderClockKHR = 5055,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254,
@@ -792,25 +888,101 @@
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,
+ 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,
+ DemoteToHelperInvocationEXT = 5379,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
+ SubgroupImageMediaBlockIOINTEL = 5579,
+ IntegerFunctions2INTEL = 5584,
+ SubgroupAvcMotionEstimationINTEL = 5696,
+ SubgroupAvcMotionEstimationIntraINTEL = 5697,
+ SubgroupAvcMotionEstimationChromaINTEL = 5698,
+ }
+
+ public enum RayFlagsShift
+ {
+ OpaqueKHR = 0,
+ NoOpaqueKHR = 1,
+ TerminateOnFirstHitKHR = 2,
+ SkipClosestHitShaderKHR = 3,
+ CullBackFacingTrianglesKHR = 4,
+ CullFrontFacingTrianglesKHR = 5,
+ CullOpaqueKHR = 6,
+ CullNoOpaqueKHR = 7,
+ SkipTrianglesKHR = 8,
+ SkipAABBsKHR = 9,
+ }
+
+ 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,
+ }
+
+ 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 Op
@@ -1155,12 +1327,23 @@
OpGroupNonUniformLogicalXor = 364,
OpGroupNonUniformQuadBroadcast = 365,
OpGroupNonUniformQuadSwap = 366,
+ OpCopyLogical = 400,
+ OpPtrEqual = 401,
+ OpPtrNotEqual = 402,
+ OpPtrDiff = 403,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
+ OpTypeRayQueryProvisionalKHR = 4472,
+ OpRayQueryInitializeKHR = 4473,
+ OpRayQueryTerminateKHR = 4474,
+ OpRayQueryGenerateIntersectionKHR = 4475,
+ OpRayQueryConfirmIntersectionKHR = 4476,
+ OpRayQueryProceedKHR = 4477,
+ OpRayQueryGetIntersectionTypeKHR = 4479,
OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002,
@@ -1171,15 +1354,31 @@
OpGroupSMaxNonUniformAMD = 5007,
OpFragmentMaskFetchAMD = 5011,
OpFragmentFetchAMD = 5012,
+ OpReadClockKHR = 5056,
OpImageSampleFootprintNV = 5283,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
+ OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334,
+ OpIgnoreIntersectionKHR = 5335,
OpIgnoreIntersectionNV = 5335,
+ OpTerminateRayKHR = 5336,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceRayKHR = 5337,
+ OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
+ OpExecuteCallableKHR = 5344,
OpExecuteCallableNV = 5344,
+ OpTypeCooperativeMatrixNV = 5358,
+ OpCooperativeMatrixLoadNV = 5359,
+ OpCooperativeMatrixStoreNV = 5360,
+ OpCooperativeMatrixMulAddNV = 5361,
+ OpCooperativeMatrixLengthNV = 5362,
+ OpBeginInvocationInterlockEXT = 5364,
+ OpEndInvocationInterlockEXT = 5365,
+ OpDemoteToHelperInvocationEXT = 5380,
+ OpIsHelperInvocationEXT = 5381,
OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573,
@@ -1188,8 +1387,161 @@
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,
+ 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,
+ 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,
}
}
}
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 503673a..92b34c3 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -1,5 +1,5 @@
/*
-** Copyright (c) 2014-2018 The Khronos Group Inc.
+** 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"),
@@ -31,14 +31,16 @@
/*
** Enumeration tokens for SPIR-V, in various styles:
-** C, C++, C++11, JSON, Lua, Python, C#
+** C, C++, C++11, JSON, Lua, Python, C#, D
**
** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
-** - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL
+** - C# will use enum classes in the Specification class located in the "Spv" namespace,
+** e.g.: Spv.Specification.SourceLanguage.GLSL
+** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
**
** Some tokens act like mask values, which can be OR'd together,
** while others are mutually exclusive. The mask-like ones have
@@ -51,12 +53,12 @@
typedef unsigned int SpvId;
-#define SPV_VERSION 0x10300
-#define SPV_REVISION 6
+#define SPV_VERSION 0x10500
+#define SPV_REVISION 1
static const unsigned int SpvMagicNumber = 0x07230203;
-static const unsigned int SpvVersion = 0x00010300;
-static const unsigned int SpvRevision = 6;
+static const unsigned int SpvVersion = 0x00010500;
+static const unsigned int SpvRevision = 1;
static const unsigned int SpvOpCodeMask = 0xffff;
static const unsigned int SpvWordCountShift = 16;
@@ -80,11 +82,17 @@
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,
SpvExecutionModelMax = 0x7fffffff,
} SpvExecutionModel;
@@ -93,6 +101,8 @@
SpvAddressingModelLogical = 0,
SpvAddressingModelPhysical32 = 1,
SpvAddressingModelPhysical64 = 2,
+ SpvAddressingModelPhysicalStorageBuffer64 = 5348,
+ SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
SpvAddressingModelMax = 0x7fffffff,
} SpvAddressingModel;
@@ -100,6 +110,7 @@
SpvMemoryModelSimple = 0,
SpvMemoryModelGLSL450 = 1,
SpvMemoryModelOpenCL = 2,
+ SpvMemoryModelVulkan = 3,
SpvMemoryModelVulkanKHR = 3,
SpvMemoryModelMax = 0x7fffffff,
} SpvMemoryModel;
@@ -155,6 +166,12 @@
SpvExecutionModeDerivativeGroupQuadsNV = 5289,
SpvExecutionModeDerivativeGroupLinearNV = 5290,
SpvExecutionModeOutputTrianglesNV = 5298,
+ SpvExecutionModePixelInterlockOrderedEXT = 5366,
+ SpvExecutionModePixelInterlockUnorderedEXT = 5367,
+ SpvExecutionModeSampleInterlockOrderedEXT = 5368,
+ SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
+ SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
+ SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
SpvExecutionModeMax = 0x7fffffff,
} SpvExecutionMode;
@@ -172,12 +189,20 @@
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,
SpvStorageClassMax = 0x7fffffff,
} SpvStorageClass;
@@ -305,10 +330,16 @@
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,
SpvImageOperandsMax = 0x7fffffff,
} SpvImageOperandsShift;
@@ -322,10 +353,16 @@
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,
} SpvImageOperandsMask;
typedef enum SpvFPFastMathModeShift_ {
@@ -406,6 +443,7 @@
SpvDecorationNonWritable = 24,
SpvDecorationNonReadable = 25,
SpvDecorationUniform = 26,
+ SpvDecorationUniformId = 27,
SpvDecorationSaturatedConversion = 28,
SpvDecorationStream = 29,
SpvDecorationLocation = 30,
@@ -437,9 +475,17 @@
SpvDecorationPerViewNV = 5272,
SpvDecorationPerTaskNV = 5273,
SpvDecorationPerVertexNV = 5285,
+ SpvDecorationNonUniform = 5300,
SpvDecorationNonUniformEXT = 5300,
+ SpvDecorationRestrictPointer = 5355,
+ SpvDecorationRestrictPointerEXT = 5355,
+ SpvDecorationAliasedPointer = 5356,
+ SpvDecorationAliasedPointerEXT = 5356,
+ SpvDecorationCounterBuffer = 5634,
SpvDecorationHlslCounterBufferGOOGLE = 5634,
SpvDecorationHlslSemanticGOOGLE = 5635,
+ SpvDecorationUserSemantic = 5635,
+ SpvDecorationUserTypeGOOGLE = 5636,
SpvDecorationMax = 0x7fffffff,
} SpvDecoration;
@@ -528,20 +574,39 @@
SpvBuiltInFragmentSizeNV = 5292,
SpvBuiltInFragInvocationCountEXT = 5293,
SpvBuiltInInvocationsPerPixelNV = 5293,
+ 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,
+ SpvBuiltInHitTKHR = 5332,
SpvBuiltInHitTNV = 5332,
+ SpvBuiltInHitKindKHR = 5333,
SpvBuiltInHitKindNV = 5333,
+ SpvBuiltInIncomingRayFlagsKHR = 5351,
SpvBuiltInIncomingRayFlagsNV = 5351,
+ SpvBuiltInRayGeometryIndexKHR = 5352,
+ SpvBuiltInWarpsPerSMNV = 5374,
+ SpvBuiltInSMCountNV = 5375,
+ SpvBuiltInWarpIDNV = 5376,
+ SpvBuiltInSMIDNV = 5377,
SpvBuiltInMax = 0x7fffffff,
} SpvBuiltIn;
@@ -562,6 +627,11 @@
SpvLoopControlDontUnrollShift = 1,
SpvLoopControlDependencyInfiniteShift = 2,
SpvLoopControlDependencyLengthShift = 3,
+ SpvLoopControlMinIterationsShift = 4,
+ SpvLoopControlMaxIterationsShift = 5,
+ SpvLoopControlIterationMultipleShift = 6,
+ SpvLoopControlPeelCountShift = 7,
+ SpvLoopControlPartialCountShift = 8,
SpvLoopControlMax = 0x7fffffff,
} SpvLoopControlShift;
@@ -571,6 +641,11 @@
SpvLoopControlDontUnrollMask = 0x00000002,
SpvLoopControlDependencyInfiniteMask = 0x00000004,
SpvLoopControlDependencyLengthMask = 0x00000008,
+ SpvLoopControlMinIterationsMask = 0x00000010,
+ SpvLoopControlMaxIterationsMask = 0x00000020,
+ SpvLoopControlIterationMultipleMask = 0x00000040,
+ SpvLoopControlPeelCountMask = 0x00000080,
+ SpvLoopControlPartialCountMask = 0x00000100,
} SpvLoopControlMask;
typedef enum SpvFunctionControlShift_ {
@@ -600,9 +675,13 @@
SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
SpvMemorySemanticsAtomicCounterMemoryShift = 10,
SpvMemorySemanticsImageMemoryShift = 11,
+ SpvMemorySemanticsOutputMemoryShift = 12,
SpvMemorySemanticsOutputMemoryKHRShift = 12,
+ SpvMemorySemanticsMakeAvailableShift = 13,
SpvMemorySemanticsMakeAvailableKHRShift = 13,
+ SpvMemorySemanticsMakeVisibleShift = 14,
SpvMemorySemanticsMakeVisibleKHRShift = 14,
+ SpvMemorySemanticsVolatileShift = 15,
SpvMemorySemanticsMax = 0x7fffffff,
} SpvMemorySemanticsShift;
@@ -618,17 +697,24 @@
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,
SpvMemoryAccessMax = 0x7fffffff,
} SpvMemoryAccessShift;
@@ -638,8 +724,11 @@
SpvMemoryAccessVolatileMask = 0x00000001,
SpvMemoryAccessAlignedMask = 0x00000002,
SpvMemoryAccessNontemporalMask = 0x00000004,
+ SpvMemoryAccessMakePointerAvailableMask = 0x00000008,
SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
+ SpvMemoryAccessMakePointerVisibleMask = 0x00000010,
SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
+ SpvMemoryAccessNonPrivatePointerMask = 0x00000020,
SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
} SpvMemoryAccessMask;
@@ -649,7 +738,9 @@
SpvScopeWorkgroup = 2,
SpvScopeSubgroup = 3,
SpvScopeInvocation = 4,
+ SpvScopeQueueFamily = 5,
SpvScopeQueueFamilyKHR = 5,
+ SpvScopeShaderCallKHR = 6,
SpvScopeMax = 0x7fffffff,
} SpvScope;
@@ -749,6 +840,8 @@
SpvCapabilityGroupNonUniformShuffleRelative = 66,
SpvCapabilityGroupNonUniformClustered = 67,
SpvCapabilityGroupNonUniformQuad = 68,
+ SpvCapabilityShaderLayer = 69,
+ SpvCapabilityShaderViewportIndex = 70,
SpvCapabilitySubgroupBallotKHR = 4423,
SpvCapabilityDrawParameters = 4427,
SpvCapabilitySubgroupVoteKHR = 4431,
@@ -772,11 +865,14 @@
SpvCapabilitySignedZeroInfNanPreserve = 4466,
SpvCapabilityRoundingModeRTE = 4467,
SpvCapabilityRoundingModeRTZ = 4468,
+ SpvCapabilityRayQueryProvisionalKHR = 4471,
+ SpvCapabilityRayTraversalPrimitiveCullingProvisionalKHR = 4478,
SpvCapabilityFloat16ImageAMD = 5008,
SpvCapabilityImageGatherBiasLodAMD = 5009,
SpvCapabilityFragmentMaskAMD = 5010,
SpvCapabilityStencilExportEXT = 5013,
SpvCapabilityImageReadWriteLodAMD = 5015,
+ SpvCapabilityShaderClockKHR = 5055,
SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
SpvCapabilityGeometryShaderPassthroughNV = 5251,
SpvCapabilityShaderViewportIndexLayerEXT = 5254,
@@ -792,28 +888,103 @@
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,
+ 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,
+ SpvCapabilityDemoteToHelperInvocationEXT = 5379,
SpvCapabilitySubgroupShuffleINTEL = 5568,
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
+ SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ SpvCapabilityIntegerFunctions2INTEL = 5584,
+ SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
+ SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
+ SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
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,
+ 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,
+} 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 SpvOp_ {
SpvOpNop = 0,
SpvOpUndef = 1,
@@ -1155,12 +1326,23 @@
SpvOpGroupNonUniformLogicalXor = 364,
SpvOpGroupNonUniformQuadBroadcast = 365,
SpvOpGroupNonUniformQuadSwap = 366,
+ SpvOpCopyLogical = 400,
+ SpvOpPtrEqual = 401,
+ SpvOpPtrNotEqual = 402,
+ SpvOpPtrDiff = 403,
SpvOpSubgroupBallotKHR = 4421,
SpvOpSubgroupFirstInvocationKHR = 4422,
SpvOpSubgroupAllKHR = 4428,
SpvOpSubgroupAnyKHR = 4429,
SpvOpSubgroupAllEqualKHR = 4430,
SpvOpSubgroupReadInvocationKHR = 4432,
+ SpvOpTypeRayQueryProvisionalKHR = 4472,
+ SpvOpRayQueryInitializeKHR = 4473,
+ SpvOpRayQueryTerminateKHR = 4474,
+ SpvOpRayQueryGenerateIntersectionKHR = 4475,
+ SpvOpRayQueryConfirmIntersectionKHR = 4476,
+ SpvOpRayQueryProceedKHR = 4477,
+ SpvOpRayQueryGetIntersectionTypeKHR = 4479,
SpvOpGroupIAddNonUniformAMD = 5000,
SpvOpGroupFAddNonUniformAMD = 5001,
SpvOpGroupFMinNonUniformAMD = 5002,
@@ -1171,15 +1353,31 @@
SpvOpGroupSMaxNonUniformAMD = 5007,
SpvOpFragmentMaskFetchAMD = 5011,
SpvOpFragmentFetchAMD = 5012,
+ SpvOpReadClockKHR = 5056,
SpvOpImageSampleFootprintNV = 5283,
SpvOpGroupNonUniformPartitionNV = 5296,
SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
+ SpvOpReportIntersectionKHR = 5334,
SpvOpReportIntersectionNV = 5334,
+ SpvOpIgnoreIntersectionKHR = 5335,
SpvOpIgnoreIntersectionNV = 5335,
+ SpvOpTerminateRayKHR = 5336,
SpvOpTerminateRayNV = 5336,
SpvOpTraceNV = 5337,
+ SpvOpTraceRayKHR = 5337,
+ SpvOpTypeAccelerationStructureKHR = 5341,
SpvOpTypeAccelerationStructureNV = 5341,
+ SpvOpExecuteCallableKHR = 5344,
SpvOpExecuteCallableNV = 5344,
+ SpvOpTypeCooperativeMatrixNV = 5358,
+ SpvOpCooperativeMatrixLoadNV = 5359,
+ SpvOpCooperativeMatrixStoreNV = 5360,
+ SpvOpCooperativeMatrixMulAddNV = 5361,
+ SpvOpCooperativeMatrixLengthNV = 5362,
+ SpvOpBeginInvocationInterlockEXT = 5364,
+ SpvOpEndInvocationInterlockEXT = 5365,
+ SpvOpDemoteToHelperInvocationEXT = 5380,
+ SpvOpIsHelperInvocationEXT = 5381,
SpvOpSubgroupShuffleINTEL = 5571,
SpvOpSubgroupShuffleDownINTEL = 5572,
SpvOpSubgroupShuffleUpINTEL = 5573,
@@ -1188,10 +1386,719 @@
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,
+ 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,
+ 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,
SpvOpMax = 0x7fffffff,
} SpvOp;
-#endif // #ifndef spirv_H
+#ifdef SPV_ENABLE_UTILITY_CODE
+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 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 SpvOpSubgroupReadInvocationKHR: *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 SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; 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 SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeRayQueryProvisionalKHR: *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 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 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 SpvOpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
+ case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; 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 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;
+ }
+}
+#endif /* SPV_ENABLE_UTILITY_CODE */
+
+#endif
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index f2fd0f0..9f98683 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2018 The Khronos Group Inc.
+// 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"),
@@ -26,14 +26,16 @@
// 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, C++, C++11, JSON, Lua, Python, C#, D
//
// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
-// - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL
+// - C# will use enum classes in the Specification class located in the "Spv" namespace,
+// e.g.: Spv.Specification.SourceLanguage.GLSL
+// - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
//
// Some tokens act like mask values, which can be OR'd together,
// while others are mutually exclusive. The mask-like ones have
@@ -47,12 +49,12 @@
typedef unsigned int Id;
-#define SPV_VERSION 0x10300
-#define SPV_REVISION 6
+#define SPV_VERSION 0x10500
+#define SPV_REVISION 1
static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010300;
-static const unsigned int Revision = 6;
+static const unsigned int Version = 0x00010500;
+static const unsigned int Revision = 1;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -76,11 +78,17 @@
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,
ExecutionModelMax = 0x7fffffff,
};
@@ -89,6 +97,8 @@
AddressingModelLogical = 0,
AddressingModelPhysical32 = 1,
AddressingModelPhysical64 = 2,
+ AddressingModelPhysicalStorageBuffer64 = 5348,
+ AddressingModelPhysicalStorageBuffer64EXT = 5348,
AddressingModelMax = 0x7fffffff,
};
@@ -96,6 +106,7 @@
MemoryModelSimple = 0,
MemoryModelGLSL450 = 1,
MemoryModelOpenCL = 2,
+ MemoryModelVulkan = 3,
MemoryModelVulkanKHR = 3,
MemoryModelMax = 0x7fffffff,
};
@@ -151,6 +162,12 @@
ExecutionModeDerivativeGroupQuadsNV = 5289,
ExecutionModeDerivativeGroupLinearNV = 5290,
ExecutionModeOutputTrianglesNV = 5298,
+ ExecutionModePixelInterlockOrderedEXT = 5366,
+ ExecutionModePixelInterlockUnorderedEXT = 5367,
+ ExecutionModeSampleInterlockOrderedEXT = 5368,
+ ExecutionModeSampleInterlockUnorderedEXT = 5369,
+ ExecutionModeShadingRateInterlockOrderedEXT = 5370,
+ ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
ExecutionModeMax = 0x7fffffff,
};
@@ -168,12 +185,20 @@
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,
StorageClassMax = 0x7fffffff,
};
@@ -301,10 +326,16 @@
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,
ImageOperandsMax = 0x7fffffff,
};
@@ -318,10 +349,16 @@
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,
};
enum FPFastMathModeShift {
@@ -402,6 +439,7 @@
DecorationNonWritable = 24,
DecorationNonReadable = 25,
DecorationUniform = 26,
+ DecorationUniformId = 27,
DecorationSaturatedConversion = 28,
DecorationStream = 29,
DecorationLocation = 30,
@@ -433,9 +471,17 @@
DecorationPerViewNV = 5272,
DecorationPerTaskNV = 5273,
DecorationPerVertexNV = 5285,
+ DecorationNonUniform = 5300,
DecorationNonUniformEXT = 5300,
+ DecorationRestrictPointer = 5355,
+ DecorationRestrictPointerEXT = 5355,
+ DecorationAliasedPointer = 5356,
+ DecorationAliasedPointerEXT = 5356,
+ DecorationCounterBuffer = 5634,
DecorationHlslCounterBufferGOOGLE = 5634,
DecorationHlslSemanticGOOGLE = 5635,
+ DecorationUserSemantic = 5635,
+ DecorationUserTypeGOOGLE = 5636,
DecorationMax = 0x7fffffff,
};
@@ -524,20 +570,39 @@
BuiltInFragmentSizeNV = 5292,
BuiltInFragInvocationCountEXT = 5293,
BuiltInInvocationsPerPixelNV = 5293,
+ 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,
+ BuiltInHitTKHR = 5332,
BuiltInHitTNV = 5332,
+ BuiltInHitKindKHR = 5333,
BuiltInHitKindNV = 5333,
+ BuiltInIncomingRayFlagsKHR = 5351,
BuiltInIncomingRayFlagsNV = 5351,
+ BuiltInRayGeometryIndexKHR = 5352,
+ BuiltInWarpsPerSMNV = 5374,
+ BuiltInSMCountNV = 5375,
+ BuiltInWarpIDNV = 5376,
+ BuiltInSMIDNV = 5377,
BuiltInMax = 0x7fffffff,
};
@@ -558,6 +623,11 @@
LoopControlDontUnrollShift = 1,
LoopControlDependencyInfiniteShift = 2,
LoopControlDependencyLengthShift = 3,
+ LoopControlMinIterationsShift = 4,
+ LoopControlMaxIterationsShift = 5,
+ LoopControlIterationMultipleShift = 6,
+ LoopControlPeelCountShift = 7,
+ LoopControlPartialCountShift = 8,
LoopControlMax = 0x7fffffff,
};
@@ -567,6 +637,11 @@
LoopControlDontUnrollMask = 0x00000002,
LoopControlDependencyInfiniteMask = 0x00000004,
LoopControlDependencyLengthMask = 0x00000008,
+ LoopControlMinIterationsMask = 0x00000010,
+ LoopControlMaxIterationsMask = 0x00000020,
+ LoopControlIterationMultipleMask = 0x00000040,
+ LoopControlPeelCountMask = 0x00000080,
+ LoopControlPartialCountMask = 0x00000100,
};
enum FunctionControlShift {
@@ -596,9 +671,13 @@
MemorySemanticsCrossWorkgroupMemoryShift = 9,
MemorySemanticsAtomicCounterMemoryShift = 10,
MemorySemanticsImageMemoryShift = 11,
+ MemorySemanticsOutputMemoryShift = 12,
MemorySemanticsOutputMemoryKHRShift = 12,
+ MemorySemanticsMakeAvailableShift = 13,
MemorySemanticsMakeAvailableKHRShift = 13,
+ MemorySemanticsMakeVisibleShift = 14,
MemorySemanticsMakeVisibleKHRShift = 14,
+ MemorySemanticsVolatileShift = 15,
MemorySemanticsMax = 0x7fffffff,
};
@@ -614,17 +693,24 @@
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,
MemoryAccessMax = 0x7fffffff,
};
@@ -634,8 +720,11 @@
MemoryAccessVolatileMask = 0x00000001,
MemoryAccessAlignedMask = 0x00000002,
MemoryAccessNontemporalMask = 0x00000004,
+ MemoryAccessMakePointerAvailableMask = 0x00000008,
MemoryAccessMakePointerAvailableKHRMask = 0x00000008,
+ MemoryAccessMakePointerVisibleMask = 0x00000010,
MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
+ MemoryAccessNonPrivatePointerMask = 0x00000020,
MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
};
@@ -645,7 +734,9 @@
ScopeWorkgroup = 2,
ScopeSubgroup = 3,
ScopeInvocation = 4,
+ ScopeQueueFamily = 5,
ScopeQueueFamilyKHR = 5,
+ ScopeShaderCallKHR = 6,
ScopeMax = 0x7fffffff,
};
@@ -745,6 +836,8 @@
CapabilityGroupNonUniformShuffleRelative = 66,
CapabilityGroupNonUniformClustered = 67,
CapabilityGroupNonUniformQuad = 68,
+ CapabilityShaderLayer = 69,
+ CapabilityShaderViewportIndex = 70,
CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427,
CapabilitySubgroupVoteKHR = 4431,
@@ -768,11 +861,14 @@
CapabilitySignedZeroInfNanPreserve = 4466,
CapabilityRoundingModeRTE = 4467,
CapabilityRoundingModeRTZ = 4468,
+ CapabilityRayQueryProvisionalKHR = 4471,
+ CapabilityRayTraversalPrimitiveCullingProvisionalKHR = 4478,
CapabilityFloat16ImageAMD = 5008,
CapabilityImageGatherBiasLodAMD = 5009,
CapabilityFragmentMaskAMD = 5010,
CapabilityStencilExportEXT = 5013,
CapabilityImageReadWriteLodAMD = 5015,
+ CapabilityShaderClockKHR = 5055,
CapabilitySampleMaskOverrideCoverageNV = 5249,
CapabilityGeometryShaderPassthroughNV = 5251,
CapabilityShaderViewportIndexLayerEXT = 5254,
@@ -788,28 +884,103 @@
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,
+ 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,
+ CapabilityDemoteToHelperInvocationEXT = 5379,
CapabilitySubgroupShuffleINTEL = 5568,
CapabilitySubgroupBufferBlockIOINTEL = 5569,
CapabilitySubgroupImageBlockIOINTEL = 5570,
+ CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ CapabilityIntegerFunctions2INTEL = 5584,
+ CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
+ CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
+ CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
CapabilityMax = 0x7fffffff,
};
+enum RayFlagsShift {
+ RayFlagsOpaqueKHRShift = 0,
+ RayFlagsNoOpaqueKHRShift = 1,
+ RayFlagsTerminateOnFirstHitKHRShift = 2,
+ RayFlagsSkipClosestHitShaderKHRShift = 3,
+ RayFlagsCullBackFacingTrianglesKHRShift = 4,
+ RayFlagsCullFrontFacingTrianglesKHRShift = 5,
+ RayFlagsCullOpaqueKHRShift = 6,
+ RayFlagsCullNoOpaqueKHRShift = 7,
+ RayFlagsSkipTrianglesKHRShift = 8,
+ RayFlagsSkipAABBsKHRShift = 9,
+ 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,
+};
+
+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 Op {
OpNop = 0,
OpUndef = 1,
@@ -1151,12 +1322,23 @@
OpGroupNonUniformLogicalXor = 364,
OpGroupNonUniformQuadBroadcast = 365,
OpGroupNonUniformQuadSwap = 366,
+ OpCopyLogical = 400,
+ OpPtrEqual = 401,
+ OpPtrNotEqual = 402,
+ OpPtrDiff = 403,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
+ OpTypeRayQueryProvisionalKHR = 4472,
+ OpRayQueryInitializeKHR = 4473,
+ OpRayQueryTerminateKHR = 4474,
+ OpRayQueryGenerateIntersectionKHR = 4475,
+ OpRayQueryConfirmIntersectionKHR = 4476,
+ OpRayQueryProceedKHR = 4477,
+ OpRayQueryGetIntersectionTypeKHR = 4479,
OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002,
@@ -1167,15 +1349,31 @@
OpGroupSMaxNonUniformAMD = 5007,
OpFragmentMaskFetchAMD = 5011,
OpFragmentFetchAMD = 5012,
+ OpReadClockKHR = 5056,
OpImageSampleFootprintNV = 5283,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
+ OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334,
+ OpIgnoreIntersectionKHR = 5335,
OpIgnoreIntersectionNV = 5335,
+ OpTerminateRayKHR = 5336,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceRayKHR = 5337,
+ OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
+ OpExecuteCallableKHR = 5344,
OpExecuteCallableNV = 5344,
+ OpTypeCooperativeMatrixNV = 5358,
+ OpCooperativeMatrixLoadNV = 5359,
+ OpCooperativeMatrixStoreNV = 5360,
+ OpCooperativeMatrixMulAddNV = 5361,
+ OpCooperativeMatrixLengthNV = 5362,
+ OpBeginInvocationInterlockEXT = 5364,
+ OpEndInvocationInterlockEXT = 5365,
+ OpDemoteToHelperInvocationEXT = 5380,
+ OpIsHelperInvocationEXT = 5381,
OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573,
@@ -1184,11 +1382,720 @@
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,
+ 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,
+ 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,
OpMax = 0x7fffffff,
};
+#ifdef SPV_ENABLE_UTILITY_CODE
+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 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 OpSubgroupReadInvocationKHR: *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 OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; 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 OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
+ case OpTypeRayQueryProvisionalKHR: *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 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 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 OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
+ case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; 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 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;
+ }
+}
+#endif /* SPV_ENABLE_UTILITY_CODE */
+
// Overload operator| for mask bit combining
inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
@@ -1199,6 +2106,7 @@
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)); }
} // end namespace spv
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 0cf4974..406ba19 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2018 The Khronos Group Inc.
+// 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"),
@@ -26,14 +26,16 @@
// 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, C++, C++11, JSON, Lua, Python, C#, D
//
// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
-// - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL
+// - C# will use enum classes in the Specification class located in the "Spv" namespace,
+// e.g.: Spv.Specification.SourceLanguage.GLSL
+// - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
//
// Some tokens act like mask values, which can be OR'd together,
// while others are mutually exclusive. The mask-like ones have
@@ -47,12 +49,12 @@
typedef unsigned int Id;
-#define SPV_VERSION 0x10300
-#define SPV_REVISION 6
+#define SPV_VERSION 0x10500
+#define SPV_REVISION 1
static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010300;
-static const unsigned int Revision = 6;
+static const unsigned int Version = 0x00010500;
+static const unsigned int Revision = 1;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -76,11 +78,17 @@
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,
Max = 0x7fffffff,
};
@@ -89,6 +97,8 @@
Logical = 0,
Physical32 = 1,
Physical64 = 2,
+ PhysicalStorageBuffer64 = 5348,
+ PhysicalStorageBuffer64EXT = 5348,
Max = 0x7fffffff,
};
@@ -96,6 +106,7 @@
Simple = 0,
GLSL450 = 1,
OpenCL = 2,
+ Vulkan = 3,
VulkanKHR = 3,
Max = 0x7fffffff,
};
@@ -151,6 +162,12 @@
DerivativeGroupQuadsNV = 5289,
DerivativeGroupLinearNV = 5290,
OutputTrianglesNV = 5298,
+ PixelInterlockOrderedEXT = 5366,
+ PixelInterlockUnorderedEXT = 5367,
+ SampleInterlockOrderedEXT = 5368,
+ SampleInterlockUnorderedEXT = 5369,
+ ShadingRateInterlockOrderedEXT = 5370,
+ ShadingRateInterlockUnorderedEXT = 5371,
Max = 0x7fffffff,
};
@@ -168,12 +185,20 @@
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,
Max = 0x7fffffff,
};
@@ -301,10 +326,16 @@
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,
Max = 0x7fffffff,
};
@@ -318,10 +349,16 @@
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,
};
enum class FPFastMathModeShift : unsigned {
@@ -402,6 +439,7 @@
NonWritable = 24,
NonReadable = 25,
Uniform = 26,
+ UniformId = 27,
SaturatedConversion = 28,
Stream = 29,
Location = 30,
@@ -433,9 +471,17 @@
PerViewNV = 5272,
PerTaskNV = 5273,
PerVertexNV = 5285,
+ NonUniform = 5300,
NonUniformEXT = 5300,
+ RestrictPointer = 5355,
+ RestrictPointerEXT = 5355,
+ AliasedPointer = 5356,
+ AliasedPointerEXT = 5356,
+ CounterBuffer = 5634,
HlslCounterBufferGOOGLE = 5634,
HlslSemanticGOOGLE = 5635,
+ UserSemantic = 5635,
+ UserTypeGOOGLE = 5636,
Max = 0x7fffffff,
};
@@ -524,20 +570,39 @@
FragmentSizeNV = 5292,
FragInvocationCountEXT = 5293,
InvocationsPerPixelNV = 5293,
+ 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,
+ HitTKHR = 5332,
HitTNV = 5332,
+ HitKindKHR = 5333,
HitKindNV = 5333,
+ IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
+ RayGeometryIndexKHR = 5352,
+ WarpsPerSMNV = 5374,
+ SMCountNV = 5375,
+ WarpIDNV = 5376,
+ SMIDNV = 5377,
Max = 0x7fffffff,
};
@@ -558,6 +623,11 @@
DontUnroll = 1,
DependencyInfinite = 2,
DependencyLength = 3,
+ MinIterations = 4,
+ MaxIterations = 5,
+ IterationMultiple = 6,
+ PeelCount = 7,
+ PartialCount = 8,
Max = 0x7fffffff,
};
@@ -567,6 +637,11 @@
DontUnroll = 0x00000002,
DependencyInfinite = 0x00000004,
DependencyLength = 0x00000008,
+ MinIterations = 0x00000010,
+ MaxIterations = 0x00000020,
+ IterationMultiple = 0x00000040,
+ PeelCount = 0x00000080,
+ PartialCount = 0x00000100,
};
enum class FunctionControlShift : unsigned {
@@ -596,9 +671,13 @@
CrossWorkgroupMemory = 9,
AtomicCounterMemory = 10,
ImageMemory = 11,
+ OutputMemory = 12,
OutputMemoryKHR = 12,
+ MakeAvailable = 13,
MakeAvailableKHR = 13,
+ MakeVisible = 14,
MakeVisibleKHR = 14,
+ Volatile = 15,
Max = 0x7fffffff,
};
@@ -614,17 +693,24 @@
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,
Max = 0x7fffffff,
};
@@ -634,8 +720,11 @@
Volatile = 0x00000001,
Aligned = 0x00000002,
Nontemporal = 0x00000004,
+ MakePointerAvailable = 0x00000008,
MakePointerAvailableKHR = 0x00000008,
+ MakePointerVisible = 0x00000010,
MakePointerVisibleKHR = 0x00000010,
+ NonPrivatePointer = 0x00000020,
NonPrivatePointerKHR = 0x00000020,
};
@@ -645,7 +734,9 @@
Workgroup = 2,
Subgroup = 3,
Invocation = 4,
+ QueueFamily = 5,
QueueFamilyKHR = 5,
+ ShaderCallKHR = 6,
Max = 0x7fffffff,
};
@@ -745,6 +836,8 @@
GroupNonUniformShuffleRelative = 66,
GroupNonUniformClustered = 67,
GroupNonUniformQuad = 68,
+ ShaderLayer = 69,
+ ShaderViewportIndex = 70,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
SubgroupVoteKHR = 4431,
@@ -768,11 +861,14 @@
SignedZeroInfNanPreserve = 4466,
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
+ RayQueryProvisionalKHR = 4471,
+ RayTraversalPrimitiveCullingProvisionalKHR = 4478,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
StencilExportEXT = 5013,
ImageReadWriteLodAMD = 5015,
+ ShaderClockKHR = 5055,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254,
@@ -788,25 +884,100 @@
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,
+ 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,
+ DemoteToHelperInvocationEXT = 5379,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
+ SubgroupImageMediaBlockIOINTEL = 5579,
+ IntegerFunctions2INTEL = 5584,
+ SubgroupAvcMotionEstimationINTEL = 5696,
+ SubgroupAvcMotionEstimationIntraINTEL = 5697,
+ SubgroupAvcMotionEstimationChromaINTEL = 5698,
+ 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,
+ 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,
+};
+
+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,
};
@@ -1151,12 +1322,23 @@
OpGroupNonUniformLogicalXor = 364,
OpGroupNonUniformQuadBroadcast = 365,
OpGroupNonUniformQuadSwap = 366,
+ OpCopyLogical = 400,
+ OpPtrEqual = 401,
+ OpPtrNotEqual = 402,
+ OpPtrDiff = 403,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
+ OpTypeRayQueryProvisionalKHR = 4472,
+ OpRayQueryInitializeKHR = 4473,
+ OpRayQueryTerminateKHR = 4474,
+ OpRayQueryGenerateIntersectionKHR = 4475,
+ OpRayQueryConfirmIntersectionKHR = 4476,
+ OpRayQueryProceedKHR = 4477,
+ OpRayQueryGetIntersectionTypeKHR = 4479,
OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002,
@@ -1167,15 +1349,31 @@
OpGroupSMaxNonUniformAMD = 5007,
OpFragmentMaskFetchAMD = 5011,
OpFragmentFetchAMD = 5012,
+ OpReadClockKHR = 5056,
OpImageSampleFootprintNV = 5283,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
+ OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334,
+ OpIgnoreIntersectionKHR = 5335,
OpIgnoreIntersectionNV = 5335,
+ OpTerminateRayKHR = 5336,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceRayKHR = 5337,
+ OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
+ OpExecuteCallableKHR = 5344,
OpExecuteCallableNV = 5344,
+ OpTypeCooperativeMatrixNV = 5358,
+ OpCooperativeMatrixLoadNV = 5359,
+ OpCooperativeMatrixStoreNV = 5360,
+ OpCooperativeMatrixMulAddNV = 5361,
+ OpCooperativeMatrixLengthNV = 5362,
+ OpBeginInvocationInterlockEXT = 5364,
+ OpEndInvocationInterlockEXT = 5365,
+ OpDemoteToHelperInvocationEXT = 5380,
+ OpIsHelperInvocationEXT = 5381,
OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573,
@@ -1184,11 +1382,720 @@
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,
+ 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,
+ 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,
Max = 0x7fffffff,
};
+#ifdef SPV_ENABLE_UTILITY_CODE
+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::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::OpSubgroupReadInvocationKHR: *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::OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; 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::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeRayQueryProvisionalKHR: *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::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::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::OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
+ case Op::OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; 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::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;
+ }
+}
+#endif /* SPV_ENABLE_UTILITY_CODE */
+
// Overload operator| for mask bit combining
inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
@@ -1199,6 +2106,7 @@
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)); }
} // end namespace spv
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index ca4af89..d372beb 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -6,7 +6,7 @@
"Comment":
[
[
- "Copyright (c) 2014-2018 The Khronos Group Inc.",
+ "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\"),",
@@ -36,14 +36,16 @@
],
[
"Enumeration tokens for SPIR-V, in various styles:",
- " C, C++, C++11, JSON, Lua, Python, C#",
+ " C, C++, C++11, JSON, Lua, Python, C#, D",
"",
"- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL",
"- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL",
"- C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL",
"- Lua will use tables, e.g.: spv.SourceLanguage.GLSL",
"- Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']",
- "- C# will use enum classes in the Specification class located in the \"Spv\" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL",
+ "- C# will use enum classes in the Specification class located in the \"Spv\" namespace,",
+ " e.g.: Spv.Specification.SourceLanguage.GLSL",
+ "- D will have tokens under the \"spv\" module, e.g: spv.SourceLanguage.GLSL",
"",
"Some tokens act like mask values, which can be OR'd together,",
"while others are mutually exclusive. The mask-like ones have",
@@ -52,8 +54,8 @@
]
],
"MagicNumber": 119734787,
- "Version": 66304,
- "Revision": 6,
+ "Version": 66816,
+ "Revision": 1,
"OpCodeMask": 65535,
"WordCountShift": 16
},
@@ -86,11 +88,17 @@
"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
}
},
@@ -101,7 +109,9 @@
{
"Logical": 0,
"Physical32": 1,
- "Physical64": 2
+ "Physical64": 2,
+ "PhysicalStorageBuffer64": 5348,
+ "PhysicalStorageBuffer64EXT": 5348
}
},
{
@@ -112,6 +122,7 @@
"Simple": 0,
"GLSL450": 1,
"OpenCL": 2,
+ "Vulkan": 3,
"VulkanKHR": 3
}
},
@@ -169,7 +180,13 @@
"OutputPrimitivesNV": 5270,
"DerivativeGroupQuadsNV": 5289,
"DerivativeGroupLinearNV": 5290,
- "OutputTrianglesNV": 5298
+ "OutputTrianglesNV": 5298,
+ "PixelInterlockOrderedEXT": 5366,
+ "PixelInterlockUnorderedEXT": 5367,
+ "SampleInterlockOrderedEXT": 5368,
+ "SampleInterlockUnorderedEXT": 5369,
+ "ShadingRateInterlockOrderedEXT": 5370,
+ "ShadingRateInterlockUnorderedEXT": 5371
}
},
{
@@ -190,12 +207,20 @@
"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,
- "ShaderRecordBufferNV": 5343
+ "ShaderRecordBufferKHR": 5343,
+ "ShaderRecordBufferNV": 5343,
+ "PhysicalStorageBuffer": 5349,
+ "PhysicalStorageBufferEXT": 5349
}
},
{
@@ -344,10 +369,16 @@
"ConstOffsets": 5,
"Sample": 6,
"MinLod": 7,
+ "MakeTexelAvailable": 8,
"MakeTexelAvailableKHR": 8,
+ "MakeTexelVisible": 9,
"MakeTexelVisibleKHR": 9,
+ "NonPrivateTexel": 10,
"NonPrivateTexelKHR": 10,
- "VolatileTexelKHR": 11
+ "VolatileTexel": 11,
+ "VolatileTexelKHR": 11,
+ "SignExtend": 12,
+ "ZeroExtend": 13
}
},
{
@@ -438,6 +469,7 @@
"NonWritable": 24,
"NonReadable": 25,
"Uniform": 26,
+ "UniformId": 27,
"SaturatedConversion": 28,
"Stream": 29,
"Location": 30,
@@ -469,9 +501,17 @@
"PerViewNV": 5272,
"PerTaskNV": 5273,
"PerVertexNV": 5285,
+ "NonUniform": 5300,
"NonUniformEXT": 5300,
+ "RestrictPointer": 5355,
+ "RestrictPointerEXT": 5355,
+ "AliasedPointer": 5356,
+ "AliasedPointerEXT": 5356,
+ "CounterBuffer": 5634,
"HlslCounterBufferGOOGLE": 5634,
- "HlslSemanticGOOGLE": 5635
+ "HlslSemanticGOOGLE": 5635,
+ "UserSemantic": 5635,
+ "UserTypeGOOGLE": 5636
}
},
{
@@ -563,20 +603,39 @@
"FragmentSizeNV": 5292,
"FragInvocationCountEXT": 5293,
"InvocationsPerPixelNV": 5293,
+ "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,
+ "HitTKHR": 5332,
"HitTNV": 5332,
+ "HitKindKHR": 5333,
"HitKindNV": 5333,
- "IncomingRayFlagsNV": 5351
+ "IncomingRayFlagsKHR": 5351,
+ "IncomingRayFlagsNV": 5351,
+ "RayGeometryIndexKHR": 5352,
+ "WarpsPerSMNV": 5374,
+ "SMCountNV": 5375,
+ "WarpIDNV": 5376,
+ "SMIDNV": 5377
}
},
{
@@ -596,7 +655,12 @@
"Unroll": 0,
"DontUnroll": 1,
"DependencyInfinite": 2,
- "DependencyLength": 3
+ "DependencyLength": 3,
+ "MinIterations": 4,
+ "MaxIterations": 5,
+ "IterationMultiple": 6,
+ "PeelCount": 7,
+ "PartialCount": 8
}
},
{
@@ -625,9 +689,13 @@
"CrossWorkgroupMemory": 9,
"AtomicCounterMemory": 10,
"ImageMemory": 11,
+ "OutputMemory": 12,
"OutputMemoryKHR": 12,
+ "MakeAvailable": 13,
"MakeAvailableKHR": 13,
- "MakeVisibleKHR": 14
+ "MakeVisible": 14,
+ "MakeVisibleKHR": 14,
+ "Volatile": 15
}
},
{
@@ -638,8 +706,11 @@
"Volatile": 0,
"Aligned": 1,
"Nontemporal": 2,
+ "MakePointerAvailable": 3,
"MakePointerAvailableKHR": 3,
+ "MakePointerVisible": 4,
"MakePointerVisibleKHR": 4,
+ "NonPrivatePointer": 5,
"NonPrivatePointerKHR": 5
}
},
@@ -653,7 +724,9 @@
"Workgroup": 2,
"Subgroup": 3,
"Invocation": 4,
- "QueueFamilyKHR": 5
+ "QueueFamily": 5,
+ "QueueFamilyKHR": 5,
+ "ShaderCallKHR": 6
}
},
{
@@ -760,6 +833,8 @@
"GroupNonUniformShuffleRelative": 66,
"GroupNonUniformClustered": 67,
"GroupNonUniformQuad": 68,
+ "ShaderLayer": 69,
+ "ShaderViewportIndex": 70,
"SubgroupBallotKHR": 4423,
"DrawParameters": 4427,
"SubgroupVoteKHR": 4431,
@@ -783,11 +858,14 @@
"SignedZeroInfNanPreserve": 4466,
"RoundingModeRTE": 4467,
"RoundingModeRTZ": 4468,
+ "RayQueryProvisionalKHR": 4471,
+ "RayTraversalPrimitiveCullingProvisionalKHR": 4478,
"Float16ImageAMD": 5008,
"ImageGatherBiasLodAMD": 5009,
"FragmentMaskAMD": 5010,
"StencilExportEXT": 5013,
"ImageReadWriteLodAMD": 5015,
+ "ShaderClockKHR": 5055,
"SampleMaskOverrideCoverageNV": 5249,
"GeometryShaderPassthroughNV": 5251,
"ShaderViewportIndexLayerEXT": 5254,
@@ -803,25 +881,98 @@
"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,
+ "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,
+ "DemoteToHelperInvocationEXT": 5379,
"SubgroupShuffleINTEL": 5568,
"SubgroupBufferBlockIOINTEL": 5569,
- "SubgroupImageBlockIOINTEL": 5570
+ "SubgroupImageBlockIOINTEL": 5570,
+ "SubgroupImageMediaBlockIOINTEL": 5579,
+ "IntegerFunctions2INTEL": 5584,
+ "SubgroupAvcMotionEstimationINTEL": 5696,
+ "SubgroupAvcMotionEstimationIntraINTEL": 5697,
+ "SubgroupAvcMotionEstimationChromaINTEL": 5698
+ }
+ },
+ {
+ "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
+ }
+ },
+ {
+ "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
}
},
{
@@ -1169,12 +1320,23 @@
"OpGroupNonUniformLogicalXor": 364,
"OpGroupNonUniformQuadBroadcast": 365,
"OpGroupNonUniformQuadSwap": 366,
+ "OpCopyLogical": 400,
+ "OpPtrEqual": 401,
+ "OpPtrNotEqual": 402,
+ "OpPtrDiff": 403,
"OpSubgroupBallotKHR": 4421,
"OpSubgroupFirstInvocationKHR": 4422,
"OpSubgroupAllKHR": 4428,
"OpSubgroupAnyKHR": 4429,
"OpSubgroupAllEqualKHR": 4430,
"OpSubgroupReadInvocationKHR": 4432,
+ "OpTypeRayQueryProvisionalKHR": 4472,
+ "OpRayQueryInitializeKHR": 4473,
+ "OpRayQueryTerminateKHR": 4474,
+ "OpRayQueryGenerateIntersectionKHR": 4475,
+ "OpRayQueryConfirmIntersectionKHR": 4476,
+ "OpRayQueryProceedKHR": 4477,
+ "OpRayQueryGetIntersectionTypeKHR": 4479,
"OpGroupIAddNonUniformAMD": 5000,
"OpGroupFAddNonUniformAMD": 5001,
"OpGroupFMinNonUniformAMD": 5002,
@@ -1185,15 +1347,31 @@
"OpGroupSMaxNonUniformAMD": 5007,
"OpFragmentMaskFetchAMD": 5011,
"OpFragmentFetchAMD": 5012,
+ "OpReadClockKHR": 5056,
"OpImageSampleFootprintNV": 5283,
"OpGroupNonUniformPartitionNV": 5296,
"OpWritePackedPrimitiveIndices4x8NV": 5299,
+ "OpReportIntersectionKHR": 5334,
"OpReportIntersectionNV": 5334,
+ "OpIgnoreIntersectionKHR": 5335,
"OpIgnoreIntersectionNV": 5335,
+ "OpTerminateRayKHR": 5336,
"OpTerminateRayNV": 5336,
"OpTraceNV": 5337,
+ "OpTraceRayKHR": 5337,
+ "OpTypeAccelerationStructureKHR": 5341,
"OpTypeAccelerationStructureNV": 5341,
+ "OpExecuteCallableKHR": 5344,
"OpExecuteCallableNV": 5344,
+ "OpTypeCooperativeMatrixNV": 5358,
+ "OpCooperativeMatrixLoadNV": 5359,
+ "OpCooperativeMatrixStoreNV": 5360,
+ "OpCooperativeMatrixMulAddNV": 5361,
+ "OpCooperativeMatrixLengthNV": 5362,
+ "OpBeginInvocationInterlockEXT": 5364,
+ "OpEndInvocationInterlockEXT": 5365,
+ "OpDemoteToHelperInvocationEXT": 5380,
+ "OpIsHelperInvocationEXT": 5381,
"OpSubgroupShuffleINTEL": 5571,
"OpSubgroupShuffleDownINTEL": 5572,
"OpSubgroupShuffleUpINTEL": 5573,
@@ -1202,8 +1380,161 @@
"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,
+ "OpDecorateString": 5632,
"OpDecorateStringGOOGLE": 5632,
- "OpMemberDecorateStringGOOGLE": 5633
+ "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,
+ "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
}
}
]
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 9b7b098..3774a95 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -1,4 +1,4 @@
--- Copyright (c) 2014-2018 The Khronos Group Inc.
+-- 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"),
@@ -26,14 +26,16 @@
-- 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, C++, C++11, JSON, Lua, Python, C#, D
--
-- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
-- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
-- - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
-- - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
-- - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
--- - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL
+-- - C# will use enum classes in the Specification class located in the "Spv" namespace,
+-- e.g.: Spv.Specification.SourceLanguage.GLSL
+-- - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
--
-- Some tokens act like mask values, which can be OR'd together,
-- while others are mutually exclusive. The mask-like ones have
@@ -42,8 +44,8 @@
spv = {
MagicNumber = 0x07230203,
- Version = 0x00010300,
- Revision = 6,
+ Version = 0x00010500,
+ Revision = 1,
OpCodeMask = 0xffff,
WordCountShift = 16,
@@ -66,11 +68,17 @@
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,
},
@@ -78,12 +86,15 @@
Logical = 0,
Physical32 = 1,
Physical64 = 2,
+ PhysicalStorageBuffer64 = 5348,
+ PhysicalStorageBuffer64EXT = 5348,
},
MemoryModel = {
Simple = 0,
GLSL450 = 1,
OpenCL = 2,
+ Vulkan = 3,
VulkanKHR = 3,
},
@@ -138,6 +149,12 @@
DerivativeGroupQuadsNV = 5289,
DerivativeGroupLinearNV = 5290,
OutputTrianglesNV = 5298,
+ PixelInterlockOrderedEXT = 5366,
+ PixelInterlockUnorderedEXT = 5367,
+ SampleInterlockOrderedEXT = 5368,
+ SampleInterlockUnorderedEXT = 5369,
+ ShadingRateInterlockOrderedEXT = 5370,
+ ShadingRateInterlockUnorderedEXT = 5371,
},
StorageClass = {
@@ -154,12 +171,20 @@
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,
},
Dim = {
@@ -280,10 +305,16 @@
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,
},
ImageOperandsMask = {
@@ -296,10 +327,16 @@
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,
},
FPFastMathModeShift = {
@@ -375,6 +412,7 @@
NonWritable = 24,
NonReadable = 25,
Uniform = 26,
+ UniformId = 27,
SaturatedConversion = 28,
Stream = 29,
Location = 30,
@@ -406,9 +444,17 @@
PerViewNV = 5272,
PerTaskNV = 5273,
PerVertexNV = 5285,
+ NonUniform = 5300,
NonUniformEXT = 5300,
+ RestrictPointer = 5355,
+ RestrictPointerEXT = 5355,
+ AliasedPointer = 5356,
+ AliasedPointerEXT = 5356,
+ CounterBuffer = 5634,
HlslCounterBufferGOOGLE = 5634,
HlslSemanticGOOGLE = 5635,
+ UserSemantic = 5635,
+ UserTypeGOOGLE = 5636,
},
BuiltIn = {
@@ -496,20 +542,39 @@
FragmentSizeNV = 5292,
FragInvocationCountEXT = 5293,
InvocationsPerPixelNV = 5293,
+ 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,
+ HitTKHR = 5332,
HitTNV = 5332,
+ HitKindKHR = 5333,
HitKindNV = 5333,
+ IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
+ RayGeometryIndexKHR = 5352,
+ WarpsPerSMNV = 5374,
+ SMCountNV = 5375,
+ WarpIDNV = 5376,
+ SMIDNV = 5377,
},
SelectionControlShift = {
@@ -528,6 +593,11 @@
DontUnroll = 1,
DependencyInfinite = 2,
DependencyLength = 3,
+ MinIterations = 4,
+ MaxIterations = 5,
+ IterationMultiple = 6,
+ PeelCount = 7,
+ PartialCount = 8,
},
LoopControlMask = {
@@ -536,6 +606,11 @@
DontUnroll = 0x00000002,
DependencyInfinite = 0x00000004,
DependencyLength = 0x00000008,
+ MinIterations = 0x00000010,
+ MaxIterations = 0x00000020,
+ IterationMultiple = 0x00000040,
+ PeelCount = 0x00000080,
+ PartialCount = 0x00000100,
},
FunctionControlShift = {
@@ -564,9 +639,13 @@
CrossWorkgroupMemory = 9,
AtomicCounterMemory = 10,
ImageMemory = 11,
+ OutputMemory = 12,
OutputMemoryKHR = 12,
+ MakeAvailable = 13,
MakeAvailableKHR = 13,
+ MakeVisible = 14,
MakeVisibleKHR = 14,
+ Volatile = 15,
},
MemorySemanticsMask = {
@@ -581,17 +660,24 @@
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,
},
@@ -600,8 +686,11 @@
Volatile = 0x00000001,
Aligned = 0x00000002,
Nontemporal = 0x00000004,
+ MakePointerAvailable = 0x00000008,
MakePointerAvailableKHR = 0x00000008,
+ MakePointerVisible = 0x00000010,
MakePointerVisibleKHR = 0x00000010,
+ NonPrivatePointer = 0x00000020,
NonPrivatePointerKHR = 0x00000020,
},
@@ -611,7 +700,9 @@
Workgroup = 2,
Subgroup = 3,
Invocation = 4,
+ QueueFamily = 5,
QueueFamilyKHR = 5,
+ ShaderCallKHR = 6,
},
GroupOperation = {
@@ -707,6 +798,8 @@
GroupNonUniformShuffleRelative = 66,
GroupNonUniformClustered = 67,
GroupNonUniformQuad = 68,
+ ShaderLayer = 69,
+ ShaderViewportIndex = 70,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
SubgroupVoteKHR = 4431,
@@ -730,11 +823,14 @@
SignedZeroInfNanPreserve = 4466,
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
+ RayQueryProvisionalKHR = 4471,
+ RayTraversalPrimitiveCullingProvisionalKHR = 4478,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
StencilExportEXT = 5013,
ImageReadWriteLodAMD = 5015,
+ ShaderClockKHR = 5055,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254,
@@ -750,25 +846,96 @@
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,
+ 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,
+ DemoteToHelperInvocationEXT = 5379,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
+ SubgroupImageMediaBlockIOINTEL = 5579,
+ IntegerFunctions2INTEL = 5584,
+ SubgroupAvcMotionEstimationINTEL = 5696,
+ SubgroupAvcMotionEstimationIntraINTEL = 5697,
+ SubgroupAvcMotionEstimationChromaINTEL = 5698,
+ },
+
+ RayFlagsShift = {
+ OpaqueKHR = 0,
+ NoOpaqueKHR = 1,
+ TerminateOnFirstHitKHR = 2,
+ SkipClosestHitShaderKHR = 3,
+ CullBackFacingTrianglesKHR = 4,
+ CullFrontFacingTrianglesKHR = 5,
+ CullOpaqueKHR = 6,
+ CullNoOpaqueKHR = 7,
+ SkipTrianglesKHR = 8,
+ SkipAABBsKHR = 9,
+ },
+
+ RayFlagsMask = {
+ MaskNone = 0,
+ OpaqueKHR = 0x00000001,
+ NoOpaqueKHR = 0x00000002,
+ TerminateOnFirstHitKHR = 0x00000004,
+ SkipClosestHitShaderKHR = 0x00000008,
+ CullBackFacingTrianglesKHR = 0x00000010,
+ CullFrontFacingTrianglesKHR = 0x00000020,
+ CullOpaqueKHR = 0x00000040,
+ CullNoOpaqueKHR = 0x00000080,
+ SkipTrianglesKHR = 0x00000100,
+ SkipAABBsKHR = 0x00000200,
+ },
+
+ RayQueryIntersection = {
+ RayQueryCandidateIntersectionKHR = 0,
+ RayQueryCommittedIntersectionKHR = 1,
+ },
+
+ RayQueryCommittedIntersectionType = {
+ RayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionGeneratedKHR = 2,
+ },
+
+ RayQueryCandidateIntersectionType = {
+ RayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionAABBKHR = 1,
},
Op = {
@@ -1112,12 +1279,23 @@
OpGroupNonUniformLogicalXor = 364,
OpGroupNonUniformQuadBroadcast = 365,
OpGroupNonUniformQuadSwap = 366,
+ OpCopyLogical = 400,
+ OpPtrEqual = 401,
+ OpPtrNotEqual = 402,
+ OpPtrDiff = 403,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
+ OpTypeRayQueryProvisionalKHR = 4472,
+ OpRayQueryInitializeKHR = 4473,
+ OpRayQueryTerminateKHR = 4474,
+ OpRayQueryGenerateIntersectionKHR = 4475,
+ OpRayQueryConfirmIntersectionKHR = 4476,
+ OpRayQueryProceedKHR = 4477,
+ OpRayQueryGetIntersectionTypeKHR = 4479,
OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002,
@@ -1128,15 +1306,31 @@
OpGroupSMaxNonUniformAMD = 5007,
OpFragmentMaskFetchAMD = 5011,
OpFragmentFetchAMD = 5012,
+ OpReadClockKHR = 5056,
OpImageSampleFootprintNV = 5283,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
+ OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334,
+ OpIgnoreIntersectionKHR = 5335,
OpIgnoreIntersectionNV = 5335,
+ OpTerminateRayKHR = 5336,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceRayKHR = 5337,
+ OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
+ OpExecuteCallableKHR = 5344,
OpExecuteCallableNV = 5344,
+ OpTypeCooperativeMatrixNV = 5358,
+ OpCooperativeMatrixLoadNV = 5359,
+ OpCooperativeMatrixStoreNV = 5360,
+ OpCooperativeMatrixMulAddNV = 5361,
+ OpCooperativeMatrixLengthNV = 5362,
+ OpBeginInvocationInterlockEXT = 5364,
+ OpEndInvocationInterlockEXT = 5365,
+ OpDemoteToHelperInvocationEXT = 5380,
+ OpIsHelperInvocationEXT = 5381,
OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573,
@@ -1145,8 +1339,161 @@
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,
+ 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,
+ 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,
},
}
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
old mode 100755
new mode 100644
index 7961735..a7344aa
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2014-2018 The Khronos Group Inc.
+# 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"),
@@ -26,14 +26,16 @@
# 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, C++, C++11, JSON, Lua, Python, C#, D
#
# - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
# - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
# - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
# - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
# - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
-# - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL
+# - C# will use enum classes in the Specification class located in the "Spv" namespace,
+# e.g.: Spv.Specification.SourceLanguage.GLSL
+# - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
#
# Some tokens act like mask values, which can be OR'd together,
# while others are mutually exclusive. The mask-like ones have
@@ -42,8 +44,8 @@
spv = {
'MagicNumber' : 0x07230203,
- 'Version' : 0x00010300,
- 'Revision' : 6,
+ 'Version' : 0x00010500,
+ 'Revision' : 1,
'OpCodeMask' : 0xffff,
'WordCountShift' : 16,
@@ -66,11 +68,17 @@
'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,
},
@@ -78,12 +86,15 @@
'Logical' : 0,
'Physical32' : 1,
'Physical64' : 2,
+ 'PhysicalStorageBuffer64' : 5348,
+ 'PhysicalStorageBuffer64EXT' : 5348,
},
'MemoryModel' : {
'Simple' : 0,
'GLSL450' : 1,
'OpenCL' : 2,
+ 'Vulkan' : 3,
'VulkanKHR' : 3,
},
@@ -138,6 +149,12 @@
'DerivativeGroupQuadsNV' : 5289,
'DerivativeGroupLinearNV' : 5290,
'OutputTrianglesNV' : 5298,
+ 'PixelInterlockOrderedEXT' : 5366,
+ 'PixelInterlockUnorderedEXT' : 5367,
+ 'SampleInterlockOrderedEXT' : 5368,
+ 'SampleInterlockUnorderedEXT' : 5369,
+ 'ShadingRateInterlockOrderedEXT' : 5370,
+ 'ShadingRateInterlockUnorderedEXT' : 5371,
},
'StorageClass' : {
@@ -154,12 +171,20 @@
'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,
},
'Dim' : {
@@ -280,10 +305,16 @@
'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,
},
'ImageOperandsMask' : {
@@ -296,10 +327,16 @@
'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,
},
'FPFastMathModeShift' : {
@@ -375,6 +412,7 @@
'NonWritable' : 24,
'NonReadable' : 25,
'Uniform' : 26,
+ 'UniformId' : 27,
'SaturatedConversion' : 28,
'Stream' : 29,
'Location' : 30,
@@ -406,9 +444,17 @@
'PerViewNV' : 5272,
'PerTaskNV' : 5273,
'PerVertexNV' : 5285,
+ 'NonUniform' : 5300,
'NonUniformEXT' : 5300,
+ 'RestrictPointer' : 5355,
+ 'RestrictPointerEXT' : 5355,
+ 'AliasedPointer' : 5356,
+ 'AliasedPointerEXT' : 5356,
+ 'CounterBuffer' : 5634,
'HlslCounterBufferGOOGLE' : 5634,
'HlslSemanticGOOGLE' : 5635,
+ 'UserSemantic' : 5635,
+ 'UserTypeGOOGLE' : 5636,
},
'BuiltIn' : {
@@ -496,20 +542,39 @@
'FragmentSizeNV' : 5292,
'FragInvocationCountEXT' : 5293,
'InvocationsPerPixelNV' : 5293,
+ '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,
+ 'HitTKHR' : 5332,
'HitTNV' : 5332,
+ 'HitKindKHR' : 5333,
'HitKindNV' : 5333,
+ 'IncomingRayFlagsKHR' : 5351,
'IncomingRayFlagsNV' : 5351,
+ 'RayGeometryIndexKHR' : 5352,
+ 'WarpsPerSMNV' : 5374,
+ 'SMCountNV' : 5375,
+ 'WarpIDNV' : 5376,
+ 'SMIDNV' : 5377,
},
'SelectionControlShift' : {
@@ -528,6 +593,11 @@
'DontUnroll' : 1,
'DependencyInfinite' : 2,
'DependencyLength' : 3,
+ 'MinIterations' : 4,
+ 'MaxIterations' : 5,
+ 'IterationMultiple' : 6,
+ 'PeelCount' : 7,
+ 'PartialCount' : 8,
},
'LoopControlMask' : {
@@ -536,6 +606,11 @@
'DontUnroll' : 0x00000002,
'DependencyInfinite' : 0x00000004,
'DependencyLength' : 0x00000008,
+ 'MinIterations' : 0x00000010,
+ 'MaxIterations' : 0x00000020,
+ 'IterationMultiple' : 0x00000040,
+ 'PeelCount' : 0x00000080,
+ 'PartialCount' : 0x00000100,
},
'FunctionControlShift' : {
@@ -564,9 +639,13 @@
'CrossWorkgroupMemory' : 9,
'AtomicCounterMemory' : 10,
'ImageMemory' : 11,
+ 'OutputMemory' : 12,
'OutputMemoryKHR' : 12,
+ 'MakeAvailable' : 13,
'MakeAvailableKHR' : 13,
+ 'MakeVisible' : 14,
'MakeVisibleKHR' : 14,
+ 'Volatile' : 15,
},
'MemorySemanticsMask' : {
@@ -581,17 +660,24 @@
'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,
},
@@ -600,8 +686,11 @@
'Volatile' : 0x00000001,
'Aligned' : 0x00000002,
'Nontemporal' : 0x00000004,
+ 'MakePointerAvailable' : 0x00000008,
'MakePointerAvailableKHR' : 0x00000008,
+ 'MakePointerVisible' : 0x00000010,
'MakePointerVisibleKHR' : 0x00000010,
+ 'NonPrivatePointer' : 0x00000020,
'NonPrivatePointerKHR' : 0x00000020,
},
@@ -611,7 +700,9 @@
'Workgroup' : 2,
'Subgroup' : 3,
'Invocation' : 4,
+ 'QueueFamily' : 5,
'QueueFamilyKHR' : 5,
+ 'ShaderCallKHR' : 6,
},
'GroupOperation' : {
@@ -707,6 +798,8 @@
'GroupNonUniformShuffleRelative' : 66,
'GroupNonUniformClustered' : 67,
'GroupNonUniformQuad' : 68,
+ 'ShaderLayer' : 69,
+ 'ShaderViewportIndex' : 70,
'SubgroupBallotKHR' : 4423,
'DrawParameters' : 4427,
'SubgroupVoteKHR' : 4431,
@@ -730,11 +823,14 @@
'SignedZeroInfNanPreserve' : 4466,
'RoundingModeRTE' : 4467,
'RoundingModeRTZ' : 4468,
+ 'RayQueryProvisionalKHR' : 4471,
+ 'RayTraversalPrimitiveCullingProvisionalKHR' : 4478,
'Float16ImageAMD' : 5008,
'ImageGatherBiasLodAMD' : 5009,
'FragmentMaskAMD' : 5010,
'StencilExportEXT' : 5013,
'ImageReadWriteLodAMD' : 5015,
+ 'ShaderClockKHR' : 5055,
'SampleMaskOverrideCoverageNV' : 5249,
'GeometryShaderPassthroughNV' : 5251,
'ShaderViewportIndexLayerEXT' : 5254,
@@ -750,25 +846,96 @@
'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,
+ '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,
+ 'DemoteToHelperInvocationEXT' : 5379,
'SubgroupShuffleINTEL' : 5568,
'SubgroupBufferBlockIOINTEL' : 5569,
'SubgroupImageBlockIOINTEL' : 5570,
+ 'SubgroupImageMediaBlockIOINTEL' : 5579,
+ 'IntegerFunctions2INTEL' : 5584,
+ 'SubgroupAvcMotionEstimationINTEL' : 5696,
+ 'SubgroupAvcMotionEstimationIntraINTEL' : 5697,
+ 'SubgroupAvcMotionEstimationChromaINTEL' : 5698,
+ },
+
+ 'RayFlagsShift' : {
+ 'OpaqueKHR' : 0,
+ 'NoOpaqueKHR' : 1,
+ 'TerminateOnFirstHitKHR' : 2,
+ 'SkipClosestHitShaderKHR' : 3,
+ 'CullBackFacingTrianglesKHR' : 4,
+ 'CullFrontFacingTrianglesKHR' : 5,
+ 'CullOpaqueKHR' : 6,
+ 'CullNoOpaqueKHR' : 7,
+ 'SkipTrianglesKHR' : 8,
+ 'SkipAABBsKHR' : 9,
+ },
+
+ 'RayFlagsMask' : {
+ 'MaskNone' : 0,
+ 'OpaqueKHR' : 0x00000001,
+ 'NoOpaqueKHR' : 0x00000002,
+ 'TerminateOnFirstHitKHR' : 0x00000004,
+ 'SkipClosestHitShaderKHR' : 0x00000008,
+ 'CullBackFacingTrianglesKHR' : 0x00000010,
+ 'CullFrontFacingTrianglesKHR' : 0x00000020,
+ 'CullOpaqueKHR' : 0x00000040,
+ 'CullNoOpaqueKHR' : 0x00000080,
+ 'SkipTrianglesKHR' : 0x00000100,
+ 'SkipAABBsKHR' : 0x00000200,
+ },
+
+ 'RayQueryIntersection' : {
+ 'RayQueryCandidateIntersectionKHR' : 0,
+ 'RayQueryCommittedIntersectionKHR' : 1,
+ },
+
+ 'RayQueryCommittedIntersectionType' : {
+ 'RayQueryCommittedIntersectionNoneKHR' : 0,
+ 'RayQueryCommittedIntersectionTriangleKHR' : 1,
+ 'RayQueryCommittedIntersectionGeneratedKHR' : 2,
+ },
+
+ 'RayQueryCandidateIntersectionType' : {
+ 'RayQueryCandidateIntersectionTriangleKHR' : 0,
+ 'RayQueryCandidateIntersectionAABBKHR' : 1,
},
'Op' : {
@@ -1112,12 +1279,23 @@
'OpGroupNonUniformLogicalXor' : 364,
'OpGroupNonUniformQuadBroadcast' : 365,
'OpGroupNonUniformQuadSwap' : 366,
+ 'OpCopyLogical' : 400,
+ 'OpPtrEqual' : 401,
+ 'OpPtrNotEqual' : 402,
+ 'OpPtrDiff' : 403,
'OpSubgroupBallotKHR' : 4421,
'OpSubgroupFirstInvocationKHR' : 4422,
'OpSubgroupAllKHR' : 4428,
'OpSubgroupAnyKHR' : 4429,
'OpSubgroupAllEqualKHR' : 4430,
'OpSubgroupReadInvocationKHR' : 4432,
+ 'OpTypeRayQueryProvisionalKHR' : 4472,
+ 'OpRayQueryInitializeKHR' : 4473,
+ 'OpRayQueryTerminateKHR' : 4474,
+ 'OpRayQueryGenerateIntersectionKHR' : 4475,
+ 'OpRayQueryConfirmIntersectionKHR' : 4476,
+ 'OpRayQueryProceedKHR' : 4477,
+ 'OpRayQueryGetIntersectionTypeKHR' : 4479,
'OpGroupIAddNonUniformAMD' : 5000,
'OpGroupFAddNonUniformAMD' : 5001,
'OpGroupFMinNonUniformAMD' : 5002,
@@ -1128,15 +1306,31 @@
'OpGroupSMaxNonUniformAMD' : 5007,
'OpFragmentMaskFetchAMD' : 5011,
'OpFragmentFetchAMD' : 5012,
+ 'OpReadClockKHR' : 5056,
'OpImageSampleFootprintNV' : 5283,
'OpGroupNonUniformPartitionNV' : 5296,
'OpWritePackedPrimitiveIndices4x8NV' : 5299,
+ 'OpReportIntersectionKHR' : 5334,
'OpReportIntersectionNV' : 5334,
+ 'OpIgnoreIntersectionKHR' : 5335,
'OpIgnoreIntersectionNV' : 5335,
+ 'OpTerminateRayKHR' : 5336,
'OpTerminateRayNV' : 5336,
'OpTraceNV' : 5337,
+ 'OpTraceRayKHR' : 5337,
+ 'OpTypeAccelerationStructureKHR' : 5341,
'OpTypeAccelerationStructureNV' : 5341,
+ 'OpExecuteCallableKHR' : 5344,
'OpExecuteCallableNV' : 5344,
+ 'OpTypeCooperativeMatrixNV' : 5358,
+ 'OpCooperativeMatrixLoadNV' : 5359,
+ 'OpCooperativeMatrixStoreNV' : 5360,
+ 'OpCooperativeMatrixMulAddNV' : 5361,
+ 'OpCooperativeMatrixLengthNV' : 5362,
+ 'OpBeginInvocationInterlockEXT' : 5364,
+ 'OpEndInvocationInterlockEXT' : 5365,
+ 'OpDemoteToHelperInvocationEXT' : 5380,
+ 'OpIsHelperInvocationEXT' : 5381,
'OpSubgroupShuffleINTEL' : 5571,
'OpSubgroupShuffleDownINTEL' : 5572,
'OpSubgroupShuffleUpINTEL' : 5573,
@@ -1145,8 +1339,161 @@
'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,
+ '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,
+ '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,
},
}
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
new file mode 100644
index 0000000..2c76658
--- /dev/null
+++ b/include/spirv/unified1/spv.d
@@ -0,0 +1,1550 @@
+/+
+ + 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
+ +
+ + - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
+ + - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
+ + - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
+ + - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
+ + - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
+ + - C# will use enum classes in the Specification class located in the "Spv" namespace,
+ + e.g.: Spv.Specification.SourceLanguage.GLSL
+ + - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
+ +
+ + Some tokens act like mask values, which can be OR'd together,
+ + while others are mutually exclusive. The mask-like ones have
+ + "Mask" in their name, and a parallel enum that has the shift
+ + amount (1 << x) for each corresponding enumerant.
+ +/
+
+module spv;
+
+enum uint MagicNumber = 0x07230203;
+enum uint Version = 0x00010500;
+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,
+}
+
+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,
+}
+
+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,
+ PostDepthCoverage = 4446,
+ DenormPreserve = 4459,
+ DenormFlushToZero = 4460,
+ SignedZeroInfNanPreserve = 4461,
+ RoundingModeRTE = 4462,
+ RoundingModeRTZ = 4463,
+ StencilRefReplacingEXT = 5027,
+ OutputLinesNV = 5269,
+ OutputPrimitivesNV = 5270,
+ DerivativeGroupQuadsNV = 5289,
+ DerivativeGroupLinearNV = 5290,
+ OutputTrianglesNV = 5298,
+ PixelInterlockOrderedEXT = 5366,
+ PixelInterlockUnorderedEXT = 5367,
+ SampleInterlockOrderedEXT = 5368,
+ SampleInterlockUnorderedEXT = 5369,
+ ShadingRateInterlockOrderedEXT = 5370,
+ ShadingRateInterlockUnorderedEXT = 5371,
+}
+
+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,
+}
+
+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,
+}
+
+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,
+}
+
+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,
+}
+
+enum FPFastMathModeShift : uint
+{
+ NotNaN = 0,
+ NotInf = 1,
+ NSZ = 2,
+ AllowRecip = 3,
+ Fast = 4,
+}
+
+enum FPFastMathModeMask : uint
+{
+ MaskNone = 0,
+ NotNaN = 0x00000001,
+ NotInf = 0x00000002,
+ NSZ = 0x00000004,
+ AllowRecip = 0x00000008,
+ Fast = 0x00000010,
+}
+
+enum FPRoundingMode : uint
+{
+ RTE = 0,
+ RTZ = 1,
+ RTP = 2,
+ RTN = 3,
+}
+
+enum LinkageType : uint
+{
+ Export = 0,
+ Import = 1,
+}
+
+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,
+}
+
+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,
+ PerPrimitiveNV = 5271,
+ PerViewNV = 5272,
+ PerTaskNV = 5273,
+ PerVertexNV = 5285,
+ NonUniform = 5300,
+ NonUniformEXT = 5300,
+ RestrictPointer = 5355,
+ RestrictPointerEXT = 5355,
+ AliasedPointer = 5356,
+ AliasedPointerEXT = 5356,
+ CounterBuffer = 5634,
+ HlslCounterBufferGOOGLE = 5634,
+ HlslSemanticGOOGLE = 5635,
+ UserSemantic = 5635,
+ UserTypeGOOGLE = 5636,
+}
+
+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,
+ 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,
+ 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,
+ FullyCoveredEXT = 5264,
+ TaskCountNV = 5274,
+ PrimitiveCountNV = 5275,
+ PrimitiveIndicesNV = 5276,
+ ClipDistancePerViewNV = 5277,
+ CullDistancePerViewNV = 5278,
+ LayerPerViewNV = 5279,
+ MeshViewCountNV = 5280,
+ MeshViewIndicesNV = 5281,
+ BaryCoordNV = 5286,
+ BaryCoordNoPerspNV = 5287,
+ FragSizeEXT = 5292,
+ FragmentSizeNV = 5292,
+ FragInvocationCountEXT = 5293,
+ InvocationsPerPixelNV = 5293,
+ 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,
+ HitTKHR = 5332,
+ HitTNV = 5332,
+ HitKindKHR = 5333,
+ HitKindNV = 5333,
+ IncomingRayFlagsKHR = 5351,
+ IncomingRayFlagsNV = 5351,
+ RayGeometryIndexKHR = 5352,
+ WarpsPerSMNV = 5374,
+ SMCountNV = 5375,
+ WarpIDNV = 5376,
+ SMIDNV = 5377,
+}
+
+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,
+}
+
+enum LoopControlMask : uint
+{
+ MaskNone = 0,
+ Unroll = 0x00000001,
+ DontUnroll = 0x00000002,
+ DependencyInfinite = 0x00000004,
+ DependencyLength = 0x00000008,
+ MinIterations = 0x00000010,
+ MaxIterations = 0x00000020,
+ IterationMultiple = 0x00000040,
+ PeelCount = 0x00000080,
+ PartialCount = 0x00000100,
+}
+
+enum FunctionControlShift : uint
+{
+ Inline = 0,
+ DontInline = 1,
+ Pure = 2,
+ Const = 3,
+}
+
+enum FunctionControlMask : uint
+{
+ MaskNone = 0,
+ Inline = 0x00000001,
+ DontInline = 0x00000002,
+ Pure = 0x00000004,
+ Const = 0x00000008,
+}
+
+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,
+}
+
+enum MemoryAccessMask : uint
+{
+ MaskNone = 0,
+ Volatile = 0x00000001,
+ Aligned = 0x00000002,
+ Nontemporal = 0x00000004,
+ MakePointerAvailable = 0x00000008,
+ MakePointerAvailableKHR = 0x00000008,
+ MakePointerVisible = 0x00000010,
+ MakePointerVisibleKHR = 0x00000010,
+ NonPrivatePointer = 0x00000020,
+ NonPrivatePointerKHR = 0x00000020,
+}
+
+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,
+ 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,
+ StorageBuffer8BitAccess = 4448,
+ UniformAndStorageBuffer8BitAccess = 4449,
+ StoragePushConstant8 = 4450,
+ DenormPreserve = 4464,
+ DenormFlushToZero = 4465,
+ SignedZeroInfNanPreserve = 4466,
+ RoundingModeRTE = 4467,
+ RoundingModeRTZ = 4468,
+ RayQueryProvisionalKHR = 4471,
+ RayTraversalPrimitiveCullingProvisionalKHR = 4478,
+ Float16ImageAMD = 5008,
+ ImageGatherBiasLodAMD = 5009,
+ FragmentMaskAMD = 5010,
+ StencilExportEXT = 5013,
+ ImageReadWriteLodAMD = 5015,
+ ShaderClockKHR = 5055,
+ SampleMaskOverrideCoverageNV = 5249,
+ GeometryShaderPassthroughNV = 5251,
+ ShaderViewportIndexLayerEXT = 5254,
+ ShaderViewportIndexLayerNV = 5254,
+ ShaderViewportMaskNV = 5255,
+ ShaderStereoViewNV = 5259,
+ PerViewAttributesNV = 5260,
+ FragmentFullyCoveredEXT = 5265,
+ MeshShadingNV = 5266,
+ ImageFootprintNV = 5282,
+ 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,
+ 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,
+ DemoteToHelperInvocationEXT = 5379,
+ SubgroupShuffleINTEL = 5568,
+ SubgroupBufferBlockIOINTEL = 5569,
+ SubgroupImageBlockIOINTEL = 5570,
+ SubgroupImageMediaBlockIOINTEL = 5579,
+ IntegerFunctions2INTEL = 5584,
+ SubgroupAvcMotionEstimationINTEL = 5696,
+ SubgroupAvcMotionEstimationIntraINTEL = 5697,
+ SubgroupAvcMotionEstimationChromaINTEL = 5698,
+}
+
+enum RayFlagsShift : uint
+{
+ OpaqueKHR = 0,
+ NoOpaqueKHR = 1,
+ TerminateOnFirstHitKHR = 2,
+ SkipClosestHitShaderKHR = 3,
+ CullBackFacingTrianglesKHR = 4,
+ CullFrontFacingTrianglesKHR = 5,
+ CullOpaqueKHR = 6,
+ CullNoOpaqueKHR = 7,
+ SkipTrianglesKHR = 8,
+ SkipAABBsKHR = 9,
+}
+
+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,
+}
+
+enum RayQueryIntersection : uint
+{
+ RayQueryCandidateIntersectionKHR = 0,
+ RayQueryCommittedIntersectionKHR = 1,
+}
+
+enum RayQueryCommittedIntersectionType : uint
+{
+ RayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionGeneratedKHR = 2,
+}
+
+enum RayQueryCandidateIntersectionType : uint
+{
+ RayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionAABBKHR = 1,
+}
+
+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,
+ OpSubgroupBallotKHR = 4421,
+ OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
+ OpTypeRayQueryProvisionalKHR = 4472,
+ OpRayQueryInitializeKHR = 4473,
+ OpRayQueryTerminateKHR = 4474,
+ OpRayQueryGenerateIntersectionKHR = 4475,
+ OpRayQueryConfirmIntersectionKHR = 4476,
+ OpRayQueryProceedKHR = 4477,
+ OpRayQueryGetIntersectionTypeKHR = 4479,
+ OpGroupIAddNonUniformAMD = 5000,
+ OpGroupFAddNonUniformAMD = 5001,
+ OpGroupFMinNonUniformAMD = 5002,
+ OpGroupUMinNonUniformAMD = 5003,
+ OpGroupSMinNonUniformAMD = 5004,
+ OpGroupFMaxNonUniformAMD = 5005,
+ OpGroupUMaxNonUniformAMD = 5006,
+ OpGroupSMaxNonUniformAMD = 5007,
+ OpFragmentMaskFetchAMD = 5011,
+ OpFragmentFetchAMD = 5012,
+ OpReadClockKHR = 5056,
+ OpImageSampleFootprintNV = 5283,
+ OpGroupNonUniformPartitionNV = 5296,
+ OpWritePackedPrimitiveIndices4x8NV = 5299,
+ OpReportIntersectionKHR = 5334,
+ OpReportIntersectionNV = 5334,
+ OpIgnoreIntersectionKHR = 5335,
+ OpIgnoreIntersectionNV = 5335,
+ OpTerminateRayKHR = 5336,
+ OpTerminateRayNV = 5336,
+ OpTraceNV = 5337,
+ OpTraceRayKHR = 5337,
+ OpTypeAccelerationStructureKHR = 5341,
+ OpTypeAccelerationStructureNV = 5341,
+ OpExecuteCallableKHR = 5344,
+ OpExecuteCallableNV = 5344,
+ OpTypeCooperativeMatrixNV = 5358,
+ OpCooperativeMatrixLoadNV = 5359,
+ OpCooperativeMatrixStoreNV = 5360,
+ OpCooperativeMatrixMulAddNV = 5361,
+ OpCooperativeMatrixLengthNV = 5362,
+ OpBeginInvocationInterlockEXT = 5364,
+ OpEndInvocationInterlockEXT = 5365,
+ OpDemoteToHelperInvocationEXT = 5380,
+ OpIsHelperInvocationEXT = 5381,
+ 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,
+ 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,
+ 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,
+}
+
+
diff --git a/tools/buildHeaders/CMakeLists.txt b/tools/buildHeaders/CMakeLists.txt
old mode 100755
new mode 100644
diff --git a/tools/buildHeaders/bin/generate_language_headers.py b/tools/buildHeaders/bin/generate_language_headers.py
new file mode 100755
index 0000000..c56780c
--- /dev/null
+++ b/tools/buildHeaders/bin/generate_language_headers.py
@@ -0,0 +1,242 @@
+#!/usr/bin/env python3
+# Copyright (c) 2017-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.
+
+"""Generates a C language headers from a SPIR-V JSON grammar file"""
+
+import errno
+import json
+import os.path
+import re
+
+DEFAULT_COPYRIGHT="""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.
+""".split('\n')
+
+def make_path_to_file(f):
+ """Makes all ancestor directories to the given file, if they
+ don't yet exist.
+
+ Arguments:
+ f: The file whose ancestor directories are to be created.
+ """
+ dir = os.path.dirname(os.path.abspath(f))
+ try:
+ os.makedirs(dir)
+ except OSError as e:
+ if e.errno == errno.EEXIST and os.path.isdir(dir):
+ pass
+ else:
+ raise
+
+class ExtInstGrammar:
+ """The grammar for an extended instruction set"""
+
+ def __init__(self, name, copyright, instructions, operand_kinds, version = None, revision = None):
+ self.name = name
+ self.copyright = copyright
+ self.instructions = instructions
+ self.operand_kinds = operand_kinds
+ self.version = version
+ self.revision = revision
+
+
+class LangGenerator:
+ """A language-specific generator"""
+
+ def __init__(self):
+ self.upper_case_initial = re.compile('^[A-Z]')
+ pass
+
+ def comment_prefix(self):
+ return ""
+
+ def namespace_prefix(self):
+ return ""
+
+ def uses_guards(self):
+ return False
+
+ def cpp_guard_preamble(self):
+ return ""
+
+ def cpp_guard_postamble(self):
+ return ""
+
+ def enum_value(self, prefix, name, value):
+ if self.upper_case_initial.match(name):
+ use_name = name
+ else:
+ use_name = '_' + name
+
+ return " {}{} = {},".format(prefix, use_name, value)
+
+ def generate(self, grammar):
+ """Returns a string that is the language-specific header for the given grammar"""
+
+ parts = []
+ if grammar.copyright:
+ parts.extend(["{}{}".format(self.comment_prefix(), f) for f in grammar.copyright])
+ parts.append('')
+
+ guard = 'SPIRV_UNIFIED1_{}_H_'.format(grammar.name)
+ if self.uses_guards:
+ parts.append('#ifndef {}'.format(guard))
+ parts.append('#define {}'.format(guard))
+ parts.append('')
+
+ parts.append(self.cpp_guard_preamble())
+
+ if grammar.version:
+ parts.append(self.const_definition(grammar.name, 'Version', grammar.version))
+
+ if grammar.revision is not None:
+ parts.append(self.const_definition(grammar.name, 'Revision', grammar.revision))
+
+ parts.append('')
+
+ if grammar.instructions:
+ parts.append(self.enum_prefix(grammar.name, 'Instructions'))
+ for inst in grammar.instructions:
+ parts.append(self.enum_value(grammar.name, inst['opname'], inst['opcode']))
+ parts.append(self.enum_end(grammar.name, 'Instructions'))
+ parts.append('')
+
+ if grammar.operand_kinds:
+ for kind in grammar.operand_kinds:
+ parts.append(self.enum_prefix(grammar.name, kind['kind']))
+ for e in kind['enumerants']:
+ parts.append(self.enum_value(grammar.name, e['enumerant'], e['value']))
+ parts.append(self.enum_end(grammar.name, kind['kind']))
+ parts.append('')
+
+ parts.append(self.cpp_guard_postamble())
+
+ if self.uses_guards:
+ parts.append('#endif // {}'.format(guard))
+
+ # Ensre the file ends in an end of line
+ parts.append('')
+
+ return '\n'.join(parts)
+
+
+class CLikeGenerator(LangGenerator):
+ def uses_guards(self):
+ return True
+
+ def comment_prefix(self):
+ return "// "
+
+ def const_definition(self, prefix, var, value):
+ # Use an anonymous enum. Don't use a static const int variable because
+ # that can bloat binary size.
+ return 'enum {0}{1}{2}{3} = {4},{1}{2}{3}_BitWidthPadding = 0x7fffffff{5};'.format(
+ '{', '\n ', prefix, var, value, '\n}')
+
+ def enum_prefix(self, prefix, name):
+ return 'enum {}{} {}'.format(prefix, name, '{')
+
+ def enum_end(self, prefix, enum):
+ return ' {}{}Max = 0x7fffffff\n{};\n'.format(prefix, enum, '}')
+
+ def cpp_guard_preamble(self):
+ return '#ifdef __cplusplus\nextern "C" {\n#endif\n'
+
+ def cpp_guard_postamble(self):
+ return '#ifdef __cplusplus\n}\n#endif\n'
+
+
+class CGenerator(CLikeGenerator):
+ pass
+
+
+def main():
+ import argparse
+ parser = argparse.ArgumentParser(description='Generate language headers from a JSON grammar')
+
+ parser.add_argument('--extinst-name',
+ type=str, required=True,
+ help='The name to use in tokens')
+ parser.add_argument('--extinst-grammar', metavar='<path>',
+ type=str, required=True,
+ help='input JSON grammar file for extended instruction set')
+ parser.add_argument('--extinst-output-base', metavar='<path>',
+ type=str, required=True,
+ help='Basename of the language-specific output file.')
+ args = parser.parse_args()
+
+ with open(args.extinst_grammar) as json_file:
+ grammar_json = json.loads(json_file.read())
+ if 'copyright' in grammar_json:
+ copyright = grammar_json['copyright']
+ else:
+ copyright = DEFAULT_COPYRIGHT
+ if 'version' in grammar_json:
+ version = grammar_json['version']
+ else:
+ version = 0
+ if 'operand_kinds' in grammar_json:
+ operand_kinds = grammar_json['operand_kinds']
+ else:
+ operand_kinds = []
+
+ grammar = ExtInstGrammar(name = args.extinst_name,
+ copyright = copyright,
+ instructions = grammar_json['instructions'],
+ operand_kinds = operand_kinds,
+ version = version,
+ revision = grammar_json['revision'])
+ make_path_to_file(args.extinst_output_base)
+ with open(args.extinst_output_base + '.h', 'w') as f:
+ f.write(CGenerator().generate(grammar))
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tools/buildHeaders/bin/makeExtinstHeaders.py b/tools/buildHeaders/bin/makeExtinstHeaders.py
new file mode 100755
index 0000000..780e479
--- /dev/null
+++ b/tools/buildHeaders/bin/makeExtinstHeaders.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+"""Generate C headers for certain extended instruction sets"""
+
+import subprocess
+import os
+
+# Assume we are running from the tools/buildHeaders directory
+os.chdir('../../include/spirv/unified1')
+
+def mk_extinst(name, grammar_file):
+ """Generate one C header from a grammar"""
+ script = '../../../tools/buildHeaders/bin/generate_language_headers.py'
+ subprocess.check_call(['python3',
+ script,
+ '--extinst-name=' + name,
+ '--extinst-grammar=' + grammar_file,
+ '--extinst-output-base=' + name])
+ subprocess.check_call(['dos2unix', name + '.h'])
+
+
+mk_extinst('DebugInfo', 'extinst.debuginfo.grammar.json')
+mk_extinst('OpenCLDebugInfo100', 'extinst.opencl.debuginfo.100.grammar.json')
+mk_extinst('AMD_gcn_shader', 'extinst.spv-amd-gcn-shader.grammar.json')
+mk_extinst('AMD_shader_ballot', 'extinst.spv-amd-shader-ballot.grammar.json')
+mk_extinst('AMD_shader_explicit_vertex_parameter', 'extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json')
+mk_extinst('AMD_shader_trinary_minmax', 'extinst.spv-amd-shader-trinary-minmax.grammar.json')
+mk_extinst('NonSemanticDebugPrintf', 'extinst.nonsemantic.debugprintf.grammar.json')
diff --git a/tools/buildHeaders/bin/makeHeaders b/tools/buildHeaders/bin/makeHeaders
index 20b8e04..0ca0b2f 100755
--- a/tools/buildHeaders/bin/makeHeaders
+++ b/tools/buildHeaders/bin/makeHeaders
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
+python3 bin/makeExtinstHeaders.py
+
cd ../../include/spirv/unified1
../../../tools/buildHeaders/build/install/bin/buildSpvHeaders -H spirv.core.grammar.json
-dos2unix spirv.* SpirV.*
+dos2unix spirv.* SpirV.* spv.*
diff --git a/tools/buildHeaders/header.cpp b/tools/buildHeaders/header.cpp
old mode 100755
new mode 100644
index 6f96d1c..7e8f668
--- a/tools/buildHeaders/header.cpp
+++ b/tools/buildHeaders/header.cpp
@@ -1,19 +1,19 @@
-// Copyright (c) 2014-2018 The Khronos Group Inc.
-//
+// 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/
-//
+// 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
@@ -42,6 +42,7 @@
#include <cctype>
#include <vector>
#include <utility>
+#include <set>
#include "jsoncpp/dist/json/json.h"
@@ -68,9 +69,9 @@
TPrinter();
static const int DocMagicNumber = 0x07230203;
- static const int DocVersion = 0x00010300;
- static const int DocRevision = 6;
- #define DocRevisionString "6"
+ static const int DocVersion = 0x00010500;
+ static const int DocRevision = 1;
+ #define DocRevisionString "1"
static const std::string DocCopyright;
static const std::string DocComment1;
static const std::string DocComment2;
@@ -97,7 +98,8 @@
virtual void printEpilogue(std::ostream&) const { }
virtual void printMeta(std::ostream&) const;
virtual void printTypes(std::ostream&) const { }
-
+ virtual void printHasResultType(std::ostream&) const { };
+
virtual std::string escapeComment(const std::string& s) const;
// Default printComments() uses these comment strings
@@ -107,7 +109,7 @@
virtual std::string commentEOL(bool isLast) const { return ""; }
typedef std::pair<unsigned, std::string> valpair_t;
-
+
// for printing enum values
virtual std::string enumBeg(const std::string&, enumStyle_t) const { return ""; }
virtual std::string enumEnd(const std::string&, enumStyle_t, bool isLast = false) const {
@@ -126,7 +128,7 @@
const char* fmt, bool isLast = false) const {
return "";
}
-
+
std::vector<valpair_t> getSortedVals(const Json::Value&) const;
virtual std::string indent(int count = 1) const {
@@ -149,7 +151,7 @@
}
void addComment(Json::Value& node, const std::string& str);
-
+
Json::Value spvRoot; // JSON SPIR-V data
};
@@ -167,7 +169,7 @@
}
const std::string TPrinter::DocCopyright =
- "Copyright (c) 2014-2018 The Khronos Group Inc.\n"
+ "Copyright (c) 2014-2020 The Khronos Group Inc.\n"
"\n"
"Permission is hereby granted, free of charge, to any person obtaining a copy\n"
"of this software and/or associated documentation files (the \"Materials\"),\n"
@@ -197,14 +199,16 @@
const std::string TPrinter::DocComment2 =
"Enumeration tokens for SPIR-V, in various styles:\n"
- " C, C++, C++11, JSON, Lua, Python, C#\n"
+ " C, C++, C++11, JSON, Lua, Python, C#, D\n"
"\n"
"- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL\n"
"- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL\n"
"- C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL\n"
"- Lua will use tables, e.g.: spv.SourceLanguage.GLSL\n"
"- Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']\n"
- "- C# will use enum classes in the Specification class located in the \"Spv\" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL\n"
+ "- C# will use enum classes in the Specification class located in the \"Spv\" namespace,\n"
+ " e.g.: Spv.Specification.SourceLanguage.GLSL\n"
+ "- D will have tokens under the \"spv\" module, e.g: spv.SourceLanguage.GLSL\n"
"\n"
"Some tokens act like mask values, which can be OR'd together,\n"
"while others are mutually exclusive. The mask-like ones have\n"
@@ -291,7 +295,7 @@
{
const int commentCount = spvRoot["spv"]["meta"]["Comment"].size();
int commentNum = 0;
-
+
for (const auto& comment : spvRoot["spv"]["meta"]["Comment"]) {
out << commentBeg();
@@ -323,7 +327,7 @@
void TPrinter::printDefs(std::ostream& out) const
{
const Json::Value& enums = spvRoot["spv"]["enum"];
-
+
for (auto opClass = enums.begin(); opClass != enums.end(); ++opClass) {
const bool isMask = (*opClass)["Type"].asString() == "Bit";
const auto opName = (*opClass)["Name"].asString();
@@ -338,13 +342,13 @@
out << enumFmt(opPrefix, valpair_t(0, "MaskNone"), enumNoMask);
const auto sorted = getSortedVals((*opClass)["Values"]);
-
- std::string maxEnum = maxEnumFmt(opName, valpair_t(0x7FFFFFFF, "Max"), enumHex);
+
+ std::string maxEnum = maxEnumFmt(opName, valpair_t(0x7FFFFFFF, "Max"), enumHex);
bool printMax = (style != enumMask && maxEnum.size() > 0);
for (const auto& v : sorted)
- out << enumFmt(opPrefix, v, style, !printMax && v.first == sorted.back().first);
+ out << enumFmt(opPrefix, v, style, !printMax && v.second == sorted.back().second);
if (printMax)
out << maxEnum;
@@ -362,6 +366,7 @@
printTypes(out);
printMeta(out);
printDefs(out);
+ printHasResultType(out);
printEpilogue(out);
}
@@ -391,7 +396,7 @@
}
return newStr;
}
-
+
std::string fmtConstInt(unsigned val, const std::string& name,
const char* fmt, bool isLast) const override {
return indent(3) + '"' + name + "\": " + fmtNum("%d", val) + (isLast ? "\n" : ",\n");
@@ -476,7 +481,7 @@
}
virtual void printEpilogue(std::ostream& out) const override {
- out << "#endif // #ifndef spirv_" << headerGuardSuffix() << std::endl;
+ out << "#endif" << std::endl;
}
virtual void printTypes(std::ostream& out) const override {
@@ -489,9 +494,48 @@
return std::string("static const unsigned int ") + pre() + name +
" = " + fmtNum(fmt, val) + (isLast ? ";\n\n" : ";\n");
}
-
+
virtual std::string pre() const { return ""; } // C name prefix
virtual std::string headerGuardSuffix() const = 0;
+
+ virtual std::string fmtEnumUse(const std::string& opPrefix, const std::string& name) const { return pre() + name; }
+
+ virtual void printHasResultType(std::ostream& out) const
+ {
+ const Json::Value& enums = spvRoot["spv"]["enum"];
+
+ std::set<unsigned> seenValues;
+
+ for (auto opClass = enums.begin(); opClass != enums.end(); ++opClass) {
+ const auto opName = (*opClass)["Name"].asString();
+ if (opName != "Op") {
+ continue;
+ }
+
+ out << "#ifdef SPV_ENABLE_UTILITY_CODE" << std::endl;
+ out << "inline void " << pre() << "HasResultAndType(" << pre() << opName << " opcode, bool *hasResult, bool *hasResultType) {" << std::endl;
+ out << " *hasResult = *hasResultType = false;" << std::endl;
+ out << " switch (opcode) {" << std::endl;
+ out << " default: /* unknown opcode */ break;" << std::endl;
+
+ for (auto& inst : spv::InstructionDesc) {
+
+ // Filter out duplicate enum values, which would break the switch statement.
+ // These are probably just extension enums promoted to core.
+ if (seenValues.find(inst.value) != seenValues.end()) {
+ continue;
+ }
+ seenValues.insert(inst.value);
+
+ std::string name = inst.name;
+ out << " case " << fmtEnumUse("Op", name) << ": *hasResult = " << (inst.hasResult() ? "true" : "false") << "; *hasResultType = " << (inst.hasType() ? "true" : "false") << "; break;" << std::endl;
+ }
+
+ out << " }" << std::endl;
+ out << "}" << std::endl;
+ out << "#endif /* SPV_ENABLE_UTILITY_CODE */" << std::endl << std::endl;
+ }
+ }
};
// C printer
@@ -543,19 +587,19 @@
if (isMask) {
const auto typeName = opName + styleStr(enumMask);
-
+
out << "inline " + typeName + " operator|(" + typeName + " a, " + typeName + " b) { return " +
typeName + "(unsigned(a) | unsigned(b)); }\n";
}
}
out << "\n} // end namespace spv\n\n";
- TPrinterCBase::printEpilogue(out);
+ out << "#endif // #ifndef spirv_" << headerGuardSuffix() << std::endl;
}
std::string commentBOL() const override { return "// "; }
-
+
virtual std::string enumBeg(const std::string& s, enumStyle_t style) const override {
return std::string("enum ") + s + styleStr(style) + " {\n";
}
@@ -598,6 +642,9 @@
return enumFmt(s, v, style, true);
}
+ // Add type prefix for scoped enum
+ virtual std::string fmtEnumUse(const std::string& opPrefix, const std::string& name) const { return opPrefix + "::" + name; }
+
std::string headerGuardSuffix() const override { return "HPP"; }
};
@@ -695,6 +742,40 @@
}
};
+ // D printer
+ class TPrinterD final : public TPrinter {
+ private:
+ std::string commentBeg() const override { return "/+\n"; }
+ std::string commentBOL() const override { return " + "; }
+ std::string commentEnd(bool isLast) const override { return " +/\n"; }
+
+ void printPrologue(std::ostream& out) const override {
+ out << "module spv;\n\n";
+ }
+
+ void printEpilogue(std::ostream& out) const override {
+ }
+
+ std::string enumBeg(const std::string& s, enumStyle_t style) const override {
+ return "enum " + s + styleStr(style) + " : uint\n{\n";
+ }
+
+ std::string enumEnd(const std::string& s, enumStyle_t style, bool isLast) const override {
+ return std::string("}\n\n");
+ }
+
+ std::string enumFmt(const std::string& s, const valpair_t& v,
+ enumStyle_t style, bool isLast) const override {
+ return indent() + prependIfDigit("_", v.second) + " = " + fmtStyleVal(v.first, style) + ",\n";
+ }
+
+ std::string fmtConstInt(unsigned val, const std::string& name,
+ const char* fmt, bool isLast) const override {
+ return std::string("enum uint ") + name +
+ " = " + fmtNum(fmt, val) + (isLast ? ";\n\n" : ";\n");
+ }
+ };
+
} // namespace
namespace spv {
@@ -710,6 +791,7 @@
langInfo.push_back(std::make_pair(ELangLua, "spirv.lua"));
langInfo.push_back(std::make_pair(ELangPython, "spirv.py"));
langInfo.push_back(std::make_pair(ELangCSharp, "spirv.cs"));
+ langInfo.push_back(std::make_pair(ELangD, "spv.d"));
for (const auto& lang : langInfo) {
std::ofstream out(lang.second, std::ios::out);
@@ -736,6 +818,7 @@
case ELangLua: p = TPrinterPtr(new TPrinterLua); break;
case ELangPython: p = TPrinterPtr(new TPrinterPython); break;
case ELangCSharp: p = TPrinterPtr(new TPrinterCSharp); break;
+ case ELangD: p = TPrinterPtr(new TPrinterD); break;
case ELangAll: PrintAllHeaders(); break;
default:
std::cerr << "Unknown language." << std::endl;
diff --git a/tools/buildHeaders/header.h b/tools/buildHeaders/header.h
old mode 100755
new mode 100644
index 6ab13ce..9c34b21
--- a/tools/buildHeaders/header.h
+++ b/tools/buildHeaders/header.h
@@ -1,19 +1,19 @@
-// Copyright (c) 2014-2018 The Khronos Group Inc.
-//
+// Copyright (c) 2014-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/
-//
+// 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
@@ -42,6 +42,7 @@
ELangLua, // Lua
ELangPython, // Python
ELangCSharp, // CSharp
+ ELangD, // D
ELangAll, // print headers in all languages to files
};
diff --git a/tools/buildHeaders/jsonToSpirv.cpp b/tools/buildHeaders/jsonToSpirv.cpp
old mode 100755
new mode 100644
index bb32566..5cca0b9
--- a/tools/buildHeaders/jsonToSpirv.cpp
+++ b/tools/buildHeaders/jsonToSpirv.cpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2018 The Khronos Group Inc.
+// 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"),
@@ -27,6 +27,7 @@
#include <algorithm>
#include <iostream>
#include <unordered_map>
+#include <unordered_set>
#include <utility>
#include <fstream>
@@ -40,6 +41,10 @@
// parameterization information.
InstructionValues InstructionDesc;
+// The ordered list (in printing order) of printing classes
+// (specification subsections).
+PrintingClasses InstructionPrintingClasses;
+
// Note: There is no entry for OperandOpcode. Use InstructionDesc instead.
EnumDefinition OperandClassParams[OperandOpcode];
EnumValues SourceLanguageParams;
@@ -72,6 +77,10 @@
EnumValues KernelEnqueueFlagsParams;
EnumValues KernelProfilingInfoParams;
EnumValues CapabilityParams;
+EnumValues RayFlagsParams;
+EnumValues RayQueryIntersectionParams;
+EnumValues RayQueryCommittedIntersectionTypeParams;
+EnumValues RayQueryCandidateIntersectionTypeParams;
std::pair<bool, std::string> ReadFile(const std::string& path)
{
@@ -119,8 +128,7 @@
else if (quantifier == "?")
return {OperandLiteralString, true};
else {
- assert(0 && "this case should not exist");
- return {OperandNone, false};
+ return {OperandOptionalLiteralStrings, false};
}
} else if (operandKind == "PairLiteralIntegerIdRef") {
// Used by OpSwitch in the grammar
@@ -142,7 +150,7 @@
} else if (operandKind == "LiteralSpecConstantOpInteger") {
type = OperandLiteralNumber;
} else if (operandKind == "LiteralContextDependentNumber") {
- type = OperandVariableLiterals;
+ type = OperandAnySizeLiteralNumber;
} else if (operandKind == "SourceLanguage") {
type = OperandSource;
} else if (operandKind == "ExecutionModel") {
@@ -198,7 +206,15 @@
} else if (operandKind == "FunctionControl") {
type = OperandFunction;
} else if (operandKind == "MemoryAccess") {
- type = OperandMemoryAccess;
+ type = OperandMemoryOperands;
+ } else if (operandKind == "RayFlags") {
+ type = OperandRayFlags;
+ } else if (operandKind == "RayQueryIntersection") {
+ type = OperandRayQueryIntersection;
+ } else if (operandKind == "RayQueryCommittedIntersectionType") {
+ type = OperandRayQueryCommittedIntersectionType;
+ } else if (operandKind == "RayQueryCandidateIntersectionType") {
+ type = OperandRayQueryCandidateIntersectionType;
}
if (type == OperandNone) {
@@ -230,7 +246,7 @@
return bit;
}
-void jsonToSpirv(const std::string& jsonPath)
+void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
{
// only do this once.
static bool initialized = false;
@@ -285,12 +301,40 @@
return result;
};
+ // set up the printing classes
+ std::unordered_set<std::string> tags; // short-lived local for error checking below
+ const Json::Value printingClasses = root["instruction_printing_class"];
+ for (const auto& printingClass : printingClasses) {
+ if (printingClass["tag"].asString().size() > 0)
+ tags.insert(printingClass["tag"].asString()); // just for error checking
+ else
+ std::cerr << "Error: each instruction_printing_class requires a non-empty \"tag\"" << std::endl;
+ if (buildingHeaders || printingClass["tag"].asString() != "@exclude") {
+ InstructionPrintingClasses.push_back({printingClass["tag"].asString(),
+ printingClass["heading"].asString()});
+ }
+ }
+
+ // process the instructions
const Json::Value insts = root["instructions"];
for (const auto& inst : insts) {
- const unsigned int opcode = inst["opcode"].asUInt();
+ const auto printingClass = inst["class"].asString();
+ if (printingClass.size() == 0) {
+ std::cerr << "Error: " << inst["opname"].asString()
+ << " requires a non-empty printing \"class\" tag" << std::endl;
+ }
+ if (!buildingHeaders && printingClass == "@exclude")
+ continue;
+ if (tags.find(printingClass) == tags.end()) {
+ std::cerr << "Error: " << inst["opname"].asString()
+ << " requires a \"class\" declared as a \"tag\" in \"instruction printing_class\""
+ << std::endl;
+ }
+ const auto opcode = inst["opcode"].asUInt();
const std::string name = inst["opname"].asString();
EnumCaps caps = getCaps(inst);
std::string version = inst["version"].asString();
+ std::string lastVersion = inst["lastVersion"].asString();
Extensions exts = getExts(inst);
OperandParameters operands;
bool defResultId = false;
@@ -306,9 +350,9 @@
}
InstructionDesc.emplace_back(
std::move(EnumValue(opcode, name,
- std::move(caps), std::move(version), std::move(exts),
+ std::move(caps), std::move(version), std::move(lastVersion), std::move(exts),
std::move(operands))),
- defTypeId, defResultId);
+ printingClass, defTypeId, defResultId);
}
// Specific additional context-dependent operands
@@ -339,6 +383,7 @@
continue;
EnumCaps caps(getCaps(enumerant));
std::string version = enumerant["version"].asString();
+ std::string lastVersion = enumerant["lastVersion"].asString();
Extensions exts(getExts(enumerant));
OperandParameters params;
const Json::Value& paramsJson = enumerant["parameters"];
@@ -353,7 +398,7 @@
}
dest->emplace_back(
value, enumerant["enumerant"].asString(),
- std::move(caps), std::move(version), std::move(exts), std::move(params));
+ std::move(caps), std::move(version), std::move(lastVersion), std::move(exts), std::move(params));
}
};
@@ -421,7 +466,7 @@
} else if (enumName == "Dim") {
establishOperandClass(enumName, OperandDimensionality, &DimensionalityParams, operandEnum, category);
} else if (enumName == "MemoryAccess") {
- establishOperandClass(enumName, OperandMemoryAccess, &MemoryAccessParams, operandEnum, category);
+ establishOperandClass(enumName, OperandMemoryOperands, &MemoryAccessParams, operandEnum, category);
} else if (enumName == "Scope") {
establishOperandClass(enumName, OperandScope, &ScopeParams, operandEnum, category);
} else if (enumName == "GroupOperation") {
@@ -430,6 +475,14 @@
establishOperandClass(enumName, OperandKernelEnqueueFlags, &KernelEnqueueFlagsParams, operandEnum, category);
} else if (enumName == "KernelProfilingInfo") {
establishOperandClass(enumName, OperandKernelProfilingInfo, &KernelProfilingInfoParams, operandEnum, category);
+ } else if (enumName == "RayFlags") {
+ establishOperandClass(enumName, OperandRayFlags, &RayFlagsParams, operandEnum, category);
+ } else if (enumName == "RayQueryIntersection") {
+ establishOperandClass(enumName, OperandRayQueryIntersection, &RayQueryIntersectionParams, operandEnum, category);
+ } else if (enumName == "RayQueryCommittedIntersectionType") {
+ establishOperandClass(enumName, OperandRayQueryCommittedIntersectionType, &RayQueryCommittedIntersectionTypeParams, operandEnum, category);
+ } else if (enumName == "RayQueryCandidateIntersectionType") {
+ establishOperandClass(enumName, OperandRayQueryCandidateIntersectionType, &RayQueryCandidateIntersectionTypeParams, operandEnum, category);
}
}
}
diff --git a/tools/buildHeaders/jsonToSpirv.h b/tools/buildHeaders/jsonToSpirv.h
old mode 100755
new mode 100644
index 00a2f70..9a5eafd
--- a/tools/buildHeaders/jsonToSpirv.h
+++ b/tools/buildHeaders/jsonToSpirv.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2018 The Khronos Group Inc.
+// 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"),
@@ -38,7 +38,7 @@
std::pair<bool, std::string> ReadFile(const std::string& path);
// Fill in all the parameters
-void jsonToSpirv(const std::string& jsonPath);
+void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders);
// For parameterizing operands.
enum OperandClass {
@@ -47,9 +47,11 @@
OperandVariableIds,
OperandOptionalLiteral,
OperandOptionalLiteralString,
+ OperandOptionalLiteralStrings,
OperandVariableLiterals,
OperandVariableIdLiteral,
OperandVariableLiteralId,
+ OperandAnySizeLiteralNumber,
OperandLiteralNumber,
OperandLiteralString,
OperandSource,
@@ -76,18 +78,29 @@
OperandLoop,
OperandFunction,
OperandMemorySemantics,
- OperandMemoryAccess,
+ OperandMemoryOperands,
OperandScope,
OperandGroupOperation,
OperandKernelEnqueueFlags,
OperandKernelProfilingInfo,
OperandCapability,
+ OperandRayFlags,
+ OperandRayQueryIntersection,
+ OperandRayQueryCommittedIntersectionType,
+ OperandRayQueryCandidateIntersectionType,
OperandOpcode,
OperandCount
};
+// For direct representation of the JSON grammar "instruction_printing_class".
+struct PrintingClass {
+ std::string tag;
+ std::string heading;
+};
+using PrintingClasses = std::vector<PrintingClass>;
+
// Any specific enum can have a set of capabilities that allow it:
typedef std::vector<std::string> EnumCaps;
@@ -145,6 +158,12 @@
assert((where != end()) && "Could not find enum in the enum list");
return *where;
}
+ // gets *all* entries for the value, including the first one
+ void gatherAliases(unsigned value, std::vector<EValue*>& aliases) {
+ std::for_each(begin(), end(), [&](EValue& e) {
+ if (value == e.value)
+ aliases.push_back(&e);});
+ }
// Returns the EValue with the given name. We assume uniqueness
// by name.
EValue& at(std::string name) {
@@ -167,9 +186,11 @@
class EnumValue {
public:
EnumValue() : value(0), desc(nullptr) {}
- EnumValue(unsigned int the_value, const std::string& the_name, EnumCaps&& the_caps, const std::string& the_version,
- Extensions&& the_extensions, OperandParameters&& the_operands) :
- value(the_value), name(the_name), capabilities(std::move(the_caps)), version(std::move(the_version)),
+ EnumValue(unsigned int the_value, const std::string& the_name, EnumCaps&& the_caps,
+ const std::string& the_firstVersion, const std::string& the_lastVersion,
+ Extensions&& the_extensions, OperandParameters&& the_operands) :
+ value(the_value), name(the_name), capabilities(std::move(the_caps)),
+ firstVersion(std::move(the_firstVersion)), lastVersion(std::move(the_lastVersion)),
extensions(std::move(the_extensions)), operands(std::move(the_operands)), desc(nullptr) { }
// For ValueEnum, the value from the JSON file.
@@ -178,7 +199,8 @@
unsigned value;
std::string name;
EnumCaps capabilities;
- std::string version;
+ std::string firstVersion;
+ std::string lastVersion;
// A feature only be enabled by certain extensions.
// An empty list means the feature does not require an extension.
// Normally, only Capability enums are enabled by extension. In turn,
@@ -228,28 +250,39 @@
// per OperandParameters above.
class InstructionValue : public EnumValue {
public:
- InstructionValue(EnumValue&& e, bool has_type, bool has_result)
+ InstructionValue(EnumValue&& e, const std::string& printClass, bool has_type, bool has_result)
: EnumValue(std::move(e)),
+ printingClass(printClass),
opDesc("TBD"),
- opClass(0),
typePresent(has_type),
- resultPresent(has_result) {}
+ resultPresent(has_result),
+ alias(this) { }
+ InstructionValue(const InstructionValue& v)
+ {
+ *this = v;
+ alias = this;
+ }
bool hasResult() const { return resultPresent != 0; }
bool hasType() const { return typePresent != 0; }
+ void setAlias(const InstructionValue& a) { alias = &a; }
+ const InstructionValue& getAlias() const { return *alias; }
+ bool isAlias() const { return alias != this; }
+ std::string printingClass;
const char* opDesc;
- int opClass;
protected:
int typePresent : 1;
int resultPresent : 1;
+ const InstructionValue* alias; // correct only after discovering the aliases; otherwise points to this
};
using InstructionValues = EnumValuesContainer<InstructionValue>;
// Parameterization info for all instructions.
extern InstructionValues InstructionDesc;
+extern PrintingClasses InstructionPrintingClasses;
// These hold definitions of the enumerants used for operands.
// This is indexed by OperandClass, but not including OperandOpcode.
diff --git a/tools/buildHeaders/main.cpp b/tools/buildHeaders/main.cpp
old mode 100755
new mode 100644
index e78fd1e..7e5f7f8
--- a/tools/buildHeaders/main.cpp
+++ b/tools/buildHeaders/main.cpp
@@ -1,19 +1,19 @@
-// Copyright (c) 2014-2018 The Khronos Group Inc.
-//
+// Copyright (c) 2014-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/
-//
+// 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
@@ -51,6 +51,7 @@
" Lua - Lua module\n"
" Python - Python module (also accepts Py)\n"
" C# - C# module (also accepts CSharp)\n"
+ " D - D module\n"
" -H print header in all supported languages to files in current directory\n"
);
}
@@ -91,9 +92,10 @@
Language = spv::ELangLua;
} else if (language == "python" || language == "py") {
Language = spv::ELangPython;
- }
- else if (language == "c#" || language == "csharp") {
+ } else if (language == "c#" || language == "csharp") {
Language = spv::ELangCSharp;
+ } else if (language == "d") {
+ Language = spv::ELangD;
} else
return false;
@@ -117,7 +119,7 @@
return 1;
}
- spv::jsonToSpirv(jsonPath);
+ spv::jsonToSpirv(jsonPath, (Options & EOptionPrintHeader) != 0);
if (Options & EOptionPrintHeader)
spv::PrintHeader(Language, std::cout);