aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-07-15 01:25:22 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-07-15 01:25:22 +0000
commitaff92fd5fb65205645f89e127a5674802d1e0752 (patch)
tree6ad064f4de5ba30927c512ea840bd1528df4de50
parent5a5d05464af49430eb495f1a8c6e660ce30a358e (diff)
parent8ded193f0a575733a090b27917336055bf22cc70 (diff)
downloadSPIRV-Headers-android12-mainline-conscrypt-release.tar.gz
Snap for 7550844 from 8ded193f0a575733a090b27917336055bf22cc70 to mainline-conscrypt-releaseandroid-mainline-12.0.0_r8android-mainline-12.0.0_r25android12-mainline-conscrypt-release
Change-Id: Iabaedc3cd62cf2e8d15eea43d2887286b373f18b
-rw-r--r--Android.bp88
-rw-r--r--BUILD.bazel41
-rw-r--r--BUILD.gn1
-rw-r--r--METADATA1
l---------NOTICE1
-rw-r--r--README.md17
-rw-r--r--example/CMakeLists.txt5
-rw-r--r--example/example-1.1.cpp42
-rw-r--r--example/example.cpp6
-rw-r--r--include/spirv/spir-v.xml113
-rw-r--r--include/spirv/unified1/NonSemanticClspvReflection.h73
-rw-r--r--include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json237
-rw-r--r--include/spirv/unified1/spirv.core.grammar.json2269
-rw-r--r--include/spirv/unified1/spirv.cs168
-rw-r--r--include/spirv/unified1/spirv.h244
-rw-r--r--include/spirv/unified1/spirv.hpp245
-rw-r--r--include/spirv/unified1/spirv.hpp11245
-rw-r--r--include/spirv/unified1/spirv.json176
-rw-r--r--include/spirv/unified1/spirv.lua166
-rw-r--r--include/spirv/unified1/spirv.py166
-rw-r--r--include/spirv/unified1/spv.d170
-rwxr-xr-xtools/buildHeaders/bin/makeExtinstHeaders.py1
-rw-r--r--tools/buildHeaders/header.cpp4
-rw-r--r--tools/buildHeaders/jsonToSpirv.cpp15
-rw-r--r--tools/buildHeaders/jsonToSpirv.h7
25 files changed, 3662 insertions, 839 deletions
diff --git a/Android.bp b/Android.bp
index 60f5a07..c034672 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,7 +1,67 @@
+// SPIRV-Tools requires the following filegroups:
+//
+// deqp_spirv_headers_unified1_extinst.debuginfo.grammar.json
+// deqp_spirv_headers_unified1_extinst.glsl.std.450.grammar.json
+// deqp_spirv_headers_unified1_extinst.nonsemantic.clspvreflection.grammar.json
+// deqp_spirv_headers_unified1_extinst.opencl.debuginfo.100.grammar.json
+// deqp_spirv_headers_unified1_extinst.opencl.std.100.grammar.json
+// deqp_spirv_headers_unified1_extinst.spv-amd-gcn-shader.grammar.json
+// deqp_spirv_headers_unified1_extinst.spv-amd-shader-ballot.grammar.json
+// deqp_spirv_headers_unified1_extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json
+// deqp_spirv_headers_unified1_extinst.spv-amd-shader-trinary-minmax.grammar.json
+// deqp_spirv_headers_unified1_spirv.core.grammar.json
+//
+// deqp_spirv_headers_spir-v.xml
+
+package {
+ default_applicable_licenses: ["external_deqp-deps_SPIRV-Headers_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+// See: http://go/android-license-faq
+license {
+ name: "external_deqp-deps_SPIRV-Headers_license",
+ visibility: [":__subpackages__"],
+ license_kinds: [
+ "SPDX-license-identifier-BSD",
+ "SPDX-license-identifier-MIT",
+ "legacy_unencumbered",
+ ],
+ license_text: [
+ "LICENSE",
+ ],
+}
filegroup {
- name: "deqp_spirv_headers_unified1_spirv.core.grammar.json",
- srcs: ["include/spirv/unified1/spirv.core.grammar.json"],
+ name: "deqp_spirv_headers_unified1_extinst.debuginfo.grammar.json",
+ srcs: ["include/spirv/unified1/extinst.debuginfo.grammar.json"],
+}
+
+filegroup {
+ 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_headers_unified1_extinst.nonsemantic.clspvreflection.grammar.json",
+ srcs: ["include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json"],
+}
+
+filegroup {
+ name: "deqp_spirv_headers_unified1_extinst.opencl.debuginfo.100.grammar.json",
+ srcs: ["include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json"],
}
filegroup {
@@ -10,8 +70,28 @@ filegroup {
}
filegroup {
- name: "deqp_spirv_headers_unified1_extinst.glsl.std.450.grammar.json",
- srcs: ["include/spirv/unified1/extinst.glsl.std.450.grammar.json"],
+ name: "deqp_spirv_headers_unified1_extinst.spv-amd-gcn-shader.grammar.json",
+ srcs: ["include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json"],
+}
+
+filegroup {
+ name: "deqp_spirv_headers_unified1_extinst.spv-amd-shader-ballot.grammar.json",
+ srcs: ["include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json"],
+}
+
+filegroup {
+ name: "deqp_spirv_headers_unified1_extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json",
+ srcs: ["include/spirv/unified1/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json"],
+}
+
+filegroup {
+ name: "deqp_spirv_headers_unified1_extinst.spv-amd-shader-trinary-minmax.grammar.json",
+ srcs: ["include/spirv/unified1/extinst.spv-amd-shader-trinary-minmax.grammar.json"],
+}
+
+filegroup {
+ name: "deqp_spirv_headers_unified1_spirv.core.grammar.json",
+ srcs: ["include/spirv/unified1/spirv.core.grammar.json"],
}
filegroup {
diff --git a/BUILD.bazel b/BUILD.bazel
index 9c53db3..9cb46bf 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -71,6 +71,46 @@ filegroup(
srcs = ["include/spirv/spir-v.xml"],
)
+filegroup(
+ name = "spirv_ext_inst_debuginfo_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.debuginfo.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_nonsemantic_clspvreflection_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_nonsemantic_debugprintf_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_opencl_debuginfo_100_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_spv_amd_gcn_shader_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_spv_amd_shader_ballot_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_spv_amd_shader_explicit_vertex_parameter_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json"],
+)
+
+filegroup(
+ name = "spirv_ext_inst_spv_amd_shader_trinary_minmax_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.spv-amd-shader-trinary-minmax.grammar.json"],
+)
+
cc_library(
name = "spirv_common_headers",
hdrs = [
@@ -81,6 +121,7 @@ cc_library(
"include/spirv/1.2/GLSL.std.450.h",
"include/spirv/1.2/OpenCL.std.h",
"include/spirv/unified1/GLSL.std.450.h",
+ "include/spirv/unified1/NonSemanticClspvReflection.h",
"include/spirv/unified1/NonSemanticDebugPrintf.h",
"include/spirv/unified1/OpenCL.std.h",
],
diff --git a/BUILD.gn b/BUILD.gn
index 57e35f0..be3f43b 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -33,6 +33,7 @@ source_set("spv_headers") {
"include/spirv/1.2/spirv.h",
"include/spirv/1.2/spirv.hpp",
"include/spirv/unified1/GLSL.std.450.h",
+ "include/spirv/unified1/NonSemanticClspvReflection.h",
"include/spirv/unified1/NonSemanticDebugPrintf.h",
"include/spirv/unified1/OpenCL.std.h",
"include/spirv/unified1/spirv.h",
diff --git a/METADATA b/METADATA
index 67e629f..59680f8 100644
--- a/METADATA
+++ b/METADATA
@@ -8,5 +8,6 @@ third_party {
value: "https://github.com/KhronosGroup/SPIRV-Headers.git"
}
version: "d5b2e1255f706ce1f88812217e9a554f299848af"
+ license_type: NOTICE
last_upgrade_date { year: 2018 month: 12 day: 17 }
}
diff --git a/NOTICE b/NOTICE
deleted file mode 120000
index 7a694c9..0000000
--- a/NOTICE
+++ /dev/null
@@ -1 +0,0 @@
-LICENSE \ No newline at end of file
diff --git a/README.md b/README.md
index 2ea3dc5..b1aa964 100644
--- a/README.md
+++ b/README.md
@@ -23,15 +23,28 @@ When a new version or revision of the SPIR-V specification is published,
the SPIR-V Working Group will push new commits onto master, updating
the files under [include](include).
-The SPIR-V XML registry file is updated by Khronos whenever a new enum range is allocated.
+[The SPIR-V XML registry file](include/spirv/spir-v.xml)
+is updated by Khronos whenever a new enum range is allocated.
Pull requests can be made to
- request allocation of new enum ranges in the XML registry file
+- register a new magic number for a SPIR-V generator
- reserve specific tokens in the JSON grammar
+### Registering a SPIR-V Generator Magic Number
+
+Tools that generate SPIR-V should use a magic number in the SPIR-V to help identify the
+generator.
+
+Care should be taken to follow existing precedent in populating the details of reserved tokens.
+This includes:
+- keeping generator numbers in numeric order
+- filling out all the existing fields
+
### Reserving tokens in the JSON grammar
-Care should be taken to follow existing precedent in populating the details of reserved tokens. This includes:
+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
diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt
index dff65d9..8b22f60 100644
--- a/example/CMakeLists.txt
+++ b/example/CMakeLists.txt
@@ -2,8 +2,3 @@ add_library(SPIRV-Headers-example
${CMAKE_CURRENT_SOURCE_DIR}/example.cpp)
target_include_directories(SPIRV-Headers-example
PRIVATE ${SPIRV-Headers_SOURCE_DIR}/include)
-
-add_library(SPIRV-Headers-example-1.1
- ${CMAKE_CURRENT_SOURCE_DIR}/example-1.1.cpp)
-target_include_directories(SPIRV-Headers-example-1.1
- PRIVATE ${SPIRV-Headers_SOURCE_DIR}/include)
diff --git a/example/example-1.1.cpp b/example/example-1.1.cpp
deleted file mode 100644
index 989d35c..0000000
--- a/example/example-1.1.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (c) 2016 The Khronos Group Inc.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and/or associated documentation files (the
-// "Materials"), to deal in the Materials without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Materials, and to
-// permit persons to whom the Materials are furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Materials.
-//
-// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
-// KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
-// SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
-// https://www.khronos.org/registry/
-//
-// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-
-// Use the SPIR-V 1.1 core instruction set, but with 1.0 versions
-// of the GLSL and OpenCL extended instruction sets.
-#include <spirv/1.0/GLSL.std.450.h>
-#include <spirv/1.0/OpenCL.std.h>
-#include <spirv/1.1/spirv.hpp>
-
-namespace {
-
-const GLSLstd450 kSin = GLSLstd450Sin;
-const OpenCLLIB::Entrypoints kNative_cos = OpenCLLIB::Native_cos;
-const spv::Op kNop = spv::OpNop;
-
-// This instruction is new in SPIR-V 1.1.
-const spv::Op kNamedBarrierInit = spv::OpNamedBarrierInitialize;
-
-} // anonymous namespace
diff --git a/example/example.cpp b/example/example.cpp
index 222c101..d79b62f 100644
--- a/example/example.cpp
+++ b/example/example.cpp
@@ -24,9 +24,9 @@
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-#include <spirv/1.0/GLSL.std.450.h>
-#include <spirv/1.0/OpenCL.std.h>
-#include <spirv/1.0/spirv.hpp>
+#include <spirv/unified1/GLSL.std.450.h>
+#include <spirv/unified1/OpenCL.std.h>
+#include <spirv/unified1/spirv.hpp>
namespace {
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index 2fac9c5..d1ebaab 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -23,10 +23,11 @@
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-->
<!--
- This file, spir-v.xml, is the SPIR-V Tool ID and Opcode registry. The
- canonical version of the registry, together with related schema and
+ This file, spir-v.xml, is the SPIR-V Tool ID, opcode and enumerant registry.
+ The canonical version of the registry, together with related schema and
documentation, can be found in the Khronos Registry at
- http://www.khronos.org/registry/spir-v/
+ include/spirv/spir-v.xml in the master branch at
+ https://github.com/KhronosGroup/SPIRV-Headers
-->
<!-- SECTION: SPIR-V Tool ID Definitions -->
@@ -72,32 +73,46 @@
<id value="20" vendor="W3C WebGPU Group" tool="WHLSL Shader Translator" comment="https://github.com/gpuweb/WHLSL"/>
<id value="21" vendor="Google" tool="Clspv" comment="Contact David Neto, dneto@google.com"/>
<id value="22" vendor="Google" tool="MLIR SPIR-V Serializer" comment="Contact Lei Zhang, antiagainst@google.com"/>
- <unused start="23" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
+ <id value="23" vendor="Google" tool="Tint Compiler" comment="Contact David Neto, dneto@google.com"/>
+ <id value="24" vendor="Google" tool="ANGLE Shader Compiler" comment="Contact Shahbaz Youssefi, syoussefi@google.com"/>
+ <id value="25" vendor="Netease Games" tool="Messiah Shader Compiler" comment="Contact Yuwen Wu, atyuwen@gmail.com"/>
+ <id value="26" vendor="Xenia" tool="Xenia Emulator Microcode Translator" comment="Contact Vitaliy Kuzmin, triang3l@yandex.ru, https://github.com/xenia-project/xenia"/>
+ <id value="27" vendor="Embark Studios" tool="Rust GPU Compiler Backend" comment="https://github.com/embarkstudios/rust-gpu"/>
+ <unused start="28" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
</ids>
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
- <!-- Reserve new ranges for vendors in contiguous blocks of 64
- preceding the "Future use" block below, and modify that block
- accordingly.
- 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
+ <!-- Vendors reserve new ranges of:
+ - opcode enumerants in the "opcode" list below, and
+ - non-opcode enumerants in the non-opcodes "enumerant" list below.
+ Both are reserved by contiguous blocks of 64, preceding the given
+ "Future use" blocks.
+
+ SPIR-V background:
+ - SPIR-V currently has well over 30 enums, including the opcode enum
+ - each enum has its own name space, allowing reuse of enumerants
+ - SPIR-V restricts opcode enumerants to 16 bits
+ - all other enums use 32-bit enumerants
+
+ Reservation rules:
+ - opcode reservations ("opcode") are only valid for opcodes
+ - non-opcode reservations ("enumerant") are not valid for opcodes
+ - reservations in the enumerant list are valid for all non-opcode enums
+ - it is simpler to use each non-opcode enumerant for only one purpose
+ but this is left to the discretion of the vendor
+ - all enumerants in a range should be used before allocating a new range
+ (several extensions can use enumerants from the same range)
+
+ Each vendor determines the use of enumerants in the ranges they
+ reserve. Vendors are not required to disclose those uses. If the use
+ of an enumerant is included in an extension that is adopted by a Khronos
+ extension or specification, then that enumerant's use may be permanently
fixed as if originally reserved in a Khronos range.
- 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.
- For example, to avoid unused gaps in ranges, it is customary for
- several extensions to use values from the same range.
-
- The Id type "enum" is a synonym for "opcode".
-
- Note that SPIR-V restricts opcode values to 16 bits.
-->
- <!-- Reserved opcode & enumerant blocks -->
+ <!-- Begin reservations of opcode enumerants -->
<ids type="opcode" start="0" end="4095" vendor="Khronos" comment="Reserved opcodes, not available to vendors - see the SPIR-V Specification"/>
<ids type="opcode" start="4096" end="4159" vendor="Mesa" comment="Contact TBD"/>
<ids type="opcode" start="4160" end="4415" vendor="ARM"/>
@@ -112,15 +127,41 @@
<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
+ <ids type="opcode" start="6080" end="6143" vendor="Intel" comment="Contact mariusz.merecki@intel.com"/>
+ <!-- Opcode enumerants to reserve for future use. To get a block, allocate
multiples of 64 starting at the lowest available point in this
block and add a corresponding <ids> tag immediately above. Make
sure to fill in the vendor attribute, and preferably add a contact
person/address in a comment attribute. -->
-
<!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
-
- <ids type="opcode" start="6080" end="4294967295" comment="Opcode range reservable for future use by vendors"/>
+ <ids type="opcode" start="6144" end="65535" comment="Opcode range reservable for future use by vendors"/>
+ <!-- End reservations of opcodes -->
+
+
+ <!-- Begin reservations of non-opcode enumerants -->
+ <ids type="enumerant" start="0" end="4095" vendor="Khronos" comment="Reserved enumerants, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="enumerant" start="4096" end="4159" vendor="Mesa" comment="Contact TBD"/>
+ <ids type="enumerant" start="4160" end="4415" vendor="ARM"/>
+ <ids type="enumerant" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, neil.henning@amd.com"/>
+ <ids type="enumerant" start="4480" end="4991" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/>
+ <ids type="enumerant" start="4992" end="5247" vendor="AMD"/>
+ <ids type="enumerant" start="5248" end="5503" vendor="NVIDIA"/>
+ <ids type="enumerant" start="5504" end="5567" vendor="Imagination"/>
+ <ids type="enumerant" start="5568" end="5631" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
+ <ids type="enumerant" start="5632" end="5695" vendor="Google" comment="Contact dneto@google.com"/>
+ <ids type="enumerant" start="5696" end="5823" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
+ <ids type="enumerant" start="5824" end="5951" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="enumerant" start="5952" end="6015" vendor="Codeplay" comment="Contact victor@codeplay.com"/>
+ <ids type="enumerant" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
+ <ids type="enumerant" start="6080" end="6143" vendor="Intel" comment="Contact mariusz.merecki@intel.com"/>
+ <!-- Enumerants to reserve for future use. To get a block, allocate
+ multiples of 64 starting at the lowest available point in this
+ block and add a corresponding <ids> tag immediately above. Make
+ sure to fill in the vendor attribute, and preferably add a contact
+ person/address in a comment attribute. -->
+ <!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
+ <ids type="enumerant" start="6144" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
+ <!-- End reservations of enumerants -->
<!-- SECTION: SPIR-V Loop Control Bit Reservations -->
@@ -139,8 +180,26 @@
<!-- 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="16" end="23" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="LoopControl" start="24" end="30" comment="Unreserved bits reservable for use by vendors"/>
<ids type="LoopControl" start="31" end="31" vendor="Khronos" comment="Reserved LoopControl bit, not available to vendors"/>
+
+ <!-- SECTION: SPIR-V FP Fast Math Mode Bit Reservations -->
+ <!-- Reserve ranges of bits in the "FP Fast Math Mode" bitfield.
+ Each vendor determines the use of values in their own ranges.
+ Vendors are not required to disclose those uses. If the use of a
+ value is included in an extension that is adopted by a Khronos
+ extension or specification, then that value's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+ The SPIR Working Group strongly recommends:
+ - Each value is used for only one purpose.
+ - All values in a range should be used before allocating a new range.
+ -->
+
+ <!-- Reserved FP fast math mode bits -->
+ <ids type="FPFastMathMode" start="0" end="15" vendor="Khronos" comment="Reserved FPFastMathMode bits, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="FPFastMathMode" start="16" end="17" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="FPFastMathMode" start="18" end="31" comment="Unreserved bits reservable for use by vendors"/>
+
</registry>
diff --git a/include/spirv/unified1/NonSemanticClspvReflection.h b/include/spirv/unified1/NonSemanticClspvReflection.h
new file mode 100644
index 0000000..fa7061d
--- /dev/null
+++ b/include/spirv/unified1/NonSemanticClspvReflection.h
@@ -0,0 +1,73 @@
+// Copyright (c) 2020 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and/or associated documentation files (the
+// "Materials"), to deal in the Materials without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Materials, and to
+// permit persons to whom the Materials are furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
+// KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
+// SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
+// https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+//
+
+#ifndef SPIRV_UNIFIED1_NonSemanticClspvReflection_H_
+#define SPIRV_UNIFIED1_NonSemanticClspvReflection_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ NonSemanticClspvReflectionRevision = 1,
+ NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff
+};
+
+enum NonSemanticClspvReflectionInstructions {
+ NonSemanticClspvReflectionKernel = 1,
+ NonSemanticClspvReflectionArgumentInfo = 2,
+ NonSemanticClspvReflectionArgumentStorageBuffer = 3,
+ NonSemanticClspvReflectionArgumentUniform = 4,
+ NonSemanticClspvReflectionArgumentPodStorageBuffer = 5,
+ NonSemanticClspvReflectionArgumentPodUniform = 6,
+ NonSemanticClspvReflectionArgumentPodPushConstant = 7,
+ NonSemanticClspvReflectionArgumentSampledImage = 8,
+ NonSemanticClspvReflectionArgumentStorageImage = 9,
+ NonSemanticClspvReflectionArgumentSampler = 10,
+ NonSemanticClspvReflectionArgumentWorkgroup = 11,
+ NonSemanticClspvReflectionSpecConstantWorkgroupSize = 12,
+ NonSemanticClspvReflectionSpecConstantGlobalOffset = 13,
+ NonSemanticClspvReflectionSpecConstantWorkDim = 14,
+ NonSemanticClspvReflectionPushConstantGlobalOffset = 15,
+ NonSemanticClspvReflectionPushConstantEnqueuedLocalSize = 16,
+ NonSemanticClspvReflectionPushConstantGlobalSize = 17,
+ NonSemanticClspvReflectionPushConstantRegionOffset = 18,
+ NonSemanticClspvReflectionPushConstantNumWorkgroups = 19,
+ NonSemanticClspvReflectionPushConstantRegionGroupOffset = 20,
+ NonSemanticClspvReflectionConstantDataStorageBuffer = 21,
+ NonSemanticClspvReflectionConstantDataUniform = 22,
+ NonSemanticClspvReflectionLiteralSampler = 23,
+ NonSemanticClspvReflectionPropertyRequiredWorkgroupSize = 24,
+ NonSemanticClspvReflectionInstructionsMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_NonSemanticClspvReflection_H_
diff --git a/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json b/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
new file mode 100644
index 0000000..15e5699
--- /dev/null
+++ b/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
@@ -0,0 +1,237 @@
+{
+ "revision" : 1,
+ "instructions" : [
+ {
+ "opname" : "Kernel",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Kernel" },
+ { "kind" : "IdRef", "name" : "Name" }
+ ]
+ },
+ {
+ "opname" : "ArgumentInfo",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Name" },
+ { "kind" : "IdRef", "name" : "Type Name", "quantifier" : "?" },
+ { "kind" : "IdRef", "name" : "Address Qualifier", "quantifier" : "?" },
+ { "kind" : "IdRef", "name" : "Access Qualifier", "quantifier" : "?" },
+ { "kind" : "IdRef", "name" : "Type Qualifier", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentStorageBuffer",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentUniform",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentPodStorageBuffer",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentPodUniform",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentPodPushConstant",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentSampledImage",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentStorageImage",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentSampler",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "ArgumentWorkgroup",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Decl" },
+ { "kind" : "IdRef", "name" : "Ordinal" },
+ { "kind" : "IdRef", "name" : "SpecId" },
+ { "kind" : "IdRef", "name" : "ElemSize" },
+ { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "SpecConstantWorkgroupSize",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "X" },
+ { "kind" : "IdRef", "name" : "Y" },
+ { "kind" : "IdRef", "name" : "Z" }
+ ]
+ },
+ {
+ "opname" : "SpecConstantGlobalOffset",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "X" },
+ { "kind" : "IdRef", "name" : "Y" },
+ { "kind" : "IdRef", "name" : "Z" }
+ ]
+ },
+ {
+ "opname" : "SpecConstantWorkDim",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Dim" }
+ ]
+ },
+ {
+ "opname" : "PushConstantGlobalOffset",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "PushConstantEnqueuedLocalSize",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "PushConstantGlobalSize",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "PushConstantRegionOffset",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "PushConstantNumWorkgroups",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "PushConstantRegionGroupOffset",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Offset" },
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
+ },
+ {
+ "opname" : "ConstantDataStorageBuffer",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "Data" }
+ ]
+ },
+ {
+ "opname" : "ConstantDataUniform",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "Data" }
+ ]
+ },
+ {
+ "opname" : "LiteralSampler",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "DescriptorSet" },
+ { "kind" : "IdRef", "name" : "Binding" },
+ { "kind" : "IdRef", "name" : "Mask" }
+ ]
+ },
+ {
+ "opname" : "PropertyRequiredWorkgroupSize",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Kernel" },
+ { "kind" : "IdRef", "name" : "X" },
+ { "kind" : "IdRef", "name" : "Y" },
+ { "kind" : "IdRef", "name" : "Z" }
+ ]
+ }
+ ]
+}
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 824ae4b..514965e 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -27,7 +27,7 @@
"magic_number" : "0x07230203",
"major_version" : 1,
"minor_version" : 5,
- "revision" : 1,
+ "revision" : 4,
"instruction_printing_class" : [
{
"tag" : "@exclude"
@@ -4102,6 +4102,16 @@
"version" : "1.4"
},
{
+ "opname" : "OpTerminateInvocation",
+ "class" : "Control-Flow",
+ "opcode" : 4416,
+ "extensions" : [
+ "SPV_KHR_terminate_invocation"
+ ],
+ "capabilities" : [ "Shader" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpSubgroupBallotKHR",
"class" : "Group",
"opcode" : 4421,
@@ -4187,6 +4197,206 @@
"version" : "None"
},
{
+ "opname" : "OpTraceRayKHR",
+ "class" : "Reserved",
+ "opcode" : 4445,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'Accel'" },
+ { "kind" : "IdRef", "name" : "'Ray Flags'" },
+ { "kind" : "IdRef", "name" : "'Cull Mask'" },
+ { "kind" : "IdRef", "name" : "'SBT Offset'" },
+ { "kind" : "IdRef", "name" : "'SBT Stride'" },
+ { "kind" : "IdRef", "name" : "'Miss Index'" },
+ { "kind" : "IdRef", "name" : "'Ray Origin'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmin'" },
+ { "kind" : "IdRef", "name" : "'Ray Direction'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmax'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "RayTracingKHR" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpExecuteCallableKHR",
+ "class" : "Reserved",
+ "opcode" : 4446,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'SBT Index'" },
+ { "kind" : "IdRef", "name" : "'Callable Data'" }
+ ],
+ "capabilities" : [ "RayTracingKHR" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertUToAccelerationStructureKHR",
+ "class" : "Reserved",
+ "opcode" : 4447,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Accel'" }
+ ],
+ "capabilities" : [ "RayTracingKHR", "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_tracing", "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIgnoreIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 4448,
+ "capabilities" : [ "RayTracingKHR" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTerminateRayKHR",
+ "class" : "Reserved",
+ "opcode" : 4449,
+ "capabilities" : [ "RayTracingKHR" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeRayQueryKHR",
+ "class" : "Reserved",
+ "opcode" : 4472,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryInitializeKHR",
+ "class" : "Reserved",
+ "opcode" : 4473,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Accel'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayFlags'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'CullMask'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayOrigin'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayTMin'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayDirection'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayTMax'"
+ }
+
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryTerminateKHR",
+ "class" : "Reserved",
+ "opcode" : 4474,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGenerateIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 4475,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'HitT'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryConfirmIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 4476,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryProceedKHR",
+ "class" : "Reserved",
+ "opcode" : 4477,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionTypeKHR",
+ "class" : "Reserved",
+ "opcode" : 4479,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpGroupIAddNonUniformAMD",
"class" : "Group",
"opcode" : 5000,
@@ -4400,7 +4610,7 @@
{ "kind" : "IdRef", "name" : "'Hit'" },
{ "kind" : "IdRef", "name" : "'HitKind'" }
],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
@@ -4414,7 +4624,7 @@
{ "kind" : "IdRef", "name" : "'Hit'" },
{ "kind" : "IdRef", "name" : "'HitKind'" }
],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
@@ -4422,32 +4632,16 @@
"opname" : "OpIgnoreIntersectionNV",
"class" : "Reserved",
"opcode" : 5335,
- "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" ],
+ "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" ],
"version" : "None"
},
{
"opname" : "OpTerminateRayNV",
"class" : "Reserved",
"opcode" : 5336,
- "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" ],
+ "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" ],
"version" : "None"
},
{
@@ -4468,30 +4662,8 @@
{ "kind" : "IdRef", "name" : "'Ray Tmax'" },
{ "kind" : "IdRef", "name" : "'PayloadId'" }
],
- "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" ],
+ "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" ],
"version" : "None"
},
{
@@ -4501,7 +4673,7 @@
"operands" : [
{ "kind" : "IdResult" }
],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR", "RayQueryProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR", "RayQueryKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing", "SPV_KHR_ray_query" ],
"version" : "None"
},
@@ -4512,468 +4684,11 @@
"operands" : [
{ "kind" : "IdResult" }
],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR", "RayQueryProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR", "RayQueryKHR" ],
"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,
@@ -4982,21 +4697,8 @@
{ "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" : "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" ],
+ "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" ],
"version" : "None"
},
{
@@ -5421,6 +5123,72 @@
"version" : "None"
},
{
+ "opname" : "OpConstFunctionPointerINTEL",
+ "class" : "@exclude",
+ "opcode" : 5600,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Function'" }
+ ],
+ "capabilities" : [ "FunctionPointersINTEL" ],
+ "extensions" : [ "SPV_INTEL_function_pointers" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFunctionPointerCallINTEL",
+ "class" : "@exclude",
+ "opcode" : 5601,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1'" }
+ ],
+ "capabilities" : [ "FunctionPointersINTEL" ],
+ "extensions" : [ "SPV_INTEL_function_pointers" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAsmTargetINTEL",
+ "class" : "@exclude",
+ "opcode" : 5609,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'Asm target'" }
+ ],
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAsmINTEL",
+ "class" : "@exclude",
+ "opcode" : 5610,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Asm type'" },
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "LiteralString", "name" : "'Asm instructions'" },
+ { "kind" : "LiteralString", "name" : "'Constraints'" }
+ ],
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAsmCallINTEL",
+ "class" : "@exclude",
+ "opcode" : 5611,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Asm'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0'" }
+ ],
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpDecorateString",
"class" : "Annotation",
"opcode" : 5632,
@@ -6982,6 +6750,492 @@
],
"capabilities" : [ "SubgroupAvcMotionEstimationINTEL" ],
"version" : "None"
+ },
+ {
+ "opname" : "OpVariableLengthArrayINTEL",
+ "class" : "@exclude",
+ "opcode" : 5818,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Lenght'" }
+ ],
+ "capabilities" : [ "VariableLengthArrayINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSaveMemoryINTEL",
+ "class" : "@exclude",
+ "opcode" : 5819,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "VariableLengthArrayINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRestoreMemoryINTEL",
+ "class" : "@exclude",
+ "opcode" : 5820,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Ptr'" }
+ ],
+ "capabilities" : [ "VariableLengthArrayINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpLoopControlINTEL",
+ "class" : "Reserved",
+ "opcode" : 5887,
+ "operands" : [
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Loop Control Parameters'" }
+ ],
+ "capabilities" : [ "UnstructuredLoopControlsINTEL" ],
+ "extensions" : [ "SPV_INTEL_unstructured_loop_controls" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpPtrCastToCrossWorkgroupINTEL",
+ "class" : "@exclude",
+ "opcode" : 5934,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "USMStorageClassesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpCrossWorkgroupCastToPtrINTEL",
+ "class" : "@exclude",
+ "opcode" : 5938,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "USMStorageClassesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpReadPipeBlockingINTEL",
+ "class" : "Pipe",
+ "opcode" : 5946,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "BlockingPipesINTEL" ],
+ "extensions" : [ "SPV_INTEL_blocking_pipes" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpWritePipeBlockingINTEL",
+ "class" : "Pipe",
+ "opcode" : 5947,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Packet Size'" },
+ { "kind" : "IdRef", "name" : "'Packet Alignment'" }
+ ],
+ "capabilities" : [ "BlockingPipesINTEL" ],
+ "extensions" : [ "SPV_INTEL_blocking_pipes" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFPGARegINTEL",
+ "class" : "Reserved",
+ "opcode" : 5949,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Result'" },
+ { "kind" : "IdRef", "name" : "'Input'" }
+ ],
+ "capabilities" : [ "FPGARegINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_reg" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetRayTMinKHR",
+ "class" : "Reserved",
+ "opcode" : 6016,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetRayFlagsKHR",
+ "class" : "Reserved",
+ "opcode" : 6017,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionTKHR",
+ "class" : "Reserved",
+ "opcode" : 6018,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionInstanceCustomIndexKHR",
+ "class" : "Reserved",
+ "opcode" : 6019,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionInstanceIdKHR",
+ "class" : "Reserved",
+ "opcode" : 6020,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR",
+ "class" : "Reserved",
+ "opcode" : 6021,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionGeometryIndexKHR",
+ "class" : "Reserved",
+ "opcode" : 6022,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionPrimitiveIndexKHR",
+ "class" : "Reserved",
+ "opcode" : 6023,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionBarycentricsKHR",
+ "class" : "Reserved",
+ "opcode" : 6024,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionFrontFaceKHR",
+ "class" : "Reserved",
+ "opcode" : 6025,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR",
+ "class" : "Reserved",
+ "opcode" : 6026,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionObjectRayDirectionKHR",
+ "class" : "Reserved",
+ "opcode" : 6027,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionObjectRayOriginKHR",
+ "class" : "Reserved",
+ "opcode" : 6028,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetWorldRayDirectionKHR",
+ "class" : "Reserved",
+ "opcode" : 6029,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetWorldRayOriginKHR",
+ "class" : "Reserved",
+ "opcode" : 6030,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionObjectToWorldKHR",
+ "class" : "Reserved",
+ "opcode" : 6031,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionWorldToObjectKHR",
+ "class" : "Reserved",
+ "opcode" : 6032,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAtomicFAddEXT",
+ "class" : "Atomic",
+ "opcode" : 6035,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "AtomicFloat32AddEXT", "AtomicFloat64AddEXT" ],
+ "extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeBufferSurfaceINTEL",
+ "class" : "Type-Declaration",
+ "opcode" : 6086,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeStructContinuedINTEL",
+ "class" : "Type-Declaration",
+ "opcode" : 6090,
+ "operands" : [
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
+ ],
+ "capabilities" : [ "LongConstantCompositeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConstantCompositeContinuedINTEL",
+ "class" : "Constant-Creation",
+ "opcode" : 6091,
+ "operands" : [
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ],
+ "capabilities" : [ "LongConstantCompositeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSpecConstantCompositeContinuedINTEL",
+ "class" : "Constant-Creation",
+ "opcode" : 6092,
+ "operands" : [
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ],
+ "capabilities" : [ "LongConstantCompositeINTEL" ],
+ "version" : "None"
}
],
"operand_kinds" : [
@@ -7162,6 +7416,18 @@
"enumerant" : "Fast",
"value" : "0x0010",
"capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "AllowContractFastINTEL",
+ "value" : "0x10000",
+ "capabilities" : [ "FPFastMathModeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AllowReassocINTEL",
+ "value" : "0x20000",
+ "capabilities" : [ "FPFastMathModeINTEL" ],
+ "version" : "None"
}
]
},
@@ -7251,6 +7517,86 @@
{ "kind" : "LiteralInteger" }
],
"version" : "1.4"
+ },
+ {
+ "enumerant" : "InitiationIntervalINTEL",
+ "value" : "0x10000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxConcurrencyINTEL",
+ "value" : "0x20000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DependencyArrayINTEL",
+ "value" : "0x40000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PipelineEnableINTEL",
+ "value" : "0x80000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LoopCoalesceINTEL",
+ "value" : "0x100000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxInterleavingINTEL",
+ "value" : "0x200000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SpeculatedIterationsINTEL",
+ "value" : "0x400000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NoFusionINTEL",
+ "value" : "0x800000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
+ "version" : "None"
}
]
},
@@ -7480,57 +7826,98 @@
{
"enumerant" : "NoneKHR",
"value" : "0x0000",
- "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
},
{
"enumerant" : "OpaqueKHR",
"value" : "0x0001",
- "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
},
{
"enumerant" : "NoOpaqueKHR",
"value" : "0x0002",
- "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
},
{
"enumerant" : "TerminateOnFirstHitKHR",
"value" : "0x0004",
- "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
},
{
"enumerant" : "SkipClosestHitShaderKHR",
"value" : "0x0008",
- "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
},
{
"enumerant" : "CullBackFacingTrianglesKHR",
"value" : "0x0010",
- "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
},
{
"enumerant" : "CullFrontFacingTrianglesKHR",
"value" : "0x0020",
- "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
},
{
"enumerant" : "CullOpaqueKHR",
"value" : "0x0040",
- "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
},
{
"enumerant" : "CullNoOpaqueKHR",
"value" : "0x0080",
- "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+ "version" : "None"
},
{
"enumerant" : "SkipTrianglesKHR",
"value" : "0x0100",
- "capabilities" : [ "RayTraversalPrimitiveCullingProvisionalKHR" ]
+ "capabilities" : [ "RayTraversalPrimitiveCullingKHR" ],
+ "version" : "None"
},
{
"enumerant" : "SkipAABBsKHR",
"value" : "0x0200",
- "capabilities" : [ "RayTraversalPrimitiveCullingProvisionalKHR" ]
+ "capabilities" : [ "RayTraversalPrimitiveCullingKHR" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "FragmentShadingRate",
+ "enumerants" : [
+ {
+ "enumerant" : "Vertical2Pixels",
+ "value" : "0x0001",
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "Vertical4Pixels",
+ "value" : "0x0002",
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "Horizontal2Pixels",
+ "value" : "0x0004",
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "Horizontal4Pixels",
+ "value" : "0x0008",
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "version" : "None"
}
]
},
@@ -7618,73 +8005,73 @@
{
"enumerant" : "RayGenerationNV",
"value" : 5313,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "RayGenerationKHR",
"value" : 5313,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "IntersectionNV",
"value" : 5314,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "IntersectionKHR",
"value" : 5314,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "AnyHitNV",
"value" : 5315,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "AnyHitKHR",
"value" : 5315,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "ClosestHitNV",
"value" : 5316,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "ClosestHitKHR",
"value" : 5316,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "MissNV",
"value" : 5317,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "MissKHR",
"value" : 5317,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "CallableNV",
"value" : 5318,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "CallableKHR",
"value" : 5318,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
}
]
@@ -8135,6 +8522,99 @@
"capabilities" : [ "FragmentShaderShadingRateInterlockEXT" ],
"extensions" : [ "SPV_EXT_fragment_shader_interlock" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "SharedLocalMemorySizeINTEL",
+ "value" : 5618,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RoundingModeRTPINTEL",
+ "value" : 5620,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "capabilities" : [ "RoundToInfinityINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RoundingModeRTNINTEL",
+ "value" : 5621,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "capabilities" : [ "RoundToInfinityINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FloatingPointModeALTINTEL",
+ "value" : 5622,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "capabilities" : [ "RoundToInfinityINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FloatingPointModeIEEEINTEL",
+ "value" : 5623,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "capabilities" : [ "RoundToInfinityINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxWorkgroupSizeINTEL",
+ "value" : 5893,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'max_x_size'" },
+ { "kind" : "LiteralInteger", "name" : "'max_y_size'" },
+ { "kind" : "LiteralInteger", "name" : "'max_z_size'" }
+ ],
+ "capabilities" : [ "KernelAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxWorkDimINTEL",
+ "value" : 5894,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'max_dimensions'" }
+ ],
+ "capabilities" : [ "KernelAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NoGlobalOffsetINTEL",
+ "value" : 5895,
+ "capabilities" : [ "KernelAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NumSIMDWorkitemsINTEL",
+ "value" : 5896,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'vector_width'" }
+ ],
+ "capabilities" : [ "FPGAKernelAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SchedulerTargetFmaxMhzINTEL",
+ "value" : 5903,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'target_fmax'" }
+ ],
+ "capabilities" : [ "FPGAKernelAttributesINTEL" ],
+ "version" : "None"
}
]
},
@@ -8210,84 +8690,84 @@
"enumerant" : "CallableDataNV",
"value" : 5328,
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "CallableDataKHR",
"value" : 5328,
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "IncomingCallableDataNV",
"value" : 5329,
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "IncomingCallableDataKHR",
"value" : 5329,
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "RayPayloadNV",
"value" : 5338,
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "RayPayloadKHR",
"value" : 5338,
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "HitAttributeNV",
"value" : 5339,
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "HitAttributeKHR",
"value" : 5339,
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "IncomingRayPayloadNV",
"value" : 5342,
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "IncomingRayPayloadKHR",
"value" : 5342,
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "ShaderRecordBufferNV",
"value" : 5343,
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
"enumerant" : "ShaderRecordBufferKHR",
"value" : 5343,
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"version" : "None"
},
{
@@ -8303,6 +8783,31 @@
"extensions" : [ "SPV_EXT_physical_storage_buffer" ],
"capabilities" : [ "PhysicalStorageBufferAddresses" ],
"version" : "1.5"
+ },
+ {
+ "enumerant" : "CodeSectionINTEL",
+ "value" : 5605,
+ "extensions" : [ "SPV_INTEL_function_pointers" ],
+ "capabilities" : [ "FunctionPointersINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DeviceOnlyINTEL",
+ "value" : 5936,
+ "extensions" : [
+ "SPV_INTEL_usm_storage_classes"
+ ],
+ "capabilities" : [ "USMStorageClassesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HostOnlyINTEL",
+ "value" : 5937,
+ "extensions" : [
+ "SPV_INTEL_usm_storage_classes"
+ ],
+ "capabilities" : [ "USMStorageClassesINTEL" ],
+ "version" : "None"
}
]
},
@@ -8595,6 +9100,16 @@
"enumerant" : "R8ui",
"value" : 39,
"capabilities" : [ "StorageImageExtendedFormats" ]
+ },
+ {
+ "enumerant" : "R64ui",
+ "value" : 40,
+ "capabilities" : [ "Int64ImageEXT" ]
+ },
+ {
+ "enumerant" : "R64i",
+ "value" : 41,
+ "capabilities" : [ "Int64ImageEXT" ]
}
]
},
@@ -8819,6 +9334,42 @@
},
{
"category" : "ValueEnum",
+ "kind" : "FPDenormMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Preserve",
+ "value" : 0,
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FlushToZero",
+ "value" : 1,
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FPOperationMode",
+ "enumerants" : [
+ {
+ "enumerant" : "IEEE",
+ "value" : 0,
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ALT",
+ "value" : 1,
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
"kind" : "LinkageType",
"enumerants" : [
{
@@ -9324,6 +9875,73 @@
"version" : "1.5"
},
{
+ "enumerant" : "SIMTCallINTEL",
+ "value" : 5599,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'N'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ReferencedIndirectlyINTEL",
+ "value" : 5602,
+ "capabilities" : [ "IndirectReferencesINTEL" ],
+ "extensions" : [ "SPV_INTEL_function_pointers" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ClobberINTEL",
+ "value" : 5607,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Register'" }
+ ],
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SideEffectsINTEL",
+ "value" : 5608,
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorComputeVariableINTEL",
+ "value" : 5624,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FuncParamIOKindINTEL",
+ "value" : 5625,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Kind'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorComputeFunctionINTEL",
+ "value" : 5626,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "StackCallINTEL",
+ "value" : 5627,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "GlobalVariableOffsetINTEL",
+ "value" : 5628,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Offset'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "CounterBuffer",
"value" : 5634,
"parameters" : [
@@ -9365,6 +9983,217 @@
],
"extensions" : [ "SPV_GOOGLE_user_type" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "FunctionRoundingModeINTEL",
+ "value" : 5822,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" },
+ { "kind" : "FPRoundingMode", "name" : "'FP Rounding Mode'" }
+ ],
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FunctionDenormModeINTEL",
+ "value" : 5823,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" },
+ { "kind" : "FPDenormMode", "name" : "'FP Denorm Mode'" }
+ ],
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RegisterINTEL",
+ "value" : 5825,
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MemoryINTEL",
+ "value" : 5826,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Memory Type'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "NumbanksINTEL",
+ "value" : 5827,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Banks'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BankwidthINTEL",
+ "value" : 5828,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Bank Width'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxPrivateCopiesINTEL",
+ "value" : 5829,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Maximum Copies'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SinglepumpINTEL",
+ "value" : 5830,
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DoublepumpINTEL",
+ "value" : 5831,
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MaxReplicatesINTEL",
+ "value" : 5832,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Maximum Replicates'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SimpleDualPortINTEL",
+ "value" : 5833,
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MergeINTEL",
+ "value" : 5834,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Merge Key'" },
+ { "kind" : "LiteralString", "name" : "'Merge Type'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BankBitsINTEL",
+ "value" : 5835,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Bank Bits'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ForcePow2DepthINTEL",
+ "value" : 5836,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Force Key'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BurstCoalesceINTEL",
+ "value" : 5899,
+ "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CacheSizeINTEL",
+ "value" : 5900,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Cache Size in bytes'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DontStaticallyCoalesceINTEL",
+ "value" : 5901,
+ "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PrefetchINTEL",
+ "value" : 5902,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Prefetcher Size in bytes'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "StallEnableINTEL",
+ "value" : 5905,
+ "capabilities" : [ "FPGAClusterAttributesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FuseLoopsInFunctionINTEL",
+ "value" : 5907,
+ "capabilities" : [ "LoopFuseINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BufferLocationINTEL",
+ "value" : 5921,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Buffer Location ID'" }
+ ],
+ "capabilities" : [ "FPGABufferLocationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IOPipeStorageINTEL",
+ "value" : 5944,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'IO Pipe ID'" }
+ ],
+ "capabilities" : [ "IOPipesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FunctionFloatingPointModeINTEL",
+ "value" : 6080,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" },
+ { "kind" : "FPOperationMode", "name" : "'FP Operation Mode'" }
+ ],
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SingleElementVectorINTEL",
+ "value" : 6085,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorComputeCallableFunctionINTEL",
+ "value" : 6087,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
}
]
},
@@ -9405,7 +10234,7 @@
{
"enumerant" : "PrimitiveId",
"value" : 7,
- "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingProvisionalKHR" ]
+ "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV" ]
},
{
"enumerant" : "InvocationId",
@@ -9415,12 +10244,12 @@
{
"enumerant" : "Layer",
"value" : 9,
- "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT" ]
+ "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV" ]
},
{
"enumerant" : "ViewportIndex",
"value" : 10,
- "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT" ]
+ "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV" ]
},
{
"enumerant" : "TessLevelOuter",
@@ -9658,6 +10487,13 @@
"version" : "1.3"
},
{
+ "enumerant" : "PrimitiveShadingRateKHR",
+ "value" : 4432,
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "extensions" : [ "SPV_KHR_fragment_shading_rate" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "DeviceIndex",
"value" : 4438,
"capabilities" : [ "DeviceGroup" ],
@@ -9672,6 +10508,13 @@
"version" : "1.3"
},
{
+ "enumerant" : "ShadingRateKHR",
+ "value" : 4444,
+ "capabilities" : [ "FragmentShadingRateKHR" ],
+ "extensions" : [ "SPV_KHR_fragment_shading_rate" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "BaryCoordNoPerspAMD",
"value" : 4992,
"extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
@@ -9863,203 +10706,196 @@
{
"enumerant" : "LaunchIdNV",
"value" : 5319,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "LaunchIdKHR",
"value" : 5319,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "LaunchSizeNV",
"value" : 5320,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "LaunchSizeKHR",
"value" : 5320,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "WorldRayOriginNV",
"value" : 5321,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "WorldRayOriginKHR",
"value" : 5321,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "WorldRayDirectionNV",
"value" : 5322,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "WorldRayDirectionKHR",
"value" : 5322,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "ObjectRayOriginNV",
"value" : 5323,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "ObjectRayOriginKHR",
"value" : 5323,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "ObjectRayDirectionNV",
"value" : 5324,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "ObjectRayDirectionKHR",
"value" : 5324,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "RayTminNV",
"value" : 5325,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "RayTminKHR",
"value" : 5325,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "RayTmaxNV",
"value" : 5326,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "RayTmaxKHR",
"value" : 5326,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "InstanceCustomIndexNV",
"value" : 5327,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "InstanceCustomIndexKHR",
"value" : 5327,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "ObjectToWorldNV",
"value" : 5330,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "ObjectToWorldKHR",
"value" : 5330,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "WorldToObjectNV",
"value" : 5331,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "WorldToObjectKHR",
"value" : 5331,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "HitTNV",
"value" : 5332,
- "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" ],
+ "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "HitKindNV",
"value" : 5333,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "HitKindKHR",
"value" : 5333,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "IncomingRayFlagsNV",
"value" : 5351,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "IncomingRayFlagsKHR",
"value" : 5351,
- "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "RayGeometryIndexKHR",
"value" : 5352,
- "capabilities" : [ "RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayTracingKHR" ],
"extensions" : [ "SPV_KHR_ray_tracing" ],
"version" : "None"
},
@@ -10132,7 +10968,8 @@
{
"enumerant" : "ShaderCallKHR",
"value" : 6,
- "capabilities" : [ "RayTracingProvisionalKHR" ]
+ "capabilities" : [ "RayTracingKHR" ],
+ "version" : "None"
}
]
},
@@ -10554,6 +11391,13 @@
"version" : "1.5"
},
{
+ "enumerant" : "FragmentShadingRateKHR",
+ "value" : 4422,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_fragment_shading_rate" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "SubgroupBallotKHR",
"value" : 4423,
"extensions" : [ "SPV_KHR_shader_ballot" ],
@@ -10567,6 +11411,27 @@
"version" : "1.3"
},
{
+ "enumerant" : "WorkgroupMemoryExplicitLayoutKHR",
+ "value" : 4428,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorkgroupMemoryExplicitLayout8BitAccessKHR",
+ "value" : 4429,
+ "capabilities" : [ "WorkgroupMemoryExplicitLayoutKHR" ],
+ "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorkgroupMemoryExplicitLayout16BitAccessKHR",
+ "value" : 4430,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "SubgroupVoteKHR",
"value" : 4431,
"extensions" : [ "SPV_KHR_subgroup_vote" ],
@@ -10712,13 +11577,27 @@
"version" : "None"
},
{
- "enumerant" : "RayTraversalPrimitiveCullingProvisionalKHR",
+ "enumerant" : "RayQueryKHR",
+ "value" : 4472,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTraversalPrimitiveCullingKHR",
"value" : 4478,
- "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ],
+ "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
"extensions" : [ "SPV_KHR_ray_query","SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
+ "enumerant" : "RayTracingKHR",
+ "value" : 4479,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "Float16ImageAMD",
"value" : 5008,
"capabilities" : [ "Shader" ],
@@ -10754,6 +11633,13 @@
"version" : "None"
},
{
+ "enumerant" : "Int64ImageEXT",
+ "value" : 5016,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_shader_image_int64" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "ShaderClockKHR",
"value" : 5055,
"capabilities" : [ "Shader" ],
@@ -11140,6 +12026,18 @@
"version" : "None"
},
{
+ "enumerant" : "RoundToInfinityINTEL",
+ "value" : 5582,
+ "extensions" : [ "SPV_INTEL_float_controls2" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FloatingPointModeINTEL",
+ "value" : 5583,
+ "extensions" : [ "SPV_INTEL_float_controls2" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "IntegerFunctions2INTEL",
"value" : 5584,
"capabilities" : [ "Shader" ],
@@ -11147,6 +12045,37 @@
"version" : "None"
},
{
+ "enumerant" : "FunctionPointersINTEL",
+ "value" : 5603,
+ "extensions" : [ "SPV_INTEL_function_pointers" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IndirectReferencesINTEL",
+ "value" : 5604,
+ "extensions" : [ "SPV_INTEL_function_pointers" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AsmINTEL",
+ "value" : 5606,
+ "extensions" : [ "SPV_INTEL_inline_assembly" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorComputeINTEL",
+ "value" : 5617,
+ "capabilities" : [ "VectorAnyINTEL" ],
+ "extensions" : [ "SPV_INTEL_vector_compute" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorAnyINTEL",
+ "value" : 5619,
+ "extensions" : [ "SPV_INTEL_vector_compute" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "SubgroupAvcMotionEstimationINTEL",
"value" : 5696,
"extensions" : [ "SPV_INTEL_device_side_avc_motion_estimation" ],
@@ -11163,6 +12092,129 @@
"value" : 5698,
"extensions" : [ "SPV_INTEL_device_side_avc_motion_estimation" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "VariableLengthArrayINTEL",
+ "value" : 5817,
+ "extensions" : [ "SPV_INTEL_variable_length_array" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FunctionFloatControlINTEL",
+ "value" : 5821,
+ "extensions" : [ "SPV_INTEL_float_controls2" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGAMemoryAttributesINTEL",
+ "value" : 5824,
+ "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPFastMathModeINTEL",
+ "value" : 5837,
+ "capabilities" : [ "Kernel" ],
+ "extensions" : [ "SPV_INTEL_fp_fast_math_mode" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ArbitraryPrecisionIntegersINTEL",
+ "value" : 5844,
+ "extensions" : [ "SPV_INTEL_arbitrary_precision_integers" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "UnstructuredLoopControlsINTEL",
+ "value" : 5886,
+ "extensions" : [ "SPV_INTEL_unstructured_loop_controls" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGALoopControlsINTEL",
+ "value" : 5888,
+ "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "KernelAttributesINTEL",
+ "value" : 5892,
+ "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGAKernelAttributesINTEL",
+ "value" : 5897,
+ "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGAMemoryAccessesINTEL",
+ "value" : 5898,
+ "extensions" : [ "SPV_INTEL_fpga_memory_accesses" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGAClusterAttributesINTEL",
+ "value" : 5904,
+ "extensions" : [ "SPV_INTEL_fpga_cluster_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LoopFuseINTEL",
+ "value" : 5906,
+ "extensions" : [ "SPV_INTEL_loop_fuse" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGABufferLocationINTEL",
+ "value" : 5920,
+ "extensions" : [ "SPV_INTEL_fpga_buffer_location" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "USMStorageClassesINTEL",
+ "value" : 5935,
+ "extensions" : [ "SPV_INTEL_usm_storage_classes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IOPipesINTEL",
+ "value" : 5943,
+ "extensions" : [ "SPV_INTEL_io_pipes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BlockingPipesINTEL",
+ "value" : 5945,
+ "extensions" : [ "SPV_INTEL_blocking_pipes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGARegINTEL",
+ "value" : 5948,
+ "extensions" : [ "SPV_INTEL_fpga_reg" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AtomicFloat32AddEXT",
+ "value" : 6033,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AtomicFloat64AddEXT",
+ "value" : 6034,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LongConstantCompositeINTEL",
+ "value" : 6089,
+ "extensions" : [ "SPV_INTEL_long_constant_composite" ],
+ "version" : "None"
}
]
},
@@ -11173,12 +12225,14 @@
{
"enumerant" : "RayQueryCandidateIntersectionKHR",
"value" : 0,
- "capabilities" : [ "RayQueryProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
},
{
"enumerant" : "RayQueryCommittedIntersectionKHR",
"value" : 1,
- "capabilities" : [ "RayQueryProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
}
]
},
@@ -11189,17 +12243,20 @@
{
"enumerant" : "RayQueryCommittedIntersectionNoneKHR",
"value" : 0,
- "capabilities" : [ "RayQueryProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
},
{
"enumerant" : "RayQueryCommittedIntersectionTriangleKHR",
"value" : 1,
- "capabilities" : [ "RayQueryProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
},
{
"enumerant" : "RayQueryCommittedIntersectionGeneratedKHR",
"value" : 2,
- "capabilities" : [ "RayQueryProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
}
]
},
@@ -11210,12 +12267,14 @@
{
"enumerant" : "RayQueryCandidateIntersectionTriangleKHR",
"value" : 0,
- "capabilities" : [ "RayQueryProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
},
{
"enumerant" : "RayQueryCandidateIntersectionAABBKHR",
"value" : 1,
- "capabilities" : [ "RayQueryProvisionalKHR" ]
+ "capabilities" : [ "RayQueryKHR" ],
+ "version" : "None"
}
]
},
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index c5ddff9..3a07e52 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -49,7 +49,7 @@ namespace Spv
{
public const uint MagicNumber = 0x07230203;
public const uint Version = 0x00010500;
- public const uint Revision = 1;
+ public const uint Revision = 4;
public const uint OpCodeMask = 0xffff;
public const uint WordCountShift = 16;
@@ -164,6 +164,16 @@ namespace Spv
SampleInterlockUnorderedEXT = 5369,
ShadingRateInterlockOrderedEXT = 5370,
ShadingRateInterlockUnorderedEXT = 5371,
+ SharedLocalMemorySizeINTEL = 5618,
+ RoundingModeRTPINTEL = 5620,
+ RoundingModeRTNINTEL = 5621,
+ FloatingPointModeALTINTEL = 5622,
+ FloatingPointModeIEEEINTEL = 5623,
+ MaxWorkgroupSizeINTEL = 5893,
+ MaxWorkDimINTEL = 5894,
+ NoGlobalOffsetINTEL = 5895,
+ NumSIMDWorkitemsINTEL = 5896,
+ SchedulerTargetFmaxMhzINTEL = 5903,
}
public enum StorageClass
@@ -195,6 +205,9 @@ namespace Spv
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
+ CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
}
public enum Dim
@@ -265,6 +278,8 @@ namespace Spv
Rg8ui = 37,
R16ui = 38,
R8ui = 39,
+ R64ui = 40,
+ R64i = 41,
}
public enum ImageChannelOrder
@@ -364,6 +379,8 @@ namespace Spv
NSZ = 2,
AllowRecip = 3,
Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
}
public enum FPFastMathModeMask
@@ -374,6 +391,8 @@ namespace Spv
NSZ = 0x00000004,
AllowRecip = 0x00000008,
Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
}
public enum FPRoundingMode
@@ -475,11 +494,45 @@ namespace Spv
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
+ SIMTCallINTEL = 5599,
+ ReferencedIndirectlyINTEL = 5602,
+ ClobberINTEL = 5607,
+ SideEffectsINTEL = 5608,
+ VectorComputeVariableINTEL = 5624,
+ FuncParamIOKindINTEL = 5625,
+ VectorComputeFunctionINTEL = 5626,
+ StackCallINTEL = 5627,
+ GlobalVariableOffsetINTEL = 5628,
CounterBuffer = 5634,
HlslCounterBufferGOOGLE = 5634,
HlslSemanticGOOGLE = 5635,
UserSemantic = 5635,
UserTypeGOOGLE = 5636,
+ FunctionRoundingModeINTEL = 5822,
+ FunctionDenormModeINTEL = 5823,
+ RegisterINTEL = 5825,
+ MemoryINTEL = 5826,
+ NumbanksINTEL = 5827,
+ BankwidthINTEL = 5828,
+ MaxPrivateCopiesINTEL = 5829,
+ SinglepumpINTEL = 5830,
+ DoublepumpINTEL = 5831,
+ MaxReplicatesINTEL = 5832,
+ SimpleDualPortINTEL = 5833,
+ MergeINTEL = 5834,
+ BankBitsINTEL = 5835,
+ ForcePow2DepthINTEL = 5836,
+ BurstCoalesceINTEL = 5899,
+ CacheSizeINTEL = 5900,
+ DontStaticallyCoalesceINTEL = 5901,
+ PrefetchINTEL = 5902,
+ StallEnableINTEL = 5905,
+ FuseLoopsInFunctionINTEL = 5907,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
}
public enum BuiltIn
@@ -538,8 +591,10 @@ namespace Spv
BaseVertex = 4424,
BaseInstance = 4425,
DrawIndex = 4426,
+ PrimitiveShadingRateKHR = 4432,
DeviceIndex = 4438,
ViewIndex = 4440,
+ ShadingRateKHR = 4444,
BaryCoordNoPerspAMD = 4992,
BaryCoordNoPerspCentroidAMD = 4993,
BaryCoordNoPerspSampleAMD = 4994,
@@ -590,7 +645,6 @@ namespace Spv
ObjectToWorldNV = 5330,
WorldToObjectKHR = 5331,
WorldToObjectNV = 5331,
- HitTKHR = 5332,
HitTNV = 5332,
HitKindKHR = 5333,
HitKindNV = 5333,
@@ -627,6 +681,14 @@ namespace Spv
IterationMultiple = 6,
PeelCount = 7,
PartialCount = 8,
+ InitiationIntervalINTEL = 16,
+ MaxConcurrencyINTEL = 17,
+ DependencyArrayINTEL = 18,
+ PipelineEnableINTEL = 19,
+ LoopCoalesceINTEL = 20,
+ MaxInterleavingINTEL = 21,
+ SpeculatedIterationsINTEL = 22,
+ NoFusionINTEL = 23,
}
public enum LoopControlMask
@@ -641,6 +703,14 @@ namespace Spv
IterationMultiple = 0x00000040,
PeelCount = 0x00000080,
PartialCount = 0x00000100,
+ InitiationIntervalINTEL = 0x00010000,
+ MaxConcurrencyINTEL = 0x00020000,
+ DependencyArrayINTEL = 0x00040000,
+ PipelineEnableINTEL = 0x00080000,
+ LoopCoalesceINTEL = 0x00100000,
+ MaxInterleavingINTEL = 0x00200000,
+ SpeculatedIterationsINTEL = 0x00400000,
+ NoFusionINTEL = 0x00800000,
}
public enum FunctionControlShift
@@ -842,8 +912,12 @@ namespace Spv
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
+ FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
+ WorkgroupMemoryExplicitLayoutKHR = 4428,
+ WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
SubgroupVoteKHR = 4431,
StorageBuffer16BitAccess = 4433,
StorageUniformBufferBlock16 = 4433,
@@ -866,12 +940,15 @@ namespace Spv
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
RayQueryProvisionalKHR = 4471,
- RayTraversalPrimitiveCullingProvisionalKHR = 4478,
+ RayQueryKHR = 4472,
+ RayTraversalPrimitiveCullingKHR = 4478,
+ RayTracingKHR = 4479,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
StencilExportEXT = 5013,
ImageReadWriteLodAMD = 5015,
+ Int64ImageEXT = 5016,
ShaderClockKHR = 5055,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
@@ -931,10 +1008,37 @@ namespace Spv
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
SubgroupImageMediaBlockIOINTEL = 5579,
+ RoundToInfinityINTEL = 5582,
+ FloatingPointModeINTEL = 5583,
IntegerFunctions2INTEL = 5584,
+ FunctionPointersINTEL = 5603,
+ IndirectReferencesINTEL = 5604,
+ AsmINTEL = 5606,
+ VectorComputeINTEL = 5617,
+ VectorAnyINTEL = 5619,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
+ VariableLengthArrayINTEL = 5817,
+ FunctionFloatControlINTEL = 5821,
+ FPGAMemoryAttributesINTEL = 5824,
+ FPFastMathModeINTEL = 5837,
+ ArbitraryPrecisionIntegersINTEL = 5844,
+ UnstructuredLoopControlsINTEL = 5886,
+ FPGALoopControlsINTEL = 5888,
+ KernelAttributesINTEL = 5892,
+ FPGAKernelAttributesINTEL = 5897,
+ FPGAMemoryAccessesINTEL = 5898,
+ FPGAClusterAttributesINTEL = 5904,
+ LoopFuseINTEL = 5906,
+ FPGABufferLocationINTEL = 5920,
+ USMStorageClassesINTEL = 5935,
+ IOPipesINTEL = 5943,
+ BlockingPipesINTEL = 5945,
+ FPGARegINTEL = 5948,
+ AtomicFloat32AddEXT = 6033,
+ AtomicFloat64AddEXT = 6034,
+ LongConstantCompositeINTEL = 6089,
}
public enum RayFlagsShift
@@ -985,6 +1089,33 @@ namespace Spv
RayQueryCandidateIntersectionAABBKHR = 1,
}
+ public enum FragmentShadingRateShift
+ {
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+ }
+
+ public enum FragmentShadingRateMask
+ {
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+ }
+
+ public enum FPDenormMode {
+ Preserve = 0,
+ FlushToZero = 1,
+ }
+
+ public enum FPOperationMode {
+ IEEE = 0,
+ ALT = 1,
+ }
+
public enum Op
{
OpNop = 0,
@@ -1331,13 +1462,19 @@ namespace Spv
OpPtrEqual = 401,
OpPtrNotEqual = 402,
OpPtrDiff = 403,
+ OpTerminateInvocation = 4416,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
- OpTypeRayQueryProvisionalKHR = 4472,
+ OpTraceRayKHR = 4445,
+ OpExecuteCallableKHR = 4446,
+ OpConvertUToAccelerationStructureKHR = 4447,
+ OpIgnoreIntersectionKHR = 4448,
+ OpTerminateRayKHR = 4449,
+ OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
OpRayQueryGenerateIntersectionKHR = 4475,
@@ -1360,15 +1497,11 @@ namespace Spv
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,
@@ -1403,6 +1536,11 @@ namespace Spv
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
+ OpConstFunctionPointerINTEL = 5600,
+ OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1525,6 +1663,15 @@ namespace Spv
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
+ OpLoopControlINTEL = 5887,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
+ OpReadPipeBlockingINTEL = 5946,
+ OpWritePipeBlockingINTEL = 5947,
+ OpFPGARegINTEL = 5949,
OpRayQueryGetRayTMinKHR = 6016,
OpRayQueryGetRayFlagsKHR = 6017,
OpRayQueryGetIntersectionTKHR = 6018,
@@ -1542,6 +1689,11 @@ namespace Spv
OpRayQueryGetWorldRayOriginKHR = 6030,
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+ OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
}
}
}
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 92b34c3..41a650b 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -54,11 +54,11 @@
typedef unsigned int SpvId;
#define SPV_VERSION 0x10500
-#define SPV_REVISION 1
+#define SPV_REVISION 4
static const unsigned int SpvMagicNumber = 0x07230203;
static const unsigned int SpvVersion = 0x00010500;
-static const unsigned int SpvRevision = 1;
+static const unsigned int SpvRevision = 4;
static const unsigned int SpvOpCodeMask = 0xffff;
static const unsigned int SpvWordCountShift = 16;
@@ -172,6 +172,16 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
+ SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
+ SpvExecutionModeRoundingModeRTPINTEL = 5620,
+ SpvExecutionModeRoundingModeRTNINTEL = 5621,
+ SpvExecutionModeFloatingPointModeALTINTEL = 5622,
+ SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
+ SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
+ SpvExecutionModeMaxWorkDimINTEL = 5894,
+ SpvExecutionModeNoGlobalOffsetINTEL = 5895,
+ SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
+ SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
SpvExecutionModeMax = 0x7fffffff,
} SpvExecutionMode;
@@ -203,6 +213,9 @@ typedef enum SpvStorageClass_ {
SpvStorageClassShaderRecordBufferNV = 5343,
SpvStorageClassPhysicalStorageBuffer = 5349,
SpvStorageClassPhysicalStorageBufferEXT = 5349,
+ SpvStorageClassCodeSectionINTEL = 5605,
+ SpvStorageClassDeviceOnlyINTEL = 5936,
+ SpvStorageClassHostOnlyINTEL = 5937,
SpvStorageClassMax = 0x7fffffff,
} SpvStorageClass;
@@ -273,6 +286,8 @@ typedef enum SpvImageFormat_ {
SpvImageFormatRg8ui = 37,
SpvImageFormatR16ui = 38,
SpvImageFormatR8ui = 39,
+ SpvImageFormatR64ui = 40,
+ SpvImageFormatR64i = 41,
SpvImageFormatMax = 0x7fffffff,
} SpvImageFormat;
@@ -371,6 +386,8 @@ typedef enum SpvFPFastMathModeShift_ {
SpvFPFastMathModeNSZShift = 2,
SpvFPFastMathModeAllowRecipShift = 3,
SpvFPFastMathModeFastShift = 4,
+ SpvFPFastMathModeAllowContractFastINTELShift = 16,
+ SpvFPFastMathModeAllowReassocINTELShift = 17,
SpvFPFastMathModeMax = 0x7fffffff,
} SpvFPFastMathModeShift;
@@ -381,6 +398,8 @@ typedef enum SpvFPFastMathModeMask_ {
SpvFPFastMathModeNSZMask = 0x00000004,
SpvFPFastMathModeAllowRecipMask = 0x00000008,
SpvFPFastMathModeFastMask = 0x00000010,
+ SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
+ SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
} SpvFPFastMathModeMask;
typedef enum SpvFPRoundingMode_ {
@@ -481,11 +500,45 @@ typedef enum SpvDecoration_ {
SpvDecorationRestrictPointerEXT = 5355,
SpvDecorationAliasedPointer = 5356,
SpvDecorationAliasedPointerEXT = 5356,
+ SpvDecorationSIMTCallINTEL = 5599,
+ SpvDecorationReferencedIndirectlyINTEL = 5602,
+ SpvDecorationClobberINTEL = 5607,
+ SpvDecorationSideEffectsINTEL = 5608,
+ SpvDecorationVectorComputeVariableINTEL = 5624,
+ SpvDecorationFuncParamIOKindINTEL = 5625,
+ SpvDecorationVectorComputeFunctionINTEL = 5626,
+ SpvDecorationStackCallINTEL = 5627,
+ SpvDecorationGlobalVariableOffsetINTEL = 5628,
SpvDecorationCounterBuffer = 5634,
SpvDecorationHlslCounterBufferGOOGLE = 5634,
SpvDecorationHlslSemanticGOOGLE = 5635,
SpvDecorationUserSemantic = 5635,
SpvDecorationUserTypeGOOGLE = 5636,
+ SpvDecorationFunctionRoundingModeINTEL = 5822,
+ SpvDecorationFunctionDenormModeINTEL = 5823,
+ SpvDecorationRegisterINTEL = 5825,
+ SpvDecorationMemoryINTEL = 5826,
+ SpvDecorationNumbanksINTEL = 5827,
+ SpvDecorationBankwidthINTEL = 5828,
+ SpvDecorationMaxPrivateCopiesINTEL = 5829,
+ SpvDecorationSinglepumpINTEL = 5830,
+ SpvDecorationDoublepumpINTEL = 5831,
+ SpvDecorationMaxReplicatesINTEL = 5832,
+ SpvDecorationSimpleDualPortINTEL = 5833,
+ SpvDecorationMergeINTEL = 5834,
+ SpvDecorationBankBitsINTEL = 5835,
+ SpvDecorationForcePow2DepthINTEL = 5836,
+ SpvDecorationBurstCoalesceINTEL = 5899,
+ SpvDecorationCacheSizeINTEL = 5900,
+ SpvDecorationDontStaticallyCoalesceINTEL = 5901,
+ SpvDecorationPrefetchINTEL = 5902,
+ SpvDecorationStallEnableINTEL = 5905,
+ SpvDecorationFuseLoopsInFunctionINTEL = 5907,
+ SpvDecorationBufferLocationINTEL = 5921,
+ SpvDecorationIOPipeStorageINTEL = 5944,
+ SpvDecorationFunctionFloatingPointModeINTEL = 6080,
+ SpvDecorationSingleElementVectorINTEL = 6085,
+ SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
SpvDecorationMax = 0x7fffffff,
} SpvDecoration;
@@ -544,8 +597,10 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInBaseVertex = 4424,
SpvBuiltInBaseInstance = 4425,
SpvBuiltInDrawIndex = 4426,
+ SpvBuiltInPrimitiveShadingRateKHR = 4432,
SpvBuiltInDeviceIndex = 4438,
SpvBuiltInViewIndex = 4440,
+ SpvBuiltInShadingRateKHR = 4444,
SpvBuiltInBaryCoordNoPerspAMD = 4992,
SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
@@ -596,7 +651,6 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInObjectToWorldNV = 5330,
SpvBuiltInWorldToObjectKHR = 5331,
SpvBuiltInWorldToObjectNV = 5331,
- SpvBuiltInHitTKHR = 5332,
SpvBuiltInHitTNV = 5332,
SpvBuiltInHitKindKHR = 5333,
SpvBuiltInHitKindNV = 5333,
@@ -632,6 +686,14 @@ typedef enum SpvLoopControlShift_ {
SpvLoopControlIterationMultipleShift = 6,
SpvLoopControlPeelCountShift = 7,
SpvLoopControlPartialCountShift = 8,
+ SpvLoopControlInitiationIntervalINTELShift = 16,
+ SpvLoopControlMaxConcurrencyINTELShift = 17,
+ SpvLoopControlDependencyArrayINTELShift = 18,
+ SpvLoopControlPipelineEnableINTELShift = 19,
+ SpvLoopControlLoopCoalesceINTELShift = 20,
+ SpvLoopControlMaxInterleavingINTELShift = 21,
+ SpvLoopControlSpeculatedIterationsINTELShift = 22,
+ SpvLoopControlNoFusionINTELShift = 23,
SpvLoopControlMax = 0x7fffffff,
} SpvLoopControlShift;
@@ -646,6 +708,14 @@ typedef enum SpvLoopControlMask_ {
SpvLoopControlIterationMultipleMask = 0x00000040,
SpvLoopControlPeelCountMask = 0x00000080,
SpvLoopControlPartialCountMask = 0x00000100,
+ SpvLoopControlInitiationIntervalINTELMask = 0x00010000,
+ SpvLoopControlMaxConcurrencyINTELMask = 0x00020000,
+ SpvLoopControlDependencyArrayINTELMask = 0x00040000,
+ SpvLoopControlPipelineEnableINTELMask = 0x00080000,
+ SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
+ SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
+ SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
+ SpvLoopControlNoFusionINTELMask = 0x00800000,
} SpvLoopControlMask;
typedef enum SpvFunctionControlShift_ {
@@ -842,8 +912,12 @@ typedef enum SpvCapability_ {
SpvCapabilityGroupNonUniformQuad = 68,
SpvCapabilityShaderLayer = 69,
SpvCapabilityShaderViewportIndex = 70,
+ SpvCapabilityFragmentShadingRateKHR = 4422,
SpvCapabilitySubgroupBallotKHR = 4423,
SpvCapabilityDrawParameters = 4427,
+ SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
+ SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
SpvCapabilitySubgroupVoteKHR = 4431,
SpvCapabilityStorageBuffer16BitAccess = 4433,
SpvCapabilityStorageUniformBufferBlock16 = 4433,
@@ -866,12 +940,15 @@ typedef enum SpvCapability_ {
SpvCapabilityRoundingModeRTE = 4467,
SpvCapabilityRoundingModeRTZ = 4468,
SpvCapabilityRayQueryProvisionalKHR = 4471,
- SpvCapabilityRayTraversalPrimitiveCullingProvisionalKHR = 4478,
+ SpvCapabilityRayQueryKHR = 4472,
+ SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
+ SpvCapabilityRayTracingKHR = 4479,
SpvCapabilityFloat16ImageAMD = 5008,
SpvCapabilityImageGatherBiasLodAMD = 5009,
SpvCapabilityFragmentMaskAMD = 5010,
SpvCapabilityStencilExportEXT = 5013,
SpvCapabilityImageReadWriteLodAMD = 5015,
+ SpvCapabilityInt64ImageEXT = 5016,
SpvCapabilityShaderClockKHR = 5055,
SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
SpvCapabilityGeometryShaderPassthroughNV = 5251,
@@ -931,10 +1008,37 @@ typedef enum SpvCapability_ {
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ SpvCapabilityRoundToInfinityINTEL = 5582,
+ SpvCapabilityFloatingPointModeINTEL = 5583,
SpvCapabilityIntegerFunctions2INTEL = 5584,
+ SpvCapabilityFunctionPointersINTEL = 5603,
+ SpvCapabilityIndirectReferencesINTEL = 5604,
+ SpvCapabilityAsmINTEL = 5606,
+ SpvCapabilityVectorComputeINTEL = 5617,
+ SpvCapabilityVectorAnyINTEL = 5619,
SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
+ SpvCapabilityVariableLengthArrayINTEL = 5817,
+ SpvCapabilityFunctionFloatControlINTEL = 5821,
+ SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
+ SpvCapabilityFPFastMathModeINTEL = 5837,
+ SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
+ SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
+ SpvCapabilityFPGALoopControlsINTEL = 5888,
+ SpvCapabilityKernelAttributesINTEL = 5892,
+ SpvCapabilityFPGAKernelAttributesINTEL = 5897,
+ SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
+ SpvCapabilityFPGAClusterAttributesINTEL = 5904,
+ SpvCapabilityLoopFuseINTEL = 5906,
+ SpvCapabilityFPGABufferLocationINTEL = 5920,
+ SpvCapabilityUSMStorageClassesINTEL = 5935,
+ SpvCapabilityIOPipesINTEL = 5943,
+ SpvCapabilityBlockingPipesINTEL = 5945,
+ SpvCapabilityFPGARegINTEL = 5948,
+ SpvCapabilityAtomicFloat32AddEXT = 6033,
+ SpvCapabilityAtomicFloat64AddEXT = 6034,
+ SpvCapabilityLongConstantCompositeINTEL = 6089,
SpvCapabilityMax = 0x7fffffff,
} SpvCapability;
@@ -985,6 +1089,34 @@ typedef enum SpvRayQueryCandidateIntersectionType_ {
SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
} SpvRayQueryCandidateIntersectionType;
+typedef enum SpvFragmentShadingRateShift_ {
+ SpvFragmentShadingRateVertical2PixelsShift = 0,
+ SpvFragmentShadingRateVertical4PixelsShift = 1,
+ SpvFragmentShadingRateHorizontal2PixelsShift = 2,
+ SpvFragmentShadingRateHorizontal4PixelsShift = 3,
+ SpvFragmentShadingRateMax = 0x7fffffff,
+} SpvFragmentShadingRateShift;
+
+typedef enum SpvFragmentShadingRateMask_ {
+ SpvFragmentShadingRateMaskNone = 0,
+ SpvFragmentShadingRateVertical2PixelsMask = 0x00000001,
+ SpvFragmentShadingRateVertical4PixelsMask = 0x00000002,
+ SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004,
+ SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
+} SpvFragmentShadingRateMask;
+
+typedef enum SpvFPDenormMode_ {
+ SpvFPDenormModePreserve = 0,
+ SpvFPDenormModeFlushToZero = 1,
+ SpvFPDenormModeMax = 0x7fffffff,
+} SpvFPDenormMode;
+
+typedef enum SpvFPOperationMode_ {
+ SpvFPOperationModeIEEE = 0,
+ SpvFPOperationModeALT = 1,
+ SpvFPOperationModeMax = 0x7fffffff,
+} SpvFPOperationMode;
+
typedef enum SpvOp_ {
SpvOpNop = 0,
SpvOpUndef = 1,
@@ -1330,13 +1462,19 @@ typedef enum SpvOp_ {
SpvOpPtrEqual = 401,
SpvOpPtrNotEqual = 402,
SpvOpPtrDiff = 403,
+ SpvOpTerminateInvocation = 4416,
SpvOpSubgroupBallotKHR = 4421,
SpvOpSubgroupFirstInvocationKHR = 4422,
SpvOpSubgroupAllKHR = 4428,
SpvOpSubgroupAnyKHR = 4429,
SpvOpSubgroupAllEqualKHR = 4430,
SpvOpSubgroupReadInvocationKHR = 4432,
- SpvOpTypeRayQueryProvisionalKHR = 4472,
+ SpvOpTraceRayKHR = 4445,
+ SpvOpExecuteCallableKHR = 4446,
+ SpvOpConvertUToAccelerationStructureKHR = 4447,
+ SpvOpIgnoreIntersectionKHR = 4448,
+ SpvOpTerminateRayKHR = 4449,
+ SpvOpTypeRayQueryKHR = 4472,
SpvOpRayQueryInitializeKHR = 4473,
SpvOpRayQueryTerminateKHR = 4474,
SpvOpRayQueryGenerateIntersectionKHR = 4475,
@@ -1359,15 +1497,11 @@ typedef enum SpvOp_ {
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,
@@ -1402,6 +1536,11 @@ typedef enum SpvOp_ {
SpvOpUSubSatINTEL = 5596,
SpvOpIMul32x16INTEL = 5597,
SpvOpUMul32x16INTEL = 5598,
+ SpvOpConstFunctionPointerINTEL = 5600,
+ SpvOpFunctionPointerCallINTEL = 5601,
+ SpvOpAsmTargetINTEL = 5609,
+ SpvOpAsmINTEL = 5610,
+ SpvOpAsmCallINTEL = 5611,
SpvOpDecorateString = 5632,
SpvOpDecorateStringGOOGLE = 5632,
SpvOpMemberDecorateString = 5633,
@@ -1524,6 +1663,15 @@ typedef enum SpvOp_ {
SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ SpvOpVariableLengthArrayINTEL = 5818,
+ SpvOpSaveMemoryINTEL = 5819,
+ SpvOpRestoreMemoryINTEL = 5820,
+ SpvOpLoopControlINTEL = 5887,
+ SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
+ SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
+ SpvOpReadPipeBlockingINTEL = 5946,
+ SpvOpWritePipeBlockingINTEL = 5947,
+ SpvOpFPGARegINTEL = 5949,
SpvOpRayQueryGetRayTMinKHR = 6016,
SpvOpRayQueryGetRayFlagsKHR = 6017,
SpvOpRayQueryGetIntersectionTKHR = 6018,
@@ -1541,6 +1689,11 @@ typedef enum SpvOp_ {
SpvOpRayQueryGetWorldRayOriginKHR = 6030,
SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+ SpvOpAtomicFAddEXT = 6035,
+ SpvOpTypeBufferSurfaceINTEL = 6086,
+ SpvOpTypeStructContinuedINTEL = 6090,
+ SpvOpConstantCompositeContinuedINTEL = 6091,
+ SpvOpSpecConstantCompositeContinuedINTEL = 6092,
SpvOpMax = 0x7fffffff,
} SpvOp;
@@ -1893,12 +2046,25 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
+ case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
+ case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
@@ -1918,30 +2084,6 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
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;
@@ -1976,6 +2118,11 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2096,6 +2243,37 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 9f98683..af629ef 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -50,11 +50,11 @@ namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 0x10500
-#define SPV_REVISION 1
+#define SPV_REVISION 4
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010500;
-static const unsigned int Revision = 1;
+static const unsigned int Revision = 4;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -168,6 +168,16 @@ enum ExecutionMode {
ExecutionModeSampleInterlockUnorderedEXT = 5369,
ExecutionModeShadingRateInterlockOrderedEXT = 5370,
ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
+ ExecutionModeSharedLocalMemorySizeINTEL = 5618,
+ ExecutionModeRoundingModeRTPINTEL = 5620,
+ ExecutionModeRoundingModeRTNINTEL = 5621,
+ ExecutionModeFloatingPointModeALTINTEL = 5622,
+ ExecutionModeFloatingPointModeIEEEINTEL = 5623,
+ ExecutionModeMaxWorkgroupSizeINTEL = 5893,
+ ExecutionModeMaxWorkDimINTEL = 5894,
+ ExecutionModeNoGlobalOffsetINTEL = 5895,
+ ExecutionModeNumSIMDWorkitemsINTEL = 5896,
+ ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
ExecutionModeMax = 0x7fffffff,
};
@@ -199,6 +209,9 @@ enum StorageClass {
StorageClassShaderRecordBufferNV = 5343,
StorageClassPhysicalStorageBuffer = 5349,
StorageClassPhysicalStorageBufferEXT = 5349,
+ StorageClassCodeSectionINTEL = 5605,
+ StorageClassDeviceOnlyINTEL = 5936,
+ StorageClassHostOnlyINTEL = 5937,
StorageClassMax = 0x7fffffff,
};
@@ -269,6 +282,8 @@ enum ImageFormat {
ImageFormatRg8ui = 37,
ImageFormatR16ui = 38,
ImageFormatR8ui = 39,
+ ImageFormatR64ui = 40,
+ ImageFormatR64i = 41,
ImageFormatMax = 0x7fffffff,
};
@@ -367,6 +382,8 @@ enum FPFastMathModeShift {
FPFastMathModeNSZShift = 2,
FPFastMathModeAllowRecipShift = 3,
FPFastMathModeFastShift = 4,
+ FPFastMathModeAllowContractFastINTELShift = 16,
+ FPFastMathModeAllowReassocINTELShift = 17,
FPFastMathModeMax = 0x7fffffff,
};
@@ -377,6 +394,8 @@ enum FPFastMathModeMask {
FPFastMathModeNSZMask = 0x00000004,
FPFastMathModeAllowRecipMask = 0x00000008,
FPFastMathModeFastMask = 0x00000010,
+ FPFastMathModeAllowContractFastINTELMask = 0x00010000,
+ FPFastMathModeAllowReassocINTELMask = 0x00020000,
};
enum FPRoundingMode {
@@ -477,11 +496,45 @@ enum Decoration {
DecorationRestrictPointerEXT = 5355,
DecorationAliasedPointer = 5356,
DecorationAliasedPointerEXT = 5356,
+ DecorationSIMTCallINTEL = 5599,
+ DecorationReferencedIndirectlyINTEL = 5602,
+ DecorationClobberINTEL = 5607,
+ DecorationSideEffectsINTEL = 5608,
+ DecorationVectorComputeVariableINTEL = 5624,
+ DecorationFuncParamIOKindINTEL = 5625,
+ DecorationVectorComputeFunctionINTEL = 5626,
+ DecorationStackCallINTEL = 5627,
+ DecorationGlobalVariableOffsetINTEL = 5628,
DecorationCounterBuffer = 5634,
DecorationHlslCounterBufferGOOGLE = 5634,
DecorationHlslSemanticGOOGLE = 5635,
DecorationUserSemantic = 5635,
DecorationUserTypeGOOGLE = 5636,
+ DecorationFunctionRoundingModeINTEL = 5822,
+ DecorationFunctionDenormModeINTEL = 5823,
+ DecorationRegisterINTEL = 5825,
+ DecorationMemoryINTEL = 5826,
+ DecorationNumbanksINTEL = 5827,
+ DecorationBankwidthINTEL = 5828,
+ DecorationMaxPrivateCopiesINTEL = 5829,
+ DecorationSinglepumpINTEL = 5830,
+ DecorationDoublepumpINTEL = 5831,
+ DecorationMaxReplicatesINTEL = 5832,
+ DecorationSimpleDualPortINTEL = 5833,
+ DecorationMergeINTEL = 5834,
+ DecorationBankBitsINTEL = 5835,
+ DecorationForcePow2DepthINTEL = 5836,
+ DecorationBurstCoalesceINTEL = 5899,
+ DecorationCacheSizeINTEL = 5900,
+ DecorationDontStaticallyCoalesceINTEL = 5901,
+ DecorationPrefetchINTEL = 5902,
+ DecorationStallEnableINTEL = 5905,
+ DecorationFuseLoopsInFunctionINTEL = 5907,
+ DecorationBufferLocationINTEL = 5921,
+ DecorationIOPipeStorageINTEL = 5944,
+ DecorationFunctionFloatingPointModeINTEL = 6080,
+ DecorationSingleElementVectorINTEL = 6085,
+ DecorationVectorComputeCallableFunctionINTEL = 6087,
DecorationMax = 0x7fffffff,
};
@@ -540,8 +593,10 @@ enum BuiltIn {
BuiltInBaseVertex = 4424,
BuiltInBaseInstance = 4425,
BuiltInDrawIndex = 4426,
+ BuiltInPrimitiveShadingRateKHR = 4432,
BuiltInDeviceIndex = 4438,
BuiltInViewIndex = 4440,
+ BuiltInShadingRateKHR = 4444,
BuiltInBaryCoordNoPerspAMD = 4992,
BuiltInBaryCoordNoPerspCentroidAMD = 4993,
BuiltInBaryCoordNoPerspSampleAMD = 4994,
@@ -592,7 +647,6 @@ enum BuiltIn {
BuiltInObjectToWorldNV = 5330,
BuiltInWorldToObjectKHR = 5331,
BuiltInWorldToObjectNV = 5331,
- BuiltInHitTKHR = 5332,
BuiltInHitTNV = 5332,
BuiltInHitKindKHR = 5333,
BuiltInHitKindNV = 5333,
@@ -628,6 +682,14 @@ enum LoopControlShift {
LoopControlIterationMultipleShift = 6,
LoopControlPeelCountShift = 7,
LoopControlPartialCountShift = 8,
+ LoopControlInitiationIntervalINTELShift = 16,
+ LoopControlMaxConcurrencyINTELShift = 17,
+ LoopControlDependencyArrayINTELShift = 18,
+ LoopControlPipelineEnableINTELShift = 19,
+ LoopControlLoopCoalesceINTELShift = 20,
+ LoopControlMaxInterleavingINTELShift = 21,
+ LoopControlSpeculatedIterationsINTELShift = 22,
+ LoopControlNoFusionINTELShift = 23,
LoopControlMax = 0x7fffffff,
};
@@ -642,6 +704,14 @@ enum LoopControlMask {
LoopControlIterationMultipleMask = 0x00000040,
LoopControlPeelCountMask = 0x00000080,
LoopControlPartialCountMask = 0x00000100,
+ LoopControlInitiationIntervalINTELMask = 0x00010000,
+ LoopControlMaxConcurrencyINTELMask = 0x00020000,
+ LoopControlDependencyArrayINTELMask = 0x00040000,
+ LoopControlPipelineEnableINTELMask = 0x00080000,
+ LoopControlLoopCoalesceINTELMask = 0x00100000,
+ LoopControlMaxInterleavingINTELMask = 0x00200000,
+ LoopControlSpeculatedIterationsINTELMask = 0x00400000,
+ LoopControlNoFusionINTELMask = 0x00800000,
};
enum FunctionControlShift {
@@ -838,8 +908,12 @@ enum Capability {
CapabilityGroupNonUniformQuad = 68,
CapabilityShaderLayer = 69,
CapabilityShaderViewportIndex = 70,
+ CapabilityFragmentShadingRateKHR = 4422,
CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427,
+ CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
+ CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
CapabilitySubgroupVoteKHR = 4431,
CapabilityStorageBuffer16BitAccess = 4433,
CapabilityStorageUniformBufferBlock16 = 4433,
@@ -862,12 +936,15 @@ enum Capability {
CapabilityRoundingModeRTE = 4467,
CapabilityRoundingModeRTZ = 4468,
CapabilityRayQueryProvisionalKHR = 4471,
- CapabilityRayTraversalPrimitiveCullingProvisionalKHR = 4478,
+ CapabilityRayQueryKHR = 4472,
+ CapabilityRayTraversalPrimitiveCullingKHR = 4478,
+ CapabilityRayTracingKHR = 4479,
CapabilityFloat16ImageAMD = 5008,
CapabilityImageGatherBiasLodAMD = 5009,
CapabilityFragmentMaskAMD = 5010,
CapabilityStencilExportEXT = 5013,
CapabilityImageReadWriteLodAMD = 5015,
+ CapabilityInt64ImageEXT = 5016,
CapabilityShaderClockKHR = 5055,
CapabilitySampleMaskOverrideCoverageNV = 5249,
CapabilityGeometryShaderPassthroughNV = 5251,
@@ -927,10 +1004,37 @@ enum Capability {
CapabilitySubgroupBufferBlockIOINTEL = 5569,
CapabilitySubgroupImageBlockIOINTEL = 5570,
CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ CapabilityRoundToInfinityINTEL = 5582,
+ CapabilityFloatingPointModeINTEL = 5583,
CapabilityIntegerFunctions2INTEL = 5584,
+ CapabilityFunctionPointersINTEL = 5603,
+ CapabilityIndirectReferencesINTEL = 5604,
+ CapabilityAsmINTEL = 5606,
+ CapabilityVectorComputeINTEL = 5617,
+ CapabilityVectorAnyINTEL = 5619,
CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
+ CapabilityVariableLengthArrayINTEL = 5817,
+ CapabilityFunctionFloatControlINTEL = 5821,
+ CapabilityFPGAMemoryAttributesINTEL = 5824,
+ CapabilityFPFastMathModeINTEL = 5837,
+ CapabilityArbitraryPrecisionIntegersINTEL = 5844,
+ CapabilityUnstructuredLoopControlsINTEL = 5886,
+ CapabilityFPGALoopControlsINTEL = 5888,
+ CapabilityKernelAttributesINTEL = 5892,
+ CapabilityFPGAKernelAttributesINTEL = 5897,
+ CapabilityFPGAMemoryAccessesINTEL = 5898,
+ CapabilityFPGAClusterAttributesINTEL = 5904,
+ CapabilityLoopFuseINTEL = 5906,
+ CapabilityFPGABufferLocationINTEL = 5920,
+ CapabilityUSMStorageClassesINTEL = 5935,
+ CapabilityIOPipesINTEL = 5943,
+ CapabilityBlockingPipesINTEL = 5945,
+ CapabilityFPGARegINTEL = 5948,
+ CapabilityAtomicFloat32AddEXT = 6033,
+ CapabilityAtomicFloat64AddEXT = 6034,
+ CapabilityLongConstantCompositeINTEL = 6089,
CapabilityMax = 0x7fffffff,
};
@@ -981,6 +1085,34 @@ enum RayQueryCandidateIntersectionType {
RayQueryCandidateIntersectionTypeMax = 0x7fffffff,
};
+enum FragmentShadingRateShift {
+ FragmentShadingRateVertical2PixelsShift = 0,
+ FragmentShadingRateVertical4PixelsShift = 1,
+ FragmentShadingRateHorizontal2PixelsShift = 2,
+ FragmentShadingRateHorizontal4PixelsShift = 3,
+ FragmentShadingRateMax = 0x7fffffff,
+};
+
+enum FragmentShadingRateMask {
+ FragmentShadingRateMaskNone = 0,
+ FragmentShadingRateVertical2PixelsMask = 0x00000001,
+ FragmentShadingRateVertical4PixelsMask = 0x00000002,
+ FragmentShadingRateHorizontal2PixelsMask = 0x00000004,
+ FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
+};
+
+enum FPDenormMode {
+ FPDenormModePreserve = 0,
+ FPDenormModeFlushToZero = 1,
+ FPDenormModeMax = 0x7fffffff,
+};
+
+enum FPOperationMode {
+ FPOperationModeIEEE = 0,
+ FPOperationModeALT = 1,
+ FPOperationModeMax = 0x7fffffff,
+};
+
enum Op {
OpNop = 0,
OpUndef = 1,
@@ -1326,13 +1458,19 @@ enum Op {
OpPtrEqual = 401,
OpPtrNotEqual = 402,
OpPtrDiff = 403,
+ OpTerminateInvocation = 4416,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
- OpTypeRayQueryProvisionalKHR = 4472,
+ OpTraceRayKHR = 4445,
+ OpExecuteCallableKHR = 4446,
+ OpConvertUToAccelerationStructureKHR = 4447,
+ OpIgnoreIntersectionKHR = 4448,
+ OpTerminateRayKHR = 4449,
+ OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
OpRayQueryGenerateIntersectionKHR = 4475,
@@ -1355,15 +1493,11 @@ enum Op {
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,
@@ -1398,6 +1532,11 @@ enum Op {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
+ OpConstFunctionPointerINTEL = 5600,
+ OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1520,6 +1659,15 @@ enum Op {
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
+ OpLoopControlINTEL = 5887,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
+ OpReadPipeBlockingINTEL = 5946,
+ OpWritePipeBlockingINTEL = 5947,
+ OpFPGARegINTEL = 5949,
OpRayQueryGetRayTMinKHR = 6016,
OpRayQueryGetRayFlagsKHR = 6017,
OpRayQueryGetIntersectionTKHR = 6018,
@@ -1537,6 +1685,11 @@ enum Op {
OpRayQueryGetWorldRayOriginKHR = 6030,
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+ OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
OpMax = 0x7fffffff,
};
@@ -1889,12 +2042,25 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
+ case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
+ case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
+ case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
+ case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
+ case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+ case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
+ case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
+ case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
+ case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
@@ -1914,30 +2080,6 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
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;
@@ -1972,6 +2114,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
case OpDecorateString: *hasResult = false; *hasResultType = false; break;
case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2092,6 +2239,37 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
@@ -2107,6 +2285,7 @@ inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask
inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
+inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
} // end namespace spv
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 406ba19..58f3bf3 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -50,11 +50,11 @@ namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 0x10500
-#define SPV_REVISION 1
+#define SPV_REVISION 4
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010500;
-static const unsigned int Revision = 1;
+static const unsigned int Revision = 4;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -168,6 +168,16 @@ enum class ExecutionMode : unsigned {
SampleInterlockUnorderedEXT = 5369,
ShadingRateInterlockOrderedEXT = 5370,
ShadingRateInterlockUnorderedEXT = 5371,
+ SharedLocalMemorySizeINTEL = 5618,
+ RoundingModeRTPINTEL = 5620,
+ RoundingModeRTNINTEL = 5621,
+ FloatingPointModeALTINTEL = 5622,
+ FloatingPointModeIEEEINTEL = 5623,
+ MaxWorkgroupSizeINTEL = 5893,
+ MaxWorkDimINTEL = 5894,
+ NoGlobalOffsetINTEL = 5895,
+ NumSIMDWorkitemsINTEL = 5896,
+ SchedulerTargetFmaxMhzINTEL = 5903,
Max = 0x7fffffff,
};
@@ -199,6 +209,9 @@ enum class StorageClass : unsigned {
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
+ CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
Max = 0x7fffffff,
};
@@ -269,6 +282,8 @@ enum class ImageFormat : unsigned {
Rg8ui = 37,
R16ui = 38,
R8ui = 39,
+ R64ui = 40,
+ R64i = 41,
Max = 0x7fffffff,
};
@@ -367,6 +382,8 @@ enum class FPFastMathModeShift : unsigned {
NSZ = 2,
AllowRecip = 3,
Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
Max = 0x7fffffff,
};
@@ -377,6 +394,8 @@ enum class FPFastMathModeMask : unsigned {
NSZ = 0x00000004,
AllowRecip = 0x00000008,
Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
};
enum class FPRoundingMode : unsigned {
@@ -477,11 +496,45 @@ enum class Decoration : unsigned {
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
+ SIMTCallINTEL = 5599,
+ ReferencedIndirectlyINTEL = 5602,
+ ClobberINTEL = 5607,
+ SideEffectsINTEL = 5608,
+ VectorComputeVariableINTEL = 5624,
+ FuncParamIOKindINTEL = 5625,
+ VectorComputeFunctionINTEL = 5626,
+ StackCallINTEL = 5627,
+ GlobalVariableOffsetINTEL = 5628,
CounterBuffer = 5634,
HlslCounterBufferGOOGLE = 5634,
HlslSemanticGOOGLE = 5635,
UserSemantic = 5635,
UserTypeGOOGLE = 5636,
+ FunctionRoundingModeINTEL = 5822,
+ FunctionDenormModeINTEL = 5823,
+ RegisterINTEL = 5825,
+ MemoryINTEL = 5826,
+ NumbanksINTEL = 5827,
+ BankwidthINTEL = 5828,
+ MaxPrivateCopiesINTEL = 5829,
+ SinglepumpINTEL = 5830,
+ DoublepumpINTEL = 5831,
+ MaxReplicatesINTEL = 5832,
+ SimpleDualPortINTEL = 5833,
+ MergeINTEL = 5834,
+ BankBitsINTEL = 5835,
+ ForcePow2DepthINTEL = 5836,
+ BurstCoalesceINTEL = 5899,
+ CacheSizeINTEL = 5900,
+ DontStaticallyCoalesceINTEL = 5901,
+ PrefetchINTEL = 5902,
+ StallEnableINTEL = 5905,
+ FuseLoopsInFunctionINTEL = 5907,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
Max = 0x7fffffff,
};
@@ -540,8 +593,10 @@ enum class BuiltIn : unsigned {
BaseVertex = 4424,
BaseInstance = 4425,
DrawIndex = 4426,
+ PrimitiveShadingRateKHR = 4432,
DeviceIndex = 4438,
ViewIndex = 4440,
+ ShadingRateKHR = 4444,
BaryCoordNoPerspAMD = 4992,
BaryCoordNoPerspCentroidAMD = 4993,
BaryCoordNoPerspSampleAMD = 4994,
@@ -592,7 +647,6 @@ enum class BuiltIn : unsigned {
ObjectToWorldNV = 5330,
WorldToObjectKHR = 5331,
WorldToObjectNV = 5331,
- HitTKHR = 5332,
HitTNV = 5332,
HitKindKHR = 5333,
HitKindNV = 5333,
@@ -628,6 +682,14 @@ enum class LoopControlShift : unsigned {
IterationMultiple = 6,
PeelCount = 7,
PartialCount = 8,
+ InitiationIntervalINTEL = 16,
+ MaxConcurrencyINTEL = 17,
+ DependencyArrayINTEL = 18,
+ PipelineEnableINTEL = 19,
+ LoopCoalesceINTEL = 20,
+ MaxInterleavingINTEL = 21,
+ SpeculatedIterationsINTEL = 22,
+ NoFusionINTEL = 23,
Max = 0x7fffffff,
};
@@ -642,6 +704,14 @@ enum class LoopControlMask : unsigned {
IterationMultiple = 0x00000040,
PeelCount = 0x00000080,
PartialCount = 0x00000100,
+ InitiationIntervalINTEL = 0x00010000,
+ MaxConcurrencyINTEL = 0x00020000,
+ DependencyArrayINTEL = 0x00040000,
+ PipelineEnableINTEL = 0x00080000,
+ LoopCoalesceINTEL = 0x00100000,
+ MaxInterleavingINTEL = 0x00200000,
+ SpeculatedIterationsINTEL = 0x00400000,
+ NoFusionINTEL = 0x00800000,
};
enum class FunctionControlShift : unsigned {
@@ -838,8 +908,12 @@ enum class Capability : unsigned {
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
+ FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
+ WorkgroupMemoryExplicitLayoutKHR = 4428,
+ WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
SubgroupVoteKHR = 4431,
StorageBuffer16BitAccess = 4433,
StorageUniformBufferBlock16 = 4433,
@@ -862,12 +936,15 @@ enum class Capability : unsigned {
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
RayQueryProvisionalKHR = 4471,
- RayTraversalPrimitiveCullingProvisionalKHR = 4478,
+ RayQueryKHR = 4472,
+ RayTraversalPrimitiveCullingKHR = 4478,
+ RayTracingKHR = 4479,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
StencilExportEXT = 5013,
ImageReadWriteLodAMD = 5015,
+ Int64ImageEXT = 5016,
ShaderClockKHR = 5055,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
@@ -927,10 +1004,37 @@ enum class Capability : unsigned {
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
SubgroupImageMediaBlockIOINTEL = 5579,
+ RoundToInfinityINTEL = 5582,
+ FloatingPointModeINTEL = 5583,
IntegerFunctions2INTEL = 5584,
+ FunctionPointersINTEL = 5603,
+ IndirectReferencesINTEL = 5604,
+ AsmINTEL = 5606,
+ VectorComputeINTEL = 5617,
+ VectorAnyINTEL = 5619,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
+ VariableLengthArrayINTEL = 5817,
+ FunctionFloatControlINTEL = 5821,
+ FPGAMemoryAttributesINTEL = 5824,
+ FPFastMathModeINTEL = 5837,
+ ArbitraryPrecisionIntegersINTEL = 5844,
+ UnstructuredLoopControlsINTEL = 5886,
+ FPGALoopControlsINTEL = 5888,
+ KernelAttributesINTEL = 5892,
+ FPGAKernelAttributesINTEL = 5897,
+ FPGAMemoryAccessesINTEL = 5898,
+ FPGAClusterAttributesINTEL = 5904,
+ LoopFuseINTEL = 5906,
+ FPGABufferLocationINTEL = 5920,
+ USMStorageClassesINTEL = 5935,
+ IOPipesINTEL = 5943,
+ BlockingPipesINTEL = 5945,
+ FPGARegINTEL = 5948,
+ AtomicFloat32AddEXT = 6033,
+ AtomicFloat64AddEXT = 6034,
+ LongConstantCompositeINTEL = 6089,
Max = 0x7fffffff,
};
@@ -981,6 +1085,34 @@ enum class RayQueryCandidateIntersectionType : unsigned {
Max = 0x7fffffff,
};
+enum class FragmentShadingRateShift : unsigned {
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+ Max = 0x7fffffff,
+};
+
+enum class FragmentShadingRateMask : unsigned {
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+};
+
+enum class FPDenormMode : unsigned {
+ Preserve = 0,
+ FlushToZero = 1,
+ Max = 0x7fffffff,
+};
+
+enum class FPOperationMode : unsigned {
+ IEEE = 0,
+ ALT = 1,
+ Max = 0x7fffffff,
+};
+
enum class Op : unsigned {
OpNop = 0,
OpUndef = 1,
@@ -1326,13 +1458,19 @@ enum class Op : unsigned {
OpPtrEqual = 401,
OpPtrNotEqual = 402,
OpPtrDiff = 403,
+ OpTerminateInvocation = 4416,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
- OpTypeRayQueryProvisionalKHR = 4472,
+ OpTraceRayKHR = 4445,
+ OpExecuteCallableKHR = 4446,
+ OpConvertUToAccelerationStructureKHR = 4447,
+ OpIgnoreIntersectionKHR = 4448,
+ OpTerminateRayKHR = 4449,
+ OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
OpRayQueryGenerateIntersectionKHR = 4475,
@@ -1355,15 +1493,11 @@ enum class Op : unsigned {
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,
@@ -1398,6 +1532,11 @@ enum class Op : unsigned {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
+ OpConstFunctionPointerINTEL = 5600,
+ OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1520,6 +1659,15 @@ enum class Op : unsigned {
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
+ OpLoopControlINTEL = 5887,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
+ OpReadPipeBlockingINTEL = 5946,
+ OpWritePipeBlockingINTEL = 5947,
+ OpFPGARegINTEL = 5949,
OpRayQueryGetRayTMinKHR = 6016,
OpRayQueryGetRayFlagsKHR = 6017,
OpRayQueryGetIntersectionTKHR = 6018,
@@ -1537,6 +1685,11 @@ enum class Op : unsigned {
OpRayQueryGetWorldRayOriginKHR = 6030,
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+ OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
Max = 0x7fffffff,
};
@@ -1889,12 +2042,25 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break;
case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
case Op::OpPtrDiff: *hasResult = true; *hasResultType = true; break;
+ case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
+ case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
case Op::OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
case Op::OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
@@ -1914,30 +2080,6 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
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;
@@ -1972,6 +2114,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
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::OpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpDecorateString: *hasResult = false; *hasResultType = false; break;
case Op::OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case Op::OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2092,6 +2239,37 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case Op::OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
@@ -2107,6 +2285,7 @@ inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask
inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
+inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
} // end namespace spv
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index d372beb..d1a56dd 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -55,7 +55,7 @@
],
"MagicNumber": 119734787,
"Version": 66816,
- "Revision": 1,
+ "Revision": 4,
"OpCodeMask": 65535,
"WordCountShift": 16
},
@@ -186,7 +186,17 @@
"SampleInterlockOrderedEXT": 5368,
"SampleInterlockUnorderedEXT": 5369,
"ShadingRateInterlockOrderedEXT": 5370,
- "ShadingRateInterlockUnorderedEXT": 5371
+ "ShadingRateInterlockUnorderedEXT": 5371,
+ "SharedLocalMemorySizeINTEL": 5618,
+ "RoundingModeRTPINTEL": 5620,
+ "RoundingModeRTNINTEL": 5621,
+ "FloatingPointModeALTINTEL": 5622,
+ "FloatingPointModeIEEEINTEL": 5623,
+ "MaxWorkgroupSizeINTEL": 5893,
+ "MaxWorkDimINTEL": 5894,
+ "NoGlobalOffsetINTEL": 5895,
+ "NumSIMDWorkitemsINTEL": 5896,
+ "SchedulerTargetFmaxMhzINTEL": 5903
}
},
{
@@ -220,7 +230,10 @@
"ShaderRecordBufferKHR": 5343,
"ShaderRecordBufferNV": 5343,
"PhysicalStorageBuffer": 5349,
- "PhysicalStorageBufferEXT": 5349
+ "PhysicalStorageBufferEXT": 5349,
+ "CodeSectionINTEL": 5605,
+ "DeviceOnlyINTEL": 5936,
+ "HostOnlyINTEL": 5937
}
},
{
@@ -302,7 +315,9 @@
"Rg16ui": 36,
"Rg8ui": 37,
"R16ui": 38,
- "R8ui": 39
+ "R8ui": 39,
+ "R64ui": 40,
+ "R64i": 41
}
},
{
@@ -390,7 +405,9 @@
"NotInf": 1,
"NSZ": 2,
"AllowRecip": 3,
- "Fast": 4
+ "Fast": 4,
+ "AllowContractFastINTEL": 16,
+ "AllowReassocINTEL": 17
}
},
{
@@ -507,11 +524,45 @@
"RestrictPointerEXT": 5355,
"AliasedPointer": 5356,
"AliasedPointerEXT": 5356,
+ "SIMTCallINTEL": 5599,
+ "ReferencedIndirectlyINTEL": 5602,
+ "ClobberINTEL": 5607,
+ "SideEffectsINTEL": 5608,
+ "VectorComputeVariableINTEL": 5624,
+ "FuncParamIOKindINTEL": 5625,
+ "VectorComputeFunctionINTEL": 5626,
+ "StackCallINTEL": 5627,
+ "GlobalVariableOffsetINTEL": 5628,
"CounterBuffer": 5634,
"HlslCounterBufferGOOGLE": 5634,
"HlslSemanticGOOGLE": 5635,
"UserSemantic": 5635,
- "UserTypeGOOGLE": 5636
+ "UserTypeGOOGLE": 5636,
+ "FunctionRoundingModeINTEL": 5822,
+ "FunctionDenormModeINTEL": 5823,
+ "RegisterINTEL": 5825,
+ "MemoryINTEL": 5826,
+ "NumbanksINTEL": 5827,
+ "BankwidthINTEL": 5828,
+ "MaxPrivateCopiesINTEL": 5829,
+ "SinglepumpINTEL": 5830,
+ "DoublepumpINTEL": 5831,
+ "MaxReplicatesINTEL": 5832,
+ "SimpleDualPortINTEL": 5833,
+ "MergeINTEL": 5834,
+ "BankBitsINTEL": 5835,
+ "ForcePow2DepthINTEL": 5836,
+ "BurstCoalesceINTEL": 5899,
+ "CacheSizeINTEL": 5900,
+ "DontStaticallyCoalesceINTEL": 5901,
+ "PrefetchINTEL": 5902,
+ "StallEnableINTEL": 5905,
+ "FuseLoopsInFunctionINTEL": 5907,
+ "BufferLocationINTEL": 5921,
+ "IOPipeStorageINTEL": 5944,
+ "FunctionFloatingPointModeINTEL": 6080,
+ "SingleElementVectorINTEL": 6085,
+ "VectorComputeCallableFunctionINTEL": 6087
}
},
{
@@ -573,8 +624,10 @@
"BaseVertex": 4424,
"BaseInstance": 4425,
"DrawIndex": 4426,
+ "PrimitiveShadingRateKHR": 4432,
"DeviceIndex": 4438,
"ViewIndex": 4440,
+ "ShadingRateKHR": 4444,
"BaryCoordNoPerspAMD": 4992,
"BaryCoordNoPerspCentroidAMD": 4993,
"BaryCoordNoPerspSampleAMD": 4994,
@@ -625,7 +678,6 @@
"ObjectToWorldNV": 5330,
"WorldToObjectKHR": 5331,
"WorldToObjectNV": 5331,
- "HitTKHR": 5332,
"HitTNV": 5332,
"HitKindKHR": 5333,
"HitKindNV": 5333,
@@ -660,7 +712,15 @@
"MaxIterations": 5,
"IterationMultiple": 6,
"PeelCount": 7,
- "PartialCount": 8
+ "PartialCount": 8,
+ "InitiationIntervalINTEL": 16,
+ "MaxConcurrencyINTEL": 17,
+ "DependencyArrayINTEL": 18,
+ "PipelineEnableINTEL": 19,
+ "LoopCoalesceINTEL": 20,
+ "MaxInterleavingINTEL": 21,
+ "SpeculatedIterationsINTEL": 22,
+ "NoFusionINTEL": 23
}
},
{
@@ -835,8 +895,12 @@
"GroupNonUniformQuad": 68,
"ShaderLayer": 69,
"ShaderViewportIndex": 70,
+ "FragmentShadingRateKHR": 4422,
"SubgroupBallotKHR": 4423,
"DrawParameters": 4427,
+ "WorkgroupMemoryExplicitLayoutKHR": 4428,
+ "WorkgroupMemoryExplicitLayout8BitAccessKHR": 4429,
+ "WorkgroupMemoryExplicitLayout16BitAccessKHR": 4430,
"SubgroupVoteKHR": 4431,
"StorageBuffer16BitAccess": 4433,
"StorageUniformBufferBlock16": 4433,
@@ -859,12 +923,15 @@
"RoundingModeRTE": 4467,
"RoundingModeRTZ": 4468,
"RayQueryProvisionalKHR": 4471,
- "RayTraversalPrimitiveCullingProvisionalKHR": 4478,
+ "RayQueryKHR": 4472,
+ "RayTraversalPrimitiveCullingKHR": 4478,
+ "RayTracingKHR": 4479,
"Float16ImageAMD": 5008,
"ImageGatherBiasLodAMD": 5009,
"FragmentMaskAMD": 5010,
"StencilExportEXT": 5013,
"ImageReadWriteLodAMD": 5015,
+ "Int64ImageEXT": 5016,
"ShaderClockKHR": 5055,
"SampleMaskOverrideCoverageNV": 5249,
"GeometryShaderPassthroughNV": 5251,
@@ -924,10 +991,37 @@
"SubgroupBufferBlockIOINTEL": 5569,
"SubgroupImageBlockIOINTEL": 5570,
"SubgroupImageMediaBlockIOINTEL": 5579,
+ "RoundToInfinityINTEL": 5582,
+ "FloatingPointModeINTEL": 5583,
"IntegerFunctions2INTEL": 5584,
+ "FunctionPointersINTEL": 5603,
+ "IndirectReferencesINTEL": 5604,
+ "AsmINTEL": 5606,
+ "VectorComputeINTEL": 5617,
+ "VectorAnyINTEL": 5619,
"SubgroupAvcMotionEstimationINTEL": 5696,
"SubgroupAvcMotionEstimationIntraINTEL": 5697,
- "SubgroupAvcMotionEstimationChromaINTEL": 5698
+ "SubgroupAvcMotionEstimationChromaINTEL": 5698,
+ "VariableLengthArrayINTEL": 5817,
+ "FunctionFloatControlINTEL": 5821,
+ "FPGAMemoryAttributesINTEL": 5824,
+ "FPFastMathModeINTEL": 5837,
+ "ArbitraryPrecisionIntegersINTEL": 5844,
+ "UnstructuredLoopControlsINTEL": 5886,
+ "FPGALoopControlsINTEL": 5888,
+ "KernelAttributesINTEL": 5892,
+ "FPGAKernelAttributesINTEL": 5897,
+ "FPGAMemoryAccessesINTEL": 5898,
+ "FPGAClusterAttributesINTEL": 5904,
+ "LoopFuseINTEL": 5906,
+ "FPGABufferLocationINTEL": 5920,
+ "USMStorageClassesINTEL": 5935,
+ "IOPipesINTEL": 5943,
+ "BlockingPipesINTEL": 5945,
+ "FPGARegINTEL": 5948,
+ "AtomicFloat32AddEXT": 6033,
+ "AtomicFloat64AddEXT": 6034,
+ "LongConstantCompositeINTEL": 6089
}
},
{
@@ -976,6 +1070,35 @@
}
},
{
+ "Name": "FragmentShadingRate",
+ "Type": "Bit",
+ "Values":
+ {
+ "Vertical2Pixels": 0,
+ "Vertical4Pixels": 1,
+ "Horizontal2Pixels": 2,
+ "Horizontal4Pixels": 3
+ }
+ },
+ {
+ "Name": "FPDenormMode",
+ "Type": "Value",
+ "Values":
+ {
+ "Preserve": 0,
+ "FlushToZero": 1
+ }
+ },
+ {
+ "Name": "FPOperationMode",
+ "Type": "Value",
+ "Values":
+ {
+ "IEEE": 0,
+ "ALT": 1
+ }
+ },
+ {
"Name": "Op",
"Type": "Value",
"Values":
@@ -1324,13 +1447,19 @@
"OpPtrEqual": 401,
"OpPtrNotEqual": 402,
"OpPtrDiff": 403,
+ "OpTerminateInvocation": 4416,
"OpSubgroupBallotKHR": 4421,
"OpSubgroupFirstInvocationKHR": 4422,
"OpSubgroupAllKHR": 4428,
"OpSubgroupAnyKHR": 4429,
"OpSubgroupAllEqualKHR": 4430,
"OpSubgroupReadInvocationKHR": 4432,
- "OpTypeRayQueryProvisionalKHR": 4472,
+ "OpTraceRayKHR": 4445,
+ "OpExecuteCallableKHR": 4446,
+ "OpConvertUToAccelerationStructureKHR": 4447,
+ "OpIgnoreIntersectionKHR": 4448,
+ "OpTerminateRayKHR": 4449,
+ "OpTypeRayQueryKHR": 4472,
"OpRayQueryInitializeKHR": 4473,
"OpRayQueryTerminateKHR": 4474,
"OpRayQueryGenerateIntersectionKHR": 4475,
@@ -1353,15 +1482,11 @@
"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,
@@ -1396,6 +1521,11 @@
"OpUSubSatINTEL": 5596,
"OpIMul32x16INTEL": 5597,
"OpUMul32x16INTEL": 5598,
+ "OpConstFunctionPointerINTEL": 5600,
+ "OpFunctionPointerCallINTEL": 5601,
+ "OpAsmTargetINTEL": 5609,
+ "OpAsmINTEL": 5610,
+ "OpAsmCallINTEL": 5611,
"OpDecorateString": 5632,
"OpDecorateStringGOOGLE": 5632,
"OpMemberDecorateString": 5633,
@@ -1518,6 +1648,15 @@
"OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL": 5814,
"OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL": 5815,
"OpSubgroupAvcSicGetInterRawSadsINTEL": 5816,
+ "OpVariableLengthArrayINTEL": 5818,
+ "OpSaveMemoryINTEL": 5819,
+ "OpRestoreMemoryINTEL": 5820,
+ "OpLoopControlINTEL": 5887,
+ "OpPtrCastToCrossWorkgroupINTEL": 5934,
+ "OpCrossWorkgroupCastToPtrINTEL": 5938,
+ "OpReadPipeBlockingINTEL": 5946,
+ "OpWritePipeBlockingINTEL": 5947,
+ "OpFPGARegINTEL": 5949,
"OpRayQueryGetRayTMinKHR": 6016,
"OpRayQueryGetRayFlagsKHR": 6017,
"OpRayQueryGetIntersectionTKHR": 6018,
@@ -1534,7 +1673,12 @@
"OpRayQueryGetWorldRayDirectionKHR": 6029,
"OpRayQueryGetWorldRayOriginKHR": 6030,
"OpRayQueryGetIntersectionObjectToWorldKHR": 6031,
- "OpRayQueryGetIntersectionWorldToObjectKHR": 6032
+ "OpRayQueryGetIntersectionWorldToObjectKHR": 6032,
+ "OpAtomicFAddEXT": 6035,
+ "OpTypeBufferSurfaceINTEL": 6086,
+ "OpTypeStructContinuedINTEL": 6090,
+ "OpConstantCompositeContinuedINTEL": 6091,
+ "OpSpecConstantCompositeContinuedINTEL": 6092
}
}
]
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 3774a95..3193ff7 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -45,7 +45,7 @@
spv = {
MagicNumber = 0x07230203,
Version = 0x00010500,
- Revision = 1,
+ Revision = 4,
OpCodeMask = 0xffff,
WordCountShift = 16,
@@ -155,6 +155,16 @@ spv = {
SampleInterlockUnorderedEXT = 5369,
ShadingRateInterlockOrderedEXT = 5370,
ShadingRateInterlockUnorderedEXT = 5371,
+ SharedLocalMemorySizeINTEL = 5618,
+ RoundingModeRTPINTEL = 5620,
+ RoundingModeRTNINTEL = 5621,
+ FloatingPointModeALTINTEL = 5622,
+ FloatingPointModeIEEEINTEL = 5623,
+ MaxWorkgroupSizeINTEL = 5893,
+ MaxWorkDimINTEL = 5894,
+ NoGlobalOffsetINTEL = 5895,
+ NumSIMDWorkitemsINTEL = 5896,
+ SchedulerTargetFmaxMhzINTEL = 5903,
},
StorageClass = {
@@ -185,6 +195,9 @@ spv = {
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
+ CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
},
Dim = {
@@ -251,6 +264,8 @@ spv = {
Rg8ui = 37,
R16ui = 38,
R8ui = 39,
+ R64ui = 40,
+ R64i = 41,
},
ImageChannelOrder = {
@@ -345,6 +360,8 @@ spv = {
NSZ = 2,
AllowRecip = 3,
Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
},
FPFastMathModeMask = {
@@ -354,6 +371,8 @@ spv = {
NSZ = 0x00000004,
AllowRecip = 0x00000008,
Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
},
FPRoundingMode = {
@@ -450,11 +469,45 @@ spv = {
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
+ SIMTCallINTEL = 5599,
+ ReferencedIndirectlyINTEL = 5602,
+ ClobberINTEL = 5607,
+ SideEffectsINTEL = 5608,
+ VectorComputeVariableINTEL = 5624,
+ FuncParamIOKindINTEL = 5625,
+ VectorComputeFunctionINTEL = 5626,
+ StackCallINTEL = 5627,
+ GlobalVariableOffsetINTEL = 5628,
CounterBuffer = 5634,
HlslCounterBufferGOOGLE = 5634,
HlslSemanticGOOGLE = 5635,
UserSemantic = 5635,
UserTypeGOOGLE = 5636,
+ FunctionRoundingModeINTEL = 5822,
+ FunctionDenormModeINTEL = 5823,
+ RegisterINTEL = 5825,
+ MemoryINTEL = 5826,
+ NumbanksINTEL = 5827,
+ BankwidthINTEL = 5828,
+ MaxPrivateCopiesINTEL = 5829,
+ SinglepumpINTEL = 5830,
+ DoublepumpINTEL = 5831,
+ MaxReplicatesINTEL = 5832,
+ SimpleDualPortINTEL = 5833,
+ MergeINTEL = 5834,
+ BankBitsINTEL = 5835,
+ ForcePow2DepthINTEL = 5836,
+ BurstCoalesceINTEL = 5899,
+ CacheSizeINTEL = 5900,
+ DontStaticallyCoalesceINTEL = 5901,
+ PrefetchINTEL = 5902,
+ StallEnableINTEL = 5905,
+ FuseLoopsInFunctionINTEL = 5907,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
},
BuiltIn = {
@@ -512,8 +565,10 @@ spv = {
BaseVertex = 4424,
BaseInstance = 4425,
DrawIndex = 4426,
+ PrimitiveShadingRateKHR = 4432,
DeviceIndex = 4438,
ViewIndex = 4440,
+ ShadingRateKHR = 4444,
BaryCoordNoPerspAMD = 4992,
BaryCoordNoPerspCentroidAMD = 4993,
BaryCoordNoPerspSampleAMD = 4994,
@@ -564,7 +619,6 @@ spv = {
ObjectToWorldNV = 5330,
WorldToObjectKHR = 5331,
WorldToObjectNV = 5331,
- HitTKHR = 5332,
HitTNV = 5332,
HitKindKHR = 5333,
HitKindNV = 5333,
@@ -598,6 +652,14 @@ spv = {
IterationMultiple = 6,
PeelCount = 7,
PartialCount = 8,
+ InitiationIntervalINTEL = 16,
+ MaxConcurrencyINTEL = 17,
+ DependencyArrayINTEL = 18,
+ PipelineEnableINTEL = 19,
+ LoopCoalesceINTEL = 20,
+ MaxInterleavingINTEL = 21,
+ SpeculatedIterationsINTEL = 22,
+ NoFusionINTEL = 23,
},
LoopControlMask = {
@@ -611,6 +673,14 @@ spv = {
IterationMultiple = 0x00000040,
PeelCount = 0x00000080,
PartialCount = 0x00000100,
+ InitiationIntervalINTEL = 0x00010000,
+ MaxConcurrencyINTEL = 0x00020000,
+ DependencyArrayINTEL = 0x00040000,
+ PipelineEnableINTEL = 0x00080000,
+ LoopCoalesceINTEL = 0x00100000,
+ MaxInterleavingINTEL = 0x00200000,
+ SpeculatedIterationsINTEL = 0x00400000,
+ NoFusionINTEL = 0x00800000,
},
FunctionControlShift = {
@@ -800,8 +870,12 @@ spv = {
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
+ FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
+ WorkgroupMemoryExplicitLayoutKHR = 4428,
+ WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
SubgroupVoteKHR = 4431,
StorageBuffer16BitAccess = 4433,
StorageUniformBufferBlock16 = 4433,
@@ -824,12 +898,15 @@ spv = {
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
RayQueryProvisionalKHR = 4471,
- RayTraversalPrimitiveCullingProvisionalKHR = 4478,
+ RayQueryKHR = 4472,
+ RayTraversalPrimitiveCullingKHR = 4478,
+ RayTracingKHR = 4479,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
StencilExportEXT = 5013,
ImageReadWriteLodAMD = 5015,
+ Int64ImageEXT = 5016,
ShaderClockKHR = 5055,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
@@ -889,10 +966,37 @@ spv = {
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
SubgroupImageMediaBlockIOINTEL = 5579,
+ RoundToInfinityINTEL = 5582,
+ FloatingPointModeINTEL = 5583,
IntegerFunctions2INTEL = 5584,
+ FunctionPointersINTEL = 5603,
+ IndirectReferencesINTEL = 5604,
+ AsmINTEL = 5606,
+ VectorComputeINTEL = 5617,
+ VectorAnyINTEL = 5619,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
+ VariableLengthArrayINTEL = 5817,
+ FunctionFloatControlINTEL = 5821,
+ FPGAMemoryAttributesINTEL = 5824,
+ FPFastMathModeINTEL = 5837,
+ ArbitraryPrecisionIntegersINTEL = 5844,
+ UnstructuredLoopControlsINTEL = 5886,
+ FPGALoopControlsINTEL = 5888,
+ KernelAttributesINTEL = 5892,
+ FPGAKernelAttributesINTEL = 5897,
+ FPGAMemoryAccessesINTEL = 5898,
+ FPGAClusterAttributesINTEL = 5904,
+ LoopFuseINTEL = 5906,
+ FPGABufferLocationINTEL = 5920,
+ USMStorageClassesINTEL = 5935,
+ IOPipesINTEL = 5943,
+ BlockingPipesINTEL = 5945,
+ FPGARegINTEL = 5948,
+ AtomicFloat32AddEXT = 6033,
+ AtomicFloat64AddEXT = 6034,
+ LongConstantCompositeINTEL = 6089,
},
RayFlagsShift = {
@@ -938,6 +1042,31 @@ spv = {
RayQueryCandidateIntersectionAABBKHR = 1,
},
+ FragmentShadingRateShift = {
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+ },
+
+ FragmentShadingRateMask = {
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+ },
+
+ FPDenormMode = {
+ Preserve = 0,
+ FlushToZero = 1,
+ },
+
+ FPOperationMode = {
+ IEEE = 0,
+ ALT = 1,
+ },
+
Op = {
OpNop = 0,
OpUndef = 1,
@@ -1283,13 +1412,19 @@ spv = {
OpPtrEqual = 401,
OpPtrNotEqual = 402,
OpPtrDiff = 403,
+ OpTerminateInvocation = 4416,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
- OpTypeRayQueryProvisionalKHR = 4472,
+ OpTraceRayKHR = 4445,
+ OpExecuteCallableKHR = 4446,
+ OpConvertUToAccelerationStructureKHR = 4447,
+ OpIgnoreIntersectionKHR = 4448,
+ OpTerminateRayKHR = 4449,
+ OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
OpRayQueryGenerateIntersectionKHR = 4475,
@@ -1312,15 +1447,11 @@ spv = {
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,
@@ -1355,6 +1486,11 @@ spv = {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
+ OpConstFunctionPointerINTEL = 5600,
+ OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1477,6 +1613,15 @@ spv = {
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
+ OpLoopControlINTEL = 5887,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
+ OpReadPipeBlockingINTEL = 5946,
+ OpWritePipeBlockingINTEL = 5947,
+ OpFPGARegINTEL = 5949,
OpRayQueryGetRayTMinKHR = 6016,
OpRayQueryGetRayFlagsKHR = 6017,
OpRayQueryGetIntersectionTKHR = 6018,
@@ -1494,6 +1639,11 @@ spv = {
OpRayQueryGetWorldRayOriginKHR = 6030,
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+ OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
},
}
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index a7344aa..46d7182 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -45,7 +45,7 @@
spv = {
'MagicNumber' : 0x07230203,
'Version' : 0x00010500,
- 'Revision' : 1,
+ 'Revision' : 4,
'OpCodeMask' : 0xffff,
'WordCountShift' : 16,
@@ -155,6 +155,16 @@ spv = {
'SampleInterlockUnorderedEXT' : 5369,
'ShadingRateInterlockOrderedEXT' : 5370,
'ShadingRateInterlockUnorderedEXT' : 5371,
+ 'SharedLocalMemorySizeINTEL' : 5618,
+ 'RoundingModeRTPINTEL' : 5620,
+ 'RoundingModeRTNINTEL' : 5621,
+ 'FloatingPointModeALTINTEL' : 5622,
+ 'FloatingPointModeIEEEINTEL' : 5623,
+ 'MaxWorkgroupSizeINTEL' : 5893,
+ 'MaxWorkDimINTEL' : 5894,
+ 'NoGlobalOffsetINTEL' : 5895,
+ 'NumSIMDWorkitemsINTEL' : 5896,
+ 'SchedulerTargetFmaxMhzINTEL' : 5903,
},
'StorageClass' : {
@@ -185,6 +195,9 @@ spv = {
'ShaderRecordBufferNV' : 5343,
'PhysicalStorageBuffer' : 5349,
'PhysicalStorageBufferEXT' : 5349,
+ 'CodeSectionINTEL' : 5605,
+ 'DeviceOnlyINTEL' : 5936,
+ 'HostOnlyINTEL' : 5937,
},
'Dim' : {
@@ -251,6 +264,8 @@ spv = {
'Rg8ui' : 37,
'R16ui' : 38,
'R8ui' : 39,
+ 'R64ui' : 40,
+ 'R64i' : 41,
},
'ImageChannelOrder' : {
@@ -345,6 +360,8 @@ spv = {
'NSZ' : 2,
'AllowRecip' : 3,
'Fast' : 4,
+ 'AllowContractFastINTEL' : 16,
+ 'AllowReassocINTEL' : 17,
},
'FPFastMathModeMask' : {
@@ -354,6 +371,8 @@ spv = {
'NSZ' : 0x00000004,
'AllowRecip' : 0x00000008,
'Fast' : 0x00000010,
+ 'AllowContractFastINTEL' : 0x00010000,
+ 'AllowReassocINTEL' : 0x00020000,
},
'FPRoundingMode' : {
@@ -450,11 +469,45 @@ spv = {
'RestrictPointerEXT' : 5355,
'AliasedPointer' : 5356,
'AliasedPointerEXT' : 5356,
+ 'SIMTCallINTEL' : 5599,
+ 'ReferencedIndirectlyINTEL' : 5602,
+ 'ClobberINTEL' : 5607,
+ 'SideEffectsINTEL' : 5608,
+ 'VectorComputeVariableINTEL' : 5624,
+ 'FuncParamIOKindINTEL' : 5625,
+ 'VectorComputeFunctionINTEL' : 5626,
+ 'StackCallINTEL' : 5627,
+ 'GlobalVariableOffsetINTEL' : 5628,
'CounterBuffer' : 5634,
'HlslCounterBufferGOOGLE' : 5634,
'HlslSemanticGOOGLE' : 5635,
'UserSemantic' : 5635,
'UserTypeGOOGLE' : 5636,
+ 'FunctionRoundingModeINTEL' : 5822,
+ 'FunctionDenormModeINTEL' : 5823,
+ 'RegisterINTEL' : 5825,
+ 'MemoryINTEL' : 5826,
+ 'NumbanksINTEL' : 5827,
+ 'BankwidthINTEL' : 5828,
+ 'MaxPrivateCopiesINTEL' : 5829,
+ 'SinglepumpINTEL' : 5830,
+ 'DoublepumpINTEL' : 5831,
+ 'MaxReplicatesINTEL' : 5832,
+ 'SimpleDualPortINTEL' : 5833,
+ 'MergeINTEL' : 5834,
+ 'BankBitsINTEL' : 5835,
+ 'ForcePow2DepthINTEL' : 5836,
+ 'BurstCoalesceINTEL' : 5899,
+ 'CacheSizeINTEL' : 5900,
+ 'DontStaticallyCoalesceINTEL' : 5901,
+ 'PrefetchINTEL' : 5902,
+ 'StallEnableINTEL' : 5905,
+ 'FuseLoopsInFunctionINTEL' : 5907,
+ 'BufferLocationINTEL' : 5921,
+ 'IOPipeStorageINTEL' : 5944,
+ 'FunctionFloatingPointModeINTEL' : 6080,
+ 'SingleElementVectorINTEL' : 6085,
+ 'VectorComputeCallableFunctionINTEL' : 6087,
},
'BuiltIn' : {
@@ -512,8 +565,10 @@ spv = {
'BaseVertex' : 4424,
'BaseInstance' : 4425,
'DrawIndex' : 4426,
+ 'PrimitiveShadingRateKHR' : 4432,
'DeviceIndex' : 4438,
'ViewIndex' : 4440,
+ 'ShadingRateKHR' : 4444,
'BaryCoordNoPerspAMD' : 4992,
'BaryCoordNoPerspCentroidAMD' : 4993,
'BaryCoordNoPerspSampleAMD' : 4994,
@@ -564,7 +619,6 @@ spv = {
'ObjectToWorldNV' : 5330,
'WorldToObjectKHR' : 5331,
'WorldToObjectNV' : 5331,
- 'HitTKHR' : 5332,
'HitTNV' : 5332,
'HitKindKHR' : 5333,
'HitKindNV' : 5333,
@@ -598,6 +652,14 @@ spv = {
'IterationMultiple' : 6,
'PeelCount' : 7,
'PartialCount' : 8,
+ 'InitiationIntervalINTEL' : 16,
+ 'MaxConcurrencyINTEL' : 17,
+ 'DependencyArrayINTEL' : 18,
+ 'PipelineEnableINTEL' : 19,
+ 'LoopCoalesceINTEL' : 20,
+ 'MaxInterleavingINTEL' : 21,
+ 'SpeculatedIterationsINTEL' : 22,
+ 'NoFusionINTEL' : 23,
},
'LoopControlMask' : {
@@ -611,6 +673,14 @@ spv = {
'IterationMultiple' : 0x00000040,
'PeelCount' : 0x00000080,
'PartialCount' : 0x00000100,
+ 'InitiationIntervalINTEL' : 0x00010000,
+ 'MaxConcurrencyINTEL' : 0x00020000,
+ 'DependencyArrayINTEL' : 0x00040000,
+ 'PipelineEnableINTEL' : 0x00080000,
+ 'LoopCoalesceINTEL' : 0x00100000,
+ 'MaxInterleavingINTEL' : 0x00200000,
+ 'SpeculatedIterationsINTEL' : 0x00400000,
+ 'NoFusionINTEL' : 0x00800000,
},
'FunctionControlShift' : {
@@ -800,8 +870,12 @@ spv = {
'GroupNonUniformQuad' : 68,
'ShaderLayer' : 69,
'ShaderViewportIndex' : 70,
+ 'FragmentShadingRateKHR' : 4422,
'SubgroupBallotKHR' : 4423,
'DrawParameters' : 4427,
+ 'WorkgroupMemoryExplicitLayoutKHR' : 4428,
+ 'WorkgroupMemoryExplicitLayout8BitAccessKHR' : 4429,
+ 'WorkgroupMemoryExplicitLayout16BitAccessKHR' : 4430,
'SubgroupVoteKHR' : 4431,
'StorageBuffer16BitAccess' : 4433,
'StorageUniformBufferBlock16' : 4433,
@@ -824,12 +898,15 @@ spv = {
'RoundingModeRTE' : 4467,
'RoundingModeRTZ' : 4468,
'RayQueryProvisionalKHR' : 4471,
- 'RayTraversalPrimitiveCullingProvisionalKHR' : 4478,
+ 'RayQueryKHR' : 4472,
+ 'RayTraversalPrimitiveCullingKHR' : 4478,
+ 'RayTracingKHR' : 4479,
'Float16ImageAMD' : 5008,
'ImageGatherBiasLodAMD' : 5009,
'FragmentMaskAMD' : 5010,
'StencilExportEXT' : 5013,
'ImageReadWriteLodAMD' : 5015,
+ 'Int64ImageEXT' : 5016,
'ShaderClockKHR' : 5055,
'SampleMaskOverrideCoverageNV' : 5249,
'GeometryShaderPassthroughNV' : 5251,
@@ -889,10 +966,37 @@ spv = {
'SubgroupBufferBlockIOINTEL' : 5569,
'SubgroupImageBlockIOINTEL' : 5570,
'SubgroupImageMediaBlockIOINTEL' : 5579,
+ 'RoundToInfinityINTEL' : 5582,
+ 'FloatingPointModeINTEL' : 5583,
'IntegerFunctions2INTEL' : 5584,
+ 'FunctionPointersINTEL' : 5603,
+ 'IndirectReferencesINTEL' : 5604,
+ 'AsmINTEL' : 5606,
+ 'VectorComputeINTEL' : 5617,
+ 'VectorAnyINTEL' : 5619,
'SubgroupAvcMotionEstimationINTEL' : 5696,
'SubgroupAvcMotionEstimationIntraINTEL' : 5697,
'SubgroupAvcMotionEstimationChromaINTEL' : 5698,
+ 'VariableLengthArrayINTEL' : 5817,
+ 'FunctionFloatControlINTEL' : 5821,
+ 'FPGAMemoryAttributesINTEL' : 5824,
+ 'FPFastMathModeINTEL' : 5837,
+ 'ArbitraryPrecisionIntegersINTEL' : 5844,
+ 'UnstructuredLoopControlsINTEL' : 5886,
+ 'FPGALoopControlsINTEL' : 5888,
+ 'KernelAttributesINTEL' : 5892,
+ 'FPGAKernelAttributesINTEL' : 5897,
+ 'FPGAMemoryAccessesINTEL' : 5898,
+ 'FPGAClusterAttributesINTEL' : 5904,
+ 'LoopFuseINTEL' : 5906,
+ 'FPGABufferLocationINTEL' : 5920,
+ 'USMStorageClassesINTEL' : 5935,
+ 'IOPipesINTEL' : 5943,
+ 'BlockingPipesINTEL' : 5945,
+ 'FPGARegINTEL' : 5948,
+ 'AtomicFloat32AddEXT' : 6033,
+ 'AtomicFloat64AddEXT' : 6034,
+ 'LongConstantCompositeINTEL' : 6089,
},
'RayFlagsShift' : {
@@ -938,6 +1042,31 @@ spv = {
'RayQueryCandidateIntersectionAABBKHR' : 1,
},
+ 'FragmentShadingRateShift' : {
+ 'Vertical2Pixels' : 0,
+ 'Vertical4Pixels' : 1,
+ 'Horizontal2Pixels' : 2,
+ 'Horizontal4Pixels' : 3,
+ },
+
+ 'FragmentShadingRateMask' : {
+ 'MaskNone' : 0,
+ 'Vertical2Pixels' : 0x00000001,
+ 'Vertical4Pixels' : 0x00000002,
+ 'Horizontal2Pixels' : 0x00000004,
+ 'Horizontal4Pixels' : 0x00000008,
+ },
+
+ 'FPDenormMode' : {
+ 'Preserve' : 0,
+ 'FlushToZero' : 1,
+ },
+
+ 'FPOperationMode' : {
+ 'IEEE' : 0,
+ 'ALT' : 1,
+ },
+
'Op' : {
'OpNop' : 0,
'OpUndef' : 1,
@@ -1283,13 +1412,19 @@ spv = {
'OpPtrEqual' : 401,
'OpPtrNotEqual' : 402,
'OpPtrDiff' : 403,
+ 'OpTerminateInvocation' : 4416,
'OpSubgroupBallotKHR' : 4421,
'OpSubgroupFirstInvocationKHR' : 4422,
'OpSubgroupAllKHR' : 4428,
'OpSubgroupAnyKHR' : 4429,
'OpSubgroupAllEqualKHR' : 4430,
'OpSubgroupReadInvocationKHR' : 4432,
- 'OpTypeRayQueryProvisionalKHR' : 4472,
+ 'OpTraceRayKHR' : 4445,
+ 'OpExecuteCallableKHR' : 4446,
+ 'OpConvertUToAccelerationStructureKHR' : 4447,
+ 'OpIgnoreIntersectionKHR' : 4448,
+ 'OpTerminateRayKHR' : 4449,
+ 'OpTypeRayQueryKHR' : 4472,
'OpRayQueryInitializeKHR' : 4473,
'OpRayQueryTerminateKHR' : 4474,
'OpRayQueryGenerateIntersectionKHR' : 4475,
@@ -1312,15 +1447,11 @@ spv = {
'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,
@@ -1355,6 +1486,11 @@ spv = {
'OpUSubSatINTEL' : 5596,
'OpIMul32x16INTEL' : 5597,
'OpUMul32x16INTEL' : 5598,
+ 'OpConstFunctionPointerINTEL' : 5600,
+ 'OpFunctionPointerCallINTEL' : 5601,
+ 'OpAsmTargetINTEL' : 5609,
+ 'OpAsmINTEL' : 5610,
+ 'OpAsmCallINTEL' : 5611,
'OpDecorateString' : 5632,
'OpDecorateStringGOOGLE' : 5632,
'OpMemberDecorateString' : 5633,
@@ -1477,6 +1613,15 @@ spv = {
'OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL' : 5814,
'OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL' : 5815,
'OpSubgroupAvcSicGetInterRawSadsINTEL' : 5816,
+ 'OpVariableLengthArrayINTEL' : 5818,
+ 'OpSaveMemoryINTEL' : 5819,
+ 'OpRestoreMemoryINTEL' : 5820,
+ 'OpLoopControlINTEL' : 5887,
+ 'OpPtrCastToCrossWorkgroupINTEL' : 5934,
+ 'OpCrossWorkgroupCastToPtrINTEL' : 5938,
+ 'OpReadPipeBlockingINTEL' : 5946,
+ 'OpWritePipeBlockingINTEL' : 5947,
+ 'OpFPGARegINTEL' : 5949,
'OpRayQueryGetRayTMinKHR' : 6016,
'OpRayQueryGetRayFlagsKHR' : 6017,
'OpRayQueryGetIntersectionTKHR' : 6018,
@@ -1494,6 +1639,11 @@ spv = {
'OpRayQueryGetWorldRayOriginKHR' : 6030,
'OpRayQueryGetIntersectionObjectToWorldKHR' : 6031,
'OpRayQueryGetIntersectionWorldToObjectKHR' : 6032,
+ 'OpAtomicFAddEXT' : 6035,
+ 'OpTypeBufferSurfaceINTEL' : 6086,
+ 'OpTypeStructContinuedINTEL' : 6090,
+ 'OpConstantCompositeContinuedINTEL' : 6091,
+ 'OpSpecConstantCompositeContinuedINTEL' : 6092,
},
}
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 2c76658..5d09343 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -52,7 +52,7 @@ module spv;
enum uint MagicNumber = 0x07230203;
enum uint Version = 0x00010500;
-enum uint Revision = 1;
+enum uint Revision = 4;
enum uint OpCodeMask = 0xffff;
enum uint WordCountShift = 16;
@@ -167,6 +167,16 @@ enum ExecutionMode : uint
SampleInterlockUnorderedEXT = 5369,
ShadingRateInterlockOrderedEXT = 5370,
ShadingRateInterlockUnorderedEXT = 5371,
+ SharedLocalMemorySizeINTEL = 5618,
+ RoundingModeRTPINTEL = 5620,
+ RoundingModeRTNINTEL = 5621,
+ FloatingPointModeALTINTEL = 5622,
+ FloatingPointModeIEEEINTEL = 5623,
+ MaxWorkgroupSizeINTEL = 5893,
+ MaxWorkDimINTEL = 5894,
+ NoGlobalOffsetINTEL = 5895,
+ NumSIMDWorkitemsINTEL = 5896,
+ SchedulerTargetFmaxMhzINTEL = 5903,
}
enum StorageClass : uint
@@ -198,6 +208,9 @@ enum StorageClass : uint
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
+ CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
}
enum Dim : uint
@@ -268,6 +281,8 @@ enum ImageFormat : uint
Rg8ui = 37,
R16ui = 38,
R8ui = 39,
+ R64ui = 40,
+ R64i = 41,
}
enum ImageChannelOrder : uint
@@ -367,6 +382,8 @@ enum FPFastMathModeShift : uint
NSZ = 2,
AllowRecip = 3,
Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
}
enum FPFastMathModeMask : uint
@@ -377,6 +394,8 @@ enum FPFastMathModeMask : uint
NSZ = 0x00000004,
AllowRecip = 0x00000008,
Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
}
enum FPRoundingMode : uint
@@ -478,11 +497,45 @@ enum Decoration : uint
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
+ SIMTCallINTEL = 5599,
+ ReferencedIndirectlyINTEL = 5602,
+ ClobberINTEL = 5607,
+ SideEffectsINTEL = 5608,
+ VectorComputeVariableINTEL = 5624,
+ FuncParamIOKindINTEL = 5625,
+ VectorComputeFunctionINTEL = 5626,
+ StackCallINTEL = 5627,
+ GlobalVariableOffsetINTEL = 5628,
CounterBuffer = 5634,
HlslCounterBufferGOOGLE = 5634,
HlslSemanticGOOGLE = 5635,
UserSemantic = 5635,
UserTypeGOOGLE = 5636,
+ FunctionRoundingModeINTEL = 5822,
+ FunctionDenormModeINTEL = 5823,
+ RegisterINTEL = 5825,
+ MemoryINTEL = 5826,
+ NumbanksINTEL = 5827,
+ BankwidthINTEL = 5828,
+ MaxPrivateCopiesINTEL = 5829,
+ SinglepumpINTEL = 5830,
+ DoublepumpINTEL = 5831,
+ MaxReplicatesINTEL = 5832,
+ SimpleDualPortINTEL = 5833,
+ MergeINTEL = 5834,
+ BankBitsINTEL = 5835,
+ ForcePow2DepthINTEL = 5836,
+ BurstCoalesceINTEL = 5899,
+ CacheSizeINTEL = 5900,
+ DontStaticallyCoalesceINTEL = 5901,
+ PrefetchINTEL = 5902,
+ StallEnableINTEL = 5905,
+ FuseLoopsInFunctionINTEL = 5907,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
}
enum BuiltIn : uint
@@ -541,8 +594,10 @@ enum BuiltIn : uint
BaseVertex = 4424,
BaseInstance = 4425,
DrawIndex = 4426,
+ PrimitiveShadingRateKHR = 4432,
DeviceIndex = 4438,
ViewIndex = 4440,
+ ShadingRateKHR = 4444,
BaryCoordNoPerspAMD = 4992,
BaryCoordNoPerspCentroidAMD = 4993,
BaryCoordNoPerspSampleAMD = 4994,
@@ -593,7 +648,6 @@ enum BuiltIn : uint
ObjectToWorldNV = 5330,
WorldToObjectKHR = 5331,
WorldToObjectNV = 5331,
- HitTKHR = 5332,
HitTNV = 5332,
HitKindKHR = 5333,
HitKindNV = 5333,
@@ -630,6 +684,14 @@ enum LoopControlShift : uint
IterationMultiple = 6,
PeelCount = 7,
PartialCount = 8,
+ InitiationIntervalINTEL = 16,
+ MaxConcurrencyINTEL = 17,
+ DependencyArrayINTEL = 18,
+ PipelineEnableINTEL = 19,
+ LoopCoalesceINTEL = 20,
+ MaxInterleavingINTEL = 21,
+ SpeculatedIterationsINTEL = 22,
+ NoFusionINTEL = 23,
}
enum LoopControlMask : uint
@@ -644,6 +706,14 @@ enum LoopControlMask : uint
IterationMultiple = 0x00000040,
PeelCount = 0x00000080,
PartialCount = 0x00000100,
+ InitiationIntervalINTEL = 0x00010000,
+ MaxConcurrencyINTEL = 0x00020000,
+ DependencyArrayINTEL = 0x00040000,
+ PipelineEnableINTEL = 0x00080000,
+ LoopCoalesceINTEL = 0x00100000,
+ MaxInterleavingINTEL = 0x00200000,
+ SpeculatedIterationsINTEL = 0x00400000,
+ NoFusionINTEL = 0x00800000,
}
enum FunctionControlShift : uint
@@ -845,8 +915,12 @@ enum Capability : uint
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
+ FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
+ WorkgroupMemoryExplicitLayoutKHR = 4428,
+ WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
SubgroupVoteKHR = 4431,
StorageBuffer16BitAccess = 4433,
StorageUniformBufferBlock16 = 4433,
@@ -869,12 +943,15 @@ enum Capability : uint
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
RayQueryProvisionalKHR = 4471,
- RayTraversalPrimitiveCullingProvisionalKHR = 4478,
+ RayQueryKHR = 4472,
+ RayTraversalPrimitiveCullingKHR = 4478,
+ RayTracingKHR = 4479,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
StencilExportEXT = 5013,
ImageReadWriteLodAMD = 5015,
+ Int64ImageEXT = 5016,
ShaderClockKHR = 5055,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
@@ -934,10 +1011,37 @@ enum Capability : uint
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
SubgroupImageMediaBlockIOINTEL = 5579,
+ RoundToInfinityINTEL = 5582,
+ FloatingPointModeINTEL = 5583,
IntegerFunctions2INTEL = 5584,
+ FunctionPointersINTEL = 5603,
+ IndirectReferencesINTEL = 5604,
+ AsmINTEL = 5606,
+ VectorComputeINTEL = 5617,
+ VectorAnyINTEL = 5619,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
+ VariableLengthArrayINTEL = 5817,
+ FunctionFloatControlINTEL = 5821,
+ FPGAMemoryAttributesINTEL = 5824,
+ FPFastMathModeINTEL = 5837,
+ ArbitraryPrecisionIntegersINTEL = 5844,
+ UnstructuredLoopControlsINTEL = 5886,
+ FPGALoopControlsINTEL = 5888,
+ KernelAttributesINTEL = 5892,
+ FPGAKernelAttributesINTEL = 5897,
+ FPGAMemoryAccessesINTEL = 5898,
+ FPGAClusterAttributesINTEL = 5904,
+ LoopFuseINTEL = 5906,
+ FPGABufferLocationINTEL = 5920,
+ USMStorageClassesINTEL = 5935,
+ IOPipesINTEL = 5943,
+ BlockingPipesINTEL = 5945,
+ FPGARegINTEL = 5948,
+ AtomicFloat32AddEXT = 6033,
+ AtomicFloat64AddEXT = 6034,
+ LongConstantCompositeINTEL = 6089,
}
enum RayFlagsShift : uint
@@ -988,6 +1092,35 @@ enum RayQueryCandidateIntersectionType : uint
RayQueryCandidateIntersectionAABBKHR = 1,
}
+enum FragmentShadingRateShift : uint
+{
+ Vertical2Pixels = 0,
+ Vertical4Pixels = 1,
+ Horizontal2Pixels = 2,
+ Horizontal4Pixels = 3,
+}
+
+enum FragmentShadingRateMask : uint
+{
+ MaskNone = 0,
+ Vertical2Pixels = 0x00000001,
+ Vertical4Pixels = 0x00000002,
+ Horizontal2Pixels = 0x00000004,
+ Horizontal4Pixels = 0x00000008,
+}
+
+enum FPDenormMode : uint
+{
+ Preserve = 0,
+ FlushToZero = 1,
+}
+
+enum FPOperationMode : uint
+{
+ IEEE = 0,
+ ALT = 1,
+}
+
enum Op : uint
{
OpNop = 0,
@@ -1334,13 +1467,19 @@ enum Op : uint
OpPtrEqual = 401,
OpPtrNotEqual = 402,
OpPtrDiff = 403,
+ OpTerminateInvocation = 4416,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
- OpTypeRayQueryProvisionalKHR = 4472,
+ OpTraceRayKHR = 4445,
+ OpExecuteCallableKHR = 4446,
+ OpConvertUToAccelerationStructureKHR = 4447,
+ OpIgnoreIntersectionKHR = 4448,
+ OpTerminateRayKHR = 4449,
+ OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
OpRayQueryGenerateIntersectionKHR = 4475,
@@ -1363,15 +1502,11 @@ enum Op : uint
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,
@@ -1406,6 +1541,11 @@ enum Op : uint
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
+ OpConstFunctionPointerINTEL = 5600,
+ OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1528,6 +1668,15 @@ enum Op : uint
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
+ OpLoopControlINTEL = 5887,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
+ OpReadPipeBlockingINTEL = 5946,
+ OpWritePipeBlockingINTEL = 5947,
+ OpFPGARegINTEL = 5949,
OpRayQueryGetRayTMinKHR = 6016,
OpRayQueryGetRayFlagsKHR = 6017,
OpRayQueryGetIntersectionTKHR = 6018,
@@ -1545,6 +1694,11 @@ enum Op : uint
OpRayQueryGetWorldRayOriginKHR = 6030,
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+ OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
}
diff --git a/tools/buildHeaders/bin/makeExtinstHeaders.py b/tools/buildHeaders/bin/makeExtinstHeaders.py
index 780e479..9359747 100755
--- a/tools/buildHeaders/bin/makeExtinstHeaders.py
+++ b/tools/buildHeaders/bin/makeExtinstHeaders.py
@@ -25,3 +25,4 @@ 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')
+mk_extinst('NonSemanticClspvReflection', 'extinst.nonsemantic.clspvreflection.grammar.json')
diff --git a/tools/buildHeaders/header.cpp b/tools/buildHeaders/header.cpp
index 7e8f668..926905e 100644
--- a/tools/buildHeaders/header.cpp
+++ b/tools/buildHeaders/header.cpp
@@ -70,8 +70,8 @@ namespace {
static const int DocMagicNumber = 0x07230203;
static const int DocVersion = 0x00010500;
- static const int DocRevision = 1;
- #define DocRevisionString "1"
+ static const int DocRevision = 4;
+ #define DocRevisionString "4"
static const std::string DocCopyright;
static const std::string DocComment1;
static const std::string DocComment2;
diff --git a/tools/buildHeaders/jsonToSpirv.cpp b/tools/buildHeaders/jsonToSpirv.cpp
index 5cca0b9..e5b1e3e 100644
--- a/tools/buildHeaders/jsonToSpirv.cpp
+++ b/tools/buildHeaders/jsonToSpirv.cpp
@@ -61,6 +61,8 @@ EnumValues ImageChannelDataTypeParams;
EnumValues ImageOperandsParams;
EnumValues FPFastMathParams;
EnumValues FPRoundingModeParams;
+EnumValues FPDenormModeParams;
+EnumValues FPOperationModeParams;
EnumValues LinkageTypeParams;
EnumValues DecorationParams;
EnumValues BuiltInParams;
@@ -81,6 +83,7 @@ EnumValues RayFlagsParams;
EnumValues RayQueryIntersectionParams;
EnumValues RayQueryCommittedIntersectionTypeParams;
EnumValues RayQueryCandidateIntersectionTypeParams;
+EnumValues FragmentShadingRateParams;
std::pair<bool, std::string> ReadFile(const std::string& path)
{
@@ -177,6 +180,10 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
type = OperandImageChannelDataType;
} else if (operandKind == "FPRoundingMode") {
type = OperandFPRoundingMode;
+ } else if (operandKind == "FPDenormMode") {
+ type = OperandFPDenormMode;
+ } else if (operandKind == "FPOperationMode") {
+ type = OperandFPOperationMode;
} else if (operandKind == "LinkageType") {
type = OperandLinkageType;
} else if (operandKind == "AccessQualifier") {
@@ -215,6 +222,8 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
type = OperandRayQueryCommittedIntersectionType;
} else if (operandKind == "RayQueryCandidateIntersectionType") {
type = OperandRayQueryCandidateIntersectionType;
+ } else if (operandKind == "FragmentShadingRate") {
+ type = OperandFragmentShadingRate;
}
if (type == OperandNone) {
@@ -449,6 +458,10 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
establishOperandClass(enumName, OperandFPFastMath, &FPFastMathParams, operandEnum, category);
} else if (enumName == "FPRoundingMode") {
establishOperandClass(enumName, OperandFPRoundingMode, &FPRoundingModeParams, operandEnum, category);
+ } else if (enumName == "FPDenormMode") {
+ establishOperandClass(enumName, OperandFPDenormMode, &FPDenormModeParams, operandEnum, category);
+ } else if (enumName == "FPOperationMode") {
+ establishOperandClass(enumName, OperandFPOperationMode, &FPOperationModeParams, operandEnum, category);
} else if (enumName == "LinkageType") {
establishOperandClass(enumName, OperandLinkageType, &LinkageTypeParams, operandEnum, category);
} else if (enumName == "FunctionParameterAttribute") {
@@ -483,6 +496,8 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
establishOperandClass(enumName, OperandRayQueryCommittedIntersectionType, &RayQueryCommittedIntersectionTypeParams, operandEnum, category);
} else if (enumName == "RayQueryCandidateIntersectionType") {
establishOperandClass(enumName, OperandRayQueryCandidateIntersectionType, &RayQueryCandidateIntersectionTypeParams, operandEnum, category);
+ } else if (enumName == "FragmentShadingRate") {
+ establishOperandClass(enumName, OperandFragmentShadingRate, &FragmentShadingRateParams, operandEnum, category);
}
}
}
diff --git a/tools/buildHeaders/jsonToSpirv.h b/tools/buildHeaders/jsonToSpirv.h
index 9a5eafd..51aa763 100644
--- a/tools/buildHeaders/jsonToSpirv.h
+++ b/tools/buildHeaders/jsonToSpirv.h
@@ -41,6 +41,8 @@ std::pair<bool, std::string> ReadFile(const std::string& path);
void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders);
// For parameterizing operands.
+// The ordering here affects the printing order in the SPIR-V specification.
+// Please add new operand classes at the end.
enum OperandClass {
OperandNone,
OperandId,
@@ -80,7 +82,7 @@ enum OperandClass {
OperandMemorySemantics,
OperandMemoryOperands,
OperandScope,
- OperandGroupOperation,
+ OperandGroupOperation,
OperandKernelEnqueueFlags,
OperandKernelProfilingInfo,
OperandCapability,
@@ -88,6 +90,9 @@ enum OperandClass {
OperandRayQueryIntersection,
OperandRayQueryCommittedIntersectionType,
OperandRayQueryCandidateIntersectionType,
+ OperandFragmentShadingRate,
+ OperandFPDenormMode,
+ OperandFPOperationMode,
OperandOpcode,