aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-05-11 05:03:35 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-05-11 05:03:35 +0000
commite65db622cf2a94a3b401d96fc9aaa41cc1269755 (patch)
tree0d0a1f441a997bffd381cc850b756d3d10c2d90b
parent8ded193f0a575733a090b27917336055bf22cc70 (diff)
parent567fdaf4e08b0c6cd6887dc2f5753f27b25f6ad5 (diff)
downloadSPIRV-Headers-android13-mainline-scheduling-release.tar.gz
Snap for 8570526 from 567fdaf4e08b0c6cd6887dc2f5753f27b25f6ad5 to mainline-scheduling-releaseaml_sch_331113000aml_sch_331111000android13-mainline-scheduling-release
Change-Id: I836f496aed14f5c5fc48b1215105d1a056491ab7
-rw-r--r--.github/workflows/presubmit.yml37
-rw-r--r--Android.bp6
-rw-r--r--BUILD.bazel5
-rw-r--r--CMakeLists.txt10
-rw-r--r--README.md13
-rw-r--r--SPIRV-Headers.pc.in9
-rw-r--r--include/spirv/spir-v.xml92
-rw-r--r--include/spirv/unified1/DebugInfo.h1
-rw-r--r--include/spirv/unified1/NonSemanticClspvReflection.h3
-rw-r--r--include/spirv/unified1/NonSemanticShaderDebugInfo100.h171
-rw-r--r--include/spirv/unified1/OpenCLDebugInfo100.h2
-rw-r--r--include/spirv/unified1/extinst.debuginfo.grammar.json4
-rw-r--r--include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json9
-rw-r--r--include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json713
-rw-r--r--include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json19
-rw-r--r--include/spirv/unified1/spirv.core.grammar.json1720
-rw-r--r--include/spirv/unified1/spirv.cs165
-rw-r--r--include/spirv/unified1/spirv.h242
-rw-r--r--include/spirv/unified1/spirv.hpp242
-rw-r--r--include/spirv/unified1/spirv.hpp11230
-rw-r--r--include/spirv/unified1/spirv.json169
-rw-r--r--include/spirv/unified1/spirv.lua148
-rw-r--r--include/spirv/unified1/spirv.py148
-rw-r--r--include/spirv/unified1/spv.d151
-rw-r--r--tools/buildHeaders/CMakeLists.txt2
-rwxr-xr-xtools/buildHeaders/bin/makeHeaders2
-rw-r--r--tools/buildHeaders/header.cpp10
-rw-r--r--tools/buildHeaders/jsonToSpirv.cpp46
-rw-r--r--tools/buildHeaders/jsonToSpirv.h3
29 files changed, 4232 insertions, 140 deletions
diff --git a/.github/workflows/presubmit.yml b/.github/workflows/presubmit.yml
new file mode 100644
index 0000000..d9c25fa
--- /dev/null
+++ b/.github/workflows/presubmit.yml
@@ -0,0 +1,37 @@
+name: Presubmit
+on: [push, pull_request]
+
+jobs:
+ build:
+ name: Build ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, macos-latest, windows-latest]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install Ubuntu packages
+ if: matrix.os == 'ubuntu-latest'
+ run: sudo apt install -y dos2unix
+ - name: Install macOS packages
+ if: matrix.os == 'macos-latest'
+ run: brew install dos2unix
+ - name: Build
+ run: |
+ mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=install ..
+ cmake --build . --target install
+ - name: Build spec tools
+ run: |
+ cd tools/buildHeaders
+ mkdir build
+ cd build
+ cmake ..
+ cmake --build . --target install
+ - name: Build headers
+ run: |
+ cd tools/buildHeaders
+ ./bin/makeHeaders
+ - name: Check generated headers
+ run: git diff --exit-code
diff --git a/Android.bp b/Android.bp
index c034672..ff46b45 100644
--- a/Android.bp
+++ b/Android.bp
@@ -3,6 +3,7 @@
// 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.nonsemantic.shader.debuginfo.100.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
@@ -60,6 +61,11 @@ filegroup {
}
filegroup {
+ name: "deqp_spirv_headers_unified1_extinst.nonsemantic.shader.debuginfo.100.grammar.json",
+ srcs: ["include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json"],
+}
+
+filegroup {
name: "deqp_spirv_headers_unified1_extinst.opencl.debuginfo.100.grammar.json",
srcs: ["include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json"],
}
diff --git a/BUILD.bazel b/BUILD.bazel
index 9cb46bf..c898ade 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -92,6 +92,11 @@ filegroup(
)
filegroup(
+ name = "spirv_ext_inst_nonsemantic_shader_debuginfo_100_grammar_unified1",
+ srcs = ["include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json"],
+)
+
+filegroup(
name = "spirv_ext_inst_spv_amd_gcn_shader_grammar_unified1",
srcs = ["include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json"],
)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index eb46947..f19390a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,7 +29,7 @@
# https://www.khronos.org/registry/spir-v/
#
cmake_minimum_required(VERSION 3.0)
-project(SPIRV-Headers VERSION 1.5.1)
+project(SPIRV-Headers VERSION 1.5.5)
# There are two ways to use this project.
#
@@ -79,7 +79,7 @@ target_include_directories(${PROJECT_NAME} INTERFACE
if (SPIRV_HEADERS_ENABLE_INSTALL)
message(STATUS "Installing SPIRV-Header")
- set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
+ set(config_install_dir "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}")
set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
@@ -124,4 +124,10 @@ if (SPIRV_HEADERS_ENABLE_INSTALL)
NAMESPACE "${namespace}"
DESTINATION "${config_install_dir}"
)
+
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Headers.pc.in ${CMAKE_BINARY_DIR}/SPIRV-Headers.pc @ONLY)
+ install(
+ FILES "${CMAKE_BINARY_DIR}/SPIRV-Headers.pc"
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig
+ )
endif()
diff --git a/README.md b/README.md
index b1aa964..8c7039f 100644
--- a/README.md
+++ b/README.md
@@ -140,10 +140,21 @@ and can be used to test a PR, or even to include the results in the PR.
This is not required though.
The header-generation project is under the `tools/buildHeaders` directory.
-Use CMake to build the project, in a `build` subdirectory (under `tools/buildHeaders`).
+Use CMake to build and install the project, in a `build` subdirectory (under `tools/buildHeaders`).
There is then a bash script at `bin/makeHeaders` that shows how to use the built
header-generator binary to generate the headers from the JSON grammar.
(Execute `bin/makeHeaders` from the `tools/buildHeaders` directory.)
+Here's a complete example:
+
+```
+cd tools/buildHeaders
+mkdir build
+cd build
+cmake ..
+cmake --build . --target install
+cd ..
+./bin/makeHeaders
+```
Notes:
- this generator is used in a broader context within Khronos to generate the specification,
diff --git a/SPIRV-Headers.pc.in b/SPIRV-Headers.pc.in
new file mode 100644
index 0000000..345f5f8
--- /dev/null
+++ b/SPIRV-Headers.pc.in
@@ -0,0 +1,9 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
+
+Name: SPIRV-Headers
+Description: Header files from the SPIR-V registry
+Version: @CMAKE_PROJECT_VERSION@
+Requires:
+Libs:
+Cflags: -I${includedir}
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index d1ebaab..6b578a5 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -55,7 +55,7 @@
<id value="2" vendor="Valve" comment="Contact TBD"/>
<id value="3" vendor="Codeplay" comment="Contact Victor Lomuller, victor@codeplay.com"/>
<id value="4" vendor="NVIDIA" comment="Contact Kerch Holt, kholt@nvidia.com"/>
- <id value="5" vendor="ARM" comment="Contact Alexander Galazin, alexander.galazin@arm.com"/>
+ <id value="5" vendor="ARM" comment="Contact Kevin Petit, kevin.petit@arm.com"/>
<id value="6" vendor="Khronos" tool="LLVM/SPIR-V Translator" comment="Contact Yaxun (Sam) Liu, yaxun.liu@amd.com"/>
<id value="7" vendor="Khronos" tool="SPIR-V Tools Assembler" comment="Contact David Neto, dneto@google.com"/>
<id value="8" vendor="Khronos" tool="Glslang Reference Front End" comment="Contact John Kessenich, johnkessenich@google.com"/>
@@ -69,7 +69,7 @@
<id value="16" vendor="X-LEGEND" tool="Mesa-IR/SPIR-V Translator" comment="Contact Metora Wang, github:metora/MesaGLSLCompiler"/>
<id value="17" vendor="Khronos" tool="SPIR-V Tools Linker" comment="Contact David Neto, dneto@google.com"/>
<id value="18" vendor="Wine" tool="VKD3D Shader Compiler" comment="Contact wine-devel@winehq.org"/>
- <id value="19" vendor="Clay" tool="Clay Shader Compiler" comment="Contact info@clayengine.com"/>
+ <id value="19" vendor="Tellusim" tool="Clay Shader Compiler" comment="Contact info@tellusim.com"/>
<id value="20" vendor="W3C WebGPU Group" tool="WHLSL Shader Translator" comment="https://github.com/gpuweb/WHLSL"/>
<id value="21" vendor="Google" tool="Clspv" comment="Contact David Neto, dneto@google.com"/>
<id value="22" vendor="Google" tool="MLIR SPIR-V Serializer" comment="Contact Lei Zhang, antiagainst@google.com"/>
@@ -78,7 +78,13 @@
<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"/>
+ <id value="28" vendor="gfx-rs community" tool="Naga" comment="https://github.com/gfx-rs/naga"/>
+ <id value="29" vendor="Mikkosoft Productions" tool="MSP Shader Compiler" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
+ <id value="30" vendor="SpvGenTwo community" tool="SpvGenTwo SPIR-V IR Tools" comment="https://github.com/rAzoR8/SpvGenTwo"/>
+ <id value="31" vendor="Google" tool="Skia SkSL" comment="Contact Ethan Nicholas, ethannicholas@google.com"/>
+ <id value="32" vendor="TornadoVM" tool="SPIRV Beehive Toolkit" comment="https://github.com/beehive-lab/spirv-beehive-toolkit"/>
+ <id value="33" vendor="DragonJoker" tool="ShaderWriter" comment="Contact Sylvain Doremus, https://github.com/DragonJoker/ShaderWriter"/>
+ <unused start="34" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
</ids>
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
@@ -115,7 +121,7 @@
<!-- 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"/>
+ <ids type="opcode" start="4160" end="4415" vendor="ARM" comment="Contact kevin.petit@arm.com"/>
<ids type="opcode" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, neil.henning@amd.com"/>
<ids type="opcode" start="4480" end="4991" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/>
<ids type="opcode" start="4992" end="5247" vendor="AMD"/>
@@ -128,20 +134,23 @@
<ids type="opcode" start="5952" end="6015" vendor="Codeplay" comment="Contact victor@codeplay.com"/>
<ids type="opcode" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
<ids type="opcode" start="6080" end="6143" vendor="Intel" comment="Contact mariusz.merecki@intel.com"/>
+ <ids type="opcode" start="6144" end="6271" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="opcode" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
+ <ids type="opcode" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
<!-- Opcode enumerants to reserve for future use. To get a block, allocate
multiples of 64 starting at the lowest available point in this
block and add a corresponding <ids> tag immediately above. Make
sure to fill in the vendor attribute, and preferably add a contact
person/address in a comment attribute. -->
<!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
- <ids type="opcode" start="6144" end="65535" comment="Opcode range reservable for future use by vendors"/>
+ <ids type="opcode" start="6464" end="65535" comment="Opcode range reservable for future use by vendors"/>
<!-- End reservations of opcodes -->
<!-- Begin reservations of non-opcode enumerants -->
<ids type="enumerant" start="0" end="4095" vendor="Khronos" comment="Reserved enumerants, not available to vendors - see the SPIR-V Specification"/>
<ids type="enumerant" start="4096" end="4159" vendor="Mesa" comment="Contact TBD"/>
- <ids type="enumerant" start="4160" end="4415" vendor="ARM"/>
+ <ids type="enumerant" start="4160" end="4415" vendor="ARM" comment="Contact kevin.petit@arm.com"/>
<ids type="enumerant" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, neil.henning@amd.com"/>
<ids type="enumerant" start="4480" end="4991" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/>
<ids type="enumerant" start="4992" end="5247" vendor="AMD"/>
@@ -154,13 +163,16 @@
<ids type="enumerant" start="5952" end="6015" vendor="Codeplay" comment="Contact victor@codeplay.com"/>
<ids type="enumerant" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
<ids type="enumerant" start="6080" end="6143" vendor="Intel" comment="Contact mariusz.merecki@intel.com"/>
+ <ids type="enumerant" start="6144" end="6271" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="enumerant" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
+ <ids type="enumerant" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
<!-- 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"/>
+ <ids type="enumerant" start="6464" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
<!-- End reservations of enumerants -->
@@ -180,11 +192,32 @@
<!-- 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="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="16" end="25" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="LoopControl" start="26" end="30" comment="Unreserved bits reservable for use by vendors"/>
<ids type="LoopControl" start="31" end="31" vendor="Khronos" comment="Reserved LoopControl bit, not available to vendors"/>
+ <!-- SECTION: SPIR-V Function Control Bit Reservations -->
+ <!-- Reserve ranges of bits in the function control bitfield.
+
+ Each vendor determines the use of values in their own ranges.
+ Vendors are not required to disclose those uses. If the use of a
+ value is included in an extension that is adopted by a Khronos
+ extension or specification, then that value's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+
+ The SPIR Working Group strongly recommends:
+ - Each value is used for only one purpose.
+ - All values in a range should be used before allocating a new range.
+ -->
+
+ <!-- Reserved function control bits -->
+ <ids type="FunctionControl" start="0" end="15" vendor="Khronos" comment="Reserved FunctionControl bits, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="FunctionControl" start="16" end="16" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
+ <ids type="FunctionControl" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
+ <ids type="FunctionControl" start="31" end="31" vendor="Khronos" comment="Reserved FunctionControl bit, not available to vendors"/>
+
+
<!-- SECTION: SPIR-V FP Fast Math Mode Bit Reservations -->
<!-- Reserve ranges of bits in the "FP Fast Math Mode" bitfield.
Each vendor determines the use of values in their own ranges.
@@ -202,4 +235,45 @@
<ids type="FPFastMathMode" start="16" end="17" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
<ids type="FPFastMathMode" start="18" end="31" comment="Unreserved bits reservable for use by vendors"/>
+
+ <!-- SECTION: SPIR-V Memory Operand Bit Reservations -->
+ <!-- Reserve ranges of bits in the memory operands bitfield.
+
+ Each vendor determines the use of values in their own ranges.
+ Vendors are not required to disclose those uses. If the use of a
+ value is included in an extension that is adopted by a Khronos
+ extension or specification, then that value's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+
+ The SPIR Working Group strongly recommends:
+ - Each value is used for only one purpose.
+ - All values in a range should be used before allocating a new range.
+ -->
+
+ <!-- Reserved memory operand bits -->
+ <ids type="MemoryOperand" start="0" end="15" vendor="Khronos" comment="Reserved MemoryOperand bits, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="MemoryOperand" start="16" end="17" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+ <ids type="MemoryOperand" start="18" end="30" comment="Unreserved bits reservable for use by vendors"/>
+ <ids type="MemoryOperand" start="31" end="31" vendor="Khronos" comment="Reserved MemoryOperand bit, not available to vendors"/>
+
+ <!-- SECTION: SPIR-V Image Operand Bit Reservations -->
+ <!-- Reserve ranges of bits in the image operands bitfield.
+
+ Each vendor determines the use of values in their own ranges.
+ Vendors are not required to disclose those uses. If the use of a
+ value is included in an extension that is adopted by a Khronos
+ extension or specification, then that value's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+
+ The SPIR Working Group strongly recommends:
+ - Each value is used for only one purpose.
+ - All values in a range should be used before allocating a new range.
+ -->
+
+ <!-- Reserved image operand bits -->
+ <ids type="ImageOperand" start="0" end="15" vendor="Khronos" comment="Reserved ImageOperand bits, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="ImageOperand" start="16" end="16" vendor="Nvidia" comment="Contact pmistry@nvidia.com"/>
+ <ids type="ImageOperand" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
+ <ids type="ImageOperand" start="31" end="31" vendor="Khronos" comment="Reserved ImageOperand bit, not available to vendors"/>
+
</registry>
diff --git a/include/spirv/unified1/DebugInfo.h b/include/spirv/unified1/DebugInfo.h
index c50a131..4657556 100644
--- a/include/spirv/unified1/DebugInfo.h
+++ b/include/spirv/unified1/DebugInfo.h
@@ -78,6 +78,7 @@ enum DebugInfoInstructions {
enum DebugInfoDebugInfoFlags {
+ DebugInfoNone = 0x0000,
DebugInfoFlagIsProtected = 0x01,
DebugInfoFlagIsPrivate = 0x02,
DebugInfoFlagIsPublic = 0x03,
diff --git a/include/spirv/unified1/NonSemanticClspvReflection.h b/include/spirv/unified1/NonSemanticClspvReflection.h
index fa7061d..380dc21 100644
--- a/include/spirv/unified1/NonSemanticClspvReflection.h
+++ b/include/spirv/unified1/NonSemanticClspvReflection.h
@@ -33,7 +33,7 @@ extern "C" {
#endif
enum {
- NonSemanticClspvReflectionRevision = 1,
+ NonSemanticClspvReflectionRevision = 2,
NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff
};
@@ -62,6 +62,7 @@ enum NonSemanticClspvReflectionInstructions {
NonSemanticClspvReflectionConstantDataUniform = 22,
NonSemanticClspvReflectionLiteralSampler = 23,
NonSemanticClspvReflectionPropertyRequiredWorkgroupSize = 24,
+ NonSemanticClspvReflectionSpecConstantSubgroupMaxSize = 25,
NonSemanticClspvReflectionInstructionsMax = 0x7fffffff
};
diff --git a/include/spirv/unified1/NonSemanticShaderDebugInfo100.h b/include/spirv/unified1/NonSemanticShaderDebugInfo100.h
new file mode 100644
index 0000000..c52f32f
--- /dev/null
+++ b/include/spirv/unified1/NonSemanticShaderDebugInfo100.h
@@ -0,0 +1,171 @@
+// Copyright (c) 2018 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+#ifndef SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_
+#define SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+ NonSemanticShaderDebugInfo100Version = 100,
+ NonSemanticShaderDebugInfo100Version_BitWidthPadding = 0x7fffffff
+};
+enum {
+ NonSemanticShaderDebugInfo100Revision = 6,
+ NonSemanticShaderDebugInfo100Revision_BitWidthPadding = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100Instructions {
+ NonSemanticShaderDebugInfo100DebugInfoNone = 0,
+ NonSemanticShaderDebugInfo100DebugCompilationUnit = 1,
+ NonSemanticShaderDebugInfo100DebugTypeBasic = 2,
+ NonSemanticShaderDebugInfo100DebugTypePointer = 3,
+ NonSemanticShaderDebugInfo100DebugTypeQualifier = 4,
+ NonSemanticShaderDebugInfo100DebugTypeArray = 5,
+ NonSemanticShaderDebugInfo100DebugTypeVector = 6,
+ NonSemanticShaderDebugInfo100DebugTypedef = 7,
+ NonSemanticShaderDebugInfo100DebugTypeFunction = 8,
+ NonSemanticShaderDebugInfo100DebugTypeEnum = 9,
+ NonSemanticShaderDebugInfo100DebugTypeComposite = 10,
+ NonSemanticShaderDebugInfo100DebugTypeMember = 11,
+ NonSemanticShaderDebugInfo100DebugTypeInheritance = 12,
+ NonSemanticShaderDebugInfo100DebugTypePtrToMember = 13,
+ NonSemanticShaderDebugInfo100DebugTypeTemplate = 14,
+ NonSemanticShaderDebugInfo100DebugTypeTemplateParameter = 15,
+ NonSemanticShaderDebugInfo100DebugTypeTemplateTemplateParameter = 16,
+ NonSemanticShaderDebugInfo100DebugTypeTemplateParameterPack = 17,
+ NonSemanticShaderDebugInfo100DebugGlobalVariable = 18,
+ NonSemanticShaderDebugInfo100DebugFunctionDeclaration = 19,
+ NonSemanticShaderDebugInfo100DebugFunction = 20,
+ NonSemanticShaderDebugInfo100DebugLexicalBlock = 21,
+ NonSemanticShaderDebugInfo100DebugLexicalBlockDiscriminator = 22,
+ NonSemanticShaderDebugInfo100DebugScope = 23,
+ NonSemanticShaderDebugInfo100DebugNoScope = 24,
+ NonSemanticShaderDebugInfo100DebugInlinedAt = 25,
+ NonSemanticShaderDebugInfo100DebugLocalVariable = 26,
+ NonSemanticShaderDebugInfo100DebugInlinedVariable = 27,
+ NonSemanticShaderDebugInfo100DebugDeclare = 28,
+ NonSemanticShaderDebugInfo100DebugValue = 29,
+ NonSemanticShaderDebugInfo100DebugOperation = 30,
+ NonSemanticShaderDebugInfo100DebugExpression = 31,
+ NonSemanticShaderDebugInfo100DebugMacroDef = 32,
+ NonSemanticShaderDebugInfo100DebugMacroUndef = 33,
+ NonSemanticShaderDebugInfo100DebugImportedEntity = 34,
+ NonSemanticShaderDebugInfo100DebugSource = 35,
+ NonSemanticShaderDebugInfo100DebugFunctionDefinition = 101,
+ NonSemanticShaderDebugInfo100DebugSourceContinued = 102,
+ NonSemanticShaderDebugInfo100DebugLine = 103,
+ NonSemanticShaderDebugInfo100DebugNoLine = 104,
+ NonSemanticShaderDebugInfo100DebugBuildIdentifier = 105,
+ NonSemanticShaderDebugInfo100DebugStoragePath = 106,
+ NonSemanticShaderDebugInfo100DebugEntryPoint = 107,
+ NonSemanticShaderDebugInfo100DebugTypeMatrix = 108,
+ NonSemanticShaderDebugInfo100InstructionsMax = 0x7fffffff
+};
+
+
+enum NonSemanticShaderDebugInfo100DebugInfoFlags {
+ NonSemanticShaderDebugInfo100None = 0x0000,
+ NonSemanticShaderDebugInfo100FlagIsProtected = 0x01,
+ NonSemanticShaderDebugInfo100FlagIsPrivate = 0x02,
+ NonSemanticShaderDebugInfo100FlagIsPublic = 0x03,
+ NonSemanticShaderDebugInfo100FlagIsLocal = 0x04,
+ NonSemanticShaderDebugInfo100FlagIsDefinition = 0x08,
+ NonSemanticShaderDebugInfo100FlagFwdDecl = 0x10,
+ NonSemanticShaderDebugInfo100FlagArtificial = 0x20,
+ NonSemanticShaderDebugInfo100FlagExplicit = 0x40,
+ NonSemanticShaderDebugInfo100FlagPrototyped = 0x80,
+ NonSemanticShaderDebugInfo100FlagObjectPointer = 0x100,
+ NonSemanticShaderDebugInfo100FlagStaticMember = 0x200,
+ NonSemanticShaderDebugInfo100FlagIndirectVariable = 0x400,
+ NonSemanticShaderDebugInfo100FlagLValueReference = 0x800,
+ NonSemanticShaderDebugInfo100FlagRValueReference = 0x1000,
+ NonSemanticShaderDebugInfo100FlagIsOptimized = 0x2000,
+ NonSemanticShaderDebugInfo100FlagIsEnumClass = 0x4000,
+ NonSemanticShaderDebugInfo100FlagTypePassByValue = 0x8000,
+ NonSemanticShaderDebugInfo100FlagTypePassByReference = 0x10000,
+ NonSemanticShaderDebugInfo100FlagUnknownPhysicalLayout = 0x20000,
+ NonSemanticShaderDebugInfo100DebugInfoFlagsMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100BuildIdentifierFlags {
+ NonSemanticShaderDebugInfo100IdentifierPossibleDuplicates = 0x01,
+ NonSemanticShaderDebugInfo100BuildIdentifierFlagsMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugBaseTypeAttributeEncoding {
+ NonSemanticShaderDebugInfo100Unspecified = 0,
+ NonSemanticShaderDebugInfo100Address = 1,
+ NonSemanticShaderDebugInfo100Boolean = 2,
+ NonSemanticShaderDebugInfo100Float = 3,
+ NonSemanticShaderDebugInfo100Signed = 4,
+ NonSemanticShaderDebugInfo100SignedChar = 5,
+ NonSemanticShaderDebugInfo100Unsigned = 6,
+ NonSemanticShaderDebugInfo100UnsignedChar = 7,
+ NonSemanticShaderDebugInfo100DebugBaseTypeAttributeEncodingMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugCompositeType {
+ NonSemanticShaderDebugInfo100Class = 0,
+ NonSemanticShaderDebugInfo100Structure = 1,
+ NonSemanticShaderDebugInfo100Union = 2,
+ NonSemanticShaderDebugInfo100DebugCompositeTypeMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugTypeQualifier {
+ NonSemanticShaderDebugInfo100ConstType = 0,
+ NonSemanticShaderDebugInfo100VolatileType = 1,
+ NonSemanticShaderDebugInfo100RestrictType = 2,
+ NonSemanticShaderDebugInfo100AtomicType = 3,
+ NonSemanticShaderDebugInfo100DebugTypeQualifierMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugOperation {
+ NonSemanticShaderDebugInfo100Deref = 0,
+ NonSemanticShaderDebugInfo100Plus = 1,
+ NonSemanticShaderDebugInfo100Minus = 2,
+ NonSemanticShaderDebugInfo100PlusUconst = 3,
+ NonSemanticShaderDebugInfo100BitPiece = 4,
+ NonSemanticShaderDebugInfo100Swap = 5,
+ NonSemanticShaderDebugInfo100Xderef = 6,
+ NonSemanticShaderDebugInfo100StackValue = 7,
+ NonSemanticShaderDebugInfo100Constu = 8,
+ NonSemanticShaderDebugInfo100Fragment = 9,
+ NonSemanticShaderDebugInfo100DebugOperationMax = 0x7fffffff
+};
+
+enum NonSemanticShaderDebugInfo100DebugImportedEntity {
+ NonSemanticShaderDebugInfo100ImportedModule = 0,
+ NonSemanticShaderDebugInfo100ImportedDeclaration = 1,
+ NonSemanticShaderDebugInfo100DebugImportedEntityMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_
diff --git a/include/spirv/unified1/OpenCLDebugInfo100.h b/include/spirv/unified1/OpenCLDebugInfo100.h
index 1149980..e3847c9 100644
--- a/include/spirv/unified1/OpenCLDebugInfo100.h
+++ b/include/spirv/unified1/OpenCLDebugInfo100.h
@@ -75,11 +75,13 @@ enum OpenCLDebugInfo100Instructions {
OpenCLDebugInfo100DebugMacroUndef = 33,
OpenCLDebugInfo100DebugImportedEntity = 34,
OpenCLDebugInfo100DebugSource = 35,
+ OpenCLDebugInfo100DebugModuleINTEL = 36,
OpenCLDebugInfo100InstructionsMax = 0x7fffffff
};
enum OpenCLDebugInfo100DebugInfoFlags {
+ OpenCLDebugInfo100None = 0x0000,
OpenCLDebugInfo100FlagIsProtected = 0x01,
OpenCLDebugInfo100FlagIsPrivate = 0x02,
OpenCLDebugInfo100FlagIsPublic = 0x03,
diff --git a/include/spirv/unified1/extinst.debuginfo.grammar.json b/include/spirv/unified1/extinst.debuginfo.grammar.json
index 9212f6f..7d6e8e5 100644
--- a/include/spirv/unified1/extinst.debuginfo.grammar.json
+++ b/include/spirv/unified1/extinst.debuginfo.grammar.json
@@ -377,6 +377,10 @@
"kind" : "DebugInfoFlags",
"enumerants" : [
{
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
"enumerant" : "FlagIsProtected",
"value" : "0x01"
},
diff --git a/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json b/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
index 15e5699..3d153e5 100644
--- a/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
+++ b/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
@@ -1,5 +1,5 @@
{
- "revision" : 1,
+ "revision" : 2,
"instructions" : [
{
"opname" : "Kernel",
@@ -232,6 +232,13 @@
{ "kind" : "IdRef", "name" : "Y" },
{ "kind" : "IdRef", "name" : "Z" }
]
+ },
+ {
+ "opname" : "SpecConstantSubgroupMaxSize",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Size" }
+ ]
}
]
}
diff --git a/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json b/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json
new file mode 100644
index 0000000..f3621b0
--- /dev/null
+++ b/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json
@@ -0,0 +1,713 @@
+{
+ "copyright" : [
+ "Copyright (c) 2018 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 6,
+ "instructions" : [
+ {
+ "opname" : "DebugInfoNone",
+ "opcode" : 0
+ },
+ {
+ "opname" : "DebugCompilationUnit",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Version'" },
+ { "kind" : "IdRef", "name" : "'DWARF Version'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Language'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeBasic",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "IdRef", "name" : "'Encoding'" },
+ { "kind" : "IdRef", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypePointer",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Storage Class'" },
+ { "kind" : "IdRef", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeQualifier",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Type Qualifier'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeArray",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Component Counts'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeVector",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Component Count'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypedef",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Base Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeFunction",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Return Type'" },
+ { "kind" : "IdRef", "name" : "'Parameter Types'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeEnum",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Underlying Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "PairIdRefIdRef", "name" : "'Value, Name, Value, Name, ...'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeComposite",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Tag'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Members'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeMember",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeInheritance",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Offset'" },
+ { "kind" : "IdRef", "name" : "'Size'" },
+ { "kind" : "IdRef", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypePtrToMember",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Member Type'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplate",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "IdRef", "name" : "'Parameters'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplateParameter",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Actual Type'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplateTemplateParameter",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Template Name'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeTemplateParameterPack",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Template Parameters'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugGlobalVariable",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "IdRef", "name" : "'Variable'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Static Member Declaration'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugFunctionDeclaration",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "IdRef", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugFunction",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Linkage Name'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Scope Line'" },
+ { "kind" : "IdRef", "name" : "'Declaration'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugLexicalBlock",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Name'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugLexicalBlockDiscriminator",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Discriminator'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugScope",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Scope'" },
+ { "kind" : "IdRef", "name" : "'Inlined At'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugNoScope",
+ "opcode" : 24
+ },
+ {
+ "opname" : "DebugInlinedAt",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Scope'" },
+ { "kind" : "IdRef", "name" : "'Inlined'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugLocalVariable",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Type'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "IdRef", "name" : "'Flags'" },
+ { "kind" : "IdRef", "name" : "'Arg Number'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugInlinedVariable",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Variable'" },
+ { "kind" : "IdRef", "name" : "'Inlined'" }
+ ]
+ },
+ {
+ "opname" : "DebugDeclare",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Local Variable'" },
+ { "kind" : "IdRef", "name" : "'Variable'" },
+ { "kind" : "IdRef", "name" : "'Expression'" },
+ { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugValue",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Local Variable'" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Expression'" },
+ { "kind" : "IdRef", "name" : "'Indexes'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugOperation",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'OpCode'" },
+ { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugExpression",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Operands ...'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "DebugMacroDef",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Value'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugMacroUndef",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Macro'" }
+ ]
+ },
+ {
+ "opname" : "DebugImportedEntity",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Tag'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Entity'" },
+ { "kind" : "IdRef", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'Column'" },
+ { "kind" : "IdRef", "name" : "'Parent'" }
+ ]
+ },
+ {
+ "opname" : "DebugSource",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'File'" },
+ { "kind" : "IdRef", "name" : "'Text'", "quantifier" : "?" }
+ ]
+ },
+ {
+ "opname" : "DebugFunctionDefinition",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Function'" },
+ { "kind" : "IdRef", "name" : "'Definition'" }
+ ]
+ },
+ {
+ "opname" : "DebugSourceContinued",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Text'" }
+ ]
+ },
+ {
+ "opname" : "DebugLine",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Line Start'" },
+ { "kind" : "IdRef", "name" : "'Line End'" },
+ { "kind" : "IdRef", "name" : "'Column Start'" },
+ { "kind" : "IdRef", "name" : "'Column End'" }
+ ]
+ },
+ {
+ "opname" : "DebugNoLine",
+ "opcode" : 104
+ },
+ {
+ "opname" : "DebugBuildIdentifier",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Identifier'" },
+ { "kind" : "IdRef", "name" : "'Flags'" }
+ ]
+ },
+ {
+ "opname" : "DebugStoragePath",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Path'" }
+ ]
+ },
+ {
+ "opname" : "DebugEntryPoint",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Entry Point'" },
+ { "kind" : "IdRef", "name" : "'Compilation Unit'" },
+ { "kind" : "IdRef", "name" : "'Compiler Signature'" },
+ { "kind" : "IdRef", "name" : "'Command-line Arguments'" }
+ ]
+ },
+ {
+ "opname" : "DebugTypeMatrix",
+ "opcode" : 108,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Vector Type'" },
+ { "kind" : "IdRef", "name" : "'Vector Count'" },
+ { "kind" : "IdRef", "name" : "'Column Major'" }
+ ]
+ }
+ ],
+ "operand_kinds" : [
+ {
+ "category" : "BitEnum",
+ "kind" : "DebugInfoFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
+ "enumerant" : "FlagIsProtected",
+ "value" : "0x01"
+ },
+ {
+ "enumerant" : "FlagIsPrivate",
+ "value" : "0x02"
+ },
+ {
+ "enumerant" : "FlagIsPublic",
+ "value" : "0x03"
+ },
+ {
+ "enumerant" : "FlagIsLocal",
+ "value" : "0x04"
+ },
+ {
+ "enumerant" : "FlagIsDefinition",
+ "value" : "0x08"
+ },
+ {
+ "enumerant" : "FlagFwdDecl",
+ "value" : "0x10"
+ },
+ {
+ "enumerant" : "FlagArtificial",
+ "value" : "0x20"
+ },
+ {
+ "enumerant" : "FlagExplicit",
+ "value" : "0x40"
+ },
+ {
+ "enumerant" : "FlagPrototyped",
+ "value" : "0x80"
+ },
+ {
+ "enumerant" : "FlagObjectPointer",
+ "value" : "0x100"
+ },
+ {
+ "enumerant" : "FlagStaticMember",
+ "value" : "0x200"
+ },
+ {
+ "enumerant" : "FlagIndirectVariable",
+ "value" : "0x400"
+ },
+ {
+ "enumerant" : "FlagLValueReference",
+ "value" : "0x800"
+ },
+ {
+ "enumerant" : "FlagRValueReference",
+ "value" : "0x1000"
+ },
+ {
+ "enumerant" : "FlagIsOptimized",
+ "value" : "0x2000"
+ },
+ {
+ "enumerant" : "FlagIsEnumClass",
+ "value" : "0x4000"
+ },
+ {
+ "enumerant" : "FlagTypePassByValue",
+ "value" : "0x8000"
+ },
+ {
+ "enumerant" : "FlagTypePassByReference",
+ "value" : "0x10000"
+ },
+ {
+ "enumerant" : "FlagUnknownPhysicalLayout",
+ "value" : "0x20000"
+ }
+ ]
+ },
+ {
+ "category" : "BitEnum",
+ "kind" : "BuildIdentifierFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "IdentifierPossibleDuplicates",
+ "value" : "0x01"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugBaseTypeAttributeEncoding",
+ "enumerants" : [
+ {
+ "enumerant" : "Unspecified",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "Address",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "Boolean",
+ "value" : "2"
+ },
+ {
+ "enumerant" : "Float",
+ "value" : "3"
+ },
+ {
+ "enumerant" : "Signed",
+ "value" : "4"
+ },
+ {
+ "enumerant" : "SignedChar",
+ "value" : "5"
+ },
+ {
+ "enumerant" : "Unsigned",
+ "value" : "6"
+ },
+ {
+ "enumerant" : "UnsignedChar",
+ "value" : "7"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugCompositeType",
+ "enumerants" : [
+ {
+ "enumerant" : "Class",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "Structure",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "Union",
+ "value" : "2"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugTypeQualifier",
+ "enumerants" : [
+ {
+ "enumerant" : "ConstType",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "VolatileType",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "RestrictType",
+ "value" : "2"
+ },
+ {
+ "enumerant" : "AtomicType",
+ "value" : "3"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugOperation",
+ "enumerants" : [
+ {
+ "enumerant" : "Deref",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "Plus",
+ "value" : "1"
+ },
+ {
+ "enumerant" : "Minus",
+ "value" : "2"
+ },
+ {
+ "enumerant" : "PlusUconst",
+ "value" : "3",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "BitPiece",
+ "value" : "4",
+ "parameters" : [
+ { "kind" : "IdRef" },
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Swap",
+ "value" : "5"
+ },
+ {
+ "enumerant" : "Xderef",
+ "value" : "6"
+ },
+ {
+ "enumerant" : "StackValue",
+ "value" : "7"
+ },
+ {
+ "enumerant" : "Constu",
+ "value" : "8",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
+ },
+ {
+ "enumerant" : "Fragment",
+ "value" : "9",
+ "parameters" : [
+ { "kind" : "IdRef" },
+ { "kind" : "IdRef" }
+ ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "DebugImportedEntity",
+ "enumerants" : [
+ {
+ "enumerant" : "ImportedModule",
+ "value" : "0"
+ },
+ {
+ "enumerant" : "ImportedDeclaration",
+ "value" : "1"
+ }
+ ]
+ }
+ ]
+}
diff --git a/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json b/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
index 08062be..699fe40 100644
--- a/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
+++ b/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
@@ -395,6 +395,21 @@
{ "kind" : "IdRef", "name" : "'File'" },
{ "kind" : "IdRef", "name" : "'Text'", "quantifier" : "?" }
]
+ },
+ {
+ "opname" : "DebugModuleINTEL",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Name'" },
+ { "kind" : "IdRef", "name" : "'Source'" },
+ { "kind" : "IdRef", "name" : "'Parent'" },
+ { "kind" : "LiteralInteger", "name" : "'Line'" },
+ { "kind" : "IdRef", "name" : "'ConfigurationMacros'" },
+ { "kind" : "IdRef", "name" : "'IncludePath'" },
+ { "kind" : "IdRef", "name" : "'APINotesFile'" },
+ { "kind" : "LiteralInteger", "name" : "'IsDeclaration'" }
+ ],
+ "capability" : "DebugInfoModuleINTEL"
}
],
"operand_kinds" : [
@@ -403,6 +418,10 @@
"kind" : "DebugInfoFlags",
"enumerants" : [
{
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
"enumerant" : "FlagIsProtected",
"value" : "0x01"
},
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 514965e..766a4ed 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -26,8 +26,8 @@
],
"magic_number" : "0x07230203",
"major_version" : 1,
- "minor_version" : 5,
- "revision" : 4,
+ "minor_version" : 6,
+ "revision" : 1,
"instruction_printing_class" : [
{
"tag" : "@exclude"
@@ -1735,7 +1735,8 @@
{ "kind" : "IdRef", "name" : "'x'" },
{ "kind" : "IdRef", "name" : "'y'" }
],
- "capabilities" : [ "Kernel" ]
+ "capabilities" : [ "Kernel" ],
+ "lastVersion" : "1.5"
},
{
"opname" : "OpOrdered",
@@ -2157,7 +2158,7 @@
{ "kind" : "IdRef", "name" : "'Offset'" },
{ "kind" : "IdRef", "name" : "'Count'" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader", "BitInstructions" ]
},
{
"opname" : "OpBitFieldSExtract",
@@ -2170,7 +2171,7 @@
{ "kind" : "IdRef", "name" : "'Offset'" },
{ "kind" : "IdRef", "name" : "'Count'" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader", "BitInstructions" ]
},
{
"opname" : "OpBitFieldUExtract",
@@ -2183,7 +2184,7 @@
{ "kind" : "IdRef", "name" : "'Offset'" },
{ "kind" : "IdRef", "name" : "'Count'" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader", "BitInstructions" ]
},
{
"opname" : "OpBitReverse",
@@ -2194,7 +2195,7 @@
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" }
],
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader", "BitInstructions" ]
},
{
"opname" : "OpBitCount",
@@ -4109,7 +4110,7 @@
"SPV_KHR_terminate_invocation"
],
"capabilities" : [ "Shader" ],
- "version" : "None"
+ "version" : "1.6"
},
{
"opname" : "OpSubgroupBallotKHR",
@@ -4261,6 +4262,186 @@
"version" : "None"
},
{
+ "opname" : "OpSDot",
+ "class" : "Arithmetic",
+ "opcode" : 4450,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProduct" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSDotKHR",
+ "class" : "Arithmetic",
+ "opcode" : 4450,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProductKHR" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpUDot",
+ "class" : "Arithmetic",
+ "opcode" : 4451,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProduct" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpUDotKHR",
+ "class" : "Arithmetic",
+ "opcode" : 4451,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProductKHR" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSUDot",
+ "class" : "Arithmetic",
+ "opcode" : 4452,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProduct" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSUDotKHR",
+ "class" : "Arithmetic",
+ "opcode" : 4452,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProductKHR" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSDotAccSat",
+ "class" : "Arithmetic",
+ "opcode" : 4453,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "IdRef", "name" : "'Accumulator'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProduct" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSDotAccSatKHR",
+ "class" : "Arithmetic",
+ "opcode" : 4453,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "IdRef", "name" : "'Accumulator'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProductKHR" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpUDotAccSat",
+ "class" : "Arithmetic",
+ "opcode" : 4454,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "IdRef", "name" : "'Accumulator'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProduct" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpUDotAccSatKHR",
+ "class" : "Arithmetic",
+ "opcode" : 4454,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "IdRef", "name" : "'Accumulator'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProductKHR" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSUDotAccSat",
+ "class" : "Arithmetic",
+ "opcode" : 4455,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "IdRef", "name" : "'Accumulator'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProduct" ],
+ "version" : "1.6"
+ },
+ {
+ "opname" : "OpSUDotAccSatKHR",
+ "class" : "Arithmetic",
+ "opcode" : 4455,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Vector 1'" },
+ { "kind" : "IdRef", "name" : "'Vector 2'" },
+ { "kind" : "IdRef", "name" : "'Accumulator'" },
+ { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
+ ],
+ "capabilities" : [ "DotProductKHR" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
"opname" : "OpTypeRayQueryKHR",
"class" : "Reserved",
"opcode" : 4472,
@@ -4552,7 +4733,7 @@
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
- { "kind" : "IdScope", "name" : "'Execution'" }
+ { "kind" : "IdScope", "name" : "'Scope'" }
],
"capabilities" : [ "ShaderClockKHR" ],
"extensions" : [ "SPV_KHR_shader_clock" ],
@@ -4667,6 +4848,52 @@
"version" : "None"
},
{
+ "opname" : "OpTraceMotionNV",
+ "class" : "Reserved",
+ "opcode" : 5338,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'Accel'" },
+ { "kind" : "IdRef", "name" : "'Ray Flags'" },
+ { "kind" : "IdRef", "name" : "'Cull Mask'" },
+ { "kind" : "IdRef", "name" : "'SBT Offset'" },
+ { "kind" : "IdRef", "name" : "'SBT Stride'" },
+ { "kind" : "IdRef", "name" : "'Miss Index'" },
+ { "kind" : "IdRef", "name" : "'Ray Origin'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmin'" },
+ { "kind" : "IdRef", "name" : "'Ray Direction'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmax'" },
+ { "kind" : "IdRef", "name" : "'Time'" },
+ { "kind" : "IdRef", "name" : "'PayloadId'" }
+ ],
+ "capabilities" : [ "RayTracingMotionBlurNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTraceRayMotionNV",
+ "class" : "Reserved",
+ "opcode" : 5339,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'Accel'" },
+ { "kind" : "IdRef", "name" : "'Ray Flags'" },
+ { "kind" : "IdRef", "name" : "'Cull Mask'" },
+ { "kind" : "IdRef", "name" : "'SBT Offset'" },
+ { "kind" : "IdRef", "name" : "'SBT Stride'" },
+ { "kind" : "IdRef", "name" : "'Miss Index'" },
+ { "kind" : "IdRef", "name" : "'Ray Origin'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmin'" },
+ { "kind" : "IdRef", "name" : "'Ray Direction'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmax'" },
+ { "kind" : "IdRef", "name" : "'Time'" },
+ { "kind" : "IdRef", "name" : "'Payload'" }
+ ],
+ "capabilities" : [ "RayTracingMotionBlurNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpTypeAccelerationStructureNV",
"class" : "Reserved",
"opcode" : 5341,
@@ -4792,12 +5019,18 @@
"version" : "None"
},
{
+ "opname" : "OpDemoteToHelperInvocation",
+ "class" : "Control-Flow",
+ "opcode" : 5380,
+ "capabilities" : [ "DemoteToHelperInvocation" ],
+ "version" : "1.6"
+ },
+ {
"opname" : "OpDemoteToHelperInvocationEXT",
- "class" : "Reserved",
+ "class" : "Control-Flow",
"opcode" : 5380,
- "capabilities" : [ "DemoteToHelperInvocationEXT" ],
- "extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
- "version" : "None"
+ "capabilities" : [ "DemoteToHelperInvocation" ],
+ "version" : "1.6"
},
{
"opname" : "OpIsHelperInvocationEXT",
@@ -4812,6 +5045,88 @@
"version" : "None"
},
{
+ "opname" : "OpConvertUToImageNV",
+ "class" : "Reserved",
+ "opcode" : 5391,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertUToSamplerNV",
+ "class" : "Reserved",
+ "opcode" : 5392,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertImageToUNV",
+ "class" : "Reserved",
+ "opcode" : 5393,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertSamplerToUNV",
+ "class" : "Reserved",
+ "opcode" : 5394,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertUToSampledImageNV",
+ "class" : "Reserved",
+ "opcode" : 5395,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConvertSampledImageToUNV",
+ "class" : "Reserved",
+ "opcode" : 5396,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Operand'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSamplerImageAddressingModeNV",
+ "class" : "Reserved",
+ "opcode" : 5397,
+ "operands" : [
+ { "kind" : "LiteralInteger", "name" : "'Bit Width'" }
+ ],
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpSubgroupShuffleINTEL",
"class" : "Group",
"opcode" : 5571,
@@ -5123,7 +5438,7 @@
"version" : "None"
},
{
- "opname" : "OpConstFunctionPointerINTEL",
+ "opname" : "OpConstantFunctionPointerINTEL",
"class" : "@exclude",
"opcode" : 5600,
"operands" : [
@@ -5189,6 +5504,61 @@
"version" : "None"
},
{
+ "opname" : "OpAtomicFMinEXT",
+ "class" : "Atomic",
+ "opcode" : 5614,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAtomicFMaxEXT",
+ "class" : "Atomic",
+ "opcode" : 5615,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAssumeTrueKHR",
+ "class" : "Miscellaneous",
+ "opcode" : 5630,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Condition'" }
+ ],
+ "capabilities" : [ "ExpectAssumeKHR" ],
+ "extensions" : [ "SPV_KHR_expect_assume" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpExpectKHR",
+ "class" : "Miscellaneous",
+ "opcode" : 5631,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'ExpectedValue'" }
+ ],
+ "capabilities" : [ "ExpectAssumeKHR" ],
+ "extensions" : [ "SPV_KHR_expect_assume" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpDecorateString",
"class" : "Annotation",
"opcode" : 5632,
@@ -6785,6 +7155,710 @@
"version" : "None"
},
{
+ "opname" : "OpArbitraryFloatSinCosPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5840,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'FromSign'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatCastINTEL",
+ "class" : "@exclude",
+ "opcode" : 5841,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatCastFromIntINTEL",
+ "class" : "@exclude",
+ "opcode" : 5842,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'FromSign'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatCastToIntINTEL",
+ "class" : "@exclude",
+ "opcode" : 5843,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatAddINTEL",
+ "class" : "@exclude",
+ "opcode" : 5846,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatSubINTEL",
+ "class" : "@exclude",
+ "opcode" : 5847,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatMulINTEL",
+ "class" : "@exclude",
+ "opcode" : 5848,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatDivINTEL",
+ "class" : "@exclude",
+ "opcode" : 5849,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatGTINTEL",
+ "class" : "@exclude",
+ "opcode" : 5850,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatGEINTEL",
+ "class" : "@exclude",
+ "opcode" : 5851,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatLTINTEL",
+ "class" : "@exclude",
+ "opcode" : 5852,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatLEINTEL",
+ "class" : "@exclude",
+ "opcode" : 5853,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatEQINTEL",
+ "class" : "@exclude",
+ "opcode" : 5854,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatRecipINTEL",
+ "class" : "@exclude",
+ "opcode" : 5855,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatRSqrtINTEL",
+ "class" : "@exclude",
+ "opcode" : 5856,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatCbrtINTEL",
+ "class" : "@exclude",
+ "opcode" : 5857,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatHypotINTEL",
+ "class" : "@exclude",
+ "opcode" : 5858,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatSqrtINTEL",
+ "class" : "@exclude",
+ "opcode" : 5859,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatLogINTEL",
+ "class" : "@exclude",
+ "opcode" : 5860,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatLog2INTEL",
+ "class" : "@exclude",
+ "opcode" : 5861,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatLog10INTEL",
+ "class" : "@exclude",
+ "opcode" : 5862,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatLog1pINTEL",
+ "class" : "@exclude",
+ "opcode" : 5863,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatExpINTEL",
+ "class" : "@exclude",
+ "opcode" : 5864,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatExp2INTEL",
+ "class" : "@exclude",
+ "opcode" : 5865,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatExp10INTEL",
+ "class" : "@exclude",
+ "opcode" : 5866,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatExpm1INTEL",
+ "class" : "@exclude",
+ "opcode" : 5867,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatSinINTEL",
+ "class" : "@exclude",
+ "opcode" : 5868,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatCosINTEL",
+ "class" : "@exclude",
+ "opcode" : 5869,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatSinCosINTEL",
+ "class" : "@exclude",
+ "opcode" : 5870,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatSinPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5871,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatCosPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5872,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatASinINTEL",
+ "class" : "@exclude",
+ "opcode" : 5873,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatASinPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5874,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatACosINTEL",
+ "class" : "@exclude",
+ "opcode" : 5875,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatACosPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5876,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatATanINTEL",
+ "class" : "@exclude",
+ "opcode" : 5877,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatATanPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5878,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatATan2INTEL",
+ "class" : "@exclude",
+ "opcode" : 5879,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatPowINTEL",
+ "class" : "@exclude",
+ "opcode" : 5880,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatPowRINTEL",
+ "class" : "@exclude",
+ "opcode" : 5881,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'M2'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpArbitraryFloatPowNINTEL",
+ "class" : "@exclude",
+ "opcode" : 5882,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'A'" },
+ { "kind" : "LiteralInteger", "name" : "'M1'" },
+ { "kind" : "IdRef", "name" : "'B'" },
+ { "kind" : "LiteralInteger", "name" : "'Mout'" },
+ { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+ { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpLoopControlINTEL",
"class" : "Reserved",
"opcode" : 5887,
@@ -6796,6 +7870,204 @@
"version" : "None"
},
{
+ "opname" : "OpFixedSqrtINTEL",
+ "class" : "@exclude",
+ "opcode" : 5923,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedRecipINTEL",
+ "class" : "@exclude",
+ "opcode" : 5924,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedRsqrtINTEL",
+ "class" : "@exclude",
+ "opcode" : 5925,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedSinINTEL",
+ "class" : "@exclude",
+ "opcode" : 5926,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedCosINTEL",
+ "class" : "@exclude",
+ "opcode" : 5927,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedSinCosINTEL",
+ "class" : "@exclude",
+ "opcode" : 5928,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedSinPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5929,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedCosPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5930,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedSinCosPiINTEL",
+ "class" : "@exclude",
+ "opcode" : 5931,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedLogINTEL",
+ "class" : "@exclude",
+ "opcode" : 5932,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFixedExpINTEL",
+ "class" : "@exclude",
+ "opcode" : 5933,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Input Type'" },
+ { "kind" : "IdRef", "name" : "'Input'" },
+ { "kind" : "LiteralInteger", "name" : "'S'" },
+ { "kind" : "LiteralInteger", "name" : "'I'" },
+ { "kind" : "LiteralInteger", "name" : "'rI'" },
+ { "kind" : "LiteralInteger", "name" : "'Q'" },
+ { "kind" : "LiteralInteger", "name" : "'O'" }
+ ],
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpPtrCastToCrossWorkgroupINTEL",
"class" : "@exclude",
"opcode" : 5934,
@@ -7193,7 +8465,7 @@
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
],
- "capabilities" : [ "AtomicFloat32AddEXT", "AtomicFloat64AddEXT" ],
+ "capabilities" : [ "AtomicFloat16AddEXT", "AtomicFloat32AddEXT", "AtomicFloat64AddEXT" ],
"extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
"version" : "None"
},
@@ -7202,7 +8474,11 @@
"class" : "Type-Declaration",
"opcode" : 6086,
"operands" : [
- { "kind" : "IdResult" }
+ { "kind" : "IdResult" },
+ {
+ "kind" : "AccessQualifier",
+ "name" : "'AccessQualifier'"
+ }
],
"capabilities" : [ "VectorComputeINTEL" ],
"version" : "None"
@@ -7381,6 +8657,18 @@
"enumerant" : "ZeroExtend",
"value" : "0x2000",
"version" : "1.4"
+ },
+ {
+ "enumerant" : "Nontemporal",
+ "value" : "0x4000",
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "Offsets",
+ "value" : "0x10000",
+ "parameters" : [
+ { "kind" : "IdRef" }
+ ]
}
]
},
@@ -7394,40 +8682,35 @@
},
{
"enumerant" : "NotNaN",
- "value" : "0x0001",
- "capabilities" : [ "Kernel" ]
+ "value" : "0x0001"
},
{
"enumerant" : "NotInf",
- "value" : "0x0002",
- "capabilities" : [ "Kernel" ]
+ "value" : "0x0002"
},
{
"enumerant" : "NSZ",
- "value" : "0x0004",
- "capabilities" : [ "Kernel" ]
+ "value" : "0x0004"
},
{
"enumerant" : "AllowRecip",
- "value" : "0x0008",
- "capabilities" : [ "Kernel" ]
+ "value" : "0x0008"
},
{
"enumerant" : "Fast",
- "value" : "0x0010",
- "capabilities" : [ "Kernel" ]
+ "value" : "0x0010"
},
{
"enumerant" : "AllowContractFastINTEL",
"value" : "0x10000",
"capabilities" : [ "FPFastMathModeINTEL" ],
- "version" : "None"
+ "version" : "None"
},
{
"enumerant" : "AllowReassocINTEL",
"value" : "0x20000",
"capabilities" : [ "FPFastMathModeINTEL" ],
- "version" : "None"
+ "version" : "None"
}
]
},
@@ -7623,6 +8906,12 @@
{
"enumerant" : "Const",
"value" : "0x0008"
+ },
+ {
+ "enumerant" : "OptNoneINTEL",
+ "value" : "0x10000",
+ "capabilities" : [ "OptNoneINTEL" ],
+ "version" : "None"
}
]
},
@@ -7948,6 +9237,10 @@
{
"enumerant" : "HLSL",
"value" : 5
+ },
+ {
+ "enumerant" : "CPP_for_OpenCL",
+ "value" : 6
}
]
},
@@ -8375,11 +9668,20 @@
"value" : 39,
"capabilities" : [ "Kernel" ],
"parameters" : [
- { "kind" : "IdRef", "name" : "'Local Size Hint'" }
+ { "kind" : "IdRef", "name" : "'x size hint'" },
+ { "kind" : "IdRef", "name" : "'y size hint'" },
+ { "kind" : "IdRef", "name" : "'z size hint'" }
],
"version" : "1.2"
},
{
+ "enumerant" : "SubgroupUniformControlFlowKHR",
+ "value" : 4421,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_subgroup_uniform_control_flow" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "PostDepthCoverage",
"value" : 4446,
"capabilities" : [ "SampleMaskPostDepthCoverage" ],
@@ -8651,7 +9953,7 @@
{
"enumerant" : "Private",
"value" : 6,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader", "VectorComputeINTEL" ]
},
{
"enumerant" : "Function",
@@ -9347,6 +10649,60 @@
"value" : 1,
"capabilities" : [ "FunctionFloatControlINTEL" ],
"version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "QuantizationModes",
+ "enumerants" : [
+ {
+ "enumerant" : "TRN",
+ "value" : 0,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "TRN_ZERO",
+ "value" : 1,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RND",
+ "value" : 2,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RND_ZERO",
+ "value" : 3,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RND_INF",
+ "value" : 4,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RND_MIN_INF",
+ "value" : 5,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RND_CONV",
+ "value" : 6,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RND_CONV_ODD",
+ "value" : 7,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
}
]
},
@@ -9370,6 +10726,36 @@
},
{
"category" : "ValueEnum",
+ "kind" : "OverflowModes",
+ "enumerants" : [
+ {
+ "enumerant" : "WRAP",
+ "value" : 0,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SAT",
+ "value" : 1,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SAT_ZERO",
+ "value" : 2,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SAT_SYM",
+ "value" : 3,
+ "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
"kind" : "LinkageType",
"enumerants" : [
{
@@ -9381,6 +10767,13 @@
"enumerant" : "Import",
"value" : 1,
"capabilities" : [ "Linkage" ]
+ },
+ {
+ "enumerant" : "LinkOnceODR",
+ "value" : 2,
+ "capabilities" : [ "Linkage" ],
+ "extensions" : [ "SPV_KHR_linkonce_odr" ],
+ "version" : "None"
}
]
},
@@ -9589,12 +10982,12 @@
{
"enumerant" : "Uniform",
"value" : 26,
- "capabilities" : [ "Shader" ]
+ "capabilities" : [ "Shader", "UniformDecoration" ]
},
{
"enumerant" : "UniformId",
"value" : 27,
- "capabilities" : [ "Shader" ],
+ "capabilities" : [ "Shader", "UniformDecoration" ],
"parameters" : [
{ "kind" : "IdScope", "name" : "'Execution'" }
],
@@ -9827,10 +11220,17 @@
"version" : "None"
},
{
+ "enumerant" : "PerVertexKHR",
+ "value" : 5285,
+ "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "PerVertexNV",
"value" : 5285,
- "capabilities" : [ "FragmentBarycentricNV" ],
- "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
+ "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
"version" : "None"
},
{
@@ -9875,6 +11275,30 @@
"version" : "1.5"
},
{
+ "enumerant" : "BindlessSamplerNV",
+ "value" : 5398,
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BindlessImageNV",
+ "value" : 5399,
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BoundSamplerNV",
+ "value" : 5400,
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BoundImageNV",
+ "value" : 5401,
+ "capabilities" : [ "BindlessTextureNV" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "SIMTCallINTEL",
"value" : 5599,
"parameters" : [
@@ -10194,6 +11618,12 @@
"value" : 6087,
"capabilities" : [ "VectorComputeINTEL" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "MediaBlockIOINTEL",
+ "value" : 6140,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
}
]
},
@@ -10407,55 +11837,55 @@
"version" : "1.3"
},
{
- "enumerant" : "SubgroupGeMask",
- "value" : 4417,
+ "enumerant" : "SubgroupEqMaskKHR",
+ "value" : 4416,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupGtMask",
- "value" : 4418,
+ "enumerant" : "SubgroupGeMask",
+ "value" : 4417,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupLeMask",
- "value" : 4419,
+ "enumerant" : "SubgroupGeMaskKHR",
+ "value" : 4417,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupLtMask",
- "value" : 4420,
+ "enumerant" : "SubgroupGtMask",
+ "value" : 4418,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupEqMaskKHR",
- "value" : 4416,
+ "enumerant" : "SubgroupGtMaskKHR",
+ "value" : 4418,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
"extensions" : [ "SPV_KHR_shader_ballot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupGeMaskKHR",
- "value" : 4417,
+ "enumerant" : "SubgroupLeMask",
+ "value" : 4419,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
- "extensions" : [ "SPV_KHR_shader_ballot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupGtMaskKHR",
- "value" : 4418,
+ "enumerant" : "SubgroupLeMaskKHR",
+ "value" : 4419,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
"extensions" : [ "SPV_KHR_shader_ballot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupLeMaskKHR",
- "value" : 4419,
+ "enumerant" : "SubgroupLtMask",
+ "value" : 4420,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
- "extensions" : [ "SPV_KHR_shader_ballot" ],
"version" : "1.3"
},
{
@@ -10662,17 +12092,31 @@
"version" : "None"
},
{
+ "enumerant" : "BaryCoordKHR",
+ "value" : 5286,
+ "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "BaryCoordNV",
"value" : 5286,
- "capabilities" : [ "FragmentBarycentricNV" ],
- "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
+ "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BaryCoordNoPerspKHR",
+ "value" : 5287,
+ "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
"version" : "None"
},
{
"enumerant" : "BaryCoordNoPerspNV",
"value" : 5287,
- "capabilities" : [ "FragmentBarycentricNV" ],
- "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
+ "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
"version" : "None"
},
{
@@ -10879,6 +12323,13 @@
"version" : "None"
},
{
+ "enumerant" : "CurrentRayTimeNV",
+ "value" : 5334,
+ "capabilities" : [ "RayTracingMotionBlurNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "IncomingRayFlagsNV",
"value" : 5351,
"capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
@@ -11391,6 +12842,11 @@
"version" : "1.5"
},
{
+ "enumerant" : "UniformDecoration",
+ "value" : 71,
+ "version" : "1.6"
+ },
+ {
"enumerant" : "FragmentShadingRateKHR",
"value" : 4422,
"capabilities" : [ "Shader" ],
@@ -11716,9 +13172,15 @@
"version" : "None"
},
{
+ "enumerant" : "FragmentBarycentricKHR",
+ "value" : 5284,
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "FragmentBarycentricNV",
"value" : 5284,
- "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
+ "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
"version" : "None"
},
{
@@ -11911,6 +13373,13 @@
"version" : "None"
},
{
+ "enumerant" : "RayTracingMotionBlurNV",
+ "value" : 5341,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_NV_ray_tracing_motion_blur" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "VulkanMemoryModel",
"value" : 5345,
"version" : "1.5"
@@ -11995,10 +13464,22 @@
"version" : "None"
},
{
+ "enumerant" : "DemoteToHelperInvocation",
+ "value" : 5379,
+ "capabilities" : [ "Shader" ],
+ "version" : "1.6"
+ },
+ {
"enumerant" : "DemoteToHelperInvocationEXT",
"value" : 5379,
"capabilities" : [ "Shader" ],
"extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "BindlessTextureNV",
+ "value" : 5390,
+ "extensions" : [ "SPV_NV_bindless_texture" ],
"version" : "None"
},
{
@@ -12063,6 +13544,24 @@
"version" : "None"
},
{
+ "enumerant" : "AtomicFloat32MinMaxEXT",
+ "value" : 5612,
+ "extensions" : [ "SPV_EXT_shader_atomic_float_min_max" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AtomicFloat64MinMaxEXT",
+ "value" : 5613,
+ "extensions" : [ "SPV_EXT_shader_atomic_float_min_max" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AtomicFloat16MinMaxEXT",
+ "value" : 5616,
+ "extensions" : [ "SPV_EXT_shader_atomic_float_min_max" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "VectorComputeINTEL",
"value" : 5617,
"capabilities" : [ "VectorAnyINTEL" ],
@@ -12076,6 +13575,12 @@
"version" : "None"
},
{
+ "enumerant" : "ExpectAssumeKHR",
+ "value" : 5629,
+ "extensions" : [ "SPV_KHR_expect_assume" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "SubgroupAvcMotionEstimationINTEL",
"value" : 5696,
"extensions" : [ "SPV_INTEL_device_side_avc_motion_estimation" ],
@@ -12125,6 +13630,12 @@
"version" : "None"
},
{
+ "enumerant" : "ArbitraryPrecisionFloatingPointINTEL",
+ "value" : 5845,
+ "extensions" : [ "SPV_INTEL_arbitrary_precision_floating_point" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "UnstructuredLoopControlsINTEL",
"value" : 5886,
"extensions" : [ "SPV_INTEL_unstructured_loop_controls" ],
@@ -12173,6 +13684,12 @@
"version" : "None"
},
{
+ "enumerant" : "ArbitraryPrecisionFixedPointINTEL",
+ "value" : 5922,
+ "extensions" : [ "SPV_INTEL_arbitrary_precision_fixed_point" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "USMStorageClassesINTEL",
"value" : 5935,
"extensions" : [ "SPV_INTEL_usm_storage_classes" ],
@@ -12197,16 +13714,66 @@
"version" : "None"
},
{
+ "enumerant" : "DotProductInputAll",
+ "value" : 6016,
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProductInputAllKHR",
+ "value" : 6016,
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProductInput4x8Bit",
+ "value" : 6017,
+ "capabilities" : [ "Int8" ],
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProductInput4x8BitKHR",
+ "value" : 6017,
+ "capabilities" : [ "Int8" ],
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProductInput4x8BitPacked",
+ "value" : 6018,
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProductInput4x8BitPackedKHR",
+ "value" : 6018,
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProduct",
+ "value" : 6019,
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "DotProductKHR",
+ "value" : 6019,
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "BitInstructions",
+ "value" : 6025,
+ "extensions" : [ "SPV_KHR_bit_instructions" ],
+ "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"
},
@@ -12215,6 +13782,24 @@
"value" : 6089,
"extensions" : [ "SPV_INTEL_long_constant_composite" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "OptNoneINTEL",
+ "value" : 6094,
+ "extensions" : [ "SPV_INTEL_optnone" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AtomicFloat16AddEXT",
+ "value" : 6095,
+ "extensions" : [ "SPV_EXT_shader_atomic_float16_add" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DebugInfoModuleINTEL",
+ "value" : 6114,
+ "extensions" : [ "SPV_INTEL_debug_module" ],
+ "version" : "None"
}
]
},
@@ -12279,6 +13864,23 @@
]
},
{
+ "category" : "ValueEnum",
+ "kind" : "PackedVectorFormat",
+ "enumerants" : [
+ {
+ "enumerant" : "PackedVectorFormat4x8Bit",
+ "value" : 0,
+ "version" : "1.6"
+ },
+ {
+ "enumerant" : "PackedVectorFormat4x8BitKHR",
+ "value" : 0,
+ "extensions" : [ "SPV_KHR_integer_dot_product" ],
+ "version" : "1.6"
+ }
+ ]
+ },
+ {
"category" : "Id",
"kind" : "IdResultType",
"doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 3a07e52..9cf00ec 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -48,8 +48,8 @@ namespace Spv
public static class Specification
{
public const uint MagicNumber = 0x07230203;
- public const uint Version = 0x00010500;
- public const uint Revision = 4;
+ public const uint Version = 0x00010600;
+ public const uint Revision = 1;
public const uint OpCodeMask = 0xffff;
public const uint WordCountShift = 16;
@@ -61,6 +61,7 @@ namespace Spv
OpenCL_C = 3,
OpenCL_CPP = 4,
HLSL = 5,
+ CPP_for_OpenCL = 6,
}
public enum ExecutionModel
@@ -146,6 +147,7 @@ namespace Spv
SubgroupsPerWorkgroupId = 37,
LocalSizeId = 38,
LocalSizeHintId = 39,
+ SubgroupUniformControlFlowKHR = 4421,
PostDepthCoverage = 4446,
DenormPreserve = 4459,
DenormFlushToZero = 4460,
@@ -347,6 +349,8 @@ namespace Spv
VolatileTexelKHR = 11,
SignExtend = 12,
ZeroExtend = 13,
+ Nontemporal = 14,
+ Offsets = 16,
}
public enum ImageOperandsMask
@@ -370,6 +374,8 @@ namespace Spv
VolatileTexelKHR = 0x00000800,
SignExtend = 0x00001000,
ZeroExtend = 0x00002000,
+ Nontemporal = 0x00004000,
+ Offsets = 0x00010000,
}
public enum FPFastMathModeShift
@@ -407,6 +413,7 @@ namespace Spv
{
Export = 0,
Import = 1,
+ LinkOnceODR = 2,
}
public enum AccessQualifier
@@ -487,6 +494,7 @@ namespace Spv
PerPrimitiveNV = 5271,
PerViewNV = 5272,
PerTaskNV = 5273,
+ PerVertexKHR = 5285,
PerVertexNV = 5285,
NonUniform = 5300,
NonUniformEXT = 5300,
@@ -494,6 +502,10 @@ namespace Spv
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
+ BindlessSamplerNV = 5398,
+ BindlessImageNV = 5399,
+ BoundSamplerNV = 5400,
+ BoundImageNV = 5401,
SIMTCallINTEL = 5599,
ReferencedIndirectlyINTEL = 5602,
ClobberINTEL = 5607,
@@ -533,6 +545,7 @@ namespace Spv
FunctionFloatingPointModeINTEL = 6080,
SingleElementVectorINTEL = 6085,
VectorComputeCallableFunctionINTEL = 6087,
+ MediaBlockIOINTEL = 6140,
}
public enum BuiltIn
@@ -617,7 +630,9 @@ namespace Spv
LayerPerViewNV = 5279,
MeshViewCountNV = 5280,
MeshViewIndicesNV = 5281,
+ BaryCoordKHR = 5286,
BaryCoordNV = 5286,
+ BaryCoordNoPerspKHR = 5287,
BaryCoordNoPerspNV = 5287,
FragSizeEXT = 5292,
FragmentSizeNV = 5292,
@@ -648,6 +663,7 @@ namespace Spv
HitTNV = 5332,
HitKindKHR = 5333,
HitKindNV = 5333,
+ CurrentRayTimeNV = 5334,
IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
RayGeometryIndexKHR = 5352,
@@ -719,6 +735,7 @@ namespace Spv
DontInline = 1,
Pure = 2,
Const = 3,
+ OptNoneINTEL = 16,
}
public enum FunctionControlMask
@@ -728,6 +745,7 @@ namespace Spv
DontInline = 0x00000002,
Pure = 0x00000004,
Const = 0x00000008,
+ OptNoneINTEL = 0x00010000,
}
public enum MemorySemanticsShift
@@ -912,6 +930,7 @@ namespace Spv
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
+ UniformDecoration = 71,
FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
@@ -960,6 +979,7 @@ namespace Spv
FragmentFullyCoveredEXT = 5265,
MeshShadingNV = 5266,
ImageFootprintNV = 5282,
+ FragmentBarycentricKHR = 5284,
FragmentBarycentricNV = 5284,
ComputeDerivativeGroupQuadsNV = 5288,
FragmentDensityEXT = 5291,
@@ -990,6 +1010,7 @@ namespace Spv
StorageTexelBufferArrayNonUniformIndexing = 5312,
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
RayTracingNV = 5340,
+ RayTracingMotionBlurNV = 5341,
VulkanMemoryModel = 5345,
VulkanMemoryModelKHR = 5345,
VulkanMemoryModelDeviceScope = 5346,
@@ -1003,7 +1024,9 @@ namespace Spv
FragmentShaderShadingRateInterlockEXT = 5372,
ShaderSMBuiltinsNV = 5373,
FragmentShaderPixelInterlockEXT = 5378,
+ DemoteToHelperInvocation = 5379,
DemoteToHelperInvocationEXT = 5379,
+ BindlessTextureNV = 5390,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
@@ -1014,8 +1037,12 @@ namespace Spv
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
VectorComputeINTEL = 5617,
VectorAnyINTEL = 5619,
+ ExpectAssumeKHR = 5629,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
@@ -1024,6 +1051,7 @@ namespace Spv
FPGAMemoryAttributesINTEL = 5824,
FPFastMathModeINTEL = 5837,
ArbitraryPrecisionIntegersINTEL = 5844,
+ ArbitraryPrecisionFloatingPointINTEL = 5845,
UnstructuredLoopControlsINTEL = 5886,
FPGALoopControlsINTEL = 5888,
KernelAttributesINTEL = 5892,
@@ -1032,13 +1060,26 @@ namespace Spv
FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906,
FPGABufferLocationINTEL = 5920,
+ ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935,
IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948,
+ DotProductInputAll = 6016,
+ DotProductInputAllKHR = 6016,
+ DotProductInput4x8Bit = 6017,
+ DotProductInput4x8BitKHR = 6017,
+ DotProductInput4x8BitPacked = 6018,
+ DotProductInput4x8BitPackedKHR = 6018,
+ DotProduct = 6019,
+ DotProductKHR = 6019,
+ BitInstructions = 6025,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089,
+ OptNoneINTEL = 6094,
+ AtomicFloat16AddEXT = 6095,
+ DebugInfoModuleINTEL = 6114,
}
public enum RayFlagsShift
@@ -1106,14 +1147,42 @@ namespace Spv
Horizontal4Pixels = 0x00000008,
}
- public enum FPDenormMode {
- Preserve = 0,
- FlushToZero = 1,
+ public enum FPDenormMode
+ {
+ Preserve = 0,
+ FlushToZero = 1,
+ }
+
+ public enum FPOperationMode
+ {
+ IEEE = 0,
+ ALT = 1,
}
- public enum FPOperationMode {
- IEEE = 0,
- ALT = 1,
+ public enum QuantizationModes
+ {
+ TRN = 0,
+ TRN_ZERO = 1,
+ RND = 2,
+ RND_ZERO = 3,
+ RND_INF = 4,
+ RND_MIN_INF = 5,
+ RND_CONV = 6,
+ RND_CONV_ODD = 7,
+ }
+
+ public enum OverflowModes
+ {
+ WRAP = 0,
+ SAT = 1,
+ SAT_ZERO = 2,
+ SAT_SYM = 3,
+ }
+
+ public enum PackedVectorFormat
+ {
+ PackedVectorFormat4x8Bit = 0,
+ PackedVectorFormat4x8BitKHR = 0,
}
public enum Op
@@ -1474,6 +1543,18 @@ namespace Spv
OpConvertUToAccelerationStructureKHR = 4447,
OpIgnoreIntersectionKHR = 4448,
OpTerminateRayKHR = 4449,
+ OpSDot = 4450,
+ OpSDotKHR = 4450,
+ OpUDot = 4451,
+ OpUDotKHR = 4451,
+ OpSUDot = 4452,
+ OpSUDotKHR = 4452,
+ OpSDotAccSat = 4453,
+ OpSDotAccSatKHR = 4453,
+ OpUDotAccSat = 4454,
+ OpUDotAccSatKHR = 4454,
+ OpSUDotAccSat = 4455,
+ OpSUDotAccSatKHR = 4455,
OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
@@ -1500,6 +1581,8 @@ namespace Spv
OpIgnoreIntersectionNV = 5335,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceMotionNV = 5338,
+ OpTraceRayMotionNV = 5339,
OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344,
@@ -1510,8 +1593,16 @@ namespace Spv
OpCooperativeMatrixLengthNV = 5362,
OpBeginInvocationInterlockEXT = 5364,
OpEndInvocationInterlockEXT = 5365,
+ OpDemoteToHelperInvocation = 5380,
OpDemoteToHelperInvocationEXT = 5380,
OpIsHelperInvocationEXT = 5381,
+ OpConvertUToImageNV = 5391,
+ OpConvertUToSamplerNV = 5392,
+ OpConvertImageToUNV = 5393,
+ OpConvertSamplerToUNV = 5394,
+ OpConvertUToSampledImageNV = 5395,
+ OpConvertSampledImageToUNV = 5396,
+ OpSamplerImageAddressingModeNV = 5397,
OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573,
@@ -1536,11 +1627,15 @@ namespace Spv
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpConstFunctionPointerINTEL = 5600,
+ OpConstantFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
+ OpAssumeTrueKHR = 5630,
+ OpExpectKHR = 5631,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1666,7 +1761,59 @@ namespace Spv
OpVariableLengthArrayINTEL = 5818,
OpSaveMemoryINTEL = 5819,
OpRestoreMemoryINTEL = 5820,
+ OpArbitraryFloatSinCosPiINTEL = 5840,
+ OpArbitraryFloatCastINTEL = 5841,
+ OpArbitraryFloatCastFromIntINTEL = 5842,
+ OpArbitraryFloatCastToIntINTEL = 5843,
+ OpArbitraryFloatAddINTEL = 5846,
+ OpArbitraryFloatSubINTEL = 5847,
+ OpArbitraryFloatMulINTEL = 5848,
+ OpArbitraryFloatDivINTEL = 5849,
+ OpArbitraryFloatGTINTEL = 5850,
+ OpArbitraryFloatGEINTEL = 5851,
+ OpArbitraryFloatLTINTEL = 5852,
+ OpArbitraryFloatLEINTEL = 5853,
+ OpArbitraryFloatEQINTEL = 5854,
+ OpArbitraryFloatRecipINTEL = 5855,
+ OpArbitraryFloatRSqrtINTEL = 5856,
+ OpArbitraryFloatCbrtINTEL = 5857,
+ OpArbitraryFloatHypotINTEL = 5858,
+ OpArbitraryFloatSqrtINTEL = 5859,
+ OpArbitraryFloatLogINTEL = 5860,
+ OpArbitraryFloatLog2INTEL = 5861,
+ OpArbitraryFloatLog10INTEL = 5862,
+ OpArbitraryFloatLog1pINTEL = 5863,
+ OpArbitraryFloatExpINTEL = 5864,
+ OpArbitraryFloatExp2INTEL = 5865,
+ OpArbitraryFloatExp10INTEL = 5866,
+ OpArbitraryFloatExpm1INTEL = 5867,
+ OpArbitraryFloatSinINTEL = 5868,
+ OpArbitraryFloatCosINTEL = 5869,
+ OpArbitraryFloatSinCosINTEL = 5870,
+ OpArbitraryFloatSinPiINTEL = 5871,
+ OpArbitraryFloatCosPiINTEL = 5872,
+ OpArbitraryFloatASinINTEL = 5873,
+ OpArbitraryFloatASinPiINTEL = 5874,
+ OpArbitraryFloatACosINTEL = 5875,
+ OpArbitraryFloatACosPiINTEL = 5876,
+ OpArbitraryFloatATanINTEL = 5877,
+ OpArbitraryFloatATanPiINTEL = 5878,
+ OpArbitraryFloatATan2INTEL = 5879,
+ OpArbitraryFloatPowINTEL = 5880,
+ OpArbitraryFloatPowRINTEL = 5881,
+ OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
+ OpFixedSqrtINTEL = 5923,
+ OpFixedRecipINTEL = 5924,
+ OpFixedRsqrtINTEL = 5925,
+ OpFixedSinINTEL = 5926,
+ OpFixedCosINTEL = 5927,
+ OpFixedSinCosINTEL = 5928,
+ OpFixedSinPiINTEL = 5929,
+ OpFixedCosPiINTEL = 5930,
+ OpFixedSinCosPiINTEL = 5931,
+ OpFixedLogINTEL = 5932,
+ OpFixedExpINTEL = 5933,
OpPtrCastToCrossWorkgroupINTEL = 5934,
OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 41a650b..c15736e 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -53,12 +53,12 @@
typedef unsigned int SpvId;
-#define SPV_VERSION 0x10500
-#define SPV_REVISION 4
+#define SPV_VERSION 0x10600
+#define SPV_REVISION 1
static const unsigned int SpvMagicNumber = 0x07230203;
-static const unsigned int SpvVersion = 0x00010500;
-static const unsigned int SpvRevision = 4;
+static const unsigned int SpvVersion = 0x00010600;
+static const unsigned int SpvRevision = 1;
static const unsigned int SpvOpCodeMask = 0xffff;
static const unsigned int SpvWordCountShift = 16;
@@ -69,6 +69,7 @@ typedef enum SpvSourceLanguage_ {
SpvSourceLanguageOpenCL_C = 3,
SpvSourceLanguageOpenCL_CPP = 4,
SpvSourceLanguageHLSL = 5,
+ SpvSourceLanguageCPP_for_OpenCL = 6,
SpvSourceLanguageMax = 0x7fffffff,
} SpvSourceLanguage;
@@ -154,6 +155,7 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeSubgroupsPerWorkgroupId = 37,
SpvExecutionModeLocalSizeId = 38,
SpvExecutionModeLocalSizeHintId = 39,
+ SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
SpvExecutionModePostDepthCoverage = 4446,
SpvExecutionModeDenormPreserve = 4459,
SpvExecutionModeDenormFlushToZero = 4460,
@@ -355,6 +357,8 @@ typedef enum SpvImageOperandsShift_ {
SpvImageOperandsVolatileTexelKHRShift = 11,
SpvImageOperandsSignExtendShift = 12,
SpvImageOperandsZeroExtendShift = 13,
+ SpvImageOperandsNontemporalShift = 14,
+ SpvImageOperandsOffsetsShift = 16,
SpvImageOperandsMax = 0x7fffffff,
} SpvImageOperandsShift;
@@ -378,6 +382,8 @@ typedef enum SpvImageOperandsMask_ {
SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
SpvImageOperandsSignExtendMask = 0x00001000,
SpvImageOperandsZeroExtendMask = 0x00002000,
+ SpvImageOperandsNontemporalMask = 0x00004000,
+ SpvImageOperandsOffsetsMask = 0x00010000,
} SpvImageOperandsMask;
typedef enum SpvFPFastMathModeShift_ {
@@ -413,6 +419,7 @@ typedef enum SpvFPRoundingMode_ {
typedef enum SpvLinkageType_ {
SpvLinkageTypeExport = 0,
SpvLinkageTypeImport = 1,
+ SpvLinkageTypeLinkOnceODR = 2,
SpvLinkageTypeMax = 0x7fffffff,
} SpvLinkageType;
@@ -493,6 +500,7 @@ typedef enum SpvDecoration_ {
SpvDecorationPerPrimitiveNV = 5271,
SpvDecorationPerViewNV = 5272,
SpvDecorationPerTaskNV = 5273,
+ SpvDecorationPerVertexKHR = 5285,
SpvDecorationPerVertexNV = 5285,
SpvDecorationNonUniform = 5300,
SpvDecorationNonUniformEXT = 5300,
@@ -500,6 +508,10 @@ typedef enum SpvDecoration_ {
SpvDecorationRestrictPointerEXT = 5355,
SpvDecorationAliasedPointer = 5356,
SpvDecorationAliasedPointerEXT = 5356,
+ SpvDecorationBindlessSamplerNV = 5398,
+ SpvDecorationBindlessImageNV = 5399,
+ SpvDecorationBoundSamplerNV = 5400,
+ SpvDecorationBoundImageNV = 5401,
SpvDecorationSIMTCallINTEL = 5599,
SpvDecorationReferencedIndirectlyINTEL = 5602,
SpvDecorationClobberINTEL = 5607,
@@ -539,6 +551,7 @@ typedef enum SpvDecoration_ {
SpvDecorationFunctionFloatingPointModeINTEL = 6080,
SpvDecorationSingleElementVectorINTEL = 6085,
SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
+ SpvDecorationMediaBlockIOINTEL = 6140,
SpvDecorationMax = 0x7fffffff,
} SpvDecoration;
@@ -623,7 +636,9 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInLayerPerViewNV = 5279,
SpvBuiltInMeshViewCountNV = 5280,
SpvBuiltInMeshViewIndicesNV = 5281,
+ SpvBuiltInBaryCoordKHR = 5286,
SpvBuiltInBaryCoordNV = 5286,
+ SpvBuiltInBaryCoordNoPerspKHR = 5287,
SpvBuiltInBaryCoordNoPerspNV = 5287,
SpvBuiltInFragSizeEXT = 5292,
SpvBuiltInFragmentSizeNV = 5292,
@@ -654,6 +669,7 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInHitTNV = 5332,
SpvBuiltInHitKindKHR = 5333,
SpvBuiltInHitKindNV = 5333,
+ SpvBuiltInCurrentRayTimeNV = 5334,
SpvBuiltInIncomingRayFlagsKHR = 5351,
SpvBuiltInIncomingRayFlagsNV = 5351,
SpvBuiltInRayGeometryIndexKHR = 5352,
@@ -723,6 +739,7 @@ typedef enum SpvFunctionControlShift_ {
SpvFunctionControlDontInlineShift = 1,
SpvFunctionControlPureShift = 2,
SpvFunctionControlConstShift = 3,
+ SpvFunctionControlOptNoneINTELShift = 16,
SpvFunctionControlMax = 0x7fffffff,
} SpvFunctionControlShift;
@@ -732,6 +749,7 @@ typedef enum SpvFunctionControlMask_ {
SpvFunctionControlDontInlineMask = 0x00000002,
SpvFunctionControlPureMask = 0x00000004,
SpvFunctionControlConstMask = 0x00000008,
+ SpvFunctionControlOptNoneINTELMask = 0x00010000,
} SpvFunctionControlMask;
typedef enum SpvMemorySemanticsShift_ {
@@ -912,6 +930,7 @@ typedef enum SpvCapability_ {
SpvCapabilityGroupNonUniformQuad = 68,
SpvCapabilityShaderLayer = 69,
SpvCapabilityShaderViewportIndex = 70,
+ SpvCapabilityUniformDecoration = 71,
SpvCapabilityFragmentShadingRateKHR = 4422,
SpvCapabilitySubgroupBallotKHR = 4423,
SpvCapabilityDrawParameters = 4427,
@@ -960,6 +979,7 @@ typedef enum SpvCapability_ {
SpvCapabilityFragmentFullyCoveredEXT = 5265,
SpvCapabilityMeshShadingNV = 5266,
SpvCapabilityImageFootprintNV = 5282,
+ SpvCapabilityFragmentBarycentricKHR = 5284,
SpvCapabilityFragmentBarycentricNV = 5284,
SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
SpvCapabilityFragmentDensityEXT = 5291,
@@ -990,6 +1010,7 @@ typedef enum SpvCapability_ {
SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
SpvCapabilityRayTracingNV = 5340,
+ SpvCapabilityRayTracingMotionBlurNV = 5341,
SpvCapabilityVulkanMemoryModel = 5345,
SpvCapabilityVulkanMemoryModelKHR = 5345,
SpvCapabilityVulkanMemoryModelDeviceScope = 5346,
@@ -1003,7 +1024,9 @@ typedef enum SpvCapability_ {
SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
SpvCapabilityShaderSMBuiltinsNV = 5373,
SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
+ SpvCapabilityDemoteToHelperInvocation = 5379,
SpvCapabilityDemoteToHelperInvocationEXT = 5379,
+ SpvCapabilityBindlessTextureNV = 5390,
SpvCapabilitySubgroupShuffleINTEL = 5568,
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1014,8 +1037,12 @@ typedef enum SpvCapability_ {
SpvCapabilityFunctionPointersINTEL = 5603,
SpvCapabilityIndirectReferencesINTEL = 5604,
SpvCapabilityAsmINTEL = 5606,
+ SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
+ SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
+ SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
SpvCapabilityVectorComputeINTEL = 5617,
SpvCapabilityVectorAnyINTEL = 5619,
+ SpvCapabilityExpectAssumeKHR = 5629,
SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
@@ -1024,6 +1051,7 @@ typedef enum SpvCapability_ {
SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
SpvCapabilityFPFastMathModeINTEL = 5837,
SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
+ SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
SpvCapabilityFPGALoopControlsINTEL = 5888,
SpvCapabilityKernelAttributesINTEL = 5892,
@@ -1032,13 +1060,26 @@ typedef enum SpvCapability_ {
SpvCapabilityFPGAClusterAttributesINTEL = 5904,
SpvCapabilityLoopFuseINTEL = 5906,
SpvCapabilityFPGABufferLocationINTEL = 5920,
+ SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
SpvCapabilityUSMStorageClassesINTEL = 5935,
SpvCapabilityIOPipesINTEL = 5943,
SpvCapabilityBlockingPipesINTEL = 5945,
SpvCapabilityFPGARegINTEL = 5948,
+ SpvCapabilityDotProductInputAll = 6016,
+ SpvCapabilityDotProductInputAllKHR = 6016,
+ SpvCapabilityDotProductInput4x8Bit = 6017,
+ SpvCapabilityDotProductInput4x8BitKHR = 6017,
+ SpvCapabilityDotProductInput4x8BitPacked = 6018,
+ SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
+ SpvCapabilityDotProduct = 6019,
+ SpvCapabilityDotProductKHR = 6019,
+ SpvCapabilityBitInstructions = 6025,
SpvCapabilityAtomicFloat32AddEXT = 6033,
SpvCapabilityAtomicFloat64AddEXT = 6034,
SpvCapabilityLongConstantCompositeINTEL = 6089,
+ SpvCapabilityOptNoneINTEL = 6094,
+ SpvCapabilityAtomicFloat16AddEXT = 6095,
+ SpvCapabilityDebugInfoModuleINTEL = 6114,
SpvCapabilityMax = 0x7fffffff,
} SpvCapability;
@@ -1106,17 +1147,43 @@ typedef enum SpvFragmentShadingRateMask_ {
} SpvFragmentShadingRateMask;
typedef enum SpvFPDenormMode_ {
- SpvFPDenormModePreserve = 0,
- SpvFPDenormModeFlushToZero = 1,
- SpvFPDenormModeMax = 0x7fffffff,
+ SpvFPDenormModePreserve = 0,
+ SpvFPDenormModeFlushToZero = 1,
+ SpvFPDenormModeMax = 0x7fffffff,
} SpvFPDenormMode;
typedef enum SpvFPOperationMode_ {
- SpvFPOperationModeIEEE = 0,
- SpvFPOperationModeALT = 1,
- SpvFPOperationModeMax = 0x7fffffff,
+ SpvFPOperationModeIEEE = 0,
+ SpvFPOperationModeALT = 1,
+ SpvFPOperationModeMax = 0x7fffffff,
} SpvFPOperationMode;
+typedef enum SpvQuantizationModes_ {
+ SpvQuantizationModesTRN = 0,
+ SpvQuantizationModesTRN_ZERO = 1,
+ SpvQuantizationModesRND = 2,
+ SpvQuantizationModesRND_ZERO = 3,
+ SpvQuantizationModesRND_INF = 4,
+ SpvQuantizationModesRND_MIN_INF = 5,
+ SpvQuantizationModesRND_CONV = 6,
+ SpvQuantizationModesRND_CONV_ODD = 7,
+ SpvQuantizationModesMax = 0x7fffffff,
+} SpvQuantizationModes;
+
+typedef enum SpvOverflowModes_ {
+ SpvOverflowModesWRAP = 0,
+ SpvOverflowModesSAT = 1,
+ SpvOverflowModesSAT_ZERO = 2,
+ SpvOverflowModesSAT_SYM = 3,
+ SpvOverflowModesMax = 0x7fffffff,
+} SpvOverflowModes;
+
+typedef enum SpvPackedVectorFormat_ {
+ SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0,
+ SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
+ SpvPackedVectorFormatMax = 0x7fffffff,
+} SpvPackedVectorFormat;
+
typedef enum SpvOp_ {
SpvOpNop = 0,
SpvOpUndef = 1,
@@ -1474,6 +1541,18 @@ typedef enum SpvOp_ {
SpvOpConvertUToAccelerationStructureKHR = 4447,
SpvOpIgnoreIntersectionKHR = 4448,
SpvOpTerminateRayKHR = 4449,
+ SpvOpSDot = 4450,
+ SpvOpSDotKHR = 4450,
+ SpvOpUDot = 4451,
+ SpvOpUDotKHR = 4451,
+ SpvOpSUDot = 4452,
+ SpvOpSUDotKHR = 4452,
+ SpvOpSDotAccSat = 4453,
+ SpvOpSDotAccSatKHR = 4453,
+ SpvOpUDotAccSat = 4454,
+ SpvOpUDotAccSatKHR = 4454,
+ SpvOpSUDotAccSat = 4455,
+ SpvOpSUDotAccSatKHR = 4455,
SpvOpTypeRayQueryKHR = 4472,
SpvOpRayQueryInitializeKHR = 4473,
SpvOpRayQueryTerminateKHR = 4474,
@@ -1500,6 +1579,8 @@ typedef enum SpvOp_ {
SpvOpIgnoreIntersectionNV = 5335,
SpvOpTerminateRayNV = 5336,
SpvOpTraceNV = 5337,
+ SpvOpTraceMotionNV = 5338,
+ SpvOpTraceRayMotionNV = 5339,
SpvOpTypeAccelerationStructureKHR = 5341,
SpvOpTypeAccelerationStructureNV = 5341,
SpvOpExecuteCallableNV = 5344,
@@ -1510,8 +1591,16 @@ typedef enum SpvOp_ {
SpvOpCooperativeMatrixLengthNV = 5362,
SpvOpBeginInvocationInterlockEXT = 5364,
SpvOpEndInvocationInterlockEXT = 5365,
+ SpvOpDemoteToHelperInvocation = 5380,
SpvOpDemoteToHelperInvocationEXT = 5380,
SpvOpIsHelperInvocationEXT = 5381,
+ SpvOpConvertUToImageNV = 5391,
+ SpvOpConvertUToSamplerNV = 5392,
+ SpvOpConvertImageToUNV = 5393,
+ SpvOpConvertSamplerToUNV = 5394,
+ SpvOpConvertUToSampledImageNV = 5395,
+ SpvOpConvertSampledImageToUNV = 5396,
+ SpvOpSamplerImageAddressingModeNV = 5397,
SpvOpSubgroupShuffleINTEL = 5571,
SpvOpSubgroupShuffleDownINTEL = 5572,
SpvOpSubgroupShuffleUpINTEL = 5573,
@@ -1536,11 +1625,15 @@ typedef enum SpvOp_ {
SpvOpUSubSatINTEL = 5596,
SpvOpIMul32x16INTEL = 5597,
SpvOpUMul32x16INTEL = 5598,
- SpvOpConstFunctionPointerINTEL = 5600,
+ SpvOpConstantFunctionPointerINTEL = 5600,
SpvOpFunctionPointerCallINTEL = 5601,
SpvOpAsmTargetINTEL = 5609,
SpvOpAsmINTEL = 5610,
SpvOpAsmCallINTEL = 5611,
+ SpvOpAtomicFMinEXT = 5614,
+ SpvOpAtomicFMaxEXT = 5615,
+ SpvOpAssumeTrueKHR = 5630,
+ SpvOpExpectKHR = 5631,
SpvOpDecorateString = 5632,
SpvOpDecorateStringGOOGLE = 5632,
SpvOpMemberDecorateString = 5633,
@@ -1666,7 +1759,59 @@ typedef enum SpvOp_ {
SpvOpVariableLengthArrayINTEL = 5818,
SpvOpSaveMemoryINTEL = 5819,
SpvOpRestoreMemoryINTEL = 5820,
+ SpvOpArbitraryFloatSinCosPiINTEL = 5840,
+ SpvOpArbitraryFloatCastINTEL = 5841,
+ SpvOpArbitraryFloatCastFromIntINTEL = 5842,
+ SpvOpArbitraryFloatCastToIntINTEL = 5843,
+ SpvOpArbitraryFloatAddINTEL = 5846,
+ SpvOpArbitraryFloatSubINTEL = 5847,
+ SpvOpArbitraryFloatMulINTEL = 5848,
+ SpvOpArbitraryFloatDivINTEL = 5849,
+ SpvOpArbitraryFloatGTINTEL = 5850,
+ SpvOpArbitraryFloatGEINTEL = 5851,
+ SpvOpArbitraryFloatLTINTEL = 5852,
+ SpvOpArbitraryFloatLEINTEL = 5853,
+ SpvOpArbitraryFloatEQINTEL = 5854,
+ SpvOpArbitraryFloatRecipINTEL = 5855,
+ SpvOpArbitraryFloatRSqrtINTEL = 5856,
+ SpvOpArbitraryFloatCbrtINTEL = 5857,
+ SpvOpArbitraryFloatHypotINTEL = 5858,
+ SpvOpArbitraryFloatSqrtINTEL = 5859,
+ SpvOpArbitraryFloatLogINTEL = 5860,
+ SpvOpArbitraryFloatLog2INTEL = 5861,
+ SpvOpArbitraryFloatLog10INTEL = 5862,
+ SpvOpArbitraryFloatLog1pINTEL = 5863,
+ SpvOpArbitraryFloatExpINTEL = 5864,
+ SpvOpArbitraryFloatExp2INTEL = 5865,
+ SpvOpArbitraryFloatExp10INTEL = 5866,
+ SpvOpArbitraryFloatExpm1INTEL = 5867,
+ SpvOpArbitraryFloatSinINTEL = 5868,
+ SpvOpArbitraryFloatCosINTEL = 5869,
+ SpvOpArbitraryFloatSinCosINTEL = 5870,
+ SpvOpArbitraryFloatSinPiINTEL = 5871,
+ SpvOpArbitraryFloatCosPiINTEL = 5872,
+ SpvOpArbitraryFloatASinINTEL = 5873,
+ SpvOpArbitraryFloatASinPiINTEL = 5874,
+ SpvOpArbitraryFloatACosINTEL = 5875,
+ SpvOpArbitraryFloatACosPiINTEL = 5876,
+ SpvOpArbitraryFloatATanINTEL = 5877,
+ SpvOpArbitraryFloatATanPiINTEL = 5878,
+ SpvOpArbitraryFloatATan2INTEL = 5879,
+ SpvOpArbitraryFloatPowINTEL = 5880,
+ SpvOpArbitraryFloatPowRINTEL = 5881,
+ SpvOpArbitraryFloatPowNINTEL = 5882,
SpvOpLoopControlINTEL = 5887,
+ SpvOpFixedSqrtINTEL = 5923,
+ SpvOpFixedRecipINTEL = 5924,
+ SpvOpFixedRsqrtINTEL = 5925,
+ SpvOpFixedSinINTEL = 5926,
+ SpvOpFixedCosINTEL = 5927,
+ SpvOpFixedSinCosINTEL = 5928,
+ SpvOpFixedSinPiINTEL = 5929,
+ SpvOpFixedCosPiINTEL = 5930,
+ SpvOpFixedSinCosPiINTEL = 5931,
+ SpvOpFixedLogINTEL = 5932,
+ SpvOpFixedExpINTEL = 5933,
SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
SpvOpReadPipeBlockingINTEL = 5946,
@@ -2058,6 +2203,12 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSDot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUDot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSUDot: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2083,6 +2234,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
+ case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@@ -2092,8 +2245,15 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
- case SpvOpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
+ case SpvOpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2118,11 +2278,15 @@ 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 SpvOpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpExpectKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2246,7 +2410,59 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index af629ef..3d500eb 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -49,12 +49,12 @@ namespace spv {
typedef unsigned int Id;
-#define SPV_VERSION 0x10500
-#define SPV_REVISION 4
+#define SPV_VERSION 0x10600
+#define SPV_REVISION 1
static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010500;
-static const unsigned int Revision = 4;
+static const unsigned int Version = 0x00010600;
+static const unsigned int Revision = 1;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -65,6 +65,7 @@ enum SourceLanguage {
SourceLanguageOpenCL_C = 3,
SourceLanguageOpenCL_CPP = 4,
SourceLanguageHLSL = 5,
+ SourceLanguageCPP_for_OpenCL = 6,
SourceLanguageMax = 0x7fffffff,
};
@@ -150,6 +151,7 @@ enum ExecutionMode {
ExecutionModeSubgroupsPerWorkgroupId = 37,
ExecutionModeLocalSizeId = 38,
ExecutionModeLocalSizeHintId = 39,
+ ExecutionModeSubgroupUniformControlFlowKHR = 4421,
ExecutionModePostDepthCoverage = 4446,
ExecutionModeDenormPreserve = 4459,
ExecutionModeDenormFlushToZero = 4460,
@@ -351,6 +353,8 @@ enum ImageOperandsShift {
ImageOperandsVolatileTexelKHRShift = 11,
ImageOperandsSignExtendShift = 12,
ImageOperandsZeroExtendShift = 13,
+ ImageOperandsNontemporalShift = 14,
+ ImageOperandsOffsetsShift = 16,
ImageOperandsMax = 0x7fffffff,
};
@@ -374,6 +378,8 @@ enum ImageOperandsMask {
ImageOperandsVolatileTexelKHRMask = 0x00000800,
ImageOperandsSignExtendMask = 0x00001000,
ImageOperandsZeroExtendMask = 0x00002000,
+ ImageOperandsNontemporalMask = 0x00004000,
+ ImageOperandsOffsetsMask = 0x00010000,
};
enum FPFastMathModeShift {
@@ -409,6 +415,7 @@ enum FPRoundingMode {
enum LinkageType {
LinkageTypeExport = 0,
LinkageTypeImport = 1,
+ LinkageTypeLinkOnceODR = 2,
LinkageTypeMax = 0x7fffffff,
};
@@ -489,6 +496,7 @@ enum Decoration {
DecorationPerPrimitiveNV = 5271,
DecorationPerViewNV = 5272,
DecorationPerTaskNV = 5273,
+ DecorationPerVertexKHR = 5285,
DecorationPerVertexNV = 5285,
DecorationNonUniform = 5300,
DecorationNonUniformEXT = 5300,
@@ -496,6 +504,10 @@ enum Decoration {
DecorationRestrictPointerEXT = 5355,
DecorationAliasedPointer = 5356,
DecorationAliasedPointerEXT = 5356,
+ DecorationBindlessSamplerNV = 5398,
+ DecorationBindlessImageNV = 5399,
+ DecorationBoundSamplerNV = 5400,
+ DecorationBoundImageNV = 5401,
DecorationSIMTCallINTEL = 5599,
DecorationReferencedIndirectlyINTEL = 5602,
DecorationClobberINTEL = 5607,
@@ -535,6 +547,7 @@ enum Decoration {
DecorationFunctionFloatingPointModeINTEL = 6080,
DecorationSingleElementVectorINTEL = 6085,
DecorationVectorComputeCallableFunctionINTEL = 6087,
+ DecorationMediaBlockIOINTEL = 6140,
DecorationMax = 0x7fffffff,
};
@@ -619,7 +632,9 @@ enum BuiltIn {
BuiltInLayerPerViewNV = 5279,
BuiltInMeshViewCountNV = 5280,
BuiltInMeshViewIndicesNV = 5281,
+ BuiltInBaryCoordKHR = 5286,
BuiltInBaryCoordNV = 5286,
+ BuiltInBaryCoordNoPerspKHR = 5287,
BuiltInBaryCoordNoPerspNV = 5287,
BuiltInFragSizeEXT = 5292,
BuiltInFragmentSizeNV = 5292,
@@ -650,6 +665,7 @@ enum BuiltIn {
BuiltInHitTNV = 5332,
BuiltInHitKindKHR = 5333,
BuiltInHitKindNV = 5333,
+ BuiltInCurrentRayTimeNV = 5334,
BuiltInIncomingRayFlagsKHR = 5351,
BuiltInIncomingRayFlagsNV = 5351,
BuiltInRayGeometryIndexKHR = 5352,
@@ -719,6 +735,7 @@ enum FunctionControlShift {
FunctionControlDontInlineShift = 1,
FunctionControlPureShift = 2,
FunctionControlConstShift = 3,
+ FunctionControlOptNoneINTELShift = 16,
FunctionControlMax = 0x7fffffff,
};
@@ -728,6 +745,7 @@ enum FunctionControlMask {
FunctionControlDontInlineMask = 0x00000002,
FunctionControlPureMask = 0x00000004,
FunctionControlConstMask = 0x00000008,
+ FunctionControlOptNoneINTELMask = 0x00010000,
};
enum MemorySemanticsShift {
@@ -908,6 +926,7 @@ enum Capability {
CapabilityGroupNonUniformQuad = 68,
CapabilityShaderLayer = 69,
CapabilityShaderViewportIndex = 70,
+ CapabilityUniformDecoration = 71,
CapabilityFragmentShadingRateKHR = 4422,
CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427,
@@ -956,6 +975,7 @@ enum Capability {
CapabilityFragmentFullyCoveredEXT = 5265,
CapabilityMeshShadingNV = 5266,
CapabilityImageFootprintNV = 5282,
+ CapabilityFragmentBarycentricKHR = 5284,
CapabilityFragmentBarycentricNV = 5284,
CapabilityComputeDerivativeGroupQuadsNV = 5288,
CapabilityFragmentDensityEXT = 5291,
@@ -986,6 +1006,7 @@ enum Capability {
CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
CapabilityRayTracingNV = 5340,
+ CapabilityRayTracingMotionBlurNV = 5341,
CapabilityVulkanMemoryModel = 5345,
CapabilityVulkanMemoryModelKHR = 5345,
CapabilityVulkanMemoryModelDeviceScope = 5346,
@@ -999,7 +1020,9 @@ enum Capability {
CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
CapabilityShaderSMBuiltinsNV = 5373,
CapabilityFragmentShaderPixelInterlockEXT = 5378,
+ CapabilityDemoteToHelperInvocation = 5379,
CapabilityDemoteToHelperInvocationEXT = 5379,
+ CapabilityBindlessTextureNV = 5390,
CapabilitySubgroupShuffleINTEL = 5568,
CapabilitySubgroupBufferBlockIOINTEL = 5569,
CapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1010,8 +1033,12 @@ enum Capability {
CapabilityFunctionPointersINTEL = 5603,
CapabilityIndirectReferencesINTEL = 5604,
CapabilityAsmINTEL = 5606,
+ CapabilityAtomicFloat32MinMaxEXT = 5612,
+ CapabilityAtomicFloat64MinMaxEXT = 5613,
+ CapabilityAtomicFloat16MinMaxEXT = 5616,
CapabilityVectorComputeINTEL = 5617,
CapabilityVectorAnyINTEL = 5619,
+ CapabilityExpectAssumeKHR = 5629,
CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
@@ -1020,6 +1047,7 @@ enum Capability {
CapabilityFPGAMemoryAttributesINTEL = 5824,
CapabilityFPFastMathModeINTEL = 5837,
CapabilityArbitraryPrecisionIntegersINTEL = 5844,
+ CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
CapabilityUnstructuredLoopControlsINTEL = 5886,
CapabilityFPGALoopControlsINTEL = 5888,
CapabilityKernelAttributesINTEL = 5892,
@@ -1028,13 +1056,26 @@ enum Capability {
CapabilityFPGAClusterAttributesINTEL = 5904,
CapabilityLoopFuseINTEL = 5906,
CapabilityFPGABufferLocationINTEL = 5920,
+ CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
CapabilityUSMStorageClassesINTEL = 5935,
CapabilityIOPipesINTEL = 5943,
CapabilityBlockingPipesINTEL = 5945,
CapabilityFPGARegINTEL = 5948,
+ CapabilityDotProductInputAll = 6016,
+ CapabilityDotProductInputAllKHR = 6016,
+ CapabilityDotProductInput4x8Bit = 6017,
+ CapabilityDotProductInput4x8BitKHR = 6017,
+ CapabilityDotProductInput4x8BitPacked = 6018,
+ CapabilityDotProductInput4x8BitPackedKHR = 6018,
+ CapabilityDotProduct = 6019,
+ CapabilityDotProductKHR = 6019,
+ CapabilityBitInstructions = 6025,
CapabilityAtomicFloat32AddEXT = 6033,
CapabilityAtomicFloat64AddEXT = 6034,
CapabilityLongConstantCompositeINTEL = 6089,
+ CapabilityOptNoneINTEL = 6094,
+ CapabilityAtomicFloat16AddEXT = 6095,
+ CapabilityDebugInfoModuleINTEL = 6114,
CapabilityMax = 0x7fffffff,
};
@@ -1102,15 +1143,41 @@ enum FragmentShadingRateMask {
};
enum FPDenormMode {
- FPDenormModePreserve = 0,
- FPDenormModeFlushToZero = 1,
- FPDenormModeMax = 0x7fffffff,
+ FPDenormModePreserve = 0,
+ FPDenormModeFlushToZero = 1,
+ FPDenormModeMax = 0x7fffffff,
};
enum FPOperationMode {
- FPOperationModeIEEE = 0,
- FPOperationModeALT = 1,
- FPOperationModeMax = 0x7fffffff,
+ FPOperationModeIEEE = 0,
+ FPOperationModeALT = 1,
+ FPOperationModeMax = 0x7fffffff,
+};
+
+enum QuantizationModes {
+ QuantizationModesTRN = 0,
+ QuantizationModesTRN_ZERO = 1,
+ QuantizationModesRND = 2,
+ QuantizationModesRND_ZERO = 3,
+ QuantizationModesRND_INF = 4,
+ QuantizationModesRND_MIN_INF = 5,
+ QuantizationModesRND_CONV = 6,
+ QuantizationModesRND_CONV_ODD = 7,
+ QuantizationModesMax = 0x7fffffff,
+};
+
+enum OverflowModes {
+ OverflowModesWRAP = 0,
+ OverflowModesSAT = 1,
+ OverflowModesSAT_ZERO = 2,
+ OverflowModesSAT_SYM = 3,
+ OverflowModesMax = 0x7fffffff,
+};
+
+enum PackedVectorFormat {
+ PackedVectorFormatPackedVectorFormat4x8Bit = 0,
+ PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
+ PackedVectorFormatMax = 0x7fffffff,
};
enum Op {
@@ -1470,6 +1537,18 @@ enum Op {
OpConvertUToAccelerationStructureKHR = 4447,
OpIgnoreIntersectionKHR = 4448,
OpTerminateRayKHR = 4449,
+ OpSDot = 4450,
+ OpSDotKHR = 4450,
+ OpUDot = 4451,
+ OpUDotKHR = 4451,
+ OpSUDot = 4452,
+ OpSUDotKHR = 4452,
+ OpSDotAccSat = 4453,
+ OpSDotAccSatKHR = 4453,
+ OpUDotAccSat = 4454,
+ OpUDotAccSatKHR = 4454,
+ OpSUDotAccSat = 4455,
+ OpSUDotAccSatKHR = 4455,
OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
@@ -1496,6 +1575,8 @@ enum Op {
OpIgnoreIntersectionNV = 5335,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceMotionNV = 5338,
+ OpTraceRayMotionNV = 5339,
OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344,
@@ -1506,8 +1587,16 @@ enum Op {
OpCooperativeMatrixLengthNV = 5362,
OpBeginInvocationInterlockEXT = 5364,
OpEndInvocationInterlockEXT = 5365,
+ OpDemoteToHelperInvocation = 5380,
OpDemoteToHelperInvocationEXT = 5380,
OpIsHelperInvocationEXT = 5381,
+ OpConvertUToImageNV = 5391,
+ OpConvertUToSamplerNV = 5392,
+ OpConvertImageToUNV = 5393,
+ OpConvertSamplerToUNV = 5394,
+ OpConvertUToSampledImageNV = 5395,
+ OpConvertSampledImageToUNV = 5396,
+ OpSamplerImageAddressingModeNV = 5397,
OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573,
@@ -1532,11 +1621,15 @@ enum Op {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpConstFunctionPointerINTEL = 5600,
+ OpConstantFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
+ OpAssumeTrueKHR = 5630,
+ OpExpectKHR = 5631,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1662,7 +1755,59 @@ enum Op {
OpVariableLengthArrayINTEL = 5818,
OpSaveMemoryINTEL = 5819,
OpRestoreMemoryINTEL = 5820,
+ OpArbitraryFloatSinCosPiINTEL = 5840,
+ OpArbitraryFloatCastINTEL = 5841,
+ OpArbitraryFloatCastFromIntINTEL = 5842,
+ OpArbitraryFloatCastToIntINTEL = 5843,
+ OpArbitraryFloatAddINTEL = 5846,
+ OpArbitraryFloatSubINTEL = 5847,
+ OpArbitraryFloatMulINTEL = 5848,
+ OpArbitraryFloatDivINTEL = 5849,
+ OpArbitraryFloatGTINTEL = 5850,
+ OpArbitraryFloatGEINTEL = 5851,
+ OpArbitraryFloatLTINTEL = 5852,
+ OpArbitraryFloatLEINTEL = 5853,
+ OpArbitraryFloatEQINTEL = 5854,
+ OpArbitraryFloatRecipINTEL = 5855,
+ OpArbitraryFloatRSqrtINTEL = 5856,
+ OpArbitraryFloatCbrtINTEL = 5857,
+ OpArbitraryFloatHypotINTEL = 5858,
+ OpArbitraryFloatSqrtINTEL = 5859,
+ OpArbitraryFloatLogINTEL = 5860,
+ OpArbitraryFloatLog2INTEL = 5861,
+ OpArbitraryFloatLog10INTEL = 5862,
+ OpArbitraryFloatLog1pINTEL = 5863,
+ OpArbitraryFloatExpINTEL = 5864,
+ OpArbitraryFloatExp2INTEL = 5865,
+ OpArbitraryFloatExp10INTEL = 5866,
+ OpArbitraryFloatExpm1INTEL = 5867,
+ OpArbitraryFloatSinINTEL = 5868,
+ OpArbitraryFloatCosINTEL = 5869,
+ OpArbitraryFloatSinCosINTEL = 5870,
+ OpArbitraryFloatSinPiINTEL = 5871,
+ OpArbitraryFloatCosPiINTEL = 5872,
+ OpArbitraryFloatASinINTEL = 5873,
+ OpArbitraryFloatASinPiINTEL = 5874,
+ OpArbitraryFloatACosINTEL = 5875,
+ OpArbitraryFloatACosPiINTEL = 5876,
+ OpArbitraryFloatATanINTEL = 5877,
+ OpArbitraryFloatATanPiINTEL = 5878,
+ OpArbitraryFloatATan2INTEL = 5879,
+ OpArbitraryFloatPowINTEL = 5880,
+ OpArbitraryFloatPowRINTEL = 5881,
+ OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
+ OpFixedSqrtINTEL = 5923,
+ OpFixedRecipINTEL = 5924,
+ OpFixedRsqrtINTEL = 5925,
+ OpFixedSinINTEL = 5926,
+ OpFixedCosINTEL = 5927,
+ OpFixedSinCosINTEL = 5928,
+ OpFixedSinPiINTEL = 5929,
+ OpFixedCosPiINTEL = 5930,
+ OpFixedSinCosPiINTEL = 5931,
+ OpFixedLogINTEL = 5932,
+ OpFixedExpINTEL = 5933,
OpPtrCastToCrossWorkgroupINTEL = 5934,
OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
@@ -2054,6 +2199,12 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+ case OpSDot: *hasResult = true; *hasResultType = true; break;
+ case OpUDot: *hasResult = true; *hasResultType = true; break;
+ case OpSUDot: *hasResult = true; *hasResultType = true; break;
+ case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2079,6 +2230,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case OpTraceNV: *hasResult = false; *hasResultType = false; break;
+ case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
+ case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@@ -2088,8 +2241,15 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
- case OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
+ case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
+ case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
+ case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2114,11 +2274,15 @@ 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 OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
+ case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
+ case OpExpectKHR: *hasResult = true; *hasResultType = true; break;
case OpDecorateString: *hasResult = false; *hasResultType = false; break;
case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2242,7 +2406,59 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 58f3bf3..f1fd764 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -49,12 +49,12 @@ namespace spv {
typedef unsigned int Id;
-#define SPV_VERSION 0x10500
-#define SPV_REVISION 4
+#define SPV_VERSION 0x10600
+#define SPV_REVISION 1
static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010500;
-static const unsigned int Revision = 4;
+static const unsigned int Version = 0x00010600;
+static const unsigned int Revision = 1;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -65,6 +65,7 @@ enum class SourceLanguage : unsigned {
OpenCL_C = 3,
OpenCL_CPP = 4,
HLSL = 5,
+ CPP_for_OpenCL = 6,
Max = 0x7fffffff,
};
@@ -150,6 +151,7 @@ enum class ExecutionMode : unsigned {
SubgroupsPerWorkgroupId = 37,
LocalSizeId = 38,
LocalSizeHintId = 39,
+ SubgroupUniformControlFlowKHR = 4421,
PostDepthCoverage = 4446,
DenormPreserve = 4459,
DenormFlushToZero = 4460,
@@ -351,6 +353,8 @@ enum class ImageOperandsShift : unsigned {
VolatileTexelKHR = 11,
SignExtend = 12,
ZeroExtend = 13,
+ Nontemporal = 14,
+ Offsets = 16,
Max = 0x7fffffff,
};
@@ -374,6 +378,8 @@ enum class ImageOperandsMask : unsigned {
VolatileTexelKHR = 0x00000800,
SignExtend = 0x00001000,
ZeroExtend = 0x00002000,
+ Nontemporal = 0x00004000,
+ Offsets = 0x00010000,
};
enum class FPFastMathModeShift : unsigned {
@@ -409,6 +415,7 @@ enum class FPRoundingMode : unsigned {
enum class LinkageType : unsigned {
Export = 0,
Import = 1,
+ LinkOnceODR = 2,
Max = 0x7fffffff,
};
@@ -489,6 +496,7 @@ enum class Decoration : unsigned {
PerPrimitiveNV = 5271,
PerViewNV = 5272,
PerTaskNV = 5273,
+ PerVertexKHR = 5285,
PerVertexNV = 5285,
NonUniform = 5300,
NonUniformEXT = 5300,
@@ -496,6 +504,10 @@ enum class Decoration : unsigned {
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
+ BindlessSamplerNV = 5398,
+ BindlessImageNV = 5399,
+ BoundSamplerNV = 5400,
+ BoundImageNV = 5401,
SIMTCallINTEL = 5599,
ReferencedIndirectlyINTEL = 5602,
ClobberINTEL = 5607,
@@ -535,6 +547,7 @@ enum class Decoration : unsigned {
FunctionFloatingPointModeINTEL = 6080,
SingleElementVectorINTEL = 6085,
VectorComputeCallableFunctionINTEL = 6087,
+ MediaBlockIOINTEL = 6140,
Max = 0x7fffffff,
};
@@ -619,7 +632,9 @@ enum class BuiltIn : unsigned {
LayerPerViewNV = 5279,
MeshViewCountNV = 5280,
MeshViewIndicesNV = 5281,
+ BaryCoordKHR = 5286,
BaryCoordNV = 5286,
+ BaryCoordNoPerspKHR = 5287,
BaryCoordNoPerspNV = 5287,
FragSizeEXT = 5292,
FragmentSizeNV = 5292,
@@ -650,6 +665,7 @@ enum class BuiltIn : unsigned {
HitTNV = 5332,
HitKindKHR = 5333,
HitKindNV = 5333,
+ CurrentRayTimeNV = 5334,
IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
RayGeometryIndexKHR = 5352,
@@ -719,6 +735,7 @@ enum class FunctionControlShift : unsigned {
DontInline = 1,
Pure = 2,
Const = 3,
+ OptNoneINTEL = 16,
Max = 0x7fffffff,
};
@@ -728,6 +745,7 @@ enum class FunctionControlMask : unsigned {
DontInline = 0x00000002,
Pure = 0x00000004,
Const = 0x00000008,
+ OptNoneINTEL = 0x00010000,
};
enum class MemorySemanticsShift : unsigned {
@@ -908,6 +926,7 @@ enum class Capability : unsigned {
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
+ UniformDecoration = 71,
FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
@@ -956,6 +975,7 @@ enum class Capability : unsigned {
FragmentFullyCoveredEXT = 5265,
MeshShadingNV = 5266,
ImageFootprintNV = 5282,
+ FragmentBarycentricKHR = 5284,
FragmentBarycentricNV = 5284,
ComputeDerivativeGroupQuadsNV = 5288,
FragmentDensityEXT = 5291,
@@ -986,6 +1006,7 @@ enum class Capability : unsigned {
StorageTexelBufferArrayNonUniformIndexing = 5312,
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
RayTracingNV = 5340,
+ RayTracingMotionBlurNV = 5341,
VulkanMemoryModel = 5345,
VulkanMemoryModelKHR = 5345,
VulkanMemoryModelDeviceScope = 5346,
@@ -999,7 +1020,9 @@ enum class Capability : unsigned {
FragmentShaderShadingRateInterlockEXT = 5372,
ShaderSMBuiltinsNV = 5373,
FragmentShaderPixelInterlockEXT = 5378,
+ DemoteToHelperInvocation = 5379,
DemoteToHelperInvocationEXT = 5379,
+ BindlessTextureNV = 5390,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
@@ -1010,8 +1033,12 @@ enum class Capability : unsigned {
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
VectorComputeINTEL = 5617,
VectorAnyINTEL = 5619,
+ ExpectAssumeKHR = 5629,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
@@ -1020,6 +1047,7 @@ enum class Capability : unsigned {
FPGAMemoryAttributesINTEL = 5824,
FPFastMathModeINTEL = 5837,
ArbitraryPrecisionIntegersINTEL = 5844,
+ ArbitraryPrecisionFloatingPointINTEL = 5845,
UnstructuredLoopControlsINTEL = 5886,
FPGALoopControlsINTEL = 5888,
KernelAttributesINTEL = 5892,
@@ -1028,13 +1056,26 @@ enum class Capability : unsigned {
FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906,
FPGABufferLocationINTEL = 5920,
+ ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935,
IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948,
+ DotProductInputAll = 6016,
+ DotProductInputAllKHR = 6016,
+ DotProductInput4x8Bit = 6017,
+ DotProductInput4x8BitKHR = 6017,
+ DotProductInput4x8BitPacked = 6018,
+ DotProductInput4x8BitPackedKHR = 6018,
+ DotProduct = 6019,
+ DotProductKHR = 6019,
+ BitInstructions = 6025,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089,
+ OptNoneINTEL = 6094,
+ AtomicFloat16AddEXT = 6095,
+ DebugInfoModuleINTEL = 6114,
Max = 0x7fffffff,
};
@@ -1113,6 +1154,32 @@ enum class FPOperationMode : unsigned {
Max = 0x7fffffff,
};
+enum class QuantizationModes : unsigned {
+ TRN = 0,
+ TRN_ZERO = 1,
+ RND = 2,
+ RND_ZERO = 3,
+ RND_INF = 4,
+ RND_MIN_INF = 5,
+ RND_CONV = 6,
+ RND_CONV_ODD = 7,
+ Max = 0x7fffffff,
+};
+
+enum class OverflowModes : unsigned {
+ WRAP = 0,
+ SAT = 1,
+ SAT_ZERO = 2,
+ SAT_SYM = 3,
+ Max = 0x7fffffff,
+};
+
+enum class PackedVectorFormat : unsigned {
+ PackedVectorFormat4x8Bit = 0,
+ PackedVectorFormat4x8BitKHR = 0,
+ Max = 0x7fffffff,
+};
+
enum class Op : unsigned {
OpNop = 0,
OpUndef = 1,
@@ -1470,6 +1537,18 @@ enum class Op : unsigned {
OpConvertUToAccelerationStructureKHR = 4447,
OpIgnoreIntersectionKHR = 4448,
OpTerminateRayKHR = 4449,
+ OpSDot = 4450,
+ OpSDotKHR = 4450,
+ OpUDot = 4451,
+ OpUDotKHR = 4451,
+ OpSUDot = 4452,
+ OpSUDotKHR = 4452,
+ OpSDotAccSat = 4453,
+ OpSDotAccSatKHR = 4453,
+ OpUDotAccSat = 4454,
+ OpUDotAccSatKHR = 4454,
+ OpSUDotAccSat = 4455,
+ OpSUDotAccSatKHR = 4455,
OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
@@ -1496,6 +1575,8 @@ enum class Op : unsigned {
OpIgnoreIntersectionNV = 5335,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceMotionNV = 5338,
+ OpTraceRayMotionNV = 5339,
OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344,
@@ -1506,8 +1587,16 @@ enum class Op : unsigned {
OpCooperativeMatrixLengthNV = 5362,
OpBeginInvocationInterlockEXT = 5364,
OpEndInvocationInterlockEXT = 5365,
+ OpDemoteToHelperInvocation = 5380,
OpDemoteToHelperInvocationEXT = 5380,
OpIsHelperInvocationEXT = 5381,
+ OpConvertUToImageNV = 5391,
+ OpConvertUToSamplerNV = 5392,
+ OpConvertImageToUNV = 5393,
+ OpConvertSamplerToUNV = 5394,
+ OpConvertUToSampledImageNV = 5395,
+ OpConvertSampledImageToUNV = 5396,
+ OpSamplerImageAddressingModeNV = 5397,
OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573,
@@ -1532,11 +1621,15 @@ enum class Op : unsigned {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpConstFunctionPointerINTEL = 5600,
+ OpConstantFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
+ OpAssumeTrueKHR = 5630,
+ OpExpectKHR = 5631,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1662,7 +1755,59 @@ enum class Op : unsigned {
OpVariableLengthArrayINTEL = 5818,
OpSaveMemoryINTEL = 5819,
OpRestoreMemoryINTEL = 5820,
+ OpArbitraryFloatSinCosPiINTEL = 5840,
+ OpArbitraryFloatCastINTEL = 5841,
+ OpArbitraryFloatCastFromIntINTEL = 5842,
+ OpArbitraryFloatCastToIntINTEL = 5843,
+ OpArbitraryFloatAddINTEL = 5846,
+ OpArbitraryFloatSubINTEL = 5847,
+ OpArbitraryFloatMulINTEL = 5848,
+ OpArbitraryFloatDivINTEL = 5849,
+ OpArbitraryFloatGTINTEL = 5850,
+ OpArbitraryFloatGEINTEL = 5851,
+ OpArbitraryFloatLTINTEL = 5852,
+ OpArbitraryFloatLEINTEL = 5853,
+ OpArbitraryFloatEQINTEL = 5854,
+ OpArbitraryFloatRecipINTEL = 5855,
+ OpArbitraryFloatRSqrtINTEL = 5856,
+ OpArbitraryFloatCbrtINTEL = 5857,
+ OpArbitraryFloatHypotINTEL = 5858,
+ OpArbitraryFloatSqrtINTEL = 5859,
+ OpArbitraryFloatLogINTEL = 5860,
+ OpArbitraryFloatLog2INTEL = 5861,
+ OpArbitraryFloatLog10INTEL = 5862,
+ OpArbitraryFloatLog1pINTEL = 5863,
+ OpArbitraryFloatExpINTEL = 5864,
+ OpArbitraryFloatExp2INTEL = 5865,
+ OpArbitraryFloatExp10INTEL = 5866,
+ OpArbitraryFloatExpm1INTEL = 5867,
+ OpArbitraryFloatSinINTEL = 5868,
+ OpArbitraryFloatCosINTEL = 5869,
+ OpArbitraryFloatSinCosINTEL = 5870,
+ OpArbitraryFloatSinPiINTEL = 5871,
+ OpArbitraryFloatCosPiINTEL = 5872,
+ OpArbitraryFloatASinINTEL = 5873,
+ OpArbitraryFloatASinPiINTEL = 5874,
+ OpArbitraryFloatACosINTEL = 5875,
+ OpArbitraryFloatACosPiINTEL = 5876,
+ OpArbitraryFloatATanINTEL = 5877,
+ OpArbitraryFloatATanPiINTEL = 5878,
+ OpArbitraryFloatATan2INTEL = 5879,
+ OpArbitraryFloatPowINTEL = 5880,
+ OpArbitraryFloatPowRINTEL = 5881,
+ OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
+ OpFixedSqrtINTEL = 5923,
+ OpFixedRecipINTEL = 5924,
+ OpFixedRsqrtINTEL = 5925,
+ OpFixedSinINTEL = 5926,
+ OpFixedCosINTEL = 5927,
+ OpFixedSinCosINTEL = 5928,
+ OpFixedSinPiINTEL = 5929,
+ OpFixedCosPiINTEL = 5930,
+ OpFixedSinCosPiINTEL = 5931,
+ OpFixedLogINTEL = 5932,
+ OpFixedExpINTEL = 5933,
OpPtrCastToCrossWorkgroupINTEL = 5934,
OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
@@ -2054,6 +2199,12 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
case Op::OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSDot: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUDot: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSUDot: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case Op::OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2079,6 +2230,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
+ case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@@ -2088,8 +2241,15 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
case Op::OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
case Op::OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
- case Op::OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
+ case Op::OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
case Op::OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2114,11 +2274,15 @@ 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::OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpExpectKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpDecorateString: *hasResult = false; *hasResultType = false; break;
case Op::OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case Op::OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2242,7 +2406,59 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index d1a56dd..e80d3bd 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -54,8 +54,8 @@
]
],
"MagicNumber": 119734787,
- "Version": 66816,
- "Revision": 4,
+ "Version": 67072,
+ "Revision": 1,
"OpCodeMask": 65535,
"WordCountShift": 16
},
@@ -71,7 +71,8 @@
"GLSL": 2,
"OpenCL_C": 3,
"OpenCL_CPP": 4,
- "HLSL": 5
+ "HLSL": 5,
+ "CPP_for_OpenCL": 6
}
},
{
@@ -169,6 +170,7 @@
"SubgroupsPerWorkgroupId": 37,
"LocalSizeId": 38,
"LocalSizeHintId": 39,
+ "SubgroupUniformControlFlowKHR": 4421,
"PostDepthCoverage": 4446,
"DenormPreserve": 4459,
"DenormFlushToZero": 4460,
@@ -393,7 +395,9 @@
"VolatileTexel": 11,
"VolatileTexelKHR": 11,
"SignExtend": 12,
- "ZeroExtend": 13
+ "ZeroExtend": 13,
+ "Nontemporal": 14,
+ "Offsets": 16
}
},
{
@@ -427,7 +431,8 @@
"Values":
{
"Export": 0,
- "Import": 1
+ "Import": 1,
+ "LinkOnceODR": 2
}
},
{
@@ -517,6 +522,7 @@
"PerPrimitiveNV": 5271,
"PerViewNV": 5272,
"PerTaskNV": 5273,
+ "PerVertexKHR": 5285,
"PerVertexNV": 5285,
"NonUniform": 5300,
"NonUniformEXT": 5300,
@@ -524,6 +530,10 @@
"RestrictPointerEXT": 5355,
"AliasedPointer": 5356,
"AliasedPointerEXT": 5356,
+ "BindlessSamplerNV": 5398,
+ "BindlessImageNV": 5399,
+ "BoundSamplerNV": 5400,
+ "BoundImageNV": 5401,
"SIMTCallINTEL": 5599,
"ReferencedIndirectlyINTEL": 5602,
"ClobberINTEL": 5607,
@@ -562,7 +572,8 @@
"IOPipeStorageINTEL": 5944,
"FunctionFloatingPointModeINTEL": 6080,
"SingleElementVectorINTEL": 6085,
- "VectorComputeCallableFunctionINTEL": 6087
+ "VectorComputeCallableFunctionINTEL": 6087,
+ "MediaBlockIOINTEL": 6140
}
},
{
@@ -650,7 +661,9 @@
"LayerPerViewNV": 5279,
"MeshViewCountNV": 5280,
"MeshViewIndicesNV": 5281,
+ "BaryCoordKHR": 5286,
"BaryCoordNV": 5286,
+ "BaryCoordNoPerspKHR": 5287,
"BaryCoordNoPerspNV": 5287,
"FragSizeEXT": 5292,
"FragmentSizeNV": 5292,
@@ -681,6 +694,7 @@
"HitTNV": 5332,
"HitKindKHR": 5333,
"HitKindNV": 5333,
+ "CurrentRayTimeNV": 5334,
"IncomingRayFlagsKHR": 5351,
"IncomingRayFlagsNV": 5351,
"RayGeometryIndexKHR": 5352,
@@ -731,7 +745,8 @@
"Inline": 0,
"DontInline": 1,
"Pure": 2,
- "Const": 3
+ "Const": 3,
+ "OptNoneINTEL": 16
}
},
{
@@ -895,6 +910,7 @@
"GroupNonUniformQuad": 68,
"ShaderLayer": 69,
"ShaderViewportIndex": 70,
+ "UniformDecoration": 71,
"FragmentShadingRateKHR": 4422,
"SubgroupBallotKHR": 4423,
"DrawParameters": 4427,
@@ -943,6 +959,7 @@
"FragmentFullyCoveredEXT": 5265,
"MeshShadingNV": 5266,
"ImageFootprintNV": 5282,
+ "FragmentBarycentricKHR": 5284,
"FragmentBarycentricNV": 5284,
"ComputeDerivativeGroupQuadsNV": 5288,
"FragmentDensityEXT": 5291,
@@ -973,6 +990,7 @@
"StorageTexelBufferArrayNonUniformIndexing": 5312,
"StorageTexelBufferArrayNonUniformIndexingEXT": 5312,
"RayTracingNV": 5340,
+ "RayTracingMotionBlurNV": 5341,
"VulkanMemoryModel": 5345,
"VulkanMemoryModelKHR": 5345,
"VulkanMemoryModelDeviceScope": 5346,
@@ -986,7 +1004,9 @@
"FragmentShaderShadingRateInterlockEXT": 5372,
"ShaderSMBuiltinsNV": 5373,
"FragmentShaderPixelInterlockEXT": 5378,
+ "DemoteToHelperInvocation": 5379,
"DemoteToHelperInvocationEXT": 5379,
+ "BindlessTextureNV": 5390,
"SubgroupShuffleINTEL": 5568,
"SubgroupBufferBlockIOINTEL": 5569,
"SubgroupImageBlockIOINTEL": 5570,
@@ -997,8 +1017,12 @@
"FunctionPointersINTEL": 5603,
"IndirectReferencesINTEL": 5604,
"AsmINTEL": 5606,
+ "AtomicFloat32MinMaxEXT": 5612,
+ "AtomicFloat64MinMaxEXT": 5613,
+ "AtomicFloat16MinMaxEXT": 5616,
"VectorComputeINTEL": 5617,
"VectorAnyINTEL": 5619,
+ "ExpectAssumeKHR": 5629,
"SubgroupAvcMotionEstimationINTEL": 5696,
"SubgroupAvcMotionEstimationIntraINTEL": 5697,
"SubgroupAvcMotionEstimationChromaINTEL": 5698,
@@ -1007,6 +1031,7 @@
"FPGAMemoryAttributesINTEL": 5824,
"FPFastMathModeINTEL": 5837,
"ArbitraryPrecisionIntegersINTEL": 5844,
+ "ArbitraryPrecisionFloatingPointINTEL": 5845,
"UnstructuredLoopControlsINTEL": 5886,
"FPGALoopControlsINTEL": 5888,
"KernelAttributesINTEL": 5892,
@@ -1015,13 +1040,26 @@
"FPGAClusterAttributesINTEL": 5904,
"LoopFuseINTEL": 5906,
"FPGABufferLocationINTEL": 5920,
+ "ArbitraryPrecisionFixedPointINTEL": 5922,
"USMStorageClassesINTEL": 5935,
"IOPipesINTEL": 5943,
"BlockingPipesINTEL": 5945,
"FPGARegINTEL": 5948,
+ "DotProductInputAll": 6016,
+ "DotProductInputAllKHR": 6016,
+ "DotProductInput4x8Bit": 6017,
+ "DotProductInput4x8BitKHR": 6017,
+ "DotProductInput4x8BitPacked": 6018,
+ "DotProductInput4x8BitPackedKHR": 6018,
+ "DotProduct": 6019,
+ "DotProductKHR": 6019,
+ "BitInstructions": 6025,
"AtomicFloat32AddEXT": 6033,
"AtomicFloat64AddEXT": 6034,
- "LongConstantCompositeINTEL": 6089
+ "LongConstantCompositeINTEL": 6089,
+ "OptNoneINTEL": 6094,
+ "AtomicFloat16AddEXT": 6095,
+ "DebugInfoModuleINTEL": 6114
}
},
{
@@ -1099,6 +1137,41 @@
}
},
{
+ "Name": "QuantizationModes",
+ "Type": "Value",
+ "Values":
+ {
+ "TRN": 0,
+ "TRN_ZERO": 1,
+ "RND": 2,
+ "RND_ZERO": 3,
+ "RND_INF": 4,
+ "RND_MIN_INF": 5,
+ "RND_CONV": 6,
+ "RND_CONV_ODD": 7
+ }
+ },
+ {
+ "Name": "OverflowModes",
+ "Type": "Value",
+ "Values":
+ {
+ "WRAP": 0,
+ "SAT": 1,
+ "SAT_ZERO": 2,
+ "SAT_SYM": 3
+ }
+ },
+ {
+ "Name": "PackedVectorFormat",
+ "Type": "Value",
+ "Values":
+ {
+ "PackedVectorFormat4x8Bit": 0,
+ "PackedVectorFormat4x8BitKHR": 0
+ }
+ },
+ {
"Name": "Op",
"Type": "Value",
"Values":
@@ -1459,6 +1532,18 @@
"OpConvertUToAccelerationStructureKHR": 4447,
"OpIgnoreIntersectionKHR": 4448,
"OpTerminateRayKHR": 4449,
+ "OpSDot": 4450,
+ "OpSDotKHR": 4450,
+ "OpUDot": 4451,
+ "OpUDotKHR": 4451,
+ "OpSUDot": 4452,
+ "OpSUDotKHR": 4452,
+ "OpSDotAccSat": 4453,
+ "OpSDotAccSatKHR": 4453,
+ "OpUDotAccSat": 4454,
+ "OpUDotAccSatKHR": 4454,
+ "OpSUDotAccSat": 4455,
+ "OpSUDotAccSatKHR": 4455,
"OpTypeRayQueryKHR": 4472,
"OpRayQueryInitializeKHR": 4473,
"OpRayQueryTerminateKHR": 4474,
@@ -1485,6 +1570,8 @@
"OpIgnoreIntersectionNV": 5335,
"OpTerminateRayNV": 5336,
"OpTraceNV": 5337,
+ "OpTraceMotionNV": 5338,
+ "OpTraceRayMotionNV": 5339,
"OpTypeAccelerationStructureKHR": 5341,
"OpTypeAccelerationStructureNV": 5341,
"OpExecuteCallableNV": 5344,
@@ -1495,8 +1582,16 @@
"OpCooperativeMatrixLengthNV": 5362,
"OpBeginInvocationInterlockEXT": 5364,
"OpEndInvocationInterlockEXT": 5365,
+ "OpDemoteToHelperInvocation": 5380,
"OpDemoteToHelperInvocationEXT": 5380,
"OpIsHelperInvocationEXT": 5381,
+ "OpConvertUToImageNV": 5391,
+ "OpConvertUToSamplerNV": 5392,
+ "OpConvertImageToUNV": 5393,
+ "OpConvertSamplerToUNV": 5394,
+ "OpConvertUToSampledImageNV": 5395,
+ "OpConvertSampledImageToUNV": 5396,
+ "OpSamplerImageAddressingModeNV": 5397,
"OpSubgroupShuffleINTEL": 5571,
"OpSubgroupShuffleDownINTEL": 5572,
"OpSubgroupShuffleUpINTEL": 5573,
@@ -1521,11 +1616,15 @@
"OpUSubSatINTEL": 5596,
"OpIMul32x16INTEL": 5597,
"OpUMul32x16INTEL": 5598,
- "OpConstFunctionPointerINTEL": 5600,
+ "OpConstantFunctionPointerINTEL": 5600,
"OpFunctionPointerCallINTEL": 5601,
"OpAsmTargetINTEL": 5609,
"OpAsmINTEL": 5610,
"OpAsmCallINTEL": 5611,
+ "OpAtomicFMinEXT": 5614,
+ "OpAtomicFMaxEXT": 5615,
+ "OpAssumeTrueKHR": 5630,
+ "OpExpectKHR": 5631,
"OpDecorateString": 5632,
"OpDecorateStringGOOGLE": 5632,
"OpMemberDecorateString": 5633,
@@ -1651,7 +1750,59 @@
"OpVariableLengthArrayINTEL": 5818,
"OpSaveMemoryINTEL": 5819,
"OpRestoreMemoryINTEL": 5820,
+ "OpArbitraryFloatSinCosPiINTEL": 5840,
+ "OpArbitraryFloatCastINTEL": 5841,
+ "OpArbitraryFloatCastFromIntINTEL": 5842,
+ "OpArbitraryFloatCastToIntINTEL": 5843,
+ "OpArbitraryFloatAddINTEL": 5846,
+ "OpArbitraryFloatSubINTEL": 5847,
+ "OpArbitraryFloatMulINTEL": 5848,
+ "OpArbitraryFloatDivINTEL": 5849,
+ "OpArbitraryFloatGTINTEL": 5850,
+ "OpArbitraryFloatGEINTEL": 5851,
+ "OpArbitraryFloatLTINTEL": 5852,
+ "OpArbitraryFloatLEINTEL": 5853,
+ "OpArbitraryFloatEQINTEL": 5854,
+ "OpArbitraryFloatRecipINTEL": 5855,
+ "OpArbitraryFloatRSqrtINTEL": 5856,
+ "OpArbitraryFloatCbrtINTEL": 5857,
+ "OpArbitraryFloatHypotINTEL": 5858,
+ "OpArbitraryFloatSqrtINTEL": 5859,
+ "OpArbitraryFloatLogINTEL": 5860,
+ "OpArbitraryFloatLog2INTEL": 5861,
+ "OpArbitraryFloatLog10INTEL": 5862,
+ "OpArbitraryFloatLog1pINTEL": 5863,
+ "OpArbitraryFloatExpINTEL": 5864,
+ "OpArbitraryFloatExp2INTEL": 5865,
+ "OpArbitraryFloatExp10INTEL": 5866,
+ "OpArbitraryFloatExpm1INTEL": 5867,
+ "OpArbitraryFloatSinINTEL": 5868,
+ "OpArbitraryFloatCosINTEL": 5869,
+ "OpArbitraryFloatSinCosINTEL": 5870,
+ "OpArbitraryFloatSinPiINTEL": 5871,
+ "OpArbitraryFloatCosPiINTEL": 5872,
+ "OpArbitraryFloatASinINTEL": 5873,
+ "OpArbitraryFloatASinPiINTEL": 5874,
+ "OpArbitraryFloatACosINTEL": 5875,
+ "OpArbitraryFloatACosPiINTEL": 5876,
+ "OpArbitraryFloatATanINTEL": 5877,
+ "OpArbitraryFloatATanPiINTEL": 5878,
+ "OpArbitraryFloatATan2INTEL": 5879,
+ "OpArbitraryFloatPowINTEL": 5880,
+ "OpArbitraryFloatPowRINTEL": 5881,
+ "OpArbitraryFloatPowNINTEL": 5882,
"OpLoopControlINTEL": 5887,
+ "OpFixedSqrtINTEL": 5923,
+ "OpFixedRecipINTEL": 5924,
+ "OpFixedRsqrtINTEL": 5925,
+ "OpFixedSinINTEL": 5926,
+ "OpFixedCosINTEL": 5927,
+ "OpFixedSinCosINTEL": 5928,
+ "OpFixedSinPiINTEL": 5929,
+ "OpFixedCosPiINTEL": 5930,
+ "OpFixedSinCosPiINTEL": 5931,
+ "OpFixedLogINTEL": 5932,
+ "OpFixedExpINTEL": 5933,
"OpPtrCastToCrossWorkgroupINTEL": 5934,
"OpCrossWorkgroupCastToPtrINTEL": 5938,
"OpReadPipeBlockingINTEL": 5946,
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 3193ff7..2f5e803 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -44,8 +44,8 @@
spv = {
MagicNumber = 0x07230203,
- Version = 0x00010500,
- Revision = 4,
+ Version = 0x00010600,
+ Revision = 1,
OpCodeMask = 0xffff,
WordCountShift = 16,
@@ -56,6 +56,7 @@ spv = {
OpenCL_C = 3,
OpenCL_CPP = 4,
HLSL = 5,
+ CPP_for_OpenCL = 6,
},
ExecutionModel = {
@@ -137,6 +138,7 @@ spv = {
SubgroupsPerWorkgroupId = 37,
LocalSizeId = 38,
LocalSizeHintId = 39,
+ SubgroupUniformControlFlowKHR = 4421,
PostDepthCoverage = 4446,
DenormPreserve = 4459,
DenormFlushToZero = 4460,
@@ -330,6 +332,8 @@ spv = {
VolatileTexelKHR = 11,
SignExtend = 12,
ZeroExtend = 13,
+ Nontemporal = 14,
+ Offsets = 16,
},
ImageOperandsMask = {
@@ -352,6 +356,8 @@ spv = {
VolatileTexelKHR = 0x00000800,
SignExtend = 0x00001000,
ZeroExtend = 0x00002000,
+ Nontemporal = 0x00004000,
+ Offsets = 0x00010000,
},
FPFastMathModeShift = {
@@ -385,6 +391,7 @@ spv = {
LinkageType = {
Export = 0,
Import = 1,
+ LinkOnceODR = 2,
},
AccessQualifier = {
@@ -462,6 +469,7 @@ spv = {
PerPrimitiveNV = 5271,
PerViewNV = 5272,
PerTaskNV = 5273,
+ PerVertexKHR = 5285,
PerVertexNV = 5285,
NonUniform = 5300,
NonUniformEXT = 5300,
@@ -469,6 +477,10 @@ spv = {
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
+ BindlessSamplerNV = 5398,
+ BindlessImageNV = 5399,
+ BoundSamplerNV = 5400,
+ BoundImageNV = 5401,
SIMTCallINTEL = 5599,
ReferencedIndirectlyINTEL = 5602,
ClobberINTEL = 5607,
@@ -508,6 +520,7 @@ spv = {
FunctionFloatingPointModeINTEL = 6080,
SingleElementVectorINTEL = 6085,
VectorComputeCallableFunctionINTEL = 6087,
+ MediaBlockIOINTEL = 6140,
},
BuiltIn = {
@@ -591,7 +604,9 @@ spv = {
LayerPerViewNV = 5279,
MeshViewCountNV = 5280,
MeshViewIndicesNV = 5281,
+ BaryCoordKHR = 5286,
BaryCoordNV = 5286,
+ BaryCoordNoPerspKHR = 5287,
BaryCoordNoPerspNV = 5287,
FragSizeEXT = 5292,
FragmentSizeNV = 5292,
@@ -622,6 +637,7 @@ spv = {
HitTNV = 5332,
HitKindKHR = 5333,
HitKindNV = 5333,
+ CurrentRayTimeNV = 5334,
IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
RayGeometryIndexKHR = 5352,
@@ -688,6 +704,7 @@ spv = {
DontInline = 1,
Pure = 2,
Const = 3,
+ OptNoneINTEL = 16,
},
FunctionControlMask = {
@@ -696,6 +713,7 @@ spv = {
DontInline = 0x00000002,
Pure = 0x00000004,
Const = 0x00000008,
+ OptNoneINTEL = 0x00010000,
},
MemorySemanticsShift = {
@@ -870,6 +888,7 @@ spv = {
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
+ UniformDecoration = 71,
FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
@@ -918,6 +937,7 @@ spv = {
FragmentFullyCoveredEXT = 5265,
MeshShadingNV = 5266,
ImageFootprintNV = 5282,
+ FragmentBarycentricKHR = 5284,
FragmentBarycentricNV = 5284,
ComputeDerivativeGroupQuadsNV = 5288,
FragmentDensityEXT = 5291,
@@ -948,6 +968,7 @@ spv = {
StorageTexelBufferArrayNonUniformIndexing = 5312,
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
RayTracingNV = 5340,
+ RayTracingMotionBlurNV = 5341,
VulkanMemoryModel = 5345,
VulkanMemoryModelKHR = 5345,
VulkanMemoryModelDeviceScope = 5346,
@@ -961,7 +982,9 @@ spv = {
FragmentShaderShadingRateInterlockEXT = 5372,
ShaderSMBuiltinsNV = 5373,
FragmentShaderPixelInterlockEXT = 5378,
+ DemoteToHelperInvocation = 5379,
DemoteToHelperInvocationEXT = 5379,
+ BindlessTextureNV = 5390,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
@@ -972,8 +995,12 @@ spv = {
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
VectorComputeINTEL = 5617,
VectorAnyINTEL = 5619,
+ ExpectAssumeKHR = 5629,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
@@ -982,6 +1009,7 @@ spv = {
FPGAMemoryAttributesINTEL = 5824,
FPFastMathModeINTEL = 5837,
ArbitraryPrecisionIntegersINTEL = 5844,
+ ArbitraryPrecisionFloatingPointINTEL = 5845,
UnstructuredLoopControlsINTEL = 5886,
FPGALoopControlsINTEL = 5888,
KernelAttributesINTEL = 5892,
@@ -990,13 +1018,26 @@ spv = {
FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906,
FPGABufferLocationINTEL = 5920,
+ ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935,
IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948,
+ DotProductInputAll = 6016,
+ DotProductInputAllKHR = 6016,
+ DotProductInput4x8Bit = 6017,
+ DotProductInput4x8BitKHR = 6017,
+ DotProductInput4x8BitPacked = 6018,
+ DotProductInput4x8BitPackedKHR = 6018,
+ DotProduct = 6019,
+ DotProductKHR = 6019,
+ BitInstructions = 6025,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089,
+ OptNoneINTEL = 6094,
+ AtomicFloat16AddEXT = 6095,
+ DebugInfoModuleINTEL = 6114,
},
RayFlagsShift = {
@@ -1067,6 +1108,29 @@ spv = {
ALT = 1,
},
+ QuantizationModes = {
+ TRN = 0,
+ TRN_ZERO = 1,
+ RND = 2,
+ RND_ZERO = 3,
+ RND_INF = 4,
+ RND_MIN_INF = 5,
+ RND_CONV = 6,
+ RND_CONV_ODD = 7,
+ },
+
+ OverflowModes = {
+ WRAP = 0,
+ SAT = 1,
+ SAT_ZERO = 2,
+ SAT_SYM = 3,
+ },
+
+ PackedVectorFormat = {
+ PackedVectorFormat4x8Bit = 0,
+ PackedVectorFormat4x8BitKHR = 0,
+ },
+
Op = {
OpNop = 0,
OpUndef = 1,
@@ -1424,6 +1488,18 @@ spv = {
OpConvertUToAccelerationStructureKHR = 4447,
OpIgnoreIntersectionKHR = 4448,
OpTerminateRayKHR = 4449,
+ OpSDot = 4450,
+ OpSDotKHR = 4450,
+ OpUDot = 4451,
+ OpUDotKHR = 4451,
+ OpSUDot = 4452,
+ OpSUDotKHR = 4452,
+ OpSDotAccSat = 4453,
+ OpSDotAccSatKHR = 4453,
+ OpUDotAccSat = 4454,
+ OpUDotAccSatKHR = 4454,
+ OpSUDotAccSat = 4455,
+ OpSUDotAccSatKHR = 4455,
OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
@@ -1450,6 +1526,8 @@ spv = {
OpIgnoreIntersectionNV = 5335,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceMotionNV = 5338,
+ OpTraceRayMotionNV = 5339,
OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344,
@@ -1460,8 +1538,16 @@ spv = {
OpCooperativeMatrixLengthNV = 5362,
OpBeginInvocationInterlockEXT = 5364,
OpEndInvocationInterlockEXT = 5365,
+ OpDemoteToHelperInvocation = 5380,
OpDemoteToHelperInvocationEXT = 5380,
OpIsHelperInvocationEXT = 5381,
+ OpConvertUToImageNV = 5391,
+ OpConvertUToSamplerNV = 5392,
+ OpConvertImageToUNV = 5393,
+ OpConvertSamplerToUNV = 5394,
+ OpConvertUToSampledImageNV = 5395,
+ OpConvertSampledImageToUNV = 5396,
+ OpSamplerImageAddressingModeNV = 5397,
OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573,
@@ -1486,11 +1572,15 @@ spv = {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpConstFunctionPointerINTEL = 5600,
+ OpConstantFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
+ OpAssumeTrueKHR = 5630,
+ OpExpectKHR = 5631,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1616,7 +1706,59 @@ spv = {
OpVariableLengthArrayINTEL = 5818,
OpSaveMemoryINTEL = 5819,
OpRestoreMemoryINTEL = 5820,
+ OpArbitraryFloatSinCosPiINTEL = 5840,
+ OpArbitraryFloatCastINTEL = 5841,
+ OpArbitraryFloatCastFromIntINTEL = 5842,
+ OpArbitraryFloatCastToIntINTEL = 5843,
+ OpArbitraryFloatAddINTEL = 5846,
+ OpArbitraryFloatSubINTEL = 5847,
+ OpArbitraryFloatMulINTEL = 5848,
+ OpArbitraryFloatDivINTEL = 5849,
+ OpArbitraryFloatGTINTEL = 5850,
+ OpArbitraryFloatGEINTEL = 5851,
+ OpArbitraryFloatLTINTEL = 5852,
+ OpArbitraryFloatLEINTEL = 5853,
+ OpArbitraryFloatEQINTEL = 5854,
+ OpArbitraryFloatRecipINTEL = 5855,
+ OpArbitraryFloatRSqrtINTEL = 5856,
+ OpArbitraryFloatCbrtINTEL = 5857,
+ OpArbitraryFloatHypotINTEL = 5858,
+ OpArbitraryFloatSqrtINTEL = 5859,
+ OpArbitraryFloatLogINTEL = 5860,
+ OpArbitraryFloatLog2INTEL = 5861,
+ OpArbitraryFloatLog10INTEL = 5862,
+ OpArbitraryFloatLog1pINTEL = 5863,
+ OpArbitraryFloatExpINTEL = 5864,
+ OpArbitraryFloatExp2INTEL = 5865,
+ OpArbitraryFloatExp10INTEL = 5866,
+ OpArbitraryFloatExpm1INTEL = 5867,
+ OpArbitraryFloatSinINTEL = 5868,
+ OpArbitraryFloatCosINTEL = 5869,
+ OpArbitraryFloatSinCosINTEL = 5870,
+ OpArbitraryFloatSinPiINTEL = 5871,
+ OpArbitraryFloatCosPiINTEL = 5872,
+ OpArbitraryFloatASinINTEL = 5873,
+ OpArbitraryFloatASinPiINTEL = 5874,
+ OpArbitraryFloatACosINTEL = 5875,
+ OpArbitraryFloatACosPiINTEL = 5876,
+ OpArbitraryFloatATanINTEL = 5877,
+ OpArbitraryFloatATanPiINTEL = 5878,
+ OpArbitraryFloatATan2INTEL = 5879,
+ OpArbitraryFloatPowINTEL = 5880,
+ OpArbitraryFloatPowRINTEL = 5881,
+ OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
+ OpFixedSqrtINTEL = 5923,
+ OpFixedRecipINTEL = 5924,
+ OpFixedRsqrtINTEL = 5925,
+ OpFixedSinINTEL = 5926,
+ OpFixedCosINTEL = 5927,
+ OpFixedSinCosINTEL = 5928,
+ OpFixedSinPiINTEL = 5929,
+ OpFixedCosPiINTEL = 5930,
+ OpFixedSinCosPiINTEL = 5931,
+ OpFixedLogINTEL = 5932,
+ OpFixedExpINTEL = 5933,
OpPtrCastToCrossWorkgroupINTEL = 5934,
OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 46d7182..7aee89f 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -44,8 +44,8 @@
spv = {
'MagicNumber' : 0x07230203,
- 'Version' : 0x00010500,
- 'Revision' : 4,
+ 'Version' : 0x00010600,
+ 'Revision' : 1,
'OpCodeMask' : 0xffff,
'WordCountShift' : 16,
@@ -56,6 +56,7 @@ spv = {
'OpenCL_C' : 3,
'OpenCL_CPP' : 4,
'HLSL' : 5,
+ 'CPP_for_OpenCL' : 6,
},
'ExecutionModel' : {
@@ -137,6 +138,7 @@ spv = {
'SubgroupsPerWorkgroupId' : 37,
'LocalSizeId' : 38,
'LocalSizeHintId' : 39,
+ 'SubgroupUniformControlFlowKHR' : 4421,
'PostDepthCoverage' : 4446,
'DenormPreserve' : 4459,
'DenormFlushToZero' : 4460,
@@ -330,6 +332,8 @@ spv = {
'VolatileTexelKHR' : 11,
'SignExtend' : 12,
'ZeroExtend' : 13,
+ 'Nontemporal' : 14,
+ 'Offsets' : 16,
},
'ImageOperandsMask' : {
@@ -352,6 +356,8 @@ spv = {
'VolatileTexelKHR' : 0x00000800,
'SignExtend' : 0x00001000,
'ZeroExtend' : 0x00002000,
+ 'Nontemporal' : 0x00004000,
+ 'Offsets' : 0x00010000,
},
'FPFastMathModeShift' : {
@@ -385,6 +391,7 @@ spv = {
'LinkageType' : {
'Export' : 0,
'Import' : 1,
+ 'LinkOnceODR' : 2,
},
'AccessQualifier' : {
@@ -462,6 +469,7 @@ spv = {
'PerPrimitiveNV' : 5271,
'PerViewNV' : 5272,
'PerTaskNV' : 5273,
+ 'PerVertexKHR' : 5285,
'PerVertexNV' : 5285,
'NonUniform' : 5300,
'NonUniformEXT' : 5300,
@@ -469,6 +477,10 @@ spv = {
'RestrictPointerEXT' : 5355,
'AliasedPointer' : 5356,
'AliasedPointerEXT' : 5356,
+ 'BindlessSamplerNV' : 5398,
+ 'BindlessImageNV' : 5399,
+ 'BoundSamplerNV' : 5400,
+ 'BoundImageNV' : 5401,
'SIMTCallINTEL' : 5599,
'ReferencedIndirectlyINTEL' : 5602,
'ClobberINTEL' : 5607,
@@ -508,6 +520,7 @@ spv = {
'FunctionFloatingPointModeINTEL' : 6080,
'SingleElementVectorINTEL' : 6085,
'VectorComputeCallableFunctionINTEL' : 6087,
+ 'MediaBlockIOINTEL' : 6140,
},
'BuiltIn' : {
@@ -591,7 +604,9 @@ spv = {
'LayerPerViewNV' : 5279,
'MeshViewCountNV' : 5280,
'MeshViewIndicesNV' : 5281,
+ 'BaryCoordKHR' : 5286,
'BaryCoordNV' : 5286,
+ 'BaryCoordNoPerspKHR' : 5287,
'BaryCoordNoPerspNV' : 5287,
'FragSizeEXT' : 5292,
'FragmentSizeNV' : 5292,
@@ -622,6 +637,7 @@ spv = {
'HitTNV' : 5332,
'HitKindKHR' : 5333,
'HitKindNV' : 5333,
+ 'CurrentRayTimeNV' : 5334,
'IncomingRayFlagsKHR' : 5351,
'IncomingRayFlagsNV' : 5351,
'RayGeometryIndexKHR' : 5352,
@@ -688,6 +704,7 @@ spv = {
'DontInline' : 1,
'Pure' : 2,
'Const' : 3,
+ 'OptNoneINTEL' : 16,
},
'FunctionControlMask' : {
@@ -696,6 +713,7 @@ spv = {
'DontInline' : 0x00000002,
'Pure' : 0x00000004,
'Const' : 0x00000008,
+ 'OptNoneINTEL' : 0x00010000,
},
'MemorySemanticsShift' : {
@@ -870,6 +888,7 @@ spv = {
'GroupNonUniformQuad' : 68,
'ShaderLayer' : 69,
'ShaderViewportIndex' : 70,
+ 'UniformDecoration' : 71,
'FragmentShadingRateKHR' : 4422,
'SubgroupBallotKHR' : 4423,
'DrawParameters' : 4427,
@@ -918,6 +937,7 @@ spv = {
'FragmentFullyCoveredEXT' : 5265,
'MeshShadingNV' : 5266,
'ImageFootprintNV' : 5282,
+ 'FragmentBarycentricKHR' : 5284,
'FragmentBarycentricNV' : 5284,
'ComputeDerivativeGroupQuadsNV' : 5288,
'FragmentDensityEXT' : 5291,
@@ -948,6 +968,7 @@ spv = {
'StorageTexelBufferArrayNonUniformIndexing' : 5312,
'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312,
'RayTracingNV' : 5340,
+ 'RayTracingMotionBlurNV' : 5341,
'VulkanMemoryModel' : 5345,
'VulkanMemoryModelKHR' : 5345,
'VulkanMemoryModelDeviceScope' : 5346,
@@ -961,7 +982,9 @@ spv = {
'FragmentShaderShadingRateInterlockEXT' : 5372,
'ShaderSMBuiltinsNV' : 5373,
'FragmentShaderPixelInterlockEXT' : 5378,
+ 'DemoteToHelperInvocation' : 5379,
'DemoteToHelperInvocationEXT' : 5379,
+ 'BindlessTextureNV' : 5390,
'SubgroupShuffleINTEL' : 5568,
'SubgroupBufferBlockIOINTEL' : 5569,
'SubgroupImageBlockIOINTEL' : 5570,
@@ -972,8 +995,12 @@ spv = {
'FunctionPointersINTEL' : 5603,
'IndirectReferencesINTEL' : 5604,
'AsmINTEL' : 5606,
+ 'AtomicFloat32MinMaxEXT' : 5612,
+ 'AtomicFloat64MinMaxEXT' : 5613,
+ 'AtomicFloat16MinMaxEXT' : 5616,
'VectorComputeINTEL' : 5617,
'VectorAnyINTEL' : 5619,
+ 'ExpectAssumeKHR' : 5629,
'SubgroupAvcMotionEstimationINTEL' : 5696,
'SubgroupAvcMotionEstimationIntraINTEL' : 5697,
'SubgroupAvcMotionEstimationChromaINTEL' : 5698,
@@ -982,6 +1009,7 @@ spv = {
'FPGAMemoryAttributesINTEL' : 5824,
'FPFastMathModeINTEL' : 5837,
'ArbitraryPrecisionIntegersINTEL' : 5844,
+ 'ArbitraryPrecisionFloatingPointINTEL' : 5845,
'UnstructuredLoopControlsINTEL' : 5886,
'FPGALoopControlsINTEL' : 5888,
'KernelAttributesINTEL' : 5892,
@@ -990,13 +1018,26 @@ spv = {
'FPGAClusterAttributesINTEL' : 5904,
'LoopFuseINTEL' : 5906,
'FPGABufferLocationINTEL' : 5920,
+ 'ArbitraryPrecisionFixedPointINTEL' : 5922,
'USMStorageClassesINTEL' : 5935,
'IOPipesINTEL' : 5943,
'BlockingPipesINTEL' : 5945,
'FPGARegINTEL' : 5948,
+ 'DotProductInputAll' : 6016,
+ 'DotProductInputAllKHR' : 6016,
+ 'DotProductInput4x8Bit' : 6017,
+ 'DotProductInput4x8BitKHR' : 6017,
+ 'DotProductInput4x8BitPacked' : 6018,
+ 'DotProductInput4x8BitPackedKHR' : 6018,
+ 'DotProduct' : 6019,
+ 'DotProductKHR' : 6019,
+ 'BitInstructions' : 6025,
'AtomicFloat32AddEXT' : 6033,
'AtomicFloat64AddEXT' : 6034,
'LongConstantCompositeINTEL' : 6089,
+ 'OptNoneINTEL' : 6094,
+ 'AtomicFloat16AddEXT' : 6095,
+ 'DebugInfoModuleINTEL' : 6114,
},
'RayFlagsShift' : {
@@ -1067,6 +1108,29 @@ spv = {
'ALT' : 1,
},
+ 'QuantizationModes' : {
+ 'TRN' : 0,
+ 'TRN_ZERO' : 1,
+ 'RND' : 2,
+ 'RND_ZERO' : 3,
+ 'RND_INF' : 4,
+ 'RND_MIN_INF' : 5,
+ 'RND_CONV' : 6,
+ 'RND_CONV_ODD' : 7,
+ },
+
+ 'OverflowModes' : {
+ 'WRAP' : 0,
+ 'SAT' : 1,
+ 'SAT_ZERO' : 2,
+ 'SAT_SYM' : 3,
+ },
+
+ 'PackedVectorFormat' : {
+ 'PackedVectorFormat4x8Bit' : 0,
+ 'PackedVectorFormat4x8BitKHR' : 0,
+ },
+
'Op' : {
'OpNop' : 0,
'OpUndef' : 1,
@@ -1424,6 +1488,18 @@ spv = {
'OpConvertUToAccelerationStructureKHR' : 4447,
'OpIgnoreIntersectionKHR' : 4448,
'OpTerminateRayKHR' : 4449,
+ 'OpSDot' : 4450,
+ 'OpSDotKHR' : 4450,
+ 'OpUDot' : 4451,
+ 'OpUDotKHR' : 4451,
+ 'OpSUDot' : 4452,
+ 'OpSUDotKHR' : 4452,
+ 'OpSDotAccSat' : 4453,
+ 'OpSDotAccSatKHR' : 4453,
+ 'OpUDotAccSat' : 4454,
+ 'OpUDotAccSatKHR' : 4454,
+ 'OpSUDotAccSat' : 4455,
+ 'OpSUDotAccSatKHR' : 4455,
'OpTypeRayQueryKHR' : 4472,
'OpRayQueryInitializeKHR' : 4473,
'OpRayQueryTerminateKHR' : 4474,
@@ -1450,6 +1526,8 @@ spv = {
'OpIgnoreIntersectionNV' : 5335,
'OpTerminateRayNV' : 5336,
'OpTraceNV' : 5337,
+ 'OpTraceMotionNV' : 5338,
+ 'OpTraceRayMotionNV' : 5339,
'OpTypeAccelerationStructureKHR' : 5341,
'OpTypeAccelerationStructureNV' : 5341,
'OpExecuteCallableNV' : 5344,
@@ -1460,8 +1538,16 @@ spv = {
'OpCooperativeMatrixLengthNV' : 5362,
'OpBeginInvocationInterlockEXT' : 5364,
'OpEndInvocationInterlockEXT' : 5365,
+ 'OpDemoteToHelperInvocation' : 5380,
'OpDemoteToHelperInvocationEXT' : 5380,
'OpIsHelperInvocationEXT' : 5381,
+ 'OpConvertUToImageNV' : 5391,
+ 'OpConvertUToSamplerNV' : 5392,
+ 'OpConvertImageToUNV' : 5393,
+ 'OpConvertSamplerToUNV' : 5394,
+ 'OpConvertUToSampledImageNV' : 5395,
+ 'OpConvertSampledImageToUNV' : 5396,
+ 'OpSamplerImageAddressingModeNV' : 5397,
'OpSubgroupShuffleINTEL' : 5571,
'OpSubgroupShuffleDownINTEL' : 5572,
'OpSubgroupShuffleUpINTEL' : 5573,
@@ -1486,11 +1572,15 @@ spv = {
'OpUSubSatINTEL' : 5596,
'OpIMul32x16INTEL' : 5597,
'OpUMul32x16INTEL' : 5598,
- 'OpConstFunctionPointerINTEL' : 5600,
+ 'OpConstantFunctionPointerINTEL' : 5600,
'OpFunctionPointerCallINTEL' : 5601,
'OpAsmTargetINTEL' : 5609,
'OpAsmINTEL' : 5610,
'OpAsmCallINTEL' : 5611,
+ 'OpAtomicFMinEXT' : 5614,
+ 'OpAtomicFMaxEXT' : 5615,
+ 'OpAssumeTrueKHR' : 5630,
+ 'OpExpectKHR' : 5631,
'OpDecorateString' : 5632,
'OpDecorateStringGOOGLE' : 5632,
'OpMemberDecorateString' : 5633,
@@ -1616,7 +1706,59 @@ spv = {
'OpVariableLengthArrayINTEL' : 5818,
'OpSaveMemoryINTEL' : 5819,
'OpRestoreMemoryINTEL' : 5820,
+ 'OpArbitraryFloatSinCosPiINTEL' : 5840,
+ 'OpArbitraryFloatCastINTEL' : 5841,
+ 'OpArbitraryFloatCastFromIntINTEL' : 5842,
+ 'OpArbitraryFloatCastToIntINTEL' : 5843,
+ 'OpArbitraryFloatAddINTEL' : 5846,
+ 'OpArbitraryFloatSubINTEL' : 5847,
+ 'OpArbitraryFloatMulINTEL' : 5848,
+ 'OpArbitraryFloatDivINTEL' : 5849,
+ 'OpArbitraryFloatGTINTEL' : 5850,
+ 'OpArbitraryFloatGEINTEL' : 5851,
+ 'OpArbitraryFloatLTINTEL' : 5852,
+ 'OpArbitraryFloatLEINTEL' : 5853,
+ 'OpArbitraryFloatEQINTEL' : 5854,
+ 'OpArbitraryFloatRecipINTEL' : 5855,
+ 'OpArbitraryFloatRSqrtINTEL' : 5856,
+ 'OpArbitraryFloatCbrtINTEL' : 5857,
+ 'OpArbitraryFloatHypotINTEL' : 5858,
+ 'OpArbitraryFloatSqrtINTEL' : 5859,
+ 'OpArbitraryFloatLogINTEL' : 5860,
+ 'OpArbitraryFloatLog2INTEL' : 5861,
+ 'OpArbitraryFloatLog10INTEL' : 5862,
+ 'OpArbitraryFloatLog1pINTEL' : 5863,
+ 'OpArbitraryFloatExpINTEL' : 5864,
+ 'OpArbitraryFloatExp2INTEL' : 5865,
+ 'OpArbitraryFloatExp10INTEL' : 5866,
+ 'OpArbitraryFloatExpm1INTEL' : 5867,
+ 'OpArbitraryFloatSinINTEL' : 5868,
+ 'OpArbitraryFloatCosINTEL' : 5869,
+ 'OpArbitraryFloatSinCosINTEL' : 5870,
+ 'OpArbitraryFloatSinPiINTEL' : 5871,
+ 'OpArbitraryFloatCosPiINTEL' : 5872,
+ 'OpArbitraryFloatASinINTEL' : 5873,
+ 'OpArbitraryFloatASinPiINTEL' : 5874,
+ 'OpArbitraryFloatACosINTEL' : 5875,
+ 'OpArbitraryFloatACosPiINTEL' : 5876,
+ 'OpArbitraryFloatATanINTEL' : 5877,
+ 'OpArbitraryFloatATanPiINTEL' : 5878,
+ 'OpArbitraryFloatATan2INTEL' : 5879,
+ 'OpArbitraryFloatPowINTEL' : 5880,
+ 'OpArbitraryFloatPowRINTEL' : 5881,
+ 'OpArbitraryFloatPowNINTEL' : 5882,
'OpLoopControlINTEL' : 5887,
+ 'OpFixedSqrtINTEL' : 5923,
+ 'OpFixedRecipINTEL' : 5924,
+ 'OpFixedRsqrtINTEL' : 5925,
+ 'OpFixedSinINTEL' : 5926,
+ 'OpFixedCosINTEL' : 5927,
+ 'OpFixedSinCosINTEL' : 5928,
+ 'OpFixedSinPiINTEL' : 5929,
+ 'OpFixedCosPiINTEL' : 5930,
+ 'OpFixedSinCosPiINTEL' : 5931,
+ 'OpFixedLogINTEL' : 5932,
+ 'OpFixedExpINTEL' : 5933,
'OpPtrCastToCrossWorkgroupINTEL' : 5934,
'OpCrossWorkgroupCastToPtrINTEL' : 5938,
'OpReadPipeBlockingINTEL' : 5946,
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 5d09343..a17e63d 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -51,8 +51,8 @@
module spv;
enum uint MagicNumber = 0x07230203;
-enum uint Version = 0x00010500;
-enum uint Revision = 4;
+enum uint Version = 0x00010600;
+enum uint Revision = 1;
enum uint OpCodeMask = 0xffff;
enum uint WordCountShift = 16;
@@ -64,6 +64,7 @@ enum SourceLanguage : uint
OpenCL_C = 3,
OpenCL_CPP = 4,
HLSL = 5,
+ CPP_for_OpenCL = 6,
}
enum ExecutionModel : uint
@@ -149,6 +150,7 @@ enum ExecutionMode : uint
SubgroupsPerWorkgroupId = 37,
LocalSizeId = 38,
LocalSizeHintId = 39,
+ SubgroupUniformControlFlowKHR = 4421,
PostDepthCoverage = 4446,
DenormPreserve = 4459,
DenormFlushToZero = 4460,
@@ -350,6 +352,8 @@ enum ImageOperandsShift : uint
VolatileTexelKHR = 11,
SignExtend = 12,
ZeroExtend = 13,
+ Nontemporal = 14,
+ Offsets = 16,
}
enum ImageOperandsMask : uint
@@ -373,6 +377,8 @@ enum ImageOperandsMask : uint
VolatileTexelKHR = 0x00000800,
SignExtend = 0x00001000,
ZeroExtend = 0x00002000,
+ Nontemporal = 0x00004000,
+ Offsets = 0x00010000,
}
enum FPFastMathModeShift : uint
@@ -410,6 +416,7 @@ enum LinkageType : uint
{
Export = 0,
Import = 1,
+ LinkOnceODR = 2,
}
enum AccessQualifier : uint
@@ -490,6 +497,7 @@ enum Decoration : uint
PerPrimitiveNV = 5271,
PerViewNV = 5272,
PerTaskNV = 5273,
+ PerVertexKHR = 5285,
PerVertexNV = 5285,
NonUniform = 5300,
NonUniformEXT = 5300,
@@ -497,6 +505,10 @@ enum Decoration : uint
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
+ BindlessSamplerNV = 5398,
+ BindlessImageNV = 5399,
+ BoundSamplerNV = 5400,
+ BoundImageNV = 5401,
SIMTCallINTEL = 5599,
ReferencedIndirectlyINTEL = 5602,
ClobberINTEL = 5607,
@@ -536,6 +548,7 @@ enum Decoration : uint
FunctionFloatingPointModeINTEL = 6080,
SingleElementVectorINTEL = 6085,
VectorComputeCallableFunctionINTEL = 6087,
+ MediaBlockIOINTEL = 6140,
}
enum BuiltIn : uint
@@ -620,7 +633,9 @@ enum BuiltIn : uint
LayerPerViewNV = 5279,
MeshViewCountNV = 5280,
MeshViewIndicesNV = 5281,
+ BaryCoordKHR = 5286,
BaryCoordNV = 5286,
+ BaryCoordNoPerspKHR = 5287,
BaryCoordNoPerspNV = 5287,
FragSizeEXT = 5292,
FragmentSizeNV = 5292,
@@ -651,6 +666,7 @@ enum BuiltIn : uint
HitTNV = 5332,
HitKindKHR = 5333,
HitKindNV = 5333,
+ CurrentRayTimeNV = 5334,
IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
RayGeometryIndexKHR = 5352,
@@ -722,6 +738,7 @@ enum FunctionControlShift : uint
DontInline = 1,
Pure = 2,
Const = 3,
+ OptNoneINTEL = 16,
}
enum FunctionControlMask : uint
@@ -731,6 +748,7 @@ enum FunctionControlMask : uint
DontInline = 0x00000002,
Pure = 0x00000004,
Const = 0x00000008,
+ OptNoneINTEL = 0x00010000,
}
enum MemorySemanticsShift : uint
@@ -915,6 +933,7 @@ enum Capability : uint
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
+ UniformDecoration = 71,
FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
@@ -963,6 +982,7 @@ enum Capability : uint
FragmentFullyCoveredEXT = 5265,
MeshShadingNV = 5266,
ImageFootprintNV = 5282,
+ FragmentBarycentricKHR = 5284,
FragmentBarycentricNV = 5284,
ComputeDerivativeGroupQuadsNV = 5288,
FragmentDensityEXT = 5291,
@@ -993,6 +1013,7 @@ enum Capability : uint
StorageTexelBufferArrayNonUniformIndexing = 5312,
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
RayTracingNV = 5340,
+ RayTracingMotionBlurNV = 5341,
VulkanMemoryModel = 5345,
VulkanMemoryModelKHR = 5345,
VulkanMemoryModelDeviceScope = 5346,
@@ -1006,7 +1027,9 @@ enum Capability : uint
FragmentShaderShadingRateInterlockEXT = 5372,
ShaderSMBuiltinsNV = 5373,
FragmentShaderPixelInterlockEXT = 5378,
+ DemoteToHelperInvocation = 5379,
DemoteToHelperInvocationEXT = 5379,
+ BindlessTextureNV = 5390,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
@@ -1017,8 +1040,12 @@ enum Capability : uint
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
VectorComputeINTEL = 5617,
VectorAnyINTEL = 5619,
+ ExpectAssumeKHR = 5629,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
@@ -1027,6 +1054,7 @@ enum Capability : uint
FPGAMemoryAttributesINTEL = 5824,
FPFastMathModeINTEL = 5837,
ArbitraryPrecisionIntegersINTEL = 5844,
+ ArbitraryPrecisionFloatingPointINTEL = 5845,
UnstructuredLoopControlsINTEL = 5886,
FPGALoopControlsINTEL = 5888,
KernelAttributesINTEL = 5892,
@@ -1035,13 +1063,26 @@ enum Capability : uint
FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906,
FPGABufferLocationINTEL = 5920,
+ ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935,
IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948,
+ DotProductInputAll = 6016,
+ DotProductInputAllKHR = 6016,
+ DotProductInput4x8Bit = 6017,
+ DotProductInput4x8BitKHR = 6017,
+ DotProductInput4x8BitPacked = 6018,
+ DotProductInput4x8BitPackedKHR = 6018,
+ DotProduct = 6019,
+ DotProductKHR = 6019,
+ BitInstructions = 6025,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089,
+ OptNoneINTEL = 6094,
+ AtomicFloat16AddEXT = 6095,
+ DebugInfoModuleINTEL = 6114,
}
enum RayFlagsShift : uint
@@ -1121,6 +1162,32 @@ enum FPOperationMode : uint
ALT = 1,
}
+enum QuantizationModes : uint
+{
+ TRN = 0,
+ TRN_ZERO = 1,
+ RND = 2,
+ RND_ZERO = 3,
+ RND_INF = 4,
+ RND_MIN_INF = 5,
+ RND_CONV = 6,
+ RND_CONV_ODD = 7,
+}
+
+enum OverflowModes : uint
+{
+ WRAP = 0,
+ SAT = 1,
+ SAT_ZERO = 2,
+ SAT_SYM = 3,
+}
+
+enum PackedVectorFormat : uint
+{
+ PackedVectorFormat4x8Bit = 0,
+ PackedVectorFormat4x8BitKHR = 0,
+}
+
enum Op : uint
{
OpNop = 0,
@@ -1479,6 +1546,18 @@ enum Op : uint
OpConvertUToAccelerationStructureKHR = 4447,
OpIgnoreIntersectionKHR = 4448,
OpTerminateRayKHR = 4449,
+ OpSDot = 4450,
+ OpSDotKHR = 4450,
+ OpUDot = 4451,
+ OpUDotKHR = 4451,
+ OpSUDot = 4452,
+ OpSUDotKHR = 4452,
+ OpSDotAccSat = 4453,
+ OpSDotAccSatKHR = 4453,
+ OpUDotAccSat = 4454,
+ OpUDotAccSatKHR = 4454,
+ OpSUDotAccSat = 4455,
+ OpSUDotAccSatKHR = 4455,
OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
@@ -1505,6 +1584,8 @@ enum Op : uint
OpIgnoreIntersectionNV = 5335,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceMotionNV = 5338,
+ OpTraceRayMotionNV = 5339,
OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344,
@@ -1515,8 +1596,16 @@ enum Op : uint
OpCooperativeMatrixLengthNV = 5362,
OpBeginInvocationInterlockEXT = 5364,
OpEndInvocationInterlockEXT = 5365,
+ OpDemoteToHelperInvocation = 5380,
OpDemoteToHelperInvocationEXT = 5380,
OpIsHelperInvocationEXT = 5381,
+ OpConvertUToImageNV = 5391,
+ OpConvertUToSamplerNV = 5392,
+ OpConvertImageToUNV = 5393,
+ OpConvertSamplerToUNV = 5394,
+ OpConvertUToSampledImageNV = 5395,
+ OpConvertSampledImageToUNV = 5396,
+ OpSamplerImageAddressingModeNV = 5397,
OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573,
@@ -1541,11 +1630,15 @@ enum Op : uint
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpConstFunctionPointerINTEL = 5600,
+ OpConstantFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
+ OpAssumeTrueKHR = 5630,
+ OpExpectKHR = 5631,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1671,7 +1764,59 @@ enum Op : uint
OpVariableLengthArrayINTEL = 5818,
OpSaveMemoryINTEL = 5819,
OpRestoreMemoryINTEL = 5820,
+ OpArbitraryFloatSinCosPiINTEL = 5840,
+ OpArbitraryFloatCastINTEL = 5841,
+ OpArbitraryFloatCastFromIntINTEL = 5842,
+ OpArbitraryFloatCastToIntINTEL = 5843,
+ OpArbitraryFloatAddINTEL = 5846,
+ OpArbitraryFloatSubINTEL = 5847,
+ OpArbitraryFloatMulINTEL = 5848,
+ OpArbitraryFloatDivINTEL = 5849,
+ OpArbitraryFloatGTINTEL = 5850,
+ OpArbitraryFloatGEINTEL = 5851,
+ OpArbitraryFloatLTINTEL = 5852,
+ OpArbitraryFloatLEINTEL = 5853,
+ OpArbitraryFloatEQINTEL = 5854,
+ OpArbitraryFloatRecipINTEL = 5855,
+ OpArbitraryFloatRSqrtINTEL = 5856,
+ OpArbitraryFloatCbrtINTEL = 5857,
+ OpArbitraryFloatHypotINTEL = 5858,
+ OpArbitraryFloatSqrtINTEL = 5859,
+ OpArbitraryFloatLogINTEL = 5860,
+ OpArbitraryFloatLog2INTEL = 5861,
+ OpArbitraryFloatLog10INTEL = 5862,
+ OpArbitraryFloatLog1pINTEL = 5863,
+ OpArbitraryFloatExpINTEL = 5864,
+ OpArbitraryFloatExp2INTEL = 5865,
+ OpArbitraryFloatExp10INTEL = 5866,
+ OpArbitraryFloatExpm1INTEL = 5867,
+ OpArbitraryFloatSinINTEL = 5868,
+ OpArbitraryFloatCosINTEL = 5869,
+ OpArbitraryFloatSinCosINTEL = 5870,
+ OpArbitraryFloatSinPiINTEL = 5871,
+ OpArbitraryFloatCosPiINTEL = 5872,
+ OpArbitraryFloatASinINTEL = 5873,
+ OpArbitraryFloatASinPiINTEL = 5874,
+ OpArbitraryFloatACosINTEL = 5875,
+ OpArbitraryFloatACosPiINTEL = 5876,
+ OpArbitraryFloatATanINTEL = 5877,
+ OpArbitraryFloatATanPiINTEL = 5878,
+ OpArbitraryFloatATan2INTEL = 5879,
+ OpArbitraryFloatPowINTEL = 5880,
+ OpArbitraryFloatPowRINTEL = 5881,
+ OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
+ OpFixedSqrtINTEL = 5923,
+ OpFixedRecipINTEL = 5924,
+ OpFixedRsqrtINTEL = 5925,
+ OpFixedSinINTEL = 5926,
+ OpFixedCosINTEL = 5927,
+ OpFixedSinCosINTEL = 5928,
+ OpFixedSinPiINTEL = 5929,
+ OpFixedCosPiINTEL = 5930,
+ OpFixedSinCosPiINTEL = 5931,
+ OpFixedLogINTEL = 5932,
+ OpFixedExpINTEL = 5933,
OpPtrCastToCrossWorkgroupINTEL = 5934,
OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
diff --git a/tools/buildHeaders/CMakeLists.txt b/tools/buildHeaders/CMakeLists.txt
index c624151..fa7ef50 100644
--- a/tools/buildHeaders/CMakeLists.txt
+++ b/tools/buildHeaders/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.0)
set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix" FORCE)
diff --git a/tools/buildHeaders/bin/makeHeaders b/tools/buildHeaders/bin/makeHeaders
index 0ca0b2f..7b4959e 100755
--- a/tools/buildHeaders/bin/makeHeaders
+++ b/tools/buildHeaders/bin/makeHeaders
@@ -4,4 +4,4 @@ python3 bin/makeExtinstHeaders.py
cd ../../include/spirv/unified1
../../../tools/buildHeaders/build/install/bin/buildSpvHeaders -H spirv.core.grammar.json
-dos2unix spirv.* SpirV.* spv.*
+dos2unix spirv.* spv.*
diff --git a/tools/buildHeaders/header.cpp b/tools/buildHeaders/header.cpp
index 926905e..febc6f2 100644
--- a/tools/buildHeaders/header.cpp
+++ b/tools/buildHeaders/header.cpp
@@ -69,9 +69,9 @@ namespace {
TPrinter();
static const int DocMagicNumber = 0x07230203;
- static const int DocVersion = 0x00010500;
- static const int DocRevision = 4;
- #define DocRevisionString "4"
+ static const int DocVersion = 0x00010600;
+ static const int DocRevision = 1;
+ #define DocRevisionString "1"
static const std::string DocCopyright;
static const std::string DocComment1;
static const std::string DocComment2;
@@ -500,7 +500,7 @@ namespace {
virtual std::string fmtEnumUse(const std::string& opPrefix, const std::string& name) const { return pre() + name; }
- virtual void printHasResultType(std::ostream& out) const
+ virtual void printHasResultType(std::ostream& out) const override
{
const Json::Value& enums = spvRoot["spv"]["enum"];
@@ -643,7 +643,7 @@ namespace {
}
// Add type prefix for scoped enum
- virtual std::string fmtEnumUse(const std::string& opPrefix, const std::string& name) const { return opPrefix + "::" + name; }
+ virtual std::string fmtEnumUse(const std::string& opPrefix, const std::string& name) const override { return opPrefix + "::" + name; }
std::string headerGuardSuffix() const override { return "HPP"; }
};
diff --git a/tools/buildHeaders/jsonToSpirv.cpp b/tools/buildHeaders/jsonToSpirv.cpp
index e5b1e3e..67b5bce 100644
--- a/tools/buildHeaders/jsonToSpirv.cpp
+++ b/tools/buildHeaders/jsonToSpirv.cpp
@@ -25,6 +25,7 @@
#include <assert.h>
#include <string.h>
#include <algorithm>
+#include <cstdlib>
#include <iostream>
#include <unordered_map>
#include <unordered_set>
@@ -63,6 +64,8 @@ EnumValues FPFastMathParams;
EnumValues FPRoundingModeParams;
EnumValues FPDenormModeParams;
EnumValues FPOperationModeParams;
+EnumValues QuantizationModesParams;
+EnumValues OverflowModesParams;
EnumValues LinkageTypeParams;
EnumValues DecorationParams;
EnumValues BuiltInParams;
@@ -84,6 +87,7 @@ EnumValues RayQueryIntersectionParams;
EnumValues RayQueryCommittedIntersectionTypeParams;
EnumValues RayQueryCandidateIntersectionTypeParams;
EnumValues FragmentShadingRateParams;
+EnumValues PackedVectorFormatParams;
std::pair<bool, std::string> ReadFile(const std::string& path)
{
@@ -184,6 +188,10 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
type = OperandFPDenormMode;
} else if (operandKind == "FPOperationMode") {
type = OperandFPOperationMode;
+ } else if (operandKind == "QuantizationModes") {
+ type = OperandQuantizationModes;
+ } else if (operandKind == "OverflowModes") {
+ type = OperandOverflowModes;
} else if (operandKind == "LinkageType") {
type = OperandLinkageType;
} else if (operandKind == "AccessQualifier") {
@@ -224,6 +232,8 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
type = OperandRayQueryCandidateIntersectionType;
} else if (operandKind == "FragmentShadingRate") {
type = OperandFragmentShadingRate;
+ } else if (operandKind == "PackedVectorFormat") {
+ type = OperandPackedVectorFormat;
}
if (type == OperandNone) {
@@ -326,6 +336,8 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
// process the instructions
const Json::Value insts = root["instructions"];
+ unsigned maxOpcode = 0;
+ bool firstOpcode = true;
for (const auto& inst : insts) {
const auto printingClass = inst["class"].asString();
if (printingClass.size() == 0) {
@@ -341,6 +353,19 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
}
const auto opcode = inst["opcode"].asUInt();
const std::string name = inst["opname"].asString();
+ if (firstOpcode) {
+ maxOpcode = opcode;
+ firstOpcode = false;
+ } else {
+ if (maxOpcode > opcode) {
+ std::cerr << "Error: " << name
+ << " is out of order. It follows the instruction with opcode " << maxOpcode
+ << std::endl;
+ std::exit(1);
+ } else {
+ maxOpcode = opcode;
+ }
+ }
EnumCaps caps = getCaps(inst);
std::string version = inst["version"].asString();
std::string lastVersion = inst["lastVersion"].asString();
@@ -384,12 +409,27 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
return result;
};
+ unsigned maxValue = 0;
+ bool firstValue = true;
for (const auto& enumerant : source["enumerants"]) {
unsigned value;
bool skip_zero_in_bitfield;
std::tie(value, skip_zero_in_bitfield) = getValue(enumerant);
if (skip_zero_in_bitfield)
continue;
+ if (firstValue) {
+ maxValue = value;
+ firstValue = false;
+ } else {
+ if (maxValue > value) {
+ std::cerr << "Error: " << source["kind"] << " enumerant " << enumerant["enumerant"]
+ << " is out of order. It has value " << value
+ << " but follows the enumerant with value " << maxValue << std::endl;
+ std::exit(1);
+ } else {
+ maxValue = value;
+ }
+ }
EnumCaps caps(getCaps(enumerant));
std::string version = enumerant["version"].asString();
std::string lastVersion = enumerant["lastVersion"].asString();
@@ -462,6 +502,10 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
establishOperandClass(enumName, OperandFPDenormMode, &FPDenormModeParams, operandEnum, category);
} else if (enumName == "FPOperationMode") {
establishOperandClass(enumName, OperandFPOperationMode, &FPOperationModeParams, operandEnum, category);
+ } else if (enumName == "QuantizationModes") {
+ establishOperandClass(enumName, OperandQuantizationModes, &QuantizationModesParams, operandEnum, category);
+ } else if (enumName == "OverflowModes") {
+ establishOperandClass(enumName, OperandOverflowModes, &OverflowModesParams, operandEnum, category);
} else if (enumName == "LinkageType") {
establishOperandClass(enumName, OperandLinkageType, &LinkageTypeParams, operandEnum, category);
} else if (enumName == "FunctionParameterAttribute") {
@@ -498,6 +542,8 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
establishOperandClass(enumName, OperandRayQueryCandidateIntersectionType, &RayQueryCandidateIntersectionTypeParams, operandEnum, category);
} else if (enumName == "FragmentShadingRate") {
establishOperandClass(enumName, OperandFragmentShadingRate, &FragmentShadingRateParams, operandEnum, category);
+ } else if (enumName == "PackedVectorFormat") {
+ establishOperandClass(enumName, OperandPackedVectorFormat, &PackedVectorFormatParams, operandEnum, category);
}
}
}
diff --git a/tools/buildHeaders/jsonToSpirv.h b/tools/buildHeaders/jsonToSpirv.h
index 51aa763..3be6456 100644
--- a/tools/buildHeaders/jsonToSpirv.h
+++ b/tools/buildHeaders/jsonToSpirv.h
@@ -93,6 +93,9 @@ enum OperandClass {
OperandFragmentShadingRate,
OperandFPDenormMode,
OperandFPOperationMode,
+ OperandQuantizationModes,
+ OperandOverflowModes,
+ OperandPackedVectorFormat,
OperandOpcode,