Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5aded33477 |
+6
@@ -81,6 +81,11 @@ filegroup(
|
|||||||
srcs = ["include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json"],
|
srcs = ["include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "spirv_ext_inst_nonsemantic_vkspreflection_grammar_unified1",
|
||||||
|
srcs = ["include/spirv/unified1/extinst.nonsemantic.vkspreflection.grammar.json"],
|
||||||
|
)
|
||||||
|
|
||||||
filegroup(
|
filegroup(
|
||||||
name = "spirv_ext_inst_nonsemantic_debugprintf_grammar_unified1",
|
name = "spirv_ext_inst_nonsemantic_debugprintf_grammar_unified1",
|
||||||
srcs = ["include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json"],
|
srcs = ["include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json"],
|
||||||
@@ -128,6 +133,7 @@ cc_library(
|
|||||||
"include/spirv/unified1/GLSL.std.450.h",
|
"include/spirv/unified1/GLSL.std.450.h",
|
||||||
"include/spirv/unified1/NonSemanticClspvReflection.h",
|
"include/spirv/unified1/NonSemanticClspvReflection.h",
|
||||||
"include/spirv/unified1/NonSemanticDebugPrintf.h",
|
"include/spirv/unified1/NonSemanticDebugPrintf.h",
|
||||||
|
"include/spirv/unified1/NonSemanticVkspReflection.h",
|
||||||
"include/spirv/unified1/OpenCL.std.h",
|
"include/spirv/unified1/OpenCL.std.h",
|
||||||
],
|
],
|
||||||
includes = ["include"],
|
includes = ["include"],
|
||||||
|
|||||||
Vendored
+2
-1
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2020 Google LLC
|
# Copyright (c) 2020-2024 Google LLC
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
# of this software and/or associated documentation files (the "Materials"),
|
# of this software and/or associated documentation files (the "Materials"),
|
||||||
@@ -35,6 +35,7 @@ source_set("spv_headers") {
|
|||||||
"include/spirv/unified1/GLSL.std.450.h",
|
"include/spirv/unified1/GLSL.std.450.h",
|
||||||
"include/spirv/unified1/NonSemanticClspvReflection.h",
|
"include/spirv/unified1/NonSemanticClspvReflection.h",
|
||||||
"include/spirv/unified1/NonSemanticDebugPrintf.h",
|
"include/spirv/unified1/NonSemanticDebugPrintf.h",
|
||||||
|
"include/spirv/unified1/NonSemanticVkspReflection.h",
|
||||||
"include/spirv/unified1/OpenCL.std.h",
|
"include/spirv/unified1/OpenCL.std.h",
|
||||||
"include/spirv/unified1/spirv.h",
|
"include/spirv/unified1/spirv.h",
|
||||||
"include/spirv/unified1/spirv.hpp",
|
"include/spirv/unified1/spirv.hpp",
|
||||||
|
|||||||
+33
-101
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2015-2016 The Khronos Group Inc.
|
# Copyright (c) 2015-2024 The Khronos Group Inc.
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
# copy of this software and/or associated documentation files (the
|
# copy of this software and/or associated documentation files (the
|
||||||
@@ -23,113 +23,45 @@
|
|||||||
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||||
|
|
||||||
#
|
|
||||||
# The SPIR-V headers from the SPIR-V Registry
|
|
||||||
# https://www.khronos.org/registry/spir-v/
|
|
||||||
#
|
|
||||||
cmake_minimum_required(VERSION 3.19)
|
cmake_minimum_required(VERSION 3.19)
|
||||||
project(SPIRV-Headers VERSION 1.5.5)
|
project(SPIRV-Headers LANGUAGES CXX VERSION 1.5.5)
|
||||||
|
|
||||||
# There are two ways to use this project.
|
if (CMAKE_VERSION VERSION_LESS "3.21")
|
||||||
#
|
# https://cmake.org/cmake/help/latest/variable/PROJECT_IS_TOP_LEVEL.html
|
||||||
# Using this source tree directly from a CMake-based project:
|
string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL)
|
||||||
# 1. Add an add_subdirectory directive to include this sub directory.
|
|
||||||
# 2. Use ${SPIRV-Headers_SOURCE_DIR}/include} in a target_include_directories
|
|
||||||
# command.
|
|
||||||
#
|
|
||||||
# Installing the headers first, then using them with an implicit include
|
|
||||||
# directory. To install the headers:
|
|
||||||
# 1. mkdir build ; cd build
|
|
||||||
# 2. cmake ..
|
|
||||||
# 3. cmake --build . --target install
|
|
||||||
|
|
||||||
option(SPIRV_HEADERS_SKIP_EXAMPLES "Skip building examples" ON)
|
|
||||||
|
|
||||||
option(SPIRV_HEADERS_SKIP_INSTALL "Skip install" ON)
|
|
||||||
|
|
||||||
if(NOT ${SPIRV_HEADERS_SKIP_EXAMPLES})
|
|
||||||
set(SPIRV_HEADERS_ENABLE_EXAMPLES ON)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT ${SPIRV_HEADERS_SKIP_INSTALL})
|
add_library(SPIRV-Headers INTERFACE)
|
||||||
set(SPIRV_HEADERS_ENABLE_INSTALL ON)
|
add_library(SPIRV-Headers::SPIRV-Headers ALIAS SPIRV-Headers)
|
||||||
# legacy
|
target_include_directories(SPIRV-Headers INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
|
||||||
add_custom_target(install-headers
|
|
||||||
COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv
|
option(SPIRV_HEADERS_ENABLE_TESTS "Test SPIRV-Headers" OFF)
|
||||||
$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/include/spirv)
|
option(SPIRV_HEADERS_ENABLE_INSTALL "Install SPIRV-Headers" OFF)
|
||||||
|
|
||||||
|
if(SPIRV_HEADERS_ENABLE_TESTS)
|
||||||
|
add_subdirectory(tests)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (SPIRV_HEADERS_ENABLE_EXAMPLES)
|
if(SPIRV_HEADERS_ENABLE_INSTALL)
|
||||||
message(STATUS "Building SPIRV-Header examples")
|
include(GNUInstallDirs)
|
||||||
add_subdirectory(example)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
add_library(${PROJECT_NAME} INTERFACE)
|
|
||||||
target_include_directories(${PROJECT_NAME} INTERFACE
|
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
||||||
)
|
|
||||||
|
|
||||||
# Installation
|
|
||||||
|
|
||||||
if (SPIRV_HEADERS_ENABLE_INSTALL)
|
|
||||||
message(STATUS "Installing SPIRV-Header")
|
|
||||||
|
|
||||||
set(config_install_dir "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}")
|
|
||||||
|
|
||||||
set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
|
|
||||||
|
|
||||||
set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
|
|
||||||
set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
|
|
||||||
set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
|
|
||||||
set(namespace "${PROJECT_NAME}::")
|
|
||||||
|
|
||||||
include(CMakePackageConfigHelpers)
|
include(CMakePackageConfigHelpers)
|
||||||
|
|
||||||
if (NOT CMAKE_VERSION VERSION_LESS 3.14)
|
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
set(arch_independent_str ARCH_INDEPENDENT)
|
|
||||||
|
set(cmake_install_dir "${CMAKE_INSTALL_DATADIR}/cmake/SPIRV-Headers")
|
||||||
|
set(version_config "${CMAKE_CURRENT_BINARY_DIR}/generated/SPIRV-HeadersConfigVersion.cmake")
|
||||||
|
|
||||||
|
write_basic_package_version_file("${version_config}" COMPATIBILITY SameMajorVersion ARCH_INDEPENDENT)
|
||||||
|
install(FILES "${version_config}" DESTINATION "${cmake_install_dir}")
|
||||||
|
|
||||||
|
install(TARGETS SPIRV-Headers EXPORT "SPIRV-HeadersConfig" INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
|
install(EXPORT "SPIRV-HeadersConfig" NAMESPACE "SPIRV-Headers::" DESTINATION "${cmake_install_dir}")
|
||||||
|
|
||||||
|
if (IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
|
set(SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
|
else()
|
||||||
|
set(SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
endif()
|
endif()
|
||||||
write_basic_package_version_file(
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Headers.pc.in ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Headers.pc @ONLY)
|
||||||
"${version_config}"
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Headers.pc" DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig)
|
||||||
COMPATIBILITY SameMajorVersion
|
|
||||||
${arch_independent_str}
|
|
||||||
)
|
|
||||||
|
|
||||||
configure_package_config_file(
|
|
||||||
"cmake/Config.cmake.in"
|
|
||||||
"${project_config}"
|
|
||||||
INSTALL_DESTINATION "${config_install_dir}"
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
TARGETS ${PROJECT_NAME}
|
|
||||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
||||||
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
DIRECTORY include/spirv
|
|
||||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
FILES "${project_config}" "${version_config}"
|
|
||||||
DESTINATION "${config_install_dir}"
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
|
||||||
NAMESPACE "${namespace}"
|
|
||||||
DESTINATION "${config_install_dir}"
|
|
||||||
)
|
|
||||||
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Headers.pc.in ${CMAKE_BINARY_DIR}/SPIRV-Headers.pc @ONLY)
|
|
||||||
install(
|
|
||||||
FILES "${CMAKE_BINARY_DIR}/SPIRV-Headers.pc"
|
|
||||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
Vendored
+79
-1
@@ -1,4 +1,5 @@
|
|||||||
Copyright (c) 2015-2018 The Khronos Group Inc.
|
Files: All files except for those called out below.
|
||||||
|
Copyright (c) 2015-2024 The Khronos Group Inc.
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and/or associated documentation files (the
|
copy of this software and/or associated documentation files (the
|
||||||
@@ -23,3 +24,80 @@ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|||||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Files: include/spirv/spir-v.xml
|
||||||
|
Copyright (c) 2015-2024 The Khronos Group Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
copy of this software and/or associated documentation files (the
|
||||||
|
"Materials"), to deal in the Materials without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Materials, and to
|
||||||
|
permit persons to whom the Materials are furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Materials.
|
||||||
|
|
||||||
|
THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Files: tools/buildHeaders/jsoncpp/*
|
||||||
|
The JsonCpp library's source code, including accompanying documentation,
|
||||||
|
tests and demonstration applications, are licensed under the following
|
||||||
|
conditions...
|
||||||
|
|
||||||
|
The author (Baptiste Lepilleur) explicitly disclaims copyright in all
|
||||||
|
jurisdictions which recognize such a disclaimer. In such jurisdictions,
|
||||||
|
this software is released into the Public Domain.
|
||||||
|
|
||||||
|
In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
|
||||||
|
2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
|
||||||
|
released under the terms of the MIT License (see below).
|
||||||
|
|
||||||
|
In jurisdictions which recognize Public Domain property, the user of this
|
||||||
|
software may choose to accept it either as 1) Public Domain, 2) under the
|
||||||
|
conditions of the MIT License (see below), or 3) under the terms of dual
|
||||||
|
Public Domain/MIT License conditions described here, as they choose.
|
||||||
|
|
||||||
|
The MIT License is about as close to Public Domain as a license can get, and is
|
||||||
|
described in clear, concise terms at:
|
||||||
|
|
||||||
|
http://en.wikipedia.org/wiki/MIT_License
|
||||||
|
|
||||||
|
The full text of the MIT License follows:
|
||||||
|
|
||||||
|
========================================================================
|
||||||
|
Copyright (c) 2007-2010 Baptiste Lepilleur
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person
|
||||||
|
obtaining a copy of this software and associated documentation
|
||||||
|
files (the "Software"), to deal in the Software without
|
||||||
|
restriction, including without limitation the rights to use, copy,
|
||||||
|
modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is
|
||||||
|
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 Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS 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 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
========================================================================
|
||||||
|
|
||||||
|
---
|
||||||
|
|||||||
Vendored
+1
-1
@@ -198,7 +198,7 @@ python3 bin/makeExtinstHeaders.py
|
|||||||
## License
|
## License
|
||||||
<a name="license"></a>
|
<a name="license"></a>
|
||||||
```
|
```
|
||||||
Copyright (c) 2015-2018 The Khronos Group Inc.
|
Copyright (c) 2015-2024 The Khronos Group Inc.
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and/or associated documentation files (the
|
copy of this software and/or associated documentation files (the
|
||||||
|
|||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Supported Versions
|
||||||
|
|
||||||
|
Security updates are applied only to the latest release.
|
||||||
|
|
||||||
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
If you have discovered a security vulnerability in this project, please report it privately. **Do not disclose it as a public issue.** This gives us time to work with you to fix the issue before public exposure, reducing the chance that the exploit will be used before a patch is released.
|
||||||
|
|
||||||
|
Please disclose it at [security advisory](https://github.com/KhronosGroup/SPIRV-Headers/security/advisories/new).
|
||||||
|
|
||||||
|
This project is maintained by a team of volunteers on a reasonable-effort basis. As such, please give us at least 90 days to work on a fix before public exposure.
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
@PACKAGE_INIT@
|
|
||||||
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
|
|
||||||
check_required_components("@PROJECT_NAME@")
|
|
||||||
Vendored
+1
-2
@@ -1,5 +1,4 @@
|
|||||||
prefix=@CMAKE_INSTALL_PREFIX@
|
includedir=@SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR@
|
||||||
includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
|
|
||||||
|
|
||||||
Name: SPIRV-Headers
|
Name: SPIRV-Headers
|
||||||
Description: Header files from the SPIR-V registry
|
Description: Header files from the SPIR-V registry
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
add_library(SPIRV-Headers-example
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/example.cpp)
|
|
||||||
target_include_directories(SPIRV-Headers-example
|
|
||||||
PRIVATE ${SPIRV-Headers_SOURCE_DIR}/include)
|
|
||||||
+25
-10
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<registry>
|
<registry>
|
||||||
<!--
|
<!--
|
||||||
Copyright (c) 2015 The Khronos Group Inc.
|
Copyright (c) 2015-2024 The Khronos Group Inc.
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and/or associated documentation files (the
|
copy of this software and/or associated documentation files (the
|
||||||
@@ -82,12 +82,19 @@
|
|||||||
<id value="29" vendor="Mikkosoft Productions" tool="MSP Shader Compiler" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
|
<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="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="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="32" vendor="TornadoVM" tool="Beehive SPIRV Toolkit" comment="https://github.com/beehive-lab/beehive-spirv-toolkit"/>
|
||||||
<id value="33" vendor="DragonJoker" tool="ShaderWriter" comment="Contact Sylvain Doremus, https://github.com/DragonJoker/ShaderWriter"/>
|
<id value="33" vendor="DragonJoker" tool="ShaderWriter" comment="Contact Sylvain Doremus, https://github.com/DragonJoker/ShaderWriter"/>
|
||||||
<id value="34" vendor="Rayan Hatout" tool="SPIRVSmith" comment="Contact Rayan Hatout rayan.hatout@gmail.com, Repo https://github.com/rayanht/SPIRVSmith"/>
|
<id value="34" vendor="Rayan Hatout" tool="SPIRVSmith" comment="Contact Rayan Hatout rayan.hatout@gmail.com, Repo https://github.com/rayanht/SPIRVSmith"/>
|
||||||
<id value="35" vendor="Saarland University" tool="Shady" comment="Contact Hugo Devillers devillers@uni-saarland.de, Repo https://github.com/Hugobros3/shady"/>
|
<id value="35" vendor="Saarland University" tool="Shady" comment="Contact Hugo Devillers devillers@uni-saarland.de, Repo https://github.com/Hugobros3/shady"/>
|
||||||
<id value="36" vendor="Taichi Graphics" tool="Taichi" comment="Contact Rendong Liang rendongliang@taichi.graphics, Repo https://github.com/taichi-dev/taichi"/>
|
<id value="36" vendor="Taichi Graphics" tool="Taichi" comment="Contact Rendong Liang rendongliang@taichi.graphics, Repo https://github.com/taichi-dev/taichi"/>
|
||||||
<unused start="37" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
|
<id value="37" vendor="heroseh" tool="Hero C Compiler" comment="https://github.com/heroseh/hcc"/>
|
||||||
|
<id value="38" vendor="Meta" tool="SparkSL" comment="Contact Dunfan Lu, dunfanlu@meta.com, https://sparkar.facebook.com/ar-studio/learn/sparksl/sparksl-overview"/>
|
||||||
|
<id value="39" vendor="SirLynix" tool="Nazara ShaderLang Compiler" comment="Contact Jérôme Leclercq, https://github.com/NazaraEngine/ShaderLang"/>
|
||||||
|
<id value="40" vendor="NVIDIA" tool="Slang Compiler" comment="Contact Theresa Foley, tfoley@nvidia.com, https://github.com/shader-slang/slang/"/>
|
||||||
|
<id value="41" vendor="Zig Software Foundation" tool="Zig Compiler" comment="Contact Robin Voetter, https://github.com/Snektron"/>
|
||||||
|
<id value="42" vendor="Rendong Liang" tool="spq" comment="Contact Rendong Liang, admin@penguinliong.moe, https://github.com/PENGUINLIONG/spq-rs"/>
|
||||||
|
<id value="43" vendor="LLVM" tool="LLVM SPIR-V Backend" comment="Contact Michal Paszkowski, michal.paszkowski@intel.com, https://github.com/llvm/llvm-project/tree/main/llvm/lib/Target/SPIRV"/>
|
||||||
|
<unused start="44" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
|
||||||
</ids>
|
</ids>
|
||||||
|
|
||||||
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
|
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
|
||||||
@@ -140,13 +147,17 @@
|
|||||||
<ids type="opcode" start="6144" end="6271" vendor="Intel" comment="Contact michael.kinsner@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="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"/>
|
<ids type="opcode" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
|
||||||
|
<ids type="opcode" start="6464" end="6527" vendor="N/A" comment="Blank range to keep alignment with non-opcodes"/>
|
||||||
|
<ids type="opcode" start="6528" end="6591" vendor="Codeplay" comment="Contact duncan.brawley@codeplay.com"/>
|
||||||
|
<ids type="opcode" start="6592" end="6655" vendor="Saarland University" comment="Contact devillers@cg.uni-saarland.de"/>
|
||||||
|
<ids type="opcode" start="6656" end="6719" vendor="Meta" comment="Contact dunfanlu@meta.com"/>
|
||||||
<!-- Opcode enumerants to reserve for future use. To get a block, allocate
|
<!-- Opcode enumerants to reserve for future use. To get a block, allocate
|
||||||
multiples of 64 starting at the lowest available point in this
|
multiples of 64 starting at the lowest available point in this
|
||||||
block and add a corresponding <ids> tag immediately above. Make
|
block and add a corresponding <ids> tag immediately above. Make
|
||||||
sure to fill in the vendor attribute, and preferably add a contact
|
sure to fill in the vendor attribute, and preferably add a contact
|
||||||
person/address in a comment attribute. -->
|
person/address in a comment attribute. -->
|
||||||
<!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
|
<!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
|
||||||
<ids type="opcode" start="6464" end="65535" comment="Opcode range reservable for future use by vendors"/>
|
<ids type="opcode" start="6656" end="65535" comment="Opcode range reservable for future use by vendors"/>
|
||||||
<!-- End reservations of opcodes -->
|
<!-- End reservations of opcodes -->
|
||||||
|
|
||||||
|
|
||||||
@@ -170,13 +181,16 @@
|
|||||||
<ids type="enumerant" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
|
<ids type="enumerant" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
|
||||||
<ids type="enumerant" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
|
<ids type="enumerant" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
|
||||||
<ids type="enumerant" start="6464" end="6527" vendor="Mikkosoft Productions" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
|
<ids type="enumerant" start="6464" end="6527" vendor="Mikkosoft Productions" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
|
||||||
|
<ids type="enumerant" start="6528" end="6591" vendor="Codeplay" comment="Contact duncan.brawley@codeplay.com"/>
|
||||||
|
<ids type="enumerant" start="6592" end="6655" vendor="Saarland University" comment="Contact devillers@cg.uni-saarland.de"/>
|
||||||
|
<ids type="enumerant" start="6656" end="6719" vendor="Meta" comment="Contact dunfanlu@meta.com"/>
|
||||||
<!-- Enumerants to reserve for future use. To get a block, allocate
|
<!-- Enumerants to reserve for future use. To get a block, allocate
|
||||||
multiples of 64 starting at the lowest available point in this
|
multiples of 64 starting at the lowest available point in this
|
||||||
block and add a corresponding <ids> tag immediately above. Make
|
block and add a corresponding <ids> tag immediately above. Make
|
||||||
sure to fill in the vendor attribute, and preferably add a contact
|
sure to fill in the vendor attribute, and preferably add a contact
|
||||||
person/address in a comment attribute. -->
|
person/address in a comment attribute. -->
|
||||||
<!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
|
<!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
|
||||||
<ids type="enumerant" start="6528" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
|
<ids type="enumerant" start="6656" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
|
||||||
<!-- End reservations of enumerants -->
|
<!-- End reservations of enumerants -->
|
||||||
|
|
||||||
|
|
||||||
@@ -196,8 +210,8 @@
|
|||||||
|
|
||||||
<!-- Reserved loop control bits -->
|
<!-- 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="0" end="15" vendor="Khronos" comment="Reserved LoopControl bits, not available to vendors - see the SPIR-V Specification"/>
|
||||||
<ids type="LoopControl" start="16" end="25" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
|
<ids type="LoopControl" start="16" end="27" 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="28" 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"/>
|
<ids type="LoopControl" start="31" end="31" vendor="Khronos" comment="Reserved LoopControl bit, not available to vendors"/>
|
||||||
|
|
||||||
|
|
||||||
@@ -237,7 +251,8 @@
|
|||||||
<!-- Reserved FP fast math mode bits -->
|
<!-- Reserved FP fast math mode bits -->
|
||||||
<ids type="FPFastMathMode" start="0" end="15" vendor="Khronos" comment="Reserved FPFastMathMode bits, not available to vendors - see the SPIR-V Specification"/>
|
<ids type="FPFastMathMode" start="0" end="15" vendor="Khronos" comment="Reserved FPFastMathMode bits, not available to vendors - see the SPIR-V Specification"/>
|
||||||
<ids type="FPFastMathMode" start="16" end="17" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
|
<ids type="FPFastMathMode" start="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"/>
|
<ids type="FPFastMathMode" start="18" end="18" vendor="khronos" comment="Reserved FPFastMathMode bit, not available to vendors - see SPV_KHR_float_controls2"/>
|
||||||
|
<ids type="FPFastMathMode" start="19" end="31" comment="Unreserved bits reservable for use by vendors"/>
|
||||||
|
|
||||||
|
|
||||||
<!-- SECTION: SPIR-V Memory Operand Bit Reservations -->
|
<!-- SECTION: SPIR-V Memory Operand Bit Reservations -->
|
||||||
@@ -256,8 +271,8 @@
|
|||||||
|
|
||||||
<!-- Reserved memory operand bits -->
|
<!-- 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="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="16" end="18" 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="19" 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"/>
|
<ids type="MemoryOperand" start="31" end="31" vendor="Khronos" comment="Reserved MemoryOperand bit, not available to vendors"/>
|
||||||
|
|
||||||
<!-- SECTION: SPIR-V Image Operand Bit Reservations -->
|
<!-- SECTION: SPIR-V Image Operand Bit Reservations -->
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2020 The Khronos Group Inc.
|
// Copyright (c) 2020-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
// copy of this software and/or associated documentation files (the
|
// copy of this software and/or associated documentation files (the
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2020 The Khronos Group Inc.
|
// Copyright (c) 2020-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
// copy of this software and/or associated documentation files (the
|
// copy of this software and/or associated documentation files (the
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2020 The Khronos Group Inc.
|
// Copyright (c) 2020-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
// copy of this software and/or associated documentation files (the
|
// copy of this software and/or associated documentation files (the
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2020 The Khronos Group Inc.
|
// Copyright (c) 2020-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
// copy of this software and/or associated documentation files (the
|
// copy of this software and/or associated documentation files (the
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2017 The Khronos Group Inc.
|
// Copyright (c) 2017-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and/or associated documentation files (the "Materials"),
|
// of this software and/or associated documentation files (the "Materials"),
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** Copyright (c) 2014-2016 The Khronos Group Inc.
|
** Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Permission is hereby granted, free of charge, to any person obtaining a copy
|
** Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
** of this software and/or associated documentation files (the "Materials"),
|
** of this software and/or associated documentation files (the "Materials"),
|
||||||
|
|||||||
+15
-2
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2020 The Khronos Group Inc.
|
// Copyright (c) 2020-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
// copy of this software and/or associated documentation files (the
|
// copy of this software and/or associated documentation files (the
|
||||||
@@ -33,7 +33,7 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
NonSemanticClspvReflectionRevision = 4,
|
NonSemanticClspvReflectionRevision = 6,
|
||||||
NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff
|
NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -73,10 +73,23 @@ enum NonSemanticClspvReflectionInstructions {
|
|||||||
NonSemanticClspvReflectionImageArgumentInfoChannelDataTypeUniform = 33,
|
NonSemanticClspvReflectionImageArgumentInfoChannelDataTypeUniform = 33,
|
||||||
NonSemanticClspvReflectionArgumentStorageTexelBuffer = 34,
|
NonSemanticClspvReflectionArgumentStorageTexelBuffer = 34,
|
||||||
NonSemanticClspvReflectionArgumentUniformTexelBuffer = 35,
|
NonSemanticClspvReflectionArgumentUniformTexelBuffer = 35,
|
||||||
|
NonSemanticClspvReflectionConstantDataPointerPushConstant = 36,
|
||||||
|
NonSemanticClspvReflectionProgramScopeVariablePointerPushConstant = 37,
|
||||||
|
NonSemanticClspvReflectionPrintfInfo = 38,
|
||||||
|
NonSemanticClspvReflectionPrintfBufferStorageBuffer = 39,
|
||||||
|
NonSemanticClspvReflectionPrintfBufferPointerPushConstant = 40,
|
||||||
|
NonSemanticClspvReflectionNormalizedSamplerMaskPushConstant = 41,
|
||||||
NonSemanticClspvReflectionInstructionsMax = 0x7fffffff
|
NonSemanticClspvReflectionInstructionsMax = 0x7fffffff
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
enum NonSemanticClspvReflectionKernelPropertyFlags {
|
||||||
|
NonSemanticClspvReflectionNone = 0x0,
|
||||||
|
NonSemanticClspvReflectionMayUsePrintf = 0x1,
|
||||||
|
NonSemanticClspvReflectionKernelPropertyFlagsMax = 0x7fffffff
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
// Copyright (c) 2020-2024 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_NonSemanticDebugBreak_H_
|
||||||
|
#define SPIRV_UNIFIED1_NonSemanticDebugBreak_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
enum {
|
||||||
|
NonSemanticDebugBreakRevision = 1,
|
||||||
|
NonSemanticDebugBreakRevision_BitWidthPadding = 0x7fffffff
|
||||||
|
};
|
||||||
|
|
||||||
|
enum NonSemanticDebugBreakInstructions {
|
||||||
|
NonSemanticDebugBreakDebugBreak = 1,
|
||||||
|
NonSemanticDebugBreakInstructionsMax = 0x7fffffff
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // SPIRV_UNIFIED1_NonSemanticDebugBreak_H_
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2020 The Khronos Group Inc.
|
// Copyright (c) 2020-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
// copy of this software and/or associated documentation files (the
|
// copy of this software and/or associated documentation files (the
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2018 The Khronos Group Inc.
|
// Copyright (c) 2018-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and/or associated documentation files (the "Materials"),
|
// of this software and/or associated documentation files (the "Materials"),
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
// Copyright (c) 2020-2024 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_NonSemanticVkspReflection_H_
|
||||||
|
#define SPIRV_UNIFIED1_NonSemanticVkspReflection_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
enum {
|
||||||
|
NonSemanticVkspReflectionRevision = 1,
|
||||||
|
NonSemanticVkspReflectionRevision_BitWidthPadding = 0x7fffffff
|
||||||
|
};
|
||||||
|
|
||||||
|
enum NonSemanticVkspReflectionInstructions {
|
||||||
|
NonSemanticVkspReflectionConfiguration = 1,
|
||||||
|
NonSemanticVkspReflectionStartCounter = 2,
|
||||||
|
NonSemanticVkspReflectionStopCounter = 3,
|
||||||
|
NonSemanticVkspReflectionPushConstants = 4,
|
||||||
|
NonSemanticVkspReflectionSpecializationMapEntry = 5,
|
||||||
|
NonSemanticVkspReflectionDescriptorSetBuffer = 6,
|
||||||
|
NonSemanticVkspReflectionDescriptorSetImage = 7,
|
||||||
|
NonSemanticVkspReflectionDescriptorSetSampler = 8,
|
||||||
|
NonSemanticVkspReflectionInstructionsMax = 0x7fffffff
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // SPIRV_UNIFIED1_NonSemanticVkspReflection_H_
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright (c) 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Permission is hereby granted, free of charge, to any person obtaining a copy
|
** Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
** of this software and/or associated documentation files (the "Materials"),
|
** of this software and/or associated documentation files (the "Materials"),
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2018 The Khronos Group Inc.
|
// Copyright (c) 2018-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and/or associated documentation files (the "Materials"),
|
// of this software and/or associated documentation files (the "Materials"),
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"copyright" : [
|
"copyright" : [
|
||||||
"Copyright (c) 2017 The Khronos Group Inc.",
|
"Copyright (c) 2017-2024 The Khronos Group Inc.",
|
||||||
"",
|
"",
|
||||||
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
||||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"copyright" : [
|
"copyright" : [
|
||||||
"Copyright (c) 2014-2016 The Khronos Group Inc.",
|
"Copyright (c) 2014-2024 The Khronos Group Inc.",
|
||||||
"",
|
"",
|
||||||
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
||||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||||
|
|||||||
Vendored
+76
-2
@@ -1,12 +1,15 @@
|
|||||||
{
|
{
|
||||||
"revision" : 4,
|
"revision" : 6,
|
||||||
"instructions" : [
|
"instructions" : [
|
||||||
{
|
{
|
||||||
"opname" : "Kernel",
|
"opname" : "Kernel",
|
||||||
"opcode" : 1,
|
"opcode" : 1,
|
||||||
"operands" : [
|
"operands" : [
|
||||||
{ "kind" : "IdRef", "name" : "Kernel" },
|
{ "kind" : "IdRef", "name" : "Kernel" },
|
||||||
{ "kind" : "IdRef", "name" : "Name" }
|
{ "kind" : "IdRef", "name" : "Name" },
|
||||||
|
{ "kind" : "IdRef", "name" : "NumArguments", "quantifier" : "?" },
|
||||||
|
{ "kind" : "IdRef", "name" : "Flags", "quantifier" : "?" },
|
||||||
|
{ "kind" : "IdRef", "name" : "Attributes", "quantifier" : "?" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -347,6 +350,77 @@
|
|||||||
{ "kind" : "IdRef", "name" : "Binding" },
|
{ "kind" : "IdRef", "name" : "Binding" },
|
||||||
{ "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
|
{ "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "ConstantDataPointerPushConstant",
|
||||||
|
"opcode" : 36,
|
||||||
|
"operands" : [
|
||||||
|
{ "kind" : "IdRef", "name" : "Offset"},
|
||||||
|
{ "kind" : "IdRef", "name" : "Size"},
|
||||||
|
{ "kind" : "IdRef", "name" : "Data" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "ProgramScopeVariablePointerPushConstant",
|
||||||
|
"opcode" : 37,
|
||||||
|
"operands" : [
|
||||||
|
{ "kind" : "IdRef", "name" : "Offset"},
|
||||||
|
{ "kind" : "IdRef", "name" : "Size"},
|
||||||
|
{ "kind" : "IdRef", "name" : "Data" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "PrintfInfo",
|
||||||
|
"opcode" : 38,
|
||||||
|
"operands" : [
|
||||||
|
{ "kind" : "IdRef", "name" : "PrintfID" },
|
||||||
|
{ "kind" : "IdRef", "name" : "FormatString" },
|
||||||
|
{ "kind" : "IdRef", "quantifier" : "*", "name" : "ArgumentSizes"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "PrintfBufferStorageBuffer",
|
||||||
|
"opcode" : 39,
|
||||||
|
"operands" : [
|
||||||
|
{ "kind" : "IdRef", "name" : "DescriptorSet" },
|
||||||
|
{ "kind" : "IdRef", "name" : "Binding" },
|
||||||
|
{ "kind" : "IdRef", "name" : "BufferSize"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "PrintfBufferPointerPushConstant",
|
||||||
|
"opcode" : 40,
|
||||||
|
"operands" : [
|
||||||
|
{ "kind" : "IdRef", "name" : "Offset" },
|
||||||
|
{ "kind" : "IdRef", "name" : "Size"},
|
||||||
|
{ "kind" : "IdRef", "name" : "BufferSize"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "NormalizedSamplerMaskPushConstant",
|
||||||
|
"opcode" : 41,
|
||||||
|
"operands" : [
|
||||||
|
{ "kind" : "IdRef", "name" : "Kernel" },
|
||||||
|
{ "kind" : "IdRef", "name" : "Ordinal" },
|
||||||
|
{ "kind" : "IdRef", "name" : "Offset" },
|
||||||
|
{ "kind" : "IdRef", "name" : "Size" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"operand_kinds" : [
|
||||||
|
{
|
||||||
|
"category" : "BitEnum",
|
||||||
|
"kind" : "KernelPropertyFlags",
|
||||||
|
"enumerants" : [
|
||||||
|
{
|
||||||
|
"enumerant" : "None",
|
||||||
|
"value" : "0x0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"enumerant" : "MayUsePrintf",
|
||||||
|
"value" : "0x1"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+9
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"revision" : 1,
|
||||||
|
"instructions" : [
|
||||||
|
{
|
||||||
|
"opname" : "DebugBreak",
|
||||||
|
"opcode" : 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"copyright" : [
|
"copyright" : [
|
||||||
"Copyright (c) 2018 The Khronos Group Inc.",
|
"Copyright (c) 2018-2024 The Khronos Group Inc.",
|
||||||
"",
|
"",
|
||||||
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
||||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||||
|
|||||||
Vendored
+135
@@ -0,0 +1,135 @@
|
|||||||
|
{
|
||||||
|
"revision" : 1,
|
||||||
|
"instructions" : [
|
||||||
|
{
|
||||||
|
"opname" : "Configuration",
|
||||||
|
"opcode" : 1,
|
||||||
|
"operands" : [
|
||||||
|
{"kind" : "LiteralString", "name" : "enabledExtensionNames" },
|
||||||
|
{"kind" : "LiteralInteger", "name" : "specializationInfoDataSize" },
|
||||||
|
{"kind" : "LiteralString", "name" : "specializationInfoData" },
|
||||||
|
{"kind" : "LiteralString", "name" : "shaderName" },
|
||||||
|
{"kind" : "LiteralString", "name" : "EntryPoint" },
|
||||||
|
{"kind" : "LiteralInteger", "name" : "groupCountX" },
|
||||||
|
{"kind" : "LiteralInteger", "name" : "groupCountY" },
|
||||||
|
{"kind" : "LiteralInteger", "name" : "groupCountZ" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "StartCounter",
|
||||||
|
"opcode" : 2,
|
||||||
|
"operands" : [
|
||||||
|
{"kind" : "LiteralString", "name" : "name" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "StopCounter",
|
||||||
|
"opcode" : 3,
|
||||||
|
"operands" : [
|
||||||
|
{"kind" : "IdRef", "name" : "counter" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "PushConstants",
|
||||||
|
"opcode" : 4,
|
||||||
|
"operands" : [
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "offset" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "size" },
|
||||||
|
{ "kind" : "LiteralString", "name" : "pValues" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "stageFlags" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "SpecializationMapEntry",
|
||||||
|
"opcode" : 5,
|
||||||
|
"operands" : [
|
||||||
|
{"kind" : "LiteralInteger", "name" : "constantID" },
|
||||||
|
{"kind" : "LiteralInteger", "name" : "offset" },
|
||||||
|
{"kind" : "LiteralInteger", "name" : "size" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "DescriptorSetBuffer",
|
||||||
|
"opcode" : 6,
|
||||||
|
"operands" : [
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "ds" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "binding" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "type" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "flags" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "queueFamilyIndexCount" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "sharingMode" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "size" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "usage" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "range" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "offset" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "memorySize" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "memoryType" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "bindOffset" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "DescriptorSetImage",
|
||||||
|
"opcode" : 7,
|
||||||
|
"operands" : [
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "ds" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "binding" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "type" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "imageLayout"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "imageFlags"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "imageType"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "imageformat"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "width"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "height"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "depth"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "mipLevels"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "arrayLayers"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "samples"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "tiling"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "usage"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "sharingMode"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "queueFamilyIndexCount"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "initialLayout"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "aspectMask"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "baseMipLevel"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "levelCount"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "baseArrayLayer"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "layerCount"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "viewFlags"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "viewType"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "viewFormat"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "component_a"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "component_b"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "component_g"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "component_r"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "memorySize" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "memoryType" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "bindOffset"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"opname" : "DescriptorSetSampler",
|
||||||
|
"opcode" : 8,
|
||||||
|
"operands" : [
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "ds" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "binding" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "type" },
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "flags"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "magFilter"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "minFilter"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "mipmapMode"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "addressModeU"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "addressModeV"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "addressModeW"},
|
||||||
|
{ "kind" : "LiteralFloat", "name" : "mipLodBias"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "anisotropyEnable"},
|
||||||
|
{ "kind" : "LiteralFloat", "name" : "maxAnisotropy"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "compareEnable"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "compareOp"},
|
||||||
|
{ "kind" : "LiteralFloat", "name" : "minLod"},
|
||||||
|
{ "kind" : "LiteralFloat", "name" : "maxLod"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "borderColor"},
|
||||||
|
{ "kind" : "LiteralInteger", "name" : "unnormalizedCoordinates"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"copyright" : [
|
"copyright" : [
|
||||||
"Copyright (c) 2018 The Khronos Group Inc.",
|
"Copyright (c) 2018-2024 The Khronos Group Inc.",
|
||||||
"",
|
"",
|
||||||
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
||||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"copyright" : [
|
"copyright" : [
|
||||||
"Copyright (c) 2014-2016 The Khronos Group Inc.",
|
"Copyright (c) 2014-2024 The Khronos Group Inc.",
|
||||||
"",
|
"",
|
||||||
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
||||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||||
|
|||||||
+209
-2
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2014-2020 The Khronos Group Inc.
|
// Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and/or associated documentation files (the "Materials"),
|
// of this software and/or associated documentation files (the "Materials"),
|
||||||
@@ -66,6 +66,11 @@ namespace Spv
|
|||||||
HLSL = 5,
|
HLSL = 5,
|
||||||
CPP_for_OpenCL = 6,
|
CPP_for_OpenCL = 6,
|
||||||
SYCL = 7,
|
SYCL = 7,
|
||||||
|
HERO_C = 8,
|
||||||
|
NZSL = 9,
|
||||||
|
WGSL = 10,
|
||||||
|
Slang = 11,
|
||||||
|
Zig = 12,
|
||||||
}
|
}
|
||||||
|
|
||||||
[AllowDuplicates, CRepr] public enum ExecutionModel
|
[AllowDuplicates, CRepr] public enum ExecutionModel
|
||||||
@@ -153,6 +158,9 @@ namespace Spv
|
|||||||
SubgroupsPerWorkgroupId = 37,
|
SubgroupsPerWorkgroupId = 37,
|
||||||
LocalSizeId = 38,
|
LocalSizeId = 38,
|
||||||
LocalSizeHintId = 39,
|
LocalSizeHintId = 39,
|
||||||
|
NonCoherentColorAttachmentReadEXT = 4169,
|
||||||
|
NonCoherentDepthAttachmentReadEXT = 4170,
|
||||||
|
NonCoherentStencilAttachmentReadEXT = 4171,
|
||||||
SubgroupUniformControlFlowKHR = 4421,
|
SubgroupUniformControlFlowKHR = 4421,
|
||||||
PostDepthCoverage = 4446,
|
PostDepthCoverage = 4446,
|
||||||
DenormPreserve = 4459,
|
DenormPreserve = 4459,
|
||||||
@@ -162,12 +170,19 @@ namespace Spv
|
|||||||
RoundingModeRTZ = 4463,
|
RoundingModeRTZ = 4463,
|
||||||
EarlyAndLateFragmentTestsAMD = 5017,
|
EarlyAndLateFragmentTestsAMD = 5017,
|
||||||
StencilRefReplacingEXT = 5027,
|
StencilRefReplacingEXT = 5027,
|
||||||
|
CoalescingAMDX = 5069,
|
||||||
|
MaxNodeRecursionAMDX = 5071,
|
||||||
|
StaticNumWorkgroupsAMDX = 5072,
|
||||||
|
ShaderIndexAMDX = 5073,
|
||||||
|
MaxNumWorkgroupsAMDX = 5077,
|
||||||
StencilRefUnchangedFrontAMD = 5079,
|
StencilRefUnchangedFrontAMD = 5079,
|
||||||
StencilRefGreaterFrontAMD = 5080,
|
StencilRefGreaterFrontAMD = 5080,
|
||||||
StencilRefLessFrontAMD = 5081,
|
StencilRefLessFrontAMD = 5081,
|
||||||
StencilRefUnchangedBackAMD = 5082,
|
StencilRefUnchangedBackAMD = 5082,
|
||||||
StencilRefGreaterBackAMD = 5083,
|
StencilRefGreaterBackAMD = 5083,
|
||||||
StencilRefLessBackAMD = 5084,
|
StencilRefLessBackAMD = 5084,
|
||||||
|
QuadDerivativesKHR = 5088,
|
||||||
|
RequireFullQuadsKHR = 5089,
|
||||||
OutputLinesEXT = 5269,
|
OutputLinesEXT = 5269,
|
||||||
OutputLinesNV = 5269,
|
OutputLinesNV = 5269,
|
||||||
OutputPrimitivesEXT = 5270,
|
OutputPrimitivesEXT = 5270,
|
||||||
@@ -192,8 +207,14 @@ namespace Spv
|
|||||||
NoGlobalOffsetINTEL = 5895,
|
NoGlobalOffsetINTEL = 5895,
|
||||||
NumSIMDWorkitemsINTEL = 5896,
|
NumSIMDWorkitemsINTEL = 5896,
|
||||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
SchedulerTargetFmaxMhzINTEL = 5903,
|
||||||
|
MaximallyReconvergesKHR = 6023,
|
||||||
|
FPFastMathDefault = 6028,
|
||||||
StreamingInterfaceINTEL = 6154,
|
StreamingInterfaceINTEL = 6154,
|
||||||
|
RegisterMapInterfaceINTEL = 6160,
|
||||||
NamedBarrierCountINTEL = 6417,
|
NamedBarrierCountINTEL = 6417,
|
||||||
|
MaximumRegistersINTEL = 6461,
|
||||||
|
MaximumRegistersIdINTEL = 6462,
|
||||||
|
NamedMaximumRegistersINTEL = 6463,
|
||||||
}
|
}
|
||||||
|
|
||||||
[AllowDuplicates, CRepr] public enum StorageClass
|
[AllowDuplicates, CRepr] public enum StorageClass
|
||||||
@@ -211,6 +232,9 @@ namespace Spv
|
|||||||
AtomicCounter = 10,
|
AtomicCounter = 10,
|
||||||
Image = 11,
|
Image = 11,
|
||||||
StorageBuffer = 12,
|
StorageBuffer = 12,
|
||||||
|
TileImageEXT = 4172,
|
||||||
|
NodePayloadAMDX = 5068,
|
||||||
|
NodeOutputPayloadAMDX = 5076,
|
||||||
CallableDataKHR = 5328,
|
CallableDataKHR = 5328,
|
||||||
CallableDataNV = 5328,
|
CallableDataNV = 5328,
|
||||||
IncomingCallableDataKHR = 5329,
|
IncomingCallableDataKHR = 5329,
|
||||||
@@ -241,6 +265,7 @@ namespace Spv
|
|||||||
Rect = 4,
|
Rect = 4,
|
||||||
Buffer = 5,
|
Buffer = 5,
|
||||||
SubpassData = 6,
|
SubpassData = 6,
|
||||||
|
TileImageDataEXT = 4173,
|
||||||
}
|
}
|
||||||
|
|
||||||
[AllowDuplicates, CRepr] public enum SamplerAddressingMode
|
[AllowDuplicates, CRepr] public enum SamplerAddressingMode
|
||||||
@@ -347,6 +372,8 @@ namespace Spv
|
|||||||
Float = 14,
|
Float = 14,
|
||||||
UnormInt24 = 15,
|
UnormInt24 = 15,
|
||||||
UnormInt101010_2 = 16,
|
UnormInt101010_2 = 16,
|
||||||
|
UnsignedIntRaw10EXT = 19,
|
||||||
|
UnsignedIntRaw12EXT = 20,
|
||||||
}
|
}
|
||||||
|
|
||||||
[AllowDuplicates, CRepr] public enum ImageOperandsShift
|
[AllowDuplicates, CRepr] public enum ImageOperandsShift
|
||||||
@@ -405,8 +432,11 @@ namespace Spv
|
|||||||
NSZ = 2,
|
NSZ = 2,
|
||||||
AllowRecip = 3,
|
AllowRecip = 3,
|
||||||
Fast = 4,
|
Fast = 4,
|
||||||
|
AllowContract = 16,
|
||||||
AllowContractFastINTEL = 16,
|
AllowContractFastINTEL = 16,
|
||||||
|
AllowReassoc = 17,
|
||||||
AllowReassocINTEL = 17,
|
AllowReassocINTEL = 17,
|
||||||
|
AllowTransform = 18,
|
||||||
}
|
}
|
||||||
|
|
||||||
[AllowDuplicates, CRepr] public enum FPFastMathModeMask
|
[AllowDuplicates, CRepr] public enum FPFastMathModeMask
|
||||||
@@ -417,8 +447,11 @@ namespace Spv
|
|||||||
NSZ = 0x00000004,
|
NSZ = 0x00000004,
|
||||||
AllowRecip = 0x00000008,
|
AllowRecip = 0x00000008,
|
||||||
Fast = 0x00000010,
|
Fast = 0x00000010,
|
||||||
|
AllowContract = 0x00010000,
|
||||||
AllowContractFastINTEL = 0x00010000,
|
AllowContractFastINTEL = 0x00010000,
|
||||||
|
AllowReassoc = 0x00020000,
|
||||||
AllowReassocINTEL = 0x00020000,
|
AllowReassocINTEL = 0x00020000,
|
||||||
|
AllowTransform = 0x00040000,
|
||||||
}
|
}
|
||||||
|
|
||||||
[AllowDuplicates, CRepr] public enum FPRoundingMode
|
[AllowDuplicates, CRepr] public enum FPRoundingMode
|
||||||
@@ -507,7 +540,14 @@ namespace Spv
|
|||||||
MaxByteOffsetId = 47,
|
MaxByteOffsetId = 47,
|
||||||
NoSignedWrap = 4469,
|
NoSignedWrap = 4469,
|
||||||
NoUnsignedWrap = 4470,
|
NoUnsignedWrap = 4470,
|
||||||
|
WeightTextureQCOM = 4487,
|
||||||
|
BlockMatchTextureQCOM = 4488,
|
||||||
|
BlockMatchSamplerQCOM = 4499,
|
||||||
ExplicitInterpAMD = 4999,
|
ExplicitInterpAMD = 4999,
|
||||||
|
NodeSharesPayloadLimitsWithAMDX = 5019,
|
||||||
|
NodeMaxPayloadsAMDX = 5020,
|
||||||
|
TrackFinishWritingAMDX = 5078,
|
||||||
|
PayloadNodeNameAMDX = 5091,
|
||||||
OverrideCoverageNV = 5248,
|
OverrideCoverageNV = 5248,
|
||||||
PassthroughNV = 5250,
|
PassthroughNV = 5250,
|
||||||
ViewportRelativeNV = 5252,
|
ViewportRelativeNV = 5252,
|
||||||
@@ -557,6 +597,9 @@ namespace Spv
|
|||||||
MergeINTEL = 5834,
|
MergeINTEL = 5834,
|
||||||
BankBitsINTEL = 5835,
|
BankBitsINTEL = 5835,
|
||||||
ForcePow2DepthINTEL = 5836,
|
ForcePow2DepthINTEL = 5836,
|
||||||
|
StridesizeINTEL = 5883,
|
||||||
|
WordsizeINTEL = 5884,
|
||||||
|
TrueDualPortINTEL = 5885,
|
||||||
BurstCoalesceINTEL = 5899,
|
BurstCoalesceINTEL = 5899,
|
||||||
CacheSizeINTEL = 5900,
|
CacheSizeINTEL = 5900,
|
||||||
DontStaticallyCoalesceINTEL = 5901,
|
DontStaticallyCoalesceINTEL = 5901,
|
||||||
@@ -575,6 +618,24 @@ namespace Spv
|
|||||||
SingleElementVectorINTEL = 6085,
|
SingleElementVectorINTEL = 6085,
|
||||||
VectorComputeCallableFunctionINTEL = 6087,
|
VectorComputeCallableFunctionINTEL = 6087,
|
||||||
MediaBlockIOINTEL = 6140,
|
MediaBlockIOINTEL = 6140,
|
||||||
|
StallFreeINTEL = 6151,
|
||||||
|
FPMaxErrorDecorationINTEL = 6170,
|
||||||
|
LatencyControlLabelINTEL = 6172,
|
||||||
|
LatencyControlConstraintINTEL = 6173,
|
||||||
|
ConduitKernelArgumentINTEL = 6175,
|
||||||
|
RegisterMapKernelArgumentINTEL = 6176,
|
||||||
|
MMHostInterfaceAddressWidthINTEL = 6177,
|
||||||
|
MMHostInterfaceDataWidthINTEL = 6178,
|
||||||
|
MMHostInterfaceLatencyINTEL = 6179,
|
||||||
|
MMHostInterfaceReadWriteModeINTEL = 6180,
|
||||||
|
MMHostInterfaceMaxBurstINTEL = 6181,
|
||||||
|
MMHostInterfaceWaitRequestINTEL = 6182,
|
||||||
|
StableKernelArgumentINTEL = 6183,
|
||||||
|
HostAccessINTEL = 6188,
|
||||||
|
InitModeINTEL = 6190,
|
||||||
|
ImplementInRegisterMapINTEL = 6191,
|
||||||
|
CacheControlLoadINTEL = 6442,
|
||||||
|
CacheControlStoreINTEL = 6443,
|
||||||
}
|
}
|
||||||
|
|
||||||
[AllowDuplicates, CRepr] public enum BuiltIn
|
[AllowDuplicates, CRepr] public enum BuiltIn
|
||||||
@@ -650,6 +711,8 @@ namespace Spv
|
|||||||
BaryCoordSmoothSampleAMD = 4997,
|
BaryCoordSmoothSampleAMD = 4997,
|
||||||
BaryCoordPullModelAMD = 4998,
|
BaryCoordPullModelAMD = 4998,
|
||||||
FragStencilRefEXT = 5014,
|
FragStencilRefEXT = 5014,
|
||||||
|
CoalescedInputCountAMDX = 5021,
|
||||||
|
ShaderIndexAMDX = 5073,
|
||||||
ViewportMaskNV = 5253,
|
ViewportMaskNV = 5253,
|
||||||
SecondaryPositionNV = 5257,
|
SecondaryPositionNV = 5257,
|
||||||
SecondaryViewportMaskNV = 5258,
|
SecondaryViewportMaskNV = 5258,
|
||||||
@@ -702,6 +765,9 @@ namespace Spv
|
|||||||
HitKindKHR = 5333,
|
HitKindKHR = 5333,
|
||||||
HitKindNV = 5333,
|
HitKindNV = 5333,
|
||||||
CurrentRayTimeNV = 5334,
|
CurrentRayTimeNV = 5334,
|
||||||
|
HitTriangleVertexPositionsKHR = 5335,
|
||||||
|
HitMicroTriangleVertexPositionsNV = 5337,
|
||||||
|
HitMicroTriangleVertexBarycentricsNV = 5344,
|
||||||
IncomingRayFlagsKHR = 5351,
|
IncomingRayFlagsKHR = 5351,
|
||||||
IncomingRayFlagsNV = 5351,
|
IncomingRayFlagsNV = 5351,
|
||||||
RayGeometryIndexKHR = 5352,
|
RayGeometryIndexKHR = 5352,
|
||||||
@@ -709,6 +775,8 @@ namespace Spv
|
|||||||
SMCountNV = 5375,
|
SMCountNV = 5375,
|
||||||
WarpIDNV = 5376,
|
WarpIDNV = 5376,
|
||||||
SMIDNV = 5377,
|
SMIDNV = 5377,
|
||||||
|
HitKindFrontFacingMicroTriangleNV = 5405,
|
||||||
|
HitKindBackFacingMicroTriangleNV = 5406,
|
||||||
CullMaskKHR = 6021,
|
CullMaskKHR = 6021,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -979,6 +1047,9 @@ namespace Spv
|
|||||||
ShaderViewportIndex = 70,
|
ShaderViewportIndex = 70,
|
||||||
UniformDecoration = 71,
|
UniformDecoration = 71,
|
||||||
CoreBuiltinsARM = 4165,
|
CoreBuiltinsARM = 4165,
|
||||||
|
TileImageColorReadAccessEXT = 4166,
|
||||||
|
TileImageDepthReadAccessEXT = 4167,
|
||||||
|
TileImageStencilReadAccessEXT = 4168,
|
||||||
FragmentShadingRateKHR = 4422,
|
FragmentShadingRateKHR = 4422,
|
||||||
SubgroupBallotKHR = 4423,
|
SubgroupBallotKHR = 4423,
|
||||||
DrawParameters = 4427,
|
DrawParameters = 4427,
|
||||||
@@ -1010,6 +1081,10 @@ namespace Spv
|
|||||||
RayQueryKHR = 4472,
|
RayQueryKHR = 4472,
|
||||||
RayTraversalPrimitiveCullingKHR = 4478,
|
RayTraversalPrimitiveCullingKHR = 4478,
|
||||||
RayTracingKHR = 4479,
|
RayTracingKHR = 4479,
|
||||||
|
TextureSampleWeightedQCOM = 4484,
|
||||||
|
TextureBoxFilterQCOM = 4485,
|
||||||
|
TextureBlockMatchQCOM = 4486,
|
||||||
|
TextureBlockMatch2QCOM = 4498,
|
||||||
Float16ImageAMD = 5008,
|
Float16ImageAMD = 5008,
|
||||||
ImageGatherBiasLodAMD = 5009,
|
ImageGatherBiasLodAMD = 5009,
|
||||||
FragmentMaskAMD = 5010,
|
FragmentMaskAMD = 5010,
|
||||||
@@ -1017,6 +1092,8 @@ namespace Spv
|
|||||||
ImageReadWriteLodAMD = 5015,
|
ImageReadWriteLodAMD = 5015,
|
||||||
Int64ImageEXT = 5016,
|
Int64ImageEXT = 5016,
|
||||||
ShaderClockKHR = 5055,
|
ShaderClockKHR = 5055,
|
||||||
|
ShaderEnqueueAMDX = 5067,
|
||||||
|
QuadControlKHR = 5087,
|
||||||
SampleMaskOverrideCoverageNV = 5249,
|
SampleMaskOverrideCoverageNV = 5249,
|
||||||
GeometryShaderPassthroughNV = 5251,
|
GeometryShaderPassthroughNV = 5251,
|
||||||
ShaderViewportIndexLayerEXT = 5254,
|
ShaderViewportIndexLayerEXT = 5254,
|
||||||
@@ -1058,6 +1135,7 @@ namespace Spv
|
|||||||
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||||
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||||
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||||
|
RayTracingPositionFetchKHR = 5336,
|
||||||
RayTracingNV = 5340,
|
RayTracingNV = 5340,
|
||||||
RayTracingMotionBlurNV = 5341,
|
RayTracingMotionBlurNV = 5341,
|
||||||
VulkanMemoryModel = 5345,
|
VulkanMemoryModel = 5345,
|
||||||
@@ -1075,9 +1153,14 @@ namespace Spv
|
|||||||
FragmentShaderPixelInterlockEXT = 5378,
|
FragmentShaderPixelInterlockEXT = 5378,
|
||||||
DemoteToHelperInvocation = 5379,
|
DemoteToHelperInvocation = 5379,
|
||||||
DemoteToHelperInvocationEXT = 5379,
|
DemoteToHelperInvocationEXT = 5379,
|
||||||
|
DisplacementMicromapNV = 5380,
|
||||||
RayTracingOpacityMicromapEXT = 5381,
|
RayTracingOpacityMicromapEXT = 5381,
|
||||||
ShaderInvocationReorderNV = 5383,
|
ShaderInvocationReorderNV = 5383,
|
||||||
BindlessTextureNV = 5390,
|
BindlessTextureNV = 5390,
|
||||||
|
RayQueryPositionFetchKHR = 5391,
|
||||||
|
AtomicFloat16VectorNV = 5404,
|
||||||
|
RayTracingDisplacementMicromapNV = 5409,
|
||||||
|
RawAccessChainsNV = 5414,
|
||||||
SubgroupShuffleINTEL = 5568,
|
SubgroupShuffleINTEL = 5568,
|
||||||
SubgroupBufferBlockIOINTEL = 5569,
|
SubgroupBufferBlockIOINTEL = 5569,
|
||||||
SubgroupImageBlockIOINTEL = 5570,
|
SubgroupImageBlockIOINTEL = 5570,
|
||||||
@@ -1129,16 +1212,29 @@ namespace Spv
|
|||||||
DotProduct = 6019,
|
DotProduct = 6019,
|
||||||
DotProductKHR = 6019,
|
DotProductKHR = 6019,
|
||||||
RayCullMaskKHR = 6020,
|
RayCullMaskKHR = 6020,
|
||||||
|
CooperativeMatrixKHR = 6022,
|
||||||
BitInstructions = 6025,
|
BitInstructions = 6025,
|
||||||
GroupNonUniformRotateKHR = 6026,
|
GroupNonUniformRotateKHR = 6026,
|
||||||
|
FloatControls2 = 6029,
|
||||||
AtomicFloat32AddEXT = 6033,
|
AtomicFloat32AddEXT = 6033,
|
||||||
AtomicFloat64AddEXT = 6034,
|
AtomicFloat64AddEXT = 6034,
|
||||||
LongConstantCompositeINTEL = 6089,
|
LongCompositesINTEL = 6089,
|
||||||
OptNoneINTEL = 6094,
|
OptNoneINTEL = 6094,
|
||||||
AtomicFloat16AddEXT = 6095,
|
AtomicFloat16AddEXT = 6095,
|
||||||
DebugInfoModuleINTEL = 6114,
|
DebugInfoModuleINTEL = 6114,
|
||||||
|
BFloat16ConversionINTEL = 6115,
|
||||||
SplitBarrierINTEL = 6141,
|
SplitBarrierINTEL = 6141,
|
||||||
|
FPGAClusterAttributesV2INTEL = 6150,
|
||||||
|
FPGAKernelAttributesv2INTEL = 6161,
|
||||||
|
FPMaxErrorINTEL = 6169,
|
||||||
|
FPGALatencyControlINTEL = 6171,
|
||||||
|
FPGAArgumentInterfacesINTEL = 6174,
|
||||||
|
GlobalVariableHostAccessINTEL = 6187,
|
||||||
|
GlobalVariableFPGADecorationsINTEL = 6189,
|
||||||
GroupUniformArithmeticKHR = 6400,
|
GroupUniformArithmeticKHR = 6400,
|
||||||
|
MaskedGatherScatterINTEL = 6427,
|
||||||
|
CacheControlsINTEL = 6441,
|
||||||
|
RegisterLimitsINTEL = 6460,
|
||||||
}
|
}
|
||||||
|
|
||||||
[AllowDuplicates, CRepr] public enum RayFlagsShift
|
[AllowDuplicates, CRepr] public enum RayFlagsShift
|
||||||
@@ -1246,6 +1342,87 @@ namespace Spv
|
|||||||
PackedVectorFormat4x8BitKHR = 0,
|
PackedVectorFormat4x8BitKHR = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[AllowDuplicates, CRepr] public enum CooperativeMatrixOperandsShift
|
||||||
|
{
|
||||||
|
MatrixASignedComponentsKHR = 0,
|
||||||
|
MatrixBSignedComponentsKHR = 1,
|
||||||
|
MatrixCSignedComponentsKHR = 2,
|
||||||
|
MatrixResultSignedComponentsKHR = 3,
|
||||||
|
SaturatingAccumulationKHR = 4,
|
||||||
|
}
|
||||||
|
|
||||||
|
[AllowDuplicates, CRepr] public enum CooperativeMatrixOperandsMask
|
||||||
|
{
|
||||||
|
MaskNone = 0,
|
||||||
|
MatrixASignedComponentsKHR = 0x00000001,
|
||||||
|
MatrixBSignedComponentsKHR = 0x00000002,
|
||||||
|
MatrixCSignedComponentsKHR = 0x00000004,
|
||||||
|
MatrixResultSignedComponentsKHR = 0x00000008,
|
||||||
|
SaturatingAccumulationKHR = 0x00000010,
|
||||||
|
}
|
||||||
|
|
||||||
|
[AllowDuplicates, CRepr] public enum CooperativeMatrixLayout
|
||||||
|
{
|
||||||
|
RowMajorKHR = 0,
|
||||||
|
ColumnMajorKHR = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
[AllowDuplicates, CRepr] public enum CooperativeMatrixUse
|
||||||
|
{
|
||||||
|
MatrixAKHR = 0,
|
||||||
|
MatrixBKHR = 1,
|
||||||
|
MatrixAccumulatorKHR = 2,
|
||||||
|
}
|
||||||
|
|
||||||
|
[AllowDuplicates, CRepr] public enum InitializationModeQualifier
|
||||||
|
{
|
||||||
|
InitOnDeviceReprogramINTEL = 0,
|
||||||
|
InitOnDeviceResetINTEL = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
[AllowDuplicates, CRepr] public enum HostAccessQualifier
|
||||||
|
{
|
||||||
|
NoneINTEL = 0,
|
||||||
|
ReadINTEL = 1,
|
||||||
|
WriteINTEL = 2,
|
||||||
|
ReadWriteINTEL = 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
[AllowDuplicates, CRepr] public enum LoadCacheControl
|
||||||
|
{
|
||||||
|
UncachedINTEL = 0,
|
||||||
|
CachedINTEL = 1,
|
||||||
|
StreamingINTEL = 2,
|
||||||
|
InvalidateAfterReadINTEL = 3,
|
||||||
|
ConstCachedINTEL = 4,
|
||||||
|
}
|
||||||
|
|
||||||
|
[AllowDuplicates, CRepr] public enum StoreCacheControl
|
||||||
|
{
|
||||||
|
UncachedINTEL = 0,
|
||||||
|
WriteThroughINTEL = 1,
|
||||||
|
WriteBackINTEL = 2,
|
||||||
|
StreamingINTEL = 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
[AllowDuplicates, CRepr] public enum NamedMaximumNumberOfRegisters
|
||||||
|
{
|
||||||
|
AutoINTEL = 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
[AllowDuplicates, CRepr] public enum RawAccessChainOperandsShift
|
||||||
|
{
|
||||||
|
RobustnessPerComponentNV = 0,
|
||||||
|
RobustnessPerElementNV = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
[AllowDuplicates, CRepr] public enum RawAccessChainOperandsMask
|
||||||
|
{
|
||||||
|
MaskNone = 0,
|
||||||
|
RobustnessPerComponentNV = 0x00000001,
|
||||||
|
RobustnessPerElementNV = 0x00000002,
|
||||||
|
}
|
||||||
|
|
||||||
[AllowDuplicates, CRepr] public enum Op
|
[AllowDuplicates, CRepr] public enum Op
|
||||||
{
|
{
|
||||||
OpNop = 0,
|
OpNop = 0,
|
||||||
@@ -1592,6 +1769,9 @@ namespace Spv
|
|||||||
OpPtrEqual = 401,
|
OpPtrEqual = 401,
|
||||||
OpPtrNotEqual = 402,
|
OpPtrNotEqual = 402,
|
||||||
OpPtrDiff = 403,
|
OpPtrDiff = 403,
|
||||||
|
OpColorAttachmentReadEXT = 4160,
|
||||||
|
OpDepthAttachmentReadEXT = 4161,
|
||||||
|
OpStencilAttachmentReadEXT = 4162,
|
||||||
OpTerminateInvocation = 4416,
|
OpTerminateInvocation = 4416,
|
||||||
OpSubgroupBallotKHR = 4421,
|
OpSubgroupBallotKHR = 4421,
|
||||||
OpSubgroupFirstInvocationKHR = 4422,
|
OpSubgroupFirstInvocationKHR = 4422,
|
||||||
@@ -1617,6 +1797,11 @@ namespace Spv
|
|||||||
OpUDotAccSatKHR = 4454,
|
OpUDotAccSatKHR = 4454,
|
||||||
OpSUDotAccSat = 4455,
|
OpSUDotAccSat = 4455,
|
||||||
OpSUDotAccSatKHR = 4455,
|
OpSUDotAccSatKHR = 4455,
|
||||||
|
OpTypeCooperativeMatrixKHR = 4456,
|
||||||
|
OpCooperativeMatrixLoadKHR = 4457,
|
||||||
|
OpCooperativeMatrixStoreKHR = 4458,
|
||||||
|
OpCooperativeMatrixMulAddKHR = 4459,
|
||||||
|
OpCooperativeMatrixLengthKHR = 4460,
|
||||||
OpTypeRayQueryKHR = 4472,
|
OpTypeRayQueryKHR = 4472,
|
||||||
OpRayQueryInitializeKHR = 4473,
|
OpRayQueryInitializeKHR = 4473,
|
||||||
OpRayQueryTerminateKHR = 4474,
|
OpRayQueryTerminateKHR = 4474,
|
||||||
@@ -1624,6 +1809,14 @@ namespace Spv
|
|||||||
OpRayQueryConfirmIntersectionKHR = 4476,
|
OpRayQueryConfirmIntersectionKHR = 4476,
|
||||||
OpRayQueryProceedKHR = 4477,
|
OpRayQueryProceedKHR = 4477,
|
||||||
OpRayQueryGetIntersectionTypeKHR = 4479,
|
OpRayQueryGetIntersectionTypeKHR = 4479,
|
||||||
|
OpImageSampleWeightedQCOM = 4480,
|
||||||
|
OpImageBoxFilterQCOM = 4481,
|
||||||
|
OpImageBlockMatchSSDQCOM = 4482,
|
||||||
|
OpImageBlockMatchSADQCOM = 4483,
|
||||||
|
OpImageBlockMatchWindowSSDQCOM = 4500,
|
||||||
|
OpImageBlockMatchWindowSADQCOM = 4501,
|
||||||
|
OpImageBlockMatchGatherSSDQCOM = 4502,
|
||||||
|
OpImageBlockMatchGatherSADQCOM = 4503,
|
||||||
OpGroupIAddNonUniformAMD = 5000,
|
OpGroupIAddNonUniformAMD = 5000,
|
||||||
OpGroupFAddNonUniformAMD = 5001,
|
OpGroupFAddNonUniformAMD = 5001,
|
||||||
OpGroupFMinNonUniformAMD = 5002,
|
OpGroupFMinNonUniformAMD = 5002,
|
||||||
@@ -1635,6 +1828,11 @@ namespace Spv
|
|||||||
OpFragmentMaskFetchAMD = 5011,
|
OpFragmentMaskFetchAMD = 5011,
|
||||||
OpFragmentFetchAMD = 5012,
|
OpFragmentFetchAMD = 5012,
|
||||||
OpReadClockKHR = 5056,
|
OpReadClockKHR = 5056,
|
||||||
|
OpFinalizeNodePayloadsAMDX = 5075,
|
||||||
|
OpFinishWritingNodePayloadAMDX = 5078,
|
||||||
|
OpInitializeNodePayloadsAMDX = 5090,
|
||||||
|
OpGroupNonUniformQuadAllKHR = 5110,
|
||||||
|
OpGroupNonUniformQuadAnyKHR = 5111,
|
||||||
OpHitObjectRecordHitMotionNV = 5249,
|
OpHitObjectRecordHitMotionNV = 5249,
|
||||||
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||||
OpHitObjectRecordMissMotionNV = 5251,
|
OpHitObjectRecordMissMotionNV = 5251,
|
||||||
@@ -1673,6 +1871,8 @@ namespace Spv
|
|||||||
OpSetMeshOutputsEXT = 5295,
|
OpSetMeshOutputsEXT = 5295,
|
||||||
OpGroupNonUniformPartitionNV = 5296,
|
OpGroupNonUniformPartitionNV = 5296,
|
||||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||||
|
OpFetchMicroTriangleVertexPositionNV = 5300,
|
||||||
|
OpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||||
OpReportIntersectionKHR = 5334,
|
OpReportIntersectionKHR = 5334,
|
||||||
OpReportIntersectionNV = 5334,
|
OpReportIntersectionNV = 5334,
|
||||||
OpIgnoreIntersectionNV = 5335,
|
OpIgnoreIntersectionNV = 5335,
|
||||||
@@ -1680,6 +1880,7 @@ namespace Spv
|
|||||||
OpTraceNV = 5337,
|
OpTraceNV = 5337,
|
||||||
OpTraceMotionNV = 5338,
|
OpTraceMotionNV = 5338,
|
||||||
OpTraceRayMotionNV = 5339,
|
OpTraceRayMotionNV = 5339,
|
||||||
|
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||||
OpTypeAccelerationStructureKHR = 5341,
|
OpTypeAccelerationStructureKHR = 5341,
|
||||||
OpTypeAccelerationStructureNV = 5341,
|
OpTypeAccelerationStructureNV = 5341,
|
||||||
OpExecuteCallableNV = 5344,
|
OpExecuteCallableNV = 5344,
|
||||||
@@ -1700,6 +1901,7 @@ namespace Spv
|
|||||||
OpConvertUToSampledImageNV = 5395,
|
OpConvertUToSampledImageNV = 5395,
|
||||||
OpConvertSampledImageToUNV = 5396,
|
OpConvertSampledImageToUNV = 5396,
|
||||||
OpSamplerImageAddressingModeNV = 5397,
|
OpSamplerImageAddressingModeNV = 5397,
|
||||||
|
OpRawAccessChainNV = 5398,
|
||||||
OpSubgroupShuffleINTEL = 5571,
|
OpSubgroupShuffleINTEL = 5571,
|
||||||
OpSubgroupShuffleDownINTEL = 5572,
|
OpSubgroupShuffleDownINTEL = 5572,
|
||||||
OpSubgroupShuffleUpINTEL = 5573,
|
OpSubgroupShuffleUpINTEL = 5573,
|
||||||
@@ -1941,6 +2143,9 @@ namespace Spv
|
|||||||
OpTypeStructContinuedINTEL = 6090,
|
OpTypeStructContinuedINTEL = 6090,
|
||||||
OpConstantCompositeContinuedINTEL = 6091,
|
OpConstantCompositeContinuedINTEL = 6091,
|
||||||
OpSpecConstantCompositeContinuedINTEL = 6092,
|
OpSpecConstantCompositeContinuedINTEL = 6092,
|
||||||
|
OpCompositeConstructContinuedINTEL = 6096,
|
||||||
|
OpConvertFToBF16INTEL = 6116,
|
||||||
|
OpConvertBF16ToFINTEL = 6117,
|
||||||
OpControlBarrierArriveINTEL = 6142,
|
OpControlBarrierArriveINTEL = 6142,
|
||||||
OpControlBarrierWaitINTEL = 6143,
|
OpControlBarrierWaitINTEL = 6143,
|
||||||
OpGroupIMulKHR = 6401,
|
OpGroupIMulKHR = 6401,
|
||||||
@@ -1951,6 +2156,8 @@ namespace Spv
|
|||||||
OpGroupLogicalAndKHR = 6406,
|
OpGroupLogicalAndKHR = 6406,
|
||||||
OpGroupLogicalOrKHR = 6407,
|
OpGroupLogicalOrKHR = 6407,
|
||||||
OpGroupLogicalXorKHR = 6408,
|
OpGroupLogicalXorKHR = 6408,
|
||||||
|
OpMaskedGatherINTEL = 6428,
|
||||||
|
OpMaskedScatterINTEL = 6429,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2607
-685
File diff suppressed because it is too large
Load Diff
+209
-2
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2014-2020 The Khronos Group Inc.
|
// Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and/or associated documentation files (the "Materials"),
|
// of this software and/or associated documentation files (the "Materials"),
|
||||||
@@ -65,6 +65,11 @@ namespace Spv
|
|||||||
HLSL = 5,
|
HLSL = 5,
|
||||||
CPP_for_OpenCL = 6,
|
CPP_for_OpenCL = 6,
|
||||||
SYCL = 7,
|
SYCL = 7,
|
||||||
|
HERO_C = 8,
|
||||||
|
NZSL = 9,
|
||||||
|
WGSL = 10,
|
||||||
|
Slang = 11,
|
||||||
|
Zig = 12,
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum ExecutionModel
|
public enum ExecutionModel
|
||||||
@@ -152,6 +157,9 @@ namespace Spv
|
|||||||
SubgroupsPerWorkgroupId = 37,
|
SubgroupsPerWorkgroupId = 37,
|
||||||
LocalSizeId = 38,
|
LocalSizeId = 38,
|
||||||
LocalSizeHintId = 39,
|
LocalSizeHintId = 39,
|
||||||
|
NonCoherentColorAttachmentReadEXT = 4169,
|
||||||
|
NonCoherentDepthAttachmentReadEXT = 4170,
|
||||||
|
NonCoherentStencilAttachmentReadEXT = 4171,
|
||||||
SubgroupUniformControlFlowKHR = 4421,
|
SubgroupUniformControlFlowKHR = 4421,
|
||||||
PostDepthCoverage = 4446,
|
PostDepthCoverage = 4446,
|
||||||
DenormPreserve = 4459,
|
DenormPreserve = 4459,
|
||||||
@@ -161,12 +169,19 @@ namespace Spv
|
|||||||
RoundingModeRTZ = 4463,
|
RoundingModeRTZ = 4463,
|
||||||
EarlyAndLateFragmentTestsAMD = 5017,
|
EarlyAndLateFragmentTestsAMD = 5017,
|
||||||
StencilRefReplacingEXT = 5027,
|
StencilRefReplacingEXT = 5027,
|
||||||
|
CoalescingAMDX = 5069,
|
||||||
|
MaxNodeRecursionAMDX = 5071,
|
||||||
|
StaticNumWorkgroupsAMDX = 5072,
|
||||||
|
ShaderIndexAMDX = 5073,
|
||||||
|
MaxNumWorkgroupsAMDX = 5077,
|
||||||
StencilRefUnchangedFrontAMD = 5079,
|
StencilRefUnchangedFrontAMD = 5079,
|
||||||
StencilRefGreaterFrontAMD = 5080,
|
StencilRefGreaterFrontAMD = 5080,
|
||||||
StencilRefLessFrontAMD = 5081,
|
StencilRefLessFrontAMD = 5081,
|
||||||
StencilRefUnchangedBackAMD = 5082,
|
StencilRefUnchangedBackAMD = 5082,
|
||||||
StencilRefGreaterBackAMD = 5083,
|
StencilRefGreaterBackAMD = 5083,
|
||||||
StencilRefLessBackAMD = 5084,
|
StencilRefLessBackAMD = 5084,
|
||||||
|
QuadDerivativesKHR = 5088,
|
||||||
|
RequireFullQuadsKHR = 5089,
|
||||||
OutputLinesEXT = 5269,
|
OutputLinesEXT = 5269,
|
||||||
OutputLinesNV = 5269,
|
OutputLinesNV = 5269,
|
||||||
OutputPrimitivesEXT = 5270,
|
OutputPrimitivesEXT = 5270,
|
||||||
@@ -191,8 +206,14 @@ namespace Spv
|
|||||||
NoGlobalOffsetINTEL = 5895,
|
NoGlobalOffsetINTEL = 5895,
|
||||||
NumSIMDWorkitemsINTEL = 5896,
|
NumSIMDWorkitemsINTEL = 5896,
|
||||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
SchedulerTargetFmaxMhzINTEL = 5903,
|
||||||
|
MaximallyReconvergesKHR = 6023,
|
||||||
|
FPFastMathDefault = 6028,
|
||||||
StreamingInterfaceINTEL = 6154,
|
StreamingInterfaceINTEL = 6154,
|
||||||
|
RegisterMapInterfaceINTEL = 6160,
|
||||||
NamedBarrierCountINTEL = 6417,
|
NamedBarrierCountINTEL = 6417,
|
||||||
|
MaximumRegistersINTEL = 6461,
|
||||||
|
MaximumRegistersIdINTEL = 6462,
|
||||||
|
NamedMaximumRegistersINTEL = 6463,
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum StorageClass
|
public enum StorageClass
|
||||||
@@ -210,6 +231,9 @@ namespace Spv
|
|||||||
AtomicCounter = 10,
|
AtomicCounter = 10,
|
||||||
Image = 11,
|
Image = 11,
|
||||||
StorageBuffer = 12,
|
StorageBuffer = 12,
|
||||||
|
TileImageEXT = 4172,
|
||||||
|
NodePayloadAMDX = 5068,
|
||||||
|
NodeOutputPayloadAMDX = 5076,
|
||||||
CallableDataKHR = 5328,
|
CallableDataKHR = 5328,
|
||||||
CallableDataNV = 5328,
|
CallableDataNV = 5328,
|
||||||
IncomingCallableDataKHR = 5329,
|
IncomingCallableDataKHR = 5329,
|
||||||
@@ -240,6 +264,7 @@ namespace Spv
|
|||||||
Rect = 4,
|
Rect = 4,
|
||||||
Buffer = 5,
|
Buffer = 5,
|
||||||
SubpassData = 6,
|
SubpassData = 6,
|
||||||
|
TileImageDataEXT = 4173,
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum SamplerAddressingMode
|
public enum SamplerAddressingMode
|
||||||
@@ -346,6 +371,8 @@ namespace Spv
|
|||||||
Float = 14,
|
Float = 14,
|
||||||
UnormInt24 = 15,
|
UnormInt24 = 15,
|
||||||
UnormInt101010_2 = 16,
|
UnormInt101010_2 = 16,
|
||||||
|
UnsignedIntRaw10EXT = 19,
|
||||||
|
UnsignedIntRaw12EXT = 20,
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum ImageOperandsShift
|
public enum ImageOperandsShift
|
||||||
@@ -404,8 +431,11 @@ namespace Spv
|
|||||||
NSZ = 2,
|
NSZ = 2,
|
||||||
AllowRecip = 3,
|
AllowRecip = 3,
|
||||||
Fast = 4,
|
Fast = 4,
|
||||||
|
AllowContract = 16,
|
||||||
AllowContractFastINTEL = 16,
|
AllowContractFastINTEL = 16,
|
||||||
|
AllowReassoc = 17,
|
||||||
AllowReassocINTEL = 17,
|
AllowReassocINTEL = 17,
|
||||||
|
AllowTransform = 18,
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum FPFastMathModeMask
|
public enum FPFastMathModeMask
|
||||||
@@ -416,8 +446,11 @@ namespace Spv
|
|||||||
NSZ = 0x00000004,
|
NSZ = 0x00000004,
|
||||||
AllowRecip = 0x00000008,
|
AllowRecip = 0x00000008,
|
||||||
Fast = 0x00000010,
|
Fast = 0x00000010,
|
||||||
|
AllowContract = 0x00010000,
|
||||||
AllowContractFastINTEL = 0x00010000,
|
AllowContractFastINTEL = 0x00010000,
|
||||||
|
AllowReassoc = 0x00020000,
|
||||||
AllowReassocINTEL = 0x00020000,
|
AllowReassocINTEL = 0x00020000,
|
||||||
|
AllowTransform = 0x00040000,
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum FPRoundingMode
|
public enum FPRoundingMode
|
||||||
@@ -506,7 +539,14 @@ namespace Spv
|
|||||||
MaxByteOffsetId = 47,
|
MaxByteOffsetId = 47,
|
||||||
NoSignedWrap = 4469,
|
NoSignedWrap = 4469,
|
||||||
NoUnsignedWrap = 4470,
|
NoUnsignedWrap = 4470,
|
||||||
|
WeightTextureQCOM = 4487,
|
||||||
|
BlockMatchTextureQCOM = 4488,
|
||||||
|
BlockMatchSamplerQCOM = 4499,
|
||||||
ExplicitInterpAMD = 4999,
|
ExplicitInterpAMD = 4999,
|
||||||
|
NodeSharesPayloadLimitsWithAMDX = 5019,
|
||||||
|
NodeMaxPayloadsAMDX = 5020,
|
||||||
|
TrackFinishWritingAMDX = 5078,
|
||||||
|
PayloadNodeNameAMDX = 5091,
|
||||||
OverrideCoverageNV = 5248,
|
OverrideCoverageNV = 5248,
|
||||||
PassthroughNV = 5250,
|
PassthroughNV = 5250,
|
||||||
ViewportRelativeNV = 5252,
|
ViewportRelativeNV = 5252,
|
||||||
@@ -556,6 +596,9 @@ namespace Spv
|
|||||||
MergeINTEL = 5834,
|
MergeINTEL = 5834,
|
||||||
BankBitsINTEL = 5835,
|
BankBitsINTEL = 5835,
|
||||||
ForcePow2DepthINTEL = 5836,
|
ForcePow2DepthINTEL = 5836,
|
||||||
|
StridesizeINTEL = 5883,
|
||||||
|
WordsizeINTEL = 5884,
|
||||||
|
TrueDualPortINTEL = 5885,
|
||||||
BurstCoalesceINTEL = 5899,
|
BurstCoalesceINTEL = 5899,
|
||||||
CacheSizeINTEL = 5900,
|
CacheSizeINTEL = 5900,
|
||||||
DontStaticallyCoalesceINTEL = 5901,
|
DontStaticallyCoalesceINTEL = 5901,
|
||||||
@@ -574,6 +617,24 @@ namespace Spv
|
|||||||
SingleElementVectorINTEL = 6085,
|
SingleElementVectorINTEL = 6085,
|
||||||
VectorComputeCallableFunctionINTEL = 6087,
|
VectorComputeCallableFunctionINTEL = 6087,
|
||||||
MediaBlockIOINTEL = 6140,
|
MediaBlockIOINTEL = 6140,
|
||||||
|
StallFreeINTEL = 6151,
|
||||||
|
FPMaxErrorDecorationINTEL = 6170,
|
||||||
|
LatencyControlLabelINTEL = 6172,
|
||||||
|
LatencyControlConstraintINTEL = 6173,
|
||||||
|
ConduitKernelArgumentINTEL = 6175,
|
||||||
|
RegisterMapKernelArgumentINTEL = 6176,
|
||||||
|
MMHostInterfaceAddressWidthINTEL = 6177,
|
||||||
|
MMHostInterfaceDataWidthINTEL = 6178,
|
||||||
|
MMHostInterfaceLatencyINTEL = 6179,
|
||||||
|
MMHostInterfaceReadWriteModeINTEL = 6180,
|
||||||
|
MMHostInterfaceMaxBurstINTEL = 6181,
|
||||||
|
MMHostInterfaceWaitRequestINTEL = 6182,
|
||||||
|
StableKernelArgumentINTEL = 6183,
|
||||||
|
HostAccessINTEL = 6188,
|
||||||
|
InitModeINTEL = 6190,
|
||||||
|
ImplementInRegisterMapINTEL = 6191,
|
||||||
|
CacheControlLoadINTEL = 6442,
|
||||||
|
CacheControlStoreINTEL = 6443,
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum BuiltIn
|
public enum BuiltIn
|
||||||
@@ -649,6 +710,8 @@ namespace Spv
|
|||||||
BaryCoordSmoothSampleAMD = 4997,
|
BaryCoordSmoothSampleAMD = 4997,
|
||||||
BaryCoordPullModelAMD = 4998,
|
BaryCoordPullModelAMD = 4998,
|
||||||
FragStencilRefEXT = 5014,
|
FragStencilRefEXT = 5014,
|
||||||
|
CoalescedInputCountAMDX = 5021,
|
||||||
|
ShaderIndexAMDX = 5073,
|
||||||
ViewportMaskNV = 5253,
|
ViewportMaskNV = 5253,
|
||||||
SecondaryPositionNV = 5257,
|
SecondaryPositionNV = 5257,
|
||||||
SecondaryViewportMaskNV = 5258,
|
SecondaryViewportMaskNV = 5258,
|
||||||
@@ -701,6 +764,9 @@ namespace Spv
|
|||||||
HitKindKHR = 5333,
|
HitKindKHR = 5333,
|
||||||
HitKindNV = 5333,
|
HitKindNV = 5333,
|
||||||
CurrentRayTimeNV = 5334,
|
CurrentRayTimeNV = 5334,
|
||||||
|
HitTriangleVertexPositionsKHR = 5335,
|
||||||
|
HitMicroTriangleVertexPositionsNV = 5337,
|
||||||
|
HitMicroTriangleVertexBarycentricsNV = 5344,
|
||||||
IncomingRayFlagsKHR = 5351,
|
IncomingRayFlagsKHR = 5351,
|
||||||
IncomingRayFlagsNV = 5351,
|
IncomingRayFlagsNV = 5351,
|
||||||
RayGeometryIndexKHR = 5352,
|
RayGeometryIndexKHR = 5352,
|
||||||
@@ -708,6 +774,8 @@ namespace Spv
|
|||||||
SMCountNV = 5375,
|
SMCountNV = 5375,
|
||||||
WarpIDNV = 5376,
|
WarpIDNV = 5376,
|
||||||
SMIDNV = 5377,
|
SMIDNV = 5377,
|
||||||
|
HitKindFrontFacingMicroTriangleNV = 5405,
|
||||||
|
HitKindBackFacingMicroTriangleNV = 5406,
|
||||||
CullMaskKHR = 6021,
|
CullMaskKHR = 6021,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -978,6 +1046,9 @@ namespace Spv
|
|||||||
ShaderViewportIndex = 70,
|
ShaderViewportIndex = 70,
|
||||||
UniformDecoration = 71,
|
UniformDecoration = 71,
|
||||||
CoreBuiltinsARM = 4165,
|
CoreBuiltinsARM = 4165,
|
||||||
|
TileImageColorReadAccessEXT = 4166,
|
||||||
|
TileImageDepthReadAccessEXT = 4167,
|
||||||
|
TileImageStencilReadAccessEXT = 4168,
|
||||||
FragmentShadingRateKHR = 4422,
|
FragmentShadingRateKHR = 4422,
|
||||||
SubgroupBallotKHR = 4423,
|
SubgroupBallotKHR = 4423,
|
||||||
DrawParameters = 4427,
|
DrawParameters = 4427,
|
||||||
@@ -1009,6 +1080,10 @@ namespace Spv
|
|||||||
RayQueryKHR = 4472,
|
RayQueryKHR = 4472,
|
||||||
RayTraversalPrimitiveCullingKHR = 4478,
|
RayTraversalPrimitiveCullingKHR = 4478,
|
||||||
RayTracingKHR = 4479,
|
RayTracingKHR = 4479,
|
||||||
|
TextureSampleWeightedQCOM = 4484,
|
||||||
|
TextureBoxFilterQCOM = 4485,
|
||||||
|
TextureBlockMatchQCOM = 4486,
|
||||||
|
TextureBlockMatch2QCOM = 4498,
|
||||||
Float16ImageAMD = 5008,
|
Float16ImageAMD = 5008,
|
||||||
ImageGatherBiasLodAMD = 5009,
|
ImageGatherBiasLodAMD = 5009,
|
||||||
FragmentMaskAMD = 5010,
|
FragmentMaskAMD = 5010,
|
||||||
@@ -1016,6 +1091,8 @@ namespace Spv
|
|||||||
ImageReadWriteLodAMD = 5015,
|
ImageReadWriteLodAMD = 5015,
|
||||||
Int64ImageEXT = 5016,
|
Int64ImageEXT = 5016,
|
||||||
ShaderClockKHR = 5055,
|
ShaderClockKHR = 5055,
|
||||||
|
ShaderEnqueueAMDX = 5067,
|
||||||
|
QuadControlKHR = 5087,
|
||||||
SampleMaskOverrideCoverageNV = 5249,
|
SampleMaskOverrideCoverageNV = 5249,
|
||||||
GeometryShaderPassthroughNV = 5251,
|
GeometryShaderPassthroughNV = 5251,
|
||||||
ShaderViewportIndexLayerEXT = 5254,
|
ShaderViewportIndexLayerEXT = 5254,
|
||||||
@@ -1057,6 +1134,7 @@ namespace Spv
|
|||||||
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||||
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||||
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||||
|
RayTracingPositionFetchKHR = 5336,
|
||||||
RayTracingNV = 5340,
|
RayTracingNV = 5340,
|
||||||
RayTracingMotionBlurNV = 5341,
|
RayTracingMotionBlurNV = 5341,
|
||||||
VulkanMemoryModel = 5345,
|
VulkanMemoryModel = 5345,
|
||||||
@@ -1074,9 +1152,14 @@ namespace Spv
|
|||||||
FragmentShaderPixelInterlockEXT = 5378,
|
FragmentShaderPixelInterlockEXT = 5378,
|
||||||
DemoteToHelperInvocation = 5379,
|
DemoteToHelperInvocation = 5379,
|
||||||
DemoteToHelperInvocationEXT = 5379,
|
DemoteToHelperInvocationEXT = 5379,
|
||||||
|
DisplacementMicromapNV = 5380,
|
||||||
RayTracingOpacityMicromapEXT = 5381,
|
RayTracingOpacityMicromapEXT = 5381,
|
||||||
ShaderInvocationReorderNV = 5383,
|
ShaderInvocationReorderNV = 5383,
|
||||||
BindlessTextureNV = 5390,
|
BindlessTextureNV = 5390,
|
||||||
|
RayQueryPositionFetchKHR = 5391,
|
||||||
|
AtomicFloat16VectorNV = 5404,
|
||||||
|
RayTracingDisplacementMicromapNV = 5409,
|
||||||
|
RawAccessChainsNV = 5414,
|
||||||
SubgroupShuffleINTEL = 5568,
|
SubgroupShuffleINTEL = 5568,
|
||||||
SubgroupBufferBlockIOINTEL = 5569,
|
SubgroupBufferBlockIOINTEL = 5569,
|
||||||
SubgroupImageBlockIOINTEL = 5570,
|
SubgroupImageBlockIOINTEL = 5570,
|
||||||
@@ -1128,16 +1211,29 @@ namespace Spv
|
|||||||
DotProduct = 6019,
|
DotProduct = 6019,
|
||||||
DotProductKHR = 6019,
|
DotProductKHR = 6019,
|
||||||
RayCullMaskKHR = 6020,
|
RayCullMaskKHR = 6020,
|
||||||
|
CooperativeMatrixKHR = 6022,
|
||||||
BitInstructions = 6025,
|
BitInstructions = 6025,
|
||||||
GroupNonUniformRotateKHR = 6026,
|
GroupNonUniformRotateKHR = 6026,
|
||||||
|
FloatControls2 = 6029,
|
||||||
AtomicFloat32AddEXT = 6033,
|
AtomicFloat32AddEXT = 6033,
|
||||||
AtomicFloat64AddEXT = 6034,
|
AtomicFloat64AddEXT = 6034,
|
||||||
LongConstantCompositeINTEL = 6089,
|
LongCompositesINTEL = 6089,
|
||||||
OptNoneINTEL = 6094,
|
OptNoneINTEL = 6094,
|
||||||
AtomicFloat16AddEXT = 6095,
|
AtomicFloat16AddEXT = 6095,
|
||||||
DebugInfoModuleINTEL = 6114,
|
DebugInfoModuleINTEL = 6114,
|
||||||
|
BFloat16ConversionINTEL = 6115,
|
||||||
SplitBarrierINTEL = 6141,
|
SplitBarrierINTEL = 6141,
|
||||||
|
FPGAClusterAttributesV2INTEL = 6150,
|
||||||
|
FPGAKernelAttributesv2INTEL = 6161,
|
||||||
|
FPMaxErrorINTEL = 6169,
|
||||||
|
FPGALatencyControlINTEL = 6171,
|
||||||
|
FPGAArgumentInterfacesINTEL = 6174,
|
||||||
|
GlobalVariableHostAccessINTEL = 6187,
|
||||||
|
GlobalVariableFPGADecorationsINTEL = 6189,
|
||||||
GroupUniformArithmeticKHR = 6400,
|
GroupUniformArithmeticKHR = 6400,
|
||||||
|
MaskedGatherScatterINTEL = 6427,
|
||||||
|
CacheControlsINTEL = 6441,
|
||||||
|
RegisterLimitsINTEL = 6460,
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum RayFlagsShift
|
public enum RayFlagsShift
|
||||||
@@ -1245,6 +1341,87 @@ namespace Spv
|
|||||||
PackedVectorFormat4x8BitKHR = 0,
|
PackedVectorFormat4x8BitKHR = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum CooperativeMatrixOperandsShift
|
||||||
|
{
|
||||||
|
MatrixASignedComponentsKHR = 0,
|
||||||
|
MatrixBSignedComponentsKHR = 1,
|
||||||
|
MatrixCSignedComponentsKHR = 2,
|
||||||
|
MatrixResultSignedComponentsKHR = 3,
|
||||||
|
SaturatingAccumulationKHR = 4,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum CooperativeMatrixOperandsMask
|
||||||
|
{
|
||||||
|
MaskNone = 0,
|
||||||
|
MatrixASignedComponentsKHR = 0x00000001,
|
||||||
|
MatrixBSignedComponentsKHR = 0x00000002,
|
||||||
|
MatrixCSignedComponentsKHR = 0x00000004,
|
||||||
|
MatrixResultSignedComponentsKHR = 0x00000008,
|
||||||
|
SaturatingAccumulationKHR = 0x00000010,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum CooperativeMatrixLayout
|
||||||
|
{
|
||||||
|
RowMajorKHR = 0,
|
||||||
|
ColumnMajorKHR = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum CooperativeMatrixUse
|
||||||
|
{
|
||||||
|
MatrixAKHR = 0,
|
||||||
|
MatrixBKHR = 1,
|
||||||
|
MatrixAccumulatorKHR = 2,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum InitializationModeQualifier
|
||||||
|
{
|
||||||
|
InitOnDeviceReprogramINTEL = 0,
|
||||||
|
InitOnDeviceResetINTEL = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum HostAccessQualifier
|
||||||
|
{
|
||||||
|
NoneINTEL = 0,
|
||||||
|
ReadINTEL = 1,
|
||||||
|
WriteINTEL = 2,
|
||||||
|
ReadWriteINTEL = 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum LoadCacheControl
|
||||||
|
{
|
||||||
|
UncachedINTEL = 0,
|
||||||
|
CachedINTEL = 1,
|
||||||
|
StreamingINTEL = 2,
|
||||||
|
InvalidateAfterReadINTEL = 3,
|
||||||
|
ConstCachedINTEL = 4,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum StoreCacheControl
|
||||||
|
{
|
||||||
|
UncachedINTEL = 0,
|
||||||
|
WriteThroughINTEL = 1,
|
||||||
|
WriteBackINTEL = 2,
|
||||||
|
StreamingINTEL = 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum NamedMaximumNumberOfRegisters
|
||||||
|
{
|
||||||
|
AutoINTEL = 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum RawAccessChainOperandsShift
|
||||||
|
{
|
||||||
|
RobustnessPerComponentNV = 0,
|
||||||
|
RobustnessPerElementNV = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum RawAccessChainOperandsMask
|
||||||
|
{
|
||||||
|
MaskNone = 0,
|
||||||
|
RobustnessPerComponentNV = 0x00000001,
|
||||||
|
RobustnessPerElementNV = 0x00000002,
|
||||||
|
}
|
||||||
|
|
||||||
public enum Op
|
public enum Op
|
||||||
{
|
{
|
||||||
OpNop = 0,
|
OpNop = 0,
|
||||||
@@ -1591,6 +1768,9 @@ namespace Spv
|
|||||||
OpPtrEqual = 401,
|
OpPtrEqual = 401,
|
||||||
OpPtrNotEqual = 402,
|
OpPtrNotEqual = 402,
|
||||||
OpPtrDiff = 403,
|
OpPtrDiff = 403,
|
||||||
|
OpColorAttachmentReadEXT = 4160,
|
||||||
|
OpDepthAttachmentReadEXT = 4161,
|
||||||
|
OpStencilAttachmentReadEXT = 4162,
|
||||||
OpTerminateInvocation = 4416,
|
OpTerminateInvocation = 4416,
|
||||||
OpSubgroupBallotKHR = 4421,
|
OpSubgroupBallotKHR = 4421,
|
||||||
OpSubgroupFirstInvocationKHR = 4422,
|
OpSubgroupFirstInvocationKHR = 4422,
|
||||||
@@ -1616,6 +1796,11 @@ namespace Spv
|
|||||||
OpUDotAccSatKHR = 4454,
|
OpUDotAccSatKHR = 4454,
|
||||||
OpSUDotAccSat = 4455,
|
OpSUDotAccSat = 4455,
|
||||||
OpSUDotAccSatKHR = 4455,
|
OpSUDotAccSatKHR = 4455,
|
||||||
|
OpTypeCooperativeMatrixKHR = 4456,
|
||||||
|
OpCooperativeMatrixLoadKHR = 4457,
|
||||||
|
OpCooperativeMatrixStoreKHR = 4458,
|
||||||
|
OpCooperativeMatrixMulAddKHR = 4459,
|
||||||
|
OpCooperativeMatrixLengthKHR = 4460,
|
||||||
OpTypeRayQueryKHR = 4472,
|
OpTypeRayQueryKHR = 4472,
|
||||||
OpRayQueryInitializeKHR = 4473,
|
OpRayQueryInitializeKHR = 4473,
|
||||||
OpRayQueryTerminateKHR = 4474,
|
OpRayQueryTerminateKHR = 4474,
|
||||||
@@ -1623,6 +1808,14 @@ namespace Spv
|
|||||||
OpRayQueryConfirmIntersectionKHR = 4476,
|
OpRayQueryConfirmIntersectionKHR = 4476,
|
||||||
OpRayQueryProceedKHR = 4477,
|
OpRayQueryProceedKHR = 4477,
|
||||||
OpRayQueryGetIntersectionTypeKHR = 4479,
|
OpRayQueryGetIntersectionTypeKHR = 4479,
|
||||||
|
OpImageSampleWeightedQCOM = 4480,
|
||||||
|
OpImageBoxFilterQCOM = 4481,
|
||||||
|
OpImageBlockMatchSSDQCOM = 4482,
|
||||||
|
OpImageBlockMatchSADQCOM = 4483,
|
||||||
|
OpImageBlockMatchWindowSSDQCOM = 4500,
|
||||||
|
OpImageBlockMatchWindowSADQCOM = 4501,
|
||||||
|
OpImageBlockMatchGatherSSDQCOM = 4502,
|
||||||
|
OpImageBlockMatchGatherSADQCOM = 4503,
|
||||||
OpGroupIAddNonUniformAMD = 5000,
|
OpGroupIAddNonUniformAMD = 5000,
|
||||||
OpGroupFAddNonUniformAMD = 5001,
|
OpGroupFAddNonUniformAMD = 5001,
|
||||||
OpGroupFMinNonUniformAMD = 5002,
|
OpGroupFMinNonUniformAMD = 5002,
|
||||||
@@ -1634,6 +1827,11 @@ namespace Spv
|
|||||||
OpFragmentMaskFetchAMD = 5011,
|
OpFragmentMaskFetchAMD = 5011,
|
||||||
OpFragmentFetchAMD = 5012,
|
OpFragmentFetchAMD = 5012,
|
||||||
OpReadClockKHR = 5056,
|
OpReadClockKHR = 5056,
|
||||||
|
OpFinalizeNodePayloadsAMDX = 5075,
|
||||||
|
OpFinishWritingNodePayloadAMDX = 5078,
|
||||||
|
OpInitializeNodePayloadsAMDX = 5090,
|
||||||
|
OpGroupNonUniformQuadAllKHR = 5110,
|
||||||
|
OpGroupNonUniformQuadAnyKHR = 5111,
|
||||||
OpHitObjectRecordHitMotionNV = 5249,
|
OpHitObjectRecordHitMotionNV = 5249,
|
||||||
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||||
OpHitObjectRecordMissMotionNV = 5251,
|
OpHitObjectRecordMissMotionNV = 5251,
|
||||||
@@ -1672,6 +1870,8 @@ namespace Spv
|
|||||||
OpSetMeshOutputsEXT = 5295,
|
OpSetMeshOutputsEXT = 5295,
|
||||||
OpGroupNonUniformPartitionNV = 5296,
|
OpGroupNonUniformPartitionNV = 5296,
|
||||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||||
|
OpFetchMicroTriangleVertexPositionNV = 5300,
|
||||||
|
OpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||||
OpReportIntersectionKHR = 5334,
|
OpReportIntersectionKHR = 5334,
|
||||||
OpReportIntersectionNV = 5334,
|
OpReportIntersectionNV = 5334,
|
||||||
OpIgnoreIntersectionNV = 5335,
|
OpIgnoreIntersectionNV = 5335,
|
||||||
@@ -1679,6 +1879,7 @@ namespace Spv
|
|||||||
OpTraceNV = 5337,
|
OpTraceNV = 5337,
|
||||||
OpTraceMotionNV = 5338,
|
OpTraceMotionNV = 5338,
|
||||||
OpTraceRayMotionNV = 5339,
|
OpTraceRayMotionNV = 5339,
|
||||||
|
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||||
OpTypeAccelerationStructureKHR = 5341,
|
OpTypeAccelerationStructureKHR = 5341,
|
||||||
OpTypeAccelerationStructureNV = 5341,
|
OpTypeAccelerationStructureNV = 5341,
|
||||||
OpExecuteCallableNV = 5344,
|
OpExecuteCallableNV = 5344,
|
||||||
@@ -1699,6 +1900,7 @@ namespace Spv
|
|||||||
OpConvertUToSampledImageNV = 5395,
|
OpConvertUToSampledImageNV = 5395,
|
||||||
OpConvertSampledImageToUNV = 5396,
|
OpConvertSampledImageToUNV = 5396,
|
||||||
OpSamplerImageAddressingModeNV = 5397,
|
OpSamplerImageAddressingModeNV = 5397,
|
||||||
|
OpRawAccessChainNV = 5398,
|
||||||
OpSubgroupShuffleINTEL = 5571,
|
OpSubgroupShuffleINTEL = 5571,
|
||||||
OpSubgroupShuffleDownINTEL = 5572,
|
OpSubgroupShuffleDownINTEL = 5572,
|
||||||
OpSubgroupShuffleUpINTEL = 5573,
|
OpSubgroupShuffleUpINTEL = 5573,
|
||||||
@@ -1940,6 +2142,9 @@ namespace Spv
|
|||||||
OpTypeStructContinuedINTEL = 6090,
|
OpTypeStructContinuedINTEL = 6090,
|
||||||
OpConstantCompositeContinuedINTEL = 6091,
|
OpConstantCompositeContinuedINTEL = 6091,
|
||||||
OpSpecConstantCompositeContinuedINTEL = 6092,
|
OpSpecConstantCompositeContinuedINTEL = 6092,
|
||||||
|
OpCompositeConstructContinuedINTEL = 6096,
|
||||||
|
OpConvertFToBF16INTEL = 6116,
|
||||||
|
OpConvertBF16ToFINTEL = 6117,
|
||||||
OpControlBarrierArriveINTEL = 6142,
|
OpControlBarrierArriveINTEL = 6142,
|
||||||
OpControlBarrierWaitINTEL = 6143,
|
OpControlBarrierWaitINTEL = 6143,
|
||||||
OpGroupIMulKHR = 6401,
|
OpGroupIMulKHR = 6401,
|
||||||
@@ -1950,6 +2155,8 @@ namespace Spv
|
|||||||
OpGroupLogicalAndKHR = 6406,
|
OpGroupLogicalAndKHR = 6406,
|
||||||
OpGroupLogicalOrKHR = 6407,
|
OpGroupLogicalOrKHR = 6407,
|
||||||
OpGroupLogicalXorKHR = 6408,
|
OpGroupLogicalXorKHR = 6408,
|
||||||
|
OpMaskedGatherINTEL = 6428,
|
||||||
|
OpMaskedScatterINTEL = 6429,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+237
-2
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** Copyright (c) 2014-2020 The Khronos Group Inc.
|
** Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Permission is hereby granted, free of charge, to any person obtaining a copy
|
** Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
** of this software and/or associated documentation files (the "Materials"),
|
** of this software and/or associated documentation files (the "Materials"),
|
||||||
@@ -73,6 +73,11 @@ typedef enum SpvSourceLanguage_ {
|
|||||||
SpvSourceLanguageHLSL = 5,
|
SpvSourceLanguageHLSL = 5,
|
||||||
SpvSourceLanguageCPP_for_OpenCL = 6,
|
SpvSourceLanguageCPP_for_OpenCL = 6,
|
||||||
SpvSourceLanguageSYCL = 7,
|
SpvSourceLanguageSYCL = 7,
|
||||||
|
SpvSourceLanguageHERO_C = 8,
|
||||||
|
SpvSourceLanguageNZSL = 9,
|
||||||
|
SpvSourceLanguageWGSL = 10,
|
||||||
|
SpvSourceLanguageSlang = 11,
|
||||||
|
SpvSourceLanguageZig = 12,
|
||||||
SpvSourceLanguageMax = 0x7fffffff,
|
SpvSourceLanguageMax = 0x7fffffff,
|
||||||
} SpvSourceLanguage;
|
} SpvSourceLanguage;
|
||||||
|
|
||||||
@@ -160,6 +165,9 @@ typedef enum SpvExecutionMode_ {
|
|||||||
SpvExecutionModeSubgroupsPerWorkgroupId = 37,
|
SpvExecutionModeSubgroupsPerWorkgroupId = 37,
|
||||||
SpvExecutionModeLocalSizeId = 38,
|
SpvExecutionModeLocalSizeId = 38,
|
||||||
SpvExecutionModeLocalSizeHintId = 39,
|
SpvExecutionModeLocalSizeHintId = 39,
|
||||||
|
SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
|
||||||
|
SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
|
||||||
|
SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
|
||||||
SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
|
SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
|
||||||
SpvExecutionModePostDepthCoverage = 4446,
|
SpvExecutionModePostDepthCoverage = 4446,
|
||||||
SpvExecutionModeDenormPreserve = 4459,
|
SpvExecutionModeDenormPreserve = 4459,
|
||||||
@@ -169,12 +177,19 @@ typedef enum SpvExecutionMode_ {
|
|||||||
SpvExecutionModeRoundingModeRTZ = 4463,
|
SpvExecutionModeRoundingModeRTZ = 4463,
|
||||||
SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
|
SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
|
||||||
SpvExecutionModeStencilRefReplacingEXT = 5027,
|
SpvExecutionModeStencilRefReplacingEXT = 5027,
|
||||||
|
SpvExecutionModeCoalescingAMDX = 5069,
|
||||||
|
SpvExecutionModeMaxNodeRecursionAMDX = 5071,
|
||||||
|
SpvExecutionModeStaticNumWorkgroupsAMDX = 5072,
|
||||||
|
SpvExecutionModeShaderIndexAMDX = 5073,
|
||||||
|
SpvExecutionModeMaxNumWorkgroupsAMDX = 5077,
|
||||||
SpvExecutionModeStencilRefUnchangedFrontAMD = 5079,
|
SpvExecutionModeStencilRefUnchangedFrontAMD = 5079,
|
||||||
SpvExecutionModeStencilRefGreaterFrontAMD = 5080,
|
SpvExecutionModeStencilRefGreaterFrontAMD = 5080,
|
||||||
SpvExecutionModeStencilRefLessFrontAMD = 5081,
|
SpvExecutionModeStencilRefLessFrontAMD = 5081,
|
||||||
SpvExecutionModeStencilRefUnchangedBackAMD = 5082,
|
SpvExecutionModeStencilRefUnchangedBackAMD = 5082,
|
||||||
SpvExecutionModeStencilRefGreaterBackAMD = 5083,
|
SpvExecutionModeStencilRefGreaterBackAMD = 5083,
|
||||||
SpvExecutionModeStencilRefLessBackAMD = 5084,
|
SpvExecutionModeStencilRefLessBackAMD = 5084,
|
||||||
|
SpvExecutionModeQuadDerivativesKHR = 5088,
|
||||||
|
SpvExecutionModeRequireFullQuadsKHR = 5089,
|
||||||
SpvExecutionModeOutputLinesEXT = 5269,
|
SpvExecutionModeOutputLinesEXT = 5269,
|
||||||
SpvExecutionModeOutputLinesNV = 5269,
|
SpvExecutionModeOutputLinesNV = 5269,
|
||||||
SpvExecutionModeOutputPrimitivesEXT = 5270,
|
SpvExecutionModeOutputPrimitivesEXT = 5270,
|
||||||
@@ -199,8 +214,14 @@ typedef enum SpvExecutionMode_ {
|
|||||||
SpvExecutionModeNoGlobalOffsetINTEL = 5895,
|
SpvExecutionModeNoGlobalOffsetINTEL = 5895,
|
||||||
SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
|
SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
|
||||||
SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
|
SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
|
||||||
|
SpvExecutionModeMaximallyReconvergesKHR = 6023,
|
||||||
|
SpvExecutionModeFPFastMathDefault = 6028,
|
||||||
SpvExecutionModeStreamingInterfaceINTEL = 6154,
|
SpvExecutionModeStreamingInterfaceINTEL = 6154,
|
||||||
|
SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
|
||||||
SpvExecutionModeNamedBarrierCountINTEL = 6417,
|
SpvExecutionModeNamedBarrierCountINTEL = 6417,
|
||||||
|
SpvExecutionModeMaximumRegistersINTEL = 6461,
|
||||||
|
SpvExecutionModeMaximumRegistersIdINTEL = 6462,
|
||||||
|
SpvExecutionModeNamedMaximumRegistersINTEL = 6463,
|
||||||
SpvExecutionModeMax = 0x7fffffff,
|
SpvExecutionModeMax = 0x7fffffff,
|
||||||
} SpvExecutionMode;
|
} SpvExecutionMode;
|
||||||
|
|
||||||
@@ -218,6 +239,9 @@ typedef enum SpvStorageClass_ {
|
|||||||
SpvStorageClassAtomicCounter = 10,
|
SpvStorageClassAtomicCounter = 10,
|
||||||
SpvStorageClassImage = 11,
|
SpvStorageClassImage = 11,
|
||||||
SpvStorageClassStorageBuffer = 12,
|
SpvStorageClassStorageBuffer = 12,
|
||||||
|
SpvStorageClassTileImageEXT = 4172,
|
||||||
|
SpvStorageClassNodePayloadAMDX = 5068,
|
||||||
|
SpvStorageClassNodeOutputPayloadAMDX = 5076,
|
||||||
SpvStorageClassCallableDataKHR = 5328,
|
SpvStorageClassCallableDataKHR = 5328,
|
||||||
SpvStorageClassCallableDataNV = 5328,
|
SpvStorageClassCallableDataNV = 5328,
|
||||||
SpvStorageClassIncomingCallableDataKHR = 5329,
|
SpvStorageClassIncomingCallableDataKHR = 5329,
|
||||||
@@ -248,6 +272,7 @@ typedef enum SpvDim_ {
|
|||||||
SpvDimRect = 4,
|
SpvDimRect = 4,
|
||||||
SpvDimBuffer = 5,
|
SpvDimBuffer = 5,
|
||||||
SpvDimSubpassData = 6,
|
SpvDimSubpassData = 6,
|
||||||
|
SpvDimTileImageDataEXT = 4173,
|
||||||
SpvDimMax = 0x7fffffff,
|
SpvDimMax = 0x7fffffff,
|
||||||
} SpvDim;
|
} SpvDim;
|
||||||
|
|
||||||
@@ -354,6 +379,8 @@ typedef enum SpvImageChannelDataType_ {
|
|||||||
SpvImageChannelDataTypeFloat = 14,
|
SpvImageChannelDataTypeFloat = 14,
|
||||||
SpvImageChannelDataTypeUnormInt24 = 15,
|
SpvImageChannelDataTypeUnormInt24 = 15,
|
||||||
SpvImageChannelDataTypeUnormInt101010_2 = 16,
|
SpvImageChannelDataTypeUnormInt101010_2 = 16,
|
||||||
|
SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19,
|
||||||
|
SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20,
|
||||||
SpvImageChannelDataTypeMax = 0x7fffffff,
|
SpvImageChannelDataTypeMax = 0x7fffffff,
|
||||||
} SpvImageChannelDataType;
|
} SpvImageChannelDataType;
|
||||||
|
|
||||||
@@ -411,8 +438,11 @@ typedef enum SpvFPFastMathModeShift_ {
|
|||||||
SpvFPFastMathModeNSZShift = 2,
|
SpvFPFastMathModeNSZShift = 2,
|
||||||
SpvFPFastMathModeAllowRecipShift = 3,
|
SpvFPFastMathModeAllowRecipShift = 3,
|
||||||
SpvFPFastMathModeFastShift = 4,
|
SpvFPFastMathModeFastShift = 4,
|
||||||
|
SpvFPFastMathModeAllowContractShift = 16,
|
||||||
SpvFPFastMathModeAllowContractFastINTELShift = 16,
|
SpvFPFastMathModeAllowContractFastINTELShift = 16,
|
||||||
|
SpvFPFastMathModeAllowReassocShift = 17,
|
||||||
SpvFPFastMathModeAllowReassocINTELShift = 17,
|
SpvFPFastMathModeAllowReassocINTELShift = 17,
|
||||||
|
SpvFPFastMathModeAllowTransformShift = 18,
|
||||||
SpvFPFastMathModeMax = 0x7fffffff,
|
SpvFPFastMathModeMax = 0x7fffffff,
|
||||||
} SpvFPFastMathModeShift;
|
} SpvFPFastMathModeShift;
|
||||||
|
|
||||||
@@ -423,8 +453,11 @@ typedef enum SpvFPFastMathModeMask_ {
|
|||||||
SpvFPFastMathModeNSZMask = 0x00000004,
|
SpvFPFastMathModeNSZMask = 0x00000004,
|
||||||
SpvFPFastMathModeAllowRecipMask = 0x00000008,
|
SpvFPFastMathModeAllowRecipMask = 0x00000008,
|
||||||
SpvFPFastMathModeFastMask = 0x00000010,
|
SpvFPFastMathModeFastMask = 0x00000010,
|
||||||
|
SpvFPFastMathModeAllowContractMask = 0x00010000,
|
||||||
SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
|
SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
|
||||||
|
SpvFPFastMathModeAllowReassocMask = 0x00020000,
|
||||||
SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
|
SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
|
||||||
|
SpvFPFastMathModeAllowTransformMask = 0x00040000,
|
||||||
} SpvFPFastMathModeMask;
|
} SpvFPFastMathModeMask;
|
||||||
|
|
||||||
typedef enum SpvFPRoundingMode_ {
|
typedef enum SpvFPRoundingMode_ {
|
||||||
@@ -512,7 +545,14 @@ typedef enum SpvDecoration_ {
|
|||||||
SpvDecorationMaxByteOffsetId = 47,
|
SpvDecorationMaxByteOffsetId = 47,
|
||||||
SpvDecorationNoSignedWrap = 4469,
|
SpvDecorationNoSignedWrap = 4469,
|
||||||
SpvDecorationNoUnsignedWrap = 4470,
|
SpvDecorationNoUnsignedWrap = 4470,
|
||||||
|
SpvDecorationWeightTextureQCOM = 4487,
|
||||||
|
SpvDecorationBlockMatchTextureQCOM = 4488,
|
||||||
|
SpvDecorationBlockMatchSamplerQCOM = 4499,
|
||||||
SpvDecorationExplicitInterpAMD = 4999,
|
SpvDecorationExplicitInterpAMD = 4999,
|
||||||
|
SpvDecorationNodeSharesPayloadLimitsWithAMDX = 5019,
|
||||||
|
SpvDecorationNodeMaxPayloadsAMDX = 5020,
|
||||||
|
SpvDecorationTrackFinishWritingAMDX = 5078,
|
||||||
|
SpvDecorationPayloadNodeNameAMDX = 5091,
|
||||||
SpvDecorationOverrideCoverageNV = 5248,
|
SpvDecorationOverrideCoverageNV = 5248,
|
||||||
SpvDecorationPassthroughNV = 5250,
|
SpvDecorationPassthroughNV = 5250,
|
||||||
SpvDecorationViewportRelativeNV = 5252,
|
SpvDecorationViewportRelativeNV = 5252,
|
||||||
@@ -562,6 +602,9 @@ typedef enum SpvDecoration_ {
|
|||||||
SpvDecorationMergeINTEL = 5834,
|
SpvDecorationMergeINTEL = 5834,
|
||||||
SpvDecorationBankBitsINTEL = 5835,
|
SpvDecorationBankBitsINTEL = 5835,
|
||||||
SpvDecorationForcePow2DepthINTEL = 5836,
|
SpvDecorationForcePow2DepthINTEL = 5836,
|
||||||
|
SpvDecorationStridesizeINTEL = 5883,
|
||||||
|
SpvDecorationWordsizeINTEL = 5884,
|
||||||
|
SpvDecorationTrueDualPortINTEL = 5885,
|
||||||
SpvDecorationBurstCoalesceINTEL = 5899,
|
SpvDecorationBurstCoalesceINTEL = 5899,
|
||||||
SpvDecorationCacheSizeINTEL = 5900,
|
SpvDecorationCacheSizeINTEL = 5900,
|
||||||
SpvDecorationDontStaticallyCoalesceINTEL = 5901,
|
SpvDecorationDontStaticallyCoalesceINTEL = 5901,
|
||||||
@@ -580,6 +623,24 @@ typedef enum SpvDecoration_ {
|
|||||||
SpvDecorationSingleElementVectorINTEL = 6085,
|
SpvDecorationSingleElementVectorINTEL = 6085,
|
||||||
SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
|
SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
|
||||||
SpvDecorationMediaBlockIOINTEL = 6140,
|
SpvDecorationMediaBlockIOINTEL = 6140,
|
||||||
|
SpvDecorationStallFreeINTEL = 6151,
|
||||||
|
SpvDecorationFPMaxErrorDecorationINTEL = 6170,
|
||||||
|
SpvDecorationLatencyControlLabelINTEL = 6172,
|
||||||
|
SpvDecorationLatencyControlConstraintINTEL = 6173,
|
||||||
|
SpvDecorationConduitKernelArgumentINTEL = 6175,
|
||||||
|
SpvDecorationRegisterMapKernelArgumentINTEL = 6176,
|
||||||
|
SpvDecorationMMHostInterfaceAddressWidthINTEL = 6177,
|
||||||
|
SpvDecorationMMHostInterfaceDataWidthINTEL = 6178,
|
||||||
|
SpvDecorationMMHostInterfaceLatencyINTEL = 6179,
|
||||||
|
SpvDecorationMMHostInterfaceReadWriteModeINTEL = 6180,
|
||||||
|
SpvDecorationMMHostInterfaceMaxBurstINTEL = 6181,
|
||||||
|
SpvDecorationMMHostInterfaceWaitRequestINTEL = 6182,
|
||||||
|
SpvDecorationStableKernelArgumentINTEL = 6183,
|
||||||
|
SpvDecorationHostAccessINTEL = 6188,
|
||||||
|
SpvDecorationInitModeINTEL = 6190,
|
||||||
|
SpvDecorationImplementInRegisterMapINTEL = 6191,
|
||||||
|
SpvDecorationCacheControlLoadINTEL = 6442,
|
||||||
|
SpvDecorationCacheControlStoreINTEL = 6443,
|
||||||
SpvDecorationMax = 0x7fffffff,
|
SpvDecorationMax = 0x7fffffff,
|
||||||
} SpvDecoration;
|
} SpvDecoration;
|
||||||
|
|
||||||
@@ -655,6 +716,8 @@ typedef enum SpvBuiltIn_ {
|
|||||||
SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
|
SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
|
||||||
SpvBuiltInBaryCoordPullModelAMD = 4998,
|
SpvBuiltInBaryCoordPullModelAMD = 4998,
|
||||||
SpvBuiltInFragStencilRefEXT = 5014,
|
SpvBuiltInFragStencilRefEXT = 5014,
|
||||||
|
SpvBuiltInCoalescedInputCountAMDX = 5021,
|
||||||
|
SpvBuiltInShaderIndexAMDX = 5073,
|
||||||
SpvBuiltInViewportMaskNV = 5253,
|
SpvBuiltInViewportMaskNV = 5253,
|
||||||
SpvBuiltInSecondaryPositionNV = 5257,
|
SpvBuiltInSecondaryPositionNV = 5257,
|
||||||
SpvBuiltInSecondaryViewportMaskNV = 5258,
|
SpvBuiltInSecondaryViewportMaskNV = 5258,
|
||||||
@@ -707,6 +770,9 @@ typedef enum SpvBuiltIn_ {
|
|||||||
SpvBuiltInHitKindKHR = 5333,
|
SpvBuiltInHitKindKHR = 5333,
|
||||||
SpvBuiltInHitKindNV = 5333,
|
SpvBuiltInHitKindNV = 5333,
|
||||||
SpvBuiltInCurrentRayTimeNV = 5334,
|
SpvBuiltInCurrentRayTimeNV = 5334,
|
||||||
|
SpvBuiltInHitTriangleVertexPositionsKHR = 5335,
|
||||||
|
SpvBuiltInHitMicroTriangleVertexPositionsNV = 5337,
|
||||||
|
SpvBuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
|
||||||
SpvBuiltInIncomingRayFlagsKHR = 5351,
|
SpvBuiltInIncomingRayFlagsKHR = 5351,
|
||||||
SpvBuiltInIncomingRayFlagsNV = 5351,
|
SpvBuiltInIncomingRayFlagsNV = 5351,
|
||||||
SpvBuiltInRayGeometryIndexKHR = 5352,
|
SpvBuiltInRayGeometryIndexKHR = 5352,
|
||||||
@@ -714,6 +780,8 @@ typedef enum SpvBuiltIn_ {
|
|||||||
SpvBuiltInSMCountNV = 5375,
|
SpvBuiltInSMCountNV = 5375,
|
||||||
SpvBuiltInWarpIDNV = 5376,
|
SpvBuiltInWarpIDNV = 5376,
|
||||||
SpvBuiltInSMIDNV = 5377,
|
SpvBuiltInSMIDNV = 5377,
|
||||||
|
SpvBuiltInHitKindFrontFacingMicroTriangleNV = 5405,
|
||||||
|
SpvBuiltInHitKindBackFacingMicroTriangleNV = 5406,
|
||||||
SpvBuiltInCullMaskKHR = 6021,
|
SpvBuiltInCullMaskKHR = 6021,
|
||||||
SpvBuiltInMax = 0x7fffffff,
|
SpvBuiltInMax = 0x7fffffff,
|
||||||
} SpvBuiltIn;
|
} SpvBuiltIn;
|
||||||
@@ -978,6 +1046,9 @@ typedef enum SpvCapability_ {
|
|||||||
SpvCapabilityShaderViewportIndex = 70,
|
SpvCapabilityShaderViewportIndex = 70,
|
||||||
SpvCapabilityUniformDecoration = 71,
|
SpvCapabilityUniformDecoration = 71,
|
||||||
SpvCapabilityCoreBuiltinsARM = 4165,
|
SpvCapabilityCoreBuiltinsARM = 4165,
|
||||||
|
SpvCapabilityTileImageColorReadAccessEXT = 4166,
|
||||||
|
SpvCapabilityTileImageDepthReadAccessEXT = 4167,
|
||||||
|
SpvCapabilityTileImageStencilReadAccessEXT = 4168,
|
||||||
SpvCapabilityFragmentShadingRateKHR = 4422,
|
SpvCapabilityFragmentShadingRateKHR = 4422,
|
||||||
SpvCapabilitySubgroupBallotKHR = 4423,
|
SpvCapabilitySubgroupBallotKHR = 4423,
|
||||||
SpvCapabilityDrawParameters = 4427,
|
SpvCapabilityDrawParameters = 4427,
|
||||||
@@ -1009,6 +1080,10 @@ typedef enum SpvCapability_ {
|
|||||||
SpvCapabilityRayQueryKHR = 4472,
|
SpvCapabilityRayQueryKHR = 4472,
|
||||||
SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
|
SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
|
||||||
SpvCapabilityRayTracingKHR = 4479,
|
SpvCapabilityRayTracingKHR = 4479,
|
||||||
|
SpvCapabilityTextureSampleWeightedQCOM = 4484,
|
||||||
|
SpvCapabilityTextureBoxFilterQCOM = 4485,
|
||||||
|
SpvCapabilityTextureBlockMatchQCOM = 4486,
|
||||||
|
SpvCapabilityTextureBlockMatch2QCOM = 4498,
|
||||||
SpvCapabilityFloat16ImageAMD = 5008,
|
SpvCapabilityFloat16ImageAMD = 5008,
|
||||||
SpvCapabilityImageGatherBiasLodAMD = 5009,
|
SpvCapabilityImageGatherBiasLodAMD = 5009,
|
||||||
SpvCapabilityFragmentMaskAMD = 5010,
|
SpvCapabilityFragmentMaskAMD = 5010,
|
||||||
@@ -1016,6 +1091,8 @@ typedef enum SpvCapability_ {
|
|||||||
SpvCapabilityImageReadWriteLodAMD = 5015,
|
SpvCapabilityImageReadWriteLodAMD = 5015,
|
||||||
SpvCapabilityInt64ImageEXT = 5016,
|
SpvCapabilityInt64ImageEXT = 5016,
|
||||||
SpvCapabilityShaderClockKHR = 5055,
|
SpvCapabilityShaderClockKHR = 5055,
|
||||||
|
SpvCapabilityShaderEnqueueAMDX = 5067,
|
||||||
|
SpvCapabilityQuadControlKHR = 5087,
|
||||||
SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
|
SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
|
||||||
SpvCapabilityGeometryShaderPassthroughNV = 5251,
|
SpvCapabilityGeometryShaderPassthroughNV = 5251,
|
||||||
SpvCapabilityShaderViewportIndexLayerEXT = 5254,
|
SpvCapabilityShaderViewportIndexLayerEXT = 5254,
|
||||||
@@ -1057,6 +1134,7 @@ typedef enum SpvCapability_ {
|
|||||||
SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||||
SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
|
SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||||
SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||||
|
SpvCapabilityRayTracingPositionFetchKHR = 5336,
|
||||||
SpvCapabilityRayTracingNV = 5340,
|
SpvCapabilityRayTracingNV = 5340,
|
||||||
SpvCapabilityRayTracingMotionBlurNV = 5341,
|
SpvCapabilityRayTracingMotionBlurNV = 5341,
|
||||||
SpvCapabilityVulkanMemoryModel = 5345,
|
SpvCapabilityVulkanMemoryModel = 5345,
|
||||||
@@ -1074,9 +1152,14 @@ typedef enum SpvCapability_ {
|
|||||||
SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
|
SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
|
||||||
SpvCapabilityDemoteToHelperInvocation = 5379,
|
SpvCapabilityDemoteToHelperInvocation = 5379,
|
||||||
SpvCapabilityDemoteToHelperInvocationEXT = 5379,
|
SpvCapabilityDemoteToHelperInvocationEXT = 5379,
|
||||||
|
SpvCapabilityDisplacementMicromapNV = 5380,
|
||||||
SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
|
SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
|
||||||
SpvCapabilityShaderInvocationReorderNV = 5383,
|
SpvCapabilityShaderInvocationReorderNV = 5383,
|
||||||
SpvCapabilityBindlessTextureNV = 5390,
|
SpvCapabilityBindlessTextureNV = 5390,
|
||||||
|
SpvCapabilityRayQueryPositionFetchKHR = 5391,
|
||||||
|
SpvCapabilityAtomicFloat16VectorNV = 5404,
|
||||||
|
SpvCapabilityRayTracingDisplacementMicromapNV = 5409,
|
||||||
|
SpvCapabilityRawAccessChainsNV = 5414,
|
||||||
SpvCapabilitySubgroupShuffleINTEL = 5568,
|
SpvCapabilitySubgroupShuffleINTEL = 5568,
|
||||||
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
|
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
|
||||||
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
|
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
|
||||||
@@ -1128,16 +1211,29 @@ typedef enum SpvCapability_ {
|
|||||||
SpvCapabilityDotProduct = 6019,
|
SpvCapabilityDotProduct = 6019,
|
||||||
SpvCapabilityDotProductKHR = 6019,
|
SpvCapabilityDotProductKHR = 6019,
|
||||||
SpvCapabilityRayCullMaskKHR = 6020,
|
SpvCapabilityRayCullMaskKHR = 6020,
|
||||||
|
SpvCapabilityCooperativeMatrixKHR = 6022,
|
||||||
SpvCapabilityBitInstructions = 6025,
|
SpvCapabilityBitInstructions = 6025,
|
||||||
SpvCapabilityGroupNonUniformRotateKHR = 6026,
|
SpvCapabilityGroupNonUniformRotateKHR = 6026,
|
||||||
|
SpvCapabilityFloatControls2 = 6029,
|
||||||
SpvCapabilityAtomicFloat32AddEXT = 6033,
|
SpvCapabilityAtomicFloat32AddEXT = 6033,
|
||||||
SpvCapabilityAtomicFloat64AddEXT = 6034,
|
SpvCapabilityAtomicFloat64AddEXT = 6034,
|
||||||
SpvCapabilityLongConstantCompositeINTEL = 6089,
|
SpvCapabilityLongCompositesINTEL = 6089,
|
||||||
SpvCapabilityOptNoneINTEL = 6094,
|
SpvCapabilityOptNoneINTEL = 6094,
|
||||||
SpvCapabilityAtomicFloat16AddEXT = 6095,
|
SpvCapabilityAtomicFloat16AddEXT = 6095,
|
||||||
SpvCapabilityDebugInfoModuleINTEL = 6114,
|
SpvCapabilityDebugInfoModuleINTEL = 6114,
|
||||||
|
SpvCapabilityBFloat16ConversionINTEL = 6115,
|
||||||
SpvCapabilitySplitBarrierINTEL = 6141,
|
SpvCapabilitySplitBarrierINTEL = 6141,
|
||||||
|
SpvCapabilityFPGAClusterAttributesV2INTEL = 6150,
|
||||||
|
SpvCapabilityFPGAKernelAttributesv2INTEL = 6161,
|
||||||
|
SpvCapabilityFPMaxErrorINTEL = 6169,
|
||||||
|
SpvCapabilityFPGALatencyControlINTEL = 6171,
|
||||||
|
SpvCapabilityFPGAArgumentInterfacesINTEL = 6174,
|
||||||
|
SpvCapabilityGlobalVariableHostAccessINTEL = 6187,
|
||||||
|
SpvCapabilityGlobalVariableFPGADecorationsINTEL = 6189,
|
||||||
SpvCapabilityGroupUniformArithmeticKHR = 6400,
|
SpvCapabilityGroupUniformArithmeticKHR = 6400,
|
||||||
|
SpvCapabilityMaskedGatherScatterINTEL = 6427,
|
||||||
|
SpvCapabilityCacheControlsINTEL = 6441,
|
||||||
|
SpvCapabilityRegisterLimitsINTEL = 6460,
|
||||||
SpvCapabilityMax = 0x7fffffff,
|
SpvCapabilityMax = 0x7fffffff,
|
||||||
} SpvCapability;
|
} SpvCapability;
|
||||||
|
|
||||||
@@ -1244,6 +1340,85 @@ typedef enum SpvPackedVectorFormat_ {
|
|||||||
SpvPackedVectorFormatMax = 0x7fffffff,
|
SpvPackedVectorFormatMax = 0x7fffffff,
|
||||||
} SpvPackedVectorFormat;
|
} SpvPackedVectorFormat;
|
||||||
|
|
||||||
|
typedef enum SpvCooperativeMatrixOperandsShift_ {
|
||||||
|
SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0,
|
||||||
|
SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1,
|
||||||
|
SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2,
|
||||||
|
SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3,
|
||||||
|
SpvCooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4,
|
||||||
|
SpvCooperativeMatrixOperandsMax = 0x7fffffff,
|
||||||
|
} SpvCooperativeMatrixOperandsShift;
|
||||||
|
|
||||||
|
typedef enum SpvCooperativeMatrixOperandsMask_ {
|
||||||
|
SpvCooperativeMatrixOperandsMaskNone = 0,
|
||||||
|
SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001,
|
||||||
|
SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002,
|
||||||
|
SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004,
|
||||||
|
SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008,
|
||||||
|
SpvCooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010,
|
||||||
|
} SpvCooperativeMatrixOperandsMask;
|
||||||
|
|
||||||
|
typedef enum SpvCooperativeMatrixLayout_ {
|
||||||
|
SpvCooperativeMatrixLayoutRowMajorKHR = 0,
|
||||||
|
SpvCooperativeMatrixLayoutColumnMajorKHR = 1,
|
||||||
|
SpvCooperativeMatrixLayoutMax = 0x7fffffff,
|
||||||
|
} SpvCooperativeMatrixLayout;
|
||||||
|
|
||||||
|
typedef enum SpvCooperativeMatrixUse_ {
|
||||||
|
SpvCooperativeMatrixUseMatrixAKHR = 0,
|
||||||
|
SpvCooperativeMatrixUseMatrixBKHR = 1,
|
||||||
|
SpvCooperativeMatrixUseMatrixAccumulatorKHR = 2,
|
||||||
|
SpvCooperativeMatrixUseMax = 0x7fffffff,
|
||||||
|
} SpvCooperativeMatrixUse;
|
||||||
|
|
||||||
|
typedef enum SpvInitializationModeQualifier_ {
|
||||||
|
SpvInitializationModeQualifierInitOnDeviceReprogramINTEL = 0,
|
||||||
|
SpvInitializationModeQualifierInitOnDeviceResetINTEL = 1,
|
||||||
|
SpvInitializationModeQualifierMax = 0x7fffffff,
|
||||||
|
} SpvInitializationModeQualifier;
|
||||||
|
|
||||||
|
typedef enum SpvHostAccessQualifier_ {
|
||||||
|
SpvHostAccessQualifierNoneINTEL = 0,
|
||||||
|
SpvHostAccessQualifierReadINTEL = 1,
|
||||||
|
SpvHostAccessQualifierWriteINTEL = 2,
|
||||||
|
SpvHostAccessQualifierReadWriteINTEL = 3,
|
||||||
|
SpvHostAccessQualifierMax = 0x7fffffff,
|
||||||
|
} SpvHostAccessQualifier;
|
||||||
|
|
||||||
|
typedef enum SpvLoadCacheControl_ {
|
||||||
|
SpvLoadCacheControlUncachedINTEL = 0,
|
||||||
|
SpvLoadCacheControlCachedINTEL = 1,
|
||||||
|
SpvLoadCacheControlStreamingINTEL = 2,
|
||||||
|
SpvLoadCacheControlInvalidateAfterReadINTEL = 3,
|
||||||
|
SpvLoadCacheControlConstCachedINTEL = 4,
|
||||||
|
SpvLoadCacheControlMax = 0x7fffffff,
|
||||||
|
} SpvLoadCacheControl;
|
||||||
|
|
||||||
|
typedef enum SpvStoreCacheControl_ {
|
||||||
|
SpvStoreCacheControlUncachedINTEL = 0,
|
||||||
|
SpvStoreCacheControlWriteThroughINTEL = 1,
|
||||||
|
SpvStoreCacheControlWriteBackINTEL = 2,
|
||||||
|
SpvStoreCacheControlStreamingINTEL = 3,
|
||||||
|
SpvStoreCacheControlMax = 0x7fffffff,
|
||||||
|
} SpvStoreCacheControl;
|
||||||
|
|
||||||
|
typedef enum SpvNamedMaximumNumberOfRegisters_ {
|
||||||
|
SpvNamedMaximumNumberOfRegistersAutoINTEL = 0,
|
||||||
|
SpvNamedMaximumNumberOfRegistersMax = 0x7fffffff,
|
||||||
|
} SpvNamedMaximumNumberOfRegisters;
|
||||||
|
|
||||||
|
typedef enum SpvRawAccessChainOperandsShift_ {
|
||||||
|
SpvRawAccessChainOperandsRobustnessPerComponentNVShift = 0,
|
||||||
|
SpvRawAccessChainOperandsRobustnessPerElementNVShift = 1,
|
||||||
|
SpvRawAccessChainOperandsMax = 0x7fffffff,
|
||||||
|
} SpvRawAccessChainOperandsShift;
|
||||||
|
|
||||||
|
typedef enum SpvRawAccessChainOperandsMask_ {
|
||||||
|
SpvRawAccessChainOperandsMaskNone = 0,
|
||||||
|
SpvRawAccessChainOperandsRobustnessPerComponentNVMask = 0x00000001,
|
||||||
|
SpvRawAccessChainOperandsRobustnessPerElementNVMask = 0x00000002,
|
||||||
|
} SpvRawAccessChainOperandsMask;
|
||||||
|
|
||||||
typedef enum SpvOp_ {
|
typedef enum SpvOp_ {
|
||||||
SpvOpNop = 0,
|
SpvOpNop = 0,
|
||||||
SpvOpUndef = 1,
|
SpvOpUndef = 1,
|
||||||
@@ -1589,6 +1764,9 @@ typedef enum SpvOp_ {
|
|||||||
SpvOpPtrEqual = 401,
|
SpvOpPtrEqual = 401,
|
||||||
SpvOpPtrNotEqual = 402,
|
SpvOpPtrNotEqual = 402,
|
||||||
SpvOpPtrDiff = 403,
|
SpvOpPtrDiff = 403,
|
||||||
|
SpvOpColorAttachmentReadEXT = 4160,
|
||||||
|
SpvOpDepthAttachmentReadEXT = 4161,
|
||||||
|
SpvOpStencilAttachmentReadEXT = 4162,
|
||||||
SpvOpTerminateInvocation = 4416,
|
SpvOpTerminateInvocation = 4416,
|
||||||
SpvOpSubgroupBallotKHR = 4421,
|
SpvOpSubgroupBallotKHR = 4421,
|
||||||
SpvOpSubgroupFirstInvocationKHR = 4422,
|
SpvOpSubgroupFirstInvocationKHR = 4422,
|
||||||
@@ -1614,6 +1792,11 @@ typedef enum SpvOp_ {
|
|||||||
SpvOpUDotAccSatKHR = 4454,
|
SpvOpUDotAccSatKHR = 4454,
|
||||||
SpvOpSUDotAccSat = 4455,
|
SpvOpSUDotAccSat = 4455,
|
||||||
SpvOpSUDotAccSatKHR = 4455,
|
SpvOpSUDotAccSatKHR = 4455,
|
||||||
|
SpvOpTypeCooperativeMatrixKHR = 4456,
|
||||||
|
SpvOpCooperativeMatrixLoadKHR = 4457,
|
||||||
|
SpvOpCooperativeMatrixStoreKHR = 4458,
|
||||||
|
SpvOpCooperativeMatrixMulAddKHR = 4459,
|
||||||
|
SpvOpCooperativeMatrixLengthKHR = 4460,
|
||||||
SpvOpTypeRayQueryKHR = 4472,
|
SpvOpTypeRayQueryKHR = 4472,
|
||||||
SpvOpRayQueryInitializeKHR = 4473,
|
SpvOpRayQueryInitializeKHR = 4473,
|
||||||
SpvOpRayQueryTerminateKHR = 4474,
|
SpvOpRayQueryTerminateKHR = 4474,
|
||||||
@@ -1621,6 +1804,14 @@ typedef enum SpvOp_ {
|
|||||||
SpvOpRayQueryConfirmIntersectionKHR = 4476,
|
SpvOpRayQueryConfirmIntersectionKHR = 4476,
|
||||||
SpvOpRayQueryProceedKHR = 4477,
|
SpvOpRayQueryProceedKHR = 4477,
|
||||||
SpvOpRayQueryGetIntersectionTypeKHR = 4479,
|
SpvOpRayQueryGetIntersectionTypeKHR = 4479,
|
||||||
|
SpvOpImageSampleWeightedQCOM = 4480,
|
||||||
|
SpvOpImageBoxFilterQCOM = 4481,
|
||||||
|
SpvOpImageBlockMatchSSDQCOM = 4482,
|
||||||
|
SpvOpImageBlockMatchSADQCOM = 4483,
|
||||||
|
SpvOpImageBlockMatchWindowSSDQCOM = 4500,
|
||||||
|
SpvOpImageBlockMatchWindowSADQCOM = 4501,
|
||||||
|
SpvOpImageBlockMatchGatherSSDQCOM = 4502,
|
||||||
|
SpvOpImageBlockMatchGatherSADQCOM = 4503,
|
||||||
SpvOpGroupIAddNonUniformAMD = 5000,
|
SpvOpGroupIAddNonUniformAMD = 5000,
|
||||||
SpvOpGroupFAddNonUniformAMD = 5001,
|
SpvOpGroupFAddNonUniformAMD = 5001,
|
||||||
SpvOpGroupFMinNonUniformAMD = 5002,
|
SpvOpGroupFMinNonUniformAMD = 5002,
|
||||||
@@ -1632,6 +1823,11 @@ typedef enum SpvOp_ {
|
|||||||
SpvOpFragmentMaskFetchAMD = 5011,
|
SpvOpFragmentMaskFetchAMD = 5011,
|
||||||
SpvOpFragmentFetchAMD = 5012,
|
SpvOpFragmentFetchAMD = 5012,
|
||||||
SpvOpReadClockKHR = 5056,
|
SpvOpReadClockKHR = 5056,
|
||||||
|
SpvOpFinalizeNodePayloadsAMDX = 5075,
|
||||||
|
SpvOpFinishWritingNodePayloadAMDX = 5078,
|
||||||
|
SpvOpInitializeNodePayloadsAMDX = 5090,
|
||||||
|
SpvOpGroupNonUniformQuadAllKHR = 5110,
|
||||||
|
SpvOpGroupNonUniformQuadAnyKHR = 5111,
|
||||||
SpvOpHitObjectRecordHitMotionNV = 5249,
|
SpvOpHitObjectRecordHitMotionNV = 5249,
|
||||||
SpvOpHitObjectRecordHitWithIndexMotionNV = 5250,
|
SpvOpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||||
SpvOpHitObjectRecordMissMotionNV = 5251,
|
SpvOpHitObjectRecordMissMotionNV = 5251,
|
||||||
@@ -1670,6 +1866,8 @@ typedef enum SpvOp_ {
|
|||||||
SpvOpSetMeshOutputsEXT = 5295,
|
SpvOpSetMeshOutputsEXT = 5295,
|
||||||
SpvOpGroupNonUniformPartitionNV = 5296,
|
SpvOpGroupNonUniformPartitionNV = 5296,
|
||||||
SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
|
SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||||
|
SpvOpFetchMicroTriangleVertexPositionNV = 5300,
|
||||||
|
SpvOpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||||
SpvOpReportIntersectionKHR = 5334,
|
SpvOpReportIntersectionKHR = 5334,
|
||||||
SpvOpReportIntersectionNV = 5334,
|
SpvOpReportIntersectionNV = 5334,
|
||||||
SpvOpIgnoreIntersectionNV = 5335,
|
SpvOpIgnoreIntersectionNV = 5335,
|
||||||
@@ -1677,6 +1875,7 @@ typedef enum SpvOp_ {
|
|||||||
SpvOpTraceNV = 5337,
|
SpvOpTraceNV = 5337,
|
||||||
SpvOpTraceMotionNV = 5338,
|
SpvOpTraceMotionNV = 5338,
|
||||||
SpvOpTraceRayMotionNV = 5339,
|
SpvOpTraceRayMotionNV = 5339,
|
||||||
|
SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||||
SpvOpTypeAccelerationStructureKHR = 5341,
|
SpvOpTypeAccelerationStructureKHR = 5341,
|
||||||
SpvOpTypeAccelerationStructureNV = 5341,
|
SpvOpTypeAccelerationStructureNV = 5341,
|
||||||
SpvOpExecuteCallableNV = 5344,
|
SpvOpExecuteCallableNV = 5344,
|
||||||
@@ -1697,6 +1896,7 @@ typedef enum SpvOp_ {
|
|||||||
SpvOpConvertUToSampledImageNV = 5395,
|
SpvOpConvertUToSampledImageNV = 5395,
|
||||||
SpvOpConvertSampledImageToUNV = 5396,
|
SpvOpConvertSampledImageToUNV = 5396,
|
||||||
SpvOpSamplerImageAddressingModeNV = 5397,
|
SpvOpSamplerImageAddressingModeNV = 5397,
|
||||||
|
SpvOpRawAccessChainNV = 5398,
|
||||||
SpvOpSubgroupShuffleINTEL = 5571,
|
SpvOpSubgroupShuffleINTEL = 5571,
|
||||||
SpvOpSubgroupShuffleDownINTEL = 5572,
|
SpvOpSubgroupShuffleDownINTEL = 5572,
|
||||||
SpvOpSubgroupShuffleUpINTEL = 5573,
|
SpvOpSubgroupShuffleUpINTEL = 5573,
|
||||||
@@ -1938,6 +2138,9 @@ typedef enum SpvOp_ {
|
|||||||
SpvOpTypeStructContinuedINTEL = 6090,
|
SpvOpTypeStructContinuedINTEL = 6090,
|
||||||
SpvOpConstantCompositeContinuedINTEL = 6091,
|
SpvOpConstantCompositeContinuedINTEL = 6091,
|
||||||
SpvOpSpecConstantCompositeContinuedINTEL = 6092,
|
SpvOpSpecConstantCompositeContinuedINTEL = 6092,
|
||||||
|
SpvOpCompositeConstructContinuedINTEL = 6096,
|
||||||
|
SpvOpConvertFToBF16INTEL = 6116,
|
||||||
|
SpvOpConvertBF16ToFINTEL = 6117,
|
||||||
SpvOpControlBarrierArriveINTEL = 6142,
|
SpvOpControlBarrierArriveINTEL = 6142,
|
||||||
SpvOpControlBarrierWaitINTEL = 6143,
|
SpvOpControlBarrierWaitINTEL = 6143,
|
||||||
SpvOpGroupIMulKHR = 6401,
|
SpvOpGroupIMulKHR = 6401,
|
||||||
@@ -1948,6 +2151,8 @@ typedef enum SpvOp_ {
|
|||||||
SpvOpGroupLogicalAndKHR = 6406,
|
SpvOpGroupLogicalAndKHR = 6406,
|
||||||
SpvOpGroupLogicalOrKHR = 6407,
|
SpvOpGroupLogicalOrKHR = 6407,
|
||||||
SpvOpGroupLogicalXorKHR = 6408,
|
SpvOpGroupLogicalXorKHR = 6408,
|
||||||
|
SpvOpMaskedGatherINTEL = 6428,
|
||||||
|
SpvOpMaskedScatterINTEL = 6429,
|
||||||
SpvOpMax = 0x7fffffff,
|
SpvOpMax = 0x7fffffff,
|
||||||
} SpvOp;
|
} SpvOp;
|
||||||
|
|
||||||
@@ -2303,6 +2508,9 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|||||||
case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
|
case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
|
case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
|
case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
|
case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
|
case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
|
case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
@@ -2322,6 +2530,11 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|||||||
case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
|
case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
|
||||||
|
case SpvOpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case SpvOpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
|
case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
|
||||||
case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
|
case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
|
case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
|
||||||
@@ -2329,6 +2542,14 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|||||||
case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
|
case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
|
case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
|
case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
@@ -2340,6 +2561,11 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|||||||
case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
|
case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
|
case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
|
case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case SpvOpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case SpvOpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
|
case SpvOpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
|
case SpvOpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
|
case SpvOpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
@@ -2378,12 +2604,15 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|||||||
case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
|
case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
|
case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
|
case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case SpvOpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
|
case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
|
case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
|
case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
|
case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
|
case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
|
case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
|
case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
|
||||||
case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
|
case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
|
case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
|
||||||
@@ -2402,6 +2631,7 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|||||||
case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
|
case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
|
case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
|
case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case SpvOpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
@@ -2641,6 +2871,9 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|||||||
case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case SpvOpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
|
case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
@@ -2651,6 +2884,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|||||||
case SpvOpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
|
case SpvOpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
|
case SpvOpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case SpvOpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
|
case SpvOpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case SpvOpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* SPV_ENABLE_UTILITY_CODE */
|
#endif /* SPV_ENABLE_UTILITY_CODE */
|
||||||
|
|||||||
+245
-2
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2014-2020 The Khronos Group Inc.
|
// Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and/or associated documentation files (the "Materials"),
|
// of this software and/or associated documentation files (the "Materials"),
|
||||||
@@ -69,6 +69,11 @@ enum SourceLanguage {
|
|||||||
SourceLanguageHLSL = 5,
|
SourceLanguageHLSL = 5,
|
||||||
SourceLanguageCPP_for_OpenCL = 6,
|
SourceLanguageCPP_for_OpenCL = 6,
|
||||||
SourceLanguageSYCL = 7,
|
SourceLanguageSYCL = 7,
|
||||||
|
SourceLanguageHERO_C = 8,
|
||||||
|
SourceLanguageNZSL = 9,
|
||||||
|
SourceLanguageWGSL = 10,
|
||||||
|
SourceLanguageSlang = 11,
|
||||||
|
SourceLanguageZig = 12,
|
||||||
SourceLanguageMax = 0x7fffffff,
|
SourceLanguageMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -156,6 +161,9 @@ enum ExecutionMode {
|
|||||||
ExecutionModeSubgroupsPerWorkgroupId = 37,
|
ExecutionModeSubgroupsPerWorkgroupId = 37,
|
||||||
ExecutionModeLocalSizeId = 38,
|
ExecutionModeLocalSizeId = 38,
|
||||||
ExecutionModeLocalSizeHintId = 39,
|
ExecutionModeLocalSizeHintId = 39,
|
||||||
|
ExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
|
||||||
|
ExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
|
||||||
|
ExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
|
||||||
ExecutionModeSubgroupUniformControlFlowKHR = 4421,
|
ExecutionModeSubgroupUniformControlFlowKHR = 4421,
|
||||||
ExecutionModePostDepthCoverage = 4446,
|
ExecutionModePostDepthCoverage = 4446,
|
||||||
ExecutionModeDenormPreserve = 4459,
|
ExecutionModeDenormPreserve = 4459,
|
||||||
@@ -165,12 +173,19 @@ enum ExecutionMode {
|
|||||||
ExecutionModeRoundingModeRTZ = 4463,
|
ExecutionModeRoundingModeRTZ = 4463,
|
||||||
ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
|
ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
|
||||||
ExecutionModeStencilRefReplacingEXT = 5027,
|
ExecutionModeStencilRefReplacingEXT = 5027,
|
||||||
|
ExecutionModeCoalescingAMDX = 5069,
|
||||||
|
ExecutionModeMaxNodeRecursionAMDX = 5071,
|
||||||
|
ExecutionModeStaticNumWorkgroupsAMDX = 5072,
|
||||||
|
ExecutionModeShaderIndexAMDX = 5073,
|
||||||
|
ExecutionModeMaxNumWorkgroupsAMDX = 5077,
|
||||||
ExecutionModeStencilRefUnchangedFrontAMD = 5079,
|
ExecutionModeStencilRefUnchangedFrontAMD = 5079,
|
||||||
ExecutionModeStencilRefGreaterFrontAMD = 5080,
|
ExecutionModeStencilRefGreaterFrontAMD = 5080,
|
||||||
ExecutionModeStencilRefLessFrontAMD = 5081,
|
ExecutionModeStencilRefLessFrontAMD = 5081,
|
||||||
ExecutionModeStencilRefUnchangedBackAMD = 5082,
|
ExecutionModeStencilRefUnchangedBackAMD = 5082,
|
||||||
ExecutionModeStencilRefGreaterBackAMD = 5083,
|
ExecutionModeStencilRefGreaterBackAMD = 5083,
|
||||||
ExecutionModeStencilRefLessBackAMD = 5084,
|
ExecutionModeStencilRefLessBackAMD = 5084,
|
||||||
|
ExecutionModeQuadDerivativesKHR = 5088,
|
||||||
|
ExecutionModeRequireFullQuadsKHR = 5089,
|
||||||
ExecutionModeOutputLinesEXT = 5269,
|
ExecutionModeOutputLinesEXT = 5269,
|
||||||
ExecutionModeOutputLinesNV = 5269,
|
ExecutionModeOutputLinesNV = 5269,
|
||||||
ExecutionModeOutputPrimitivesEXT = 5270,
|
ExecutionModeOutputPrimitivesEXT = 5270,
|
||||||
@@ -195,8 +210,14 @@ enum ExecutionMode {
|
|||||||
ExecutionModeNoGlobalOffsetINTEL = 5895,
|
ExecutionModeNoGlobalOffsetINTEL = 5895,
|
||||||
ExecutionModeNumSIMDWorkitemsINTEL = 5896,
|
ExecutionModeNumSIMDWorkitemsINTEL = 5896,
|
||||||
ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
|
ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
|
||||||
|
ExecutionModeMaximallyReconvergesKHR = 6023,
|
||||||
|
ExecutionModeFPFastMathDefault = 6028,
|
||||||
ExecutionModeStreamingInterfaceINTEL = 6154,
|
ExecutionModeStreamingInterfaceINTEL = 6154,
|
||||||
|
ExecutionModeRegisterMapInterfaceINTEL = 6160,
|
||||||
ExecutionModeNamedBarrierCountINTEL = 6417,
|
ExecutionModeNamedBarrierCountINTEL = 6417,
|
||||||
|
ExecutionModeMaximumRegistersINTEL = 6461,
|
||||||
|
ExecutionModeMaximumRegistersIdINTEL = 6462,
|
||||||
|
ExecutionModeNamedMaximumRegistersINTEL = 6463,
|
||||||
ExecutionModeMax = 0x7fffffff,
|
ExecutionModeMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -214,6 +235,9 @@ enum StorageClass {
|
|||||||
StorageClassAtomicCounter = 10,
|
StorageClassAtomicCounter = 10,
|
||||||
StorageClassImage = 11,
|
StorageClassImage = 11,
|
||||||
StorageClassStorageBuffer = 12,
|
StorageClassStorageBuffer = 12,
|
||||||
|
StorageClassTileImageEXT = 4172,
|
||||||
|
StorageClassNodePayloadAMDX = 5068,
|
||||||
|
StorageClassNodeOutputPayloadAMDX = 5076,
|
||||||
StorageClassCallableDataKHR = 5328,
|
StorageClassCallableDataKHR = 5328,
|
||||||
StorageClassCallableDataNV = 5328,
|
StorageClassCallableDataNV = 5328,
|
||||||
StorageClassIncomingCallableDataKHR = 5329,
|
StorageClassIncomingCallableDataKHR = 5329,
|
||||||
@@ -244,6 +268,7 @@ enum Dim {
|
|||||||
DimRect = 4,
|
DimRect = 4,
|
||||||
DimBuffer = 5,
|
DimBuffer = 5,
|
||||||
DimSubpassData = 6,
|
DimSubpassData = 6,
|
||||||
|
DimTileImageDataEXT = 4173,
|
||||||
DimMax = 0x7fffffff,
|
DimMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -350,6 +375,8 @@ enum ImageChannelDataType {
|
|||||||
ImageChannelDataTypeFloat = 14,
|
ImageChannelDataTypeFloat = 14,
|
||||||
ImageChannelDataTypeUnormInt24 = 15,
|
ImageChannelDataTypeUnormInt24 = 15,
|
||||||
ImageChannelDataTypeUnormInt101010_2 = 16,
|
ImageChannelDataTypeUnormInt101010_2 = 16,
|
||||||
|
ImageChannelDataTypeUnsignedIntRaw10EXT = 19,
|
||||||
|
ImageChannelDataTypeUnsignedIntRaw12EXT = 20,
|
||||||
ImageChannelDataTypeMax = 0x7fffffff,
|
ImageChannelDataTypeMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -407,8 +434,11 @@ enum FPFastMathModeShift {
|
|||||||
FPFastMathModeNSZShift = 2,
|
FPFastMathModeNSZShift = 2,
|
||||||
FPFastMathModeAllowRecipShift = 3,
|
FPFastMathModeAllowRecipShift = 3,
|
||||||
FPFastMathModeFastShift = 4,
|
FPFastMathModeFastShift = 4,
|
||||||
|
FPFastMathModeAllowContractShift = 16,
|
||||||
FPFastMathModeAllowContractFastINTELShift = 16,
|
FPFastMathModeAllowContractFastINTELShift = 16,
|
||||||
|
FPFastMathModeAllowReassocShift = 17,
|
||||||
FPFastMathModeAllowReassocINTELShift = 17,
|
FPFastMathModeAllowReassocINTELShift = 17,
|
||||||
|
FPFastMathModeAllowTransformShift = 18,
|
||||||
FPFastMathModeMax = 0x7fffffff,
|
FPFastMathModeMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -419,8 +449,11 @@ enum FPFastMathModeMask {
|
|||||||
FPFastMathModeNSZMask = 0x00000004,
|
FPFastMathModeNSZMask = 0x00000004,
|
||||||
FPFastMathModeAllowRecipMask = 0x00000008,
|
FPFastMathModeAllowRecipMask = 0x00000008,
|
||||||
FPFastMathModeFastMask = 0x00000010,
|
FPFastMathModeFastMask = 0x00000010,
|
||||||
|
FPFastMathModeAllowContractMask = 0x00010000,
|
||||||
FPFastMathModeAllowContractFastINTELMask = 0x00010000,
|
FPFastMathModeAllowContractFastINTELMask = 0x00010000,
|
||||||
|
FPFastMathModeAllowReassocMask = 0x00020000,
|
||||||
FPFastMathModeAllowReassocINTELMask = 0x00020000,
|
FPFastMathModeAllowReassocINTELMask = 0x00020000,
|
||||||
|
FPFastMathModeAllowTransformMask = 0x00040000,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FPRoundingMode {
|
enum FPRoundingMode {
|
||||||
@@ -508,7 +541,14 @@ enum Decoration {
|
|||||||
DecorationMaxByteOffsetId = 47,
|
DecorationMaxByteOffsetId = 47,
|
||||||
DecorationNoSignedWrap = 4469,
|
DecorationNoSignedWrap = 4469,
|
||||||
DecorationNoUnsignedWrap = 4470,
|
DecorationNoUnsignedWrap = 4470,
|
||||||
|
DecorationWeightTextureQCOM = 4487,
|
||||||
|
DecorationBlockMatchTextureQCOM = 4488,
|
||||||
|
DecorationBlockMatchSamplerQCOM = 4499,
|
||||||
DecorationExplicitInterpAMD = 4999,
|
DecorationExplicitInterpAMD = 4999,
|
||||||
|
DecorationNodeSharesPayloadLimitsWithAMDX = 5019,
|
||||||
|
DecorationNodeMaxPayloadsAMDX = 5020,
|
||||||
|
DecorationTrackFinishWritingAMDX = 5078,
|
||||||
|
DecorationPayloadNodeNameAMDX = 5091,
|
||||||
DecorationOverrideCoverageNV = 5248,
|
DecorationOverrideCoverageNV = 5248,
|
||||||
DecorationPassthroughNV = 5250,
|
DecorationPassthroughNV = 5250,
|
||||||
DecorationViewportRelativeNV = 5252,
|
DecorationViewportRelativeNV = 5252,
|
||||||
@@ -558,6 +598,9 @@ enum Decoration {
|
|||||||
DecorationMergeINTEL = 5834,
|
DecorationMergeINTEL = 5834,
|
||||||
DecorationBankBitsINTEL = 5835,
|
DecorationBankBitsINTEL = 5835,
|
||||||
DecorationForcePow2DepthINTEL = 5836,
|
DecorationForcePow2DepthINTEL = 5836,
|
||||||
|
DecorationStridesizeINTEL = 5883,
|
||||||
|
DecorationWordsizeINTEL = 5884,
|
||||||
|
DecorationTrueDualPortINTEL = 5885,
|
||||||
DecorationBurstCoalesceINTEL = 5899,
|
DecorationBurstCoalesceINTEL = 5899,
|
||||||
DecorationCacheSizeINTEL = 5900,
|
DecorationCacheSizeINTEL = 5900,
|
||||||
DecorationDontStaticallyCoalesceINTEL = 5901,
|
DecorationDontStaticallyCoalesceINTEL = 5901,
|
||||||
@@ -576,6 +619,24 @@ enum Decoration {
|
|||||||
DecorationSingleElementVectorINTEL = 6085,
|
DecorationSingleElementVectorINTEL = 6085,
|
||||||
DecorationVectorComputeCallableFunctionINTEL = 6087,
|
DecorationVectorComputeCallableFunctionINTEL = 6087,
|
||||||
DecorationMediaBlockIOINTEL = 6140,
|
DecorationMediaBlockIOINTEL = 6140,
|
||||||
|
DecorationStallFreeINTEL = 6151,
|
||||||
|
DecorationFPMaxErrorDecorationINTEL = 6170,
|
||||||
|
DecorationLatencyControlLabelINTEL = 6172,
|
||||||
|
DecorationLatencyControlConstraintINTEL = 6173,
|
||||||
|
DecorationConduitKernelArgumentINTEL = 6175,
|
||||||
|
DecorationRegisterMapKernelArgumentINTEL = 6176,
|
||||||
|
DecorationMMHostInterfaceAddressWidthINTEL = 6177,
|
||||||
|
DecorationMMHostInterfaceDataWidthINTEL = 6178,
|
||||||
|
DecorationMMHostInterfaceLatencyINTEL = 6179,
|
||||||
|
DecorationMMHostInterfaceReadWriteModeINTEL = 6180,
|
||||||
|
DecorationMMHostInterfaceMaxBurstINTEL = 6181,
|
||||||
|
DecorationMMHostInterfaceWaitRequestINTEL = 6182,
|
||||||
|
DecorationStableKernelArgumentINTEL = 6183,
|
||||||
|
DecorationHostAccessINTEL = 6188,
|
||||||
|
DecorationInitModeINTEL = 6190,
|
||||||
|
DecorationImplementInRegisterMapINTEL = 6191,
|
||||||
|
DecorationCacheControlLoadINTEL = 6442,
|
||||||
|
DecorationCacheControlStoreINTEL = 6443,
|
||||||
DecorationMax = 0x7fffffff,
|
DecorationMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -651,6 +712,8 @@ enum BuiltIn {
|
|||||||
BuiltInBaryCoordSmoothSampleAMD = 4997,
|
BuiltInBaryCoordSmoothSampleAMD = 4997,
|
||||||
BuiltInBaryCoordPullModelAMD = 4998,
|
BuiltInBaryCoordPullModelAMD = 4998,
|
||||||
BuiltInFragStencilRefEXT = 5014,
|
BuiltInFragStencilRefEXT = 5014,
|
||||||
|
BuiltInCoalescedInputCountAMDX = 5021,
|
||||||
|
BuiltInShaderIndexAMDX = 5073,
|
||||||
BuiltInViewportMaskNV = 5253,
|
BuiltInViewportMaskNV = 5253,
|
||||||
BuiltInSecondaryPositionNV = 5257,
|
BuiltInSecondaryPositionNV = 5257,
|
||||||
BuiltInSecondaryViewportMaskNV = 5258,
|
BuiltInSecondaryViewportMaskNV = 5258,
|
||||||
@@ -703,6 +766,9 @@ enum BuiltIn {
|
|||||||
BuiltInHitKindKHR = 5333,
|
BuiltInHitKindKHR = 5333,
|
||||||
BuiltInHitKindNV = 5333,
|
BuiltInHitKindNV = 5333,
|
||||||
BuiltInCurrentRayTimeNV = 5334,
|
BuiltInCurrentRayTimeNV = 5334,
|
||||||
|
BuiltInHitTriangleVertexPositionsKHR = 5335,
|
||||||
|
BuiltInHitMicroTriangleVertexPositionsNV = 5337,
|
||||||
|
BuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
|
||||||
BuiltInIncomingRayFlagsKHR = 5351,
|
BuiltInIncomingRayFlagsKHR = 5351,
|
||||||
BuiltInIncomingRayFlagsNV = 5351,
|
BuiltInIncomingRayFlagsNV = 5351,
|
||||||
BuiltInRayGeometryIndexKHR = 5352,
|
BuiltInRayGeometryIndexKHR = 5352,
|
||||||
@@ -710,6 +776,8 @@ enum BuiltIn {
|
|||||||
BuiltInSMCountNV = 5375,
|
BuiltInSMCountNV = 5375,
|
||||||
BuiltInWarpIDNV = 5376,
|
BuiltInWarpIDNV = 5376,
|
||||||
BuiltInSMIDNV = 5377,
|
BuiltInSMIDNV = 5377,
|
||||||
|
BuiltInHitKindFrontFacingMicroTriangleNV = 5405,
|
||||||
|
BuiltInHitKindBackFacingMicroTriangleNV = 5406,
|
||||||
BuiltInCullMaskKHR = 6021,
|
BuiltInCullMaskKHR = 6021,
|
||||||
BuiltInMax = 0x7fffffff,
|
BuiltInMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
@@ -974,6 +1042,9 @@ enum Capability {
|
|||||||
CapabilityShaderViewportIndex = 70,
|
CapabilityShaderViewportIndex = 70,
|
||||||
CapabilityUniformDecoration = 71,
|
CapabilityUniformDecoration = 71,
|
||||||
CapabilityCoreBuiltinsARM = 4165,
|
CapabilityCoreBuiltinsARM = 4165,
|
||||||
|
CapabilityTileImageColorReadAccessEXT = 4166,
|
||||||
|
CapabilityTileImageDepthReadAccessEXT = 4167,
|
||||||
|
CapabilityTileImageStencilReadAccessEXT = 4168,
|
||||||
CapabilityFragmentShadingRateKHR = 4422,
|
CapabilityFragmentShadingRateKHR = 4422,
|
||||||
CapabilitySubgroupBallotKHR = 4423,
|
CapabilitySubgroupBallotKHR = 4423,
|
||||||
CapabilityDrawParameters = 4427,
|
CapabilityDrawParameters = 4427,
|
||||||
@@ -1005,6 +1076,10 @@ enum Capability {
|
|||||||
CapabilityRayQueryKHR = 4472,
|
CapabilityRayQueryKHR = 4472,
|
||||||
CapabilityRayTraversalPrimitiveCullingKHR = 4478,
|
CapabilityRayTraversalPrimitiveCullingKHR = 4478,
|
||||||
CapabilityRayTracingKHR = 4479,
|
CapabilityRayTracingKHR = 4479,
|
||||||
|
CapabilityTextureSampleWeightedQCOM = 4484,
|
||||||
|
CapabilityTextureBoxFilterQCOM = 4485,
|
||||||
|
CapabilityTextureBlockMatchQCOM = 4486,
|
||||||
|
CapabilityTextureBlockMatch2QCOM = 4498,
|
||||||
CapabilityFloat16ImageAMD = 5008,
|
CapabilityFloat16ImageAMD = 5008,
|
||||||
CapabilityImageGatherBiasLodAMD = 5009,
|
CapabilityImageGatherBiasLodAMD = 5009,
|
||||||
CapabilityFragmentMaskAMD = 5010,
|
CapabilityFragmentMaskAMD = 5010,
|
||||||
@@ -1012,6 +1087,8 @@ enum Capability {
|
|||||||
CapabilityImageReadWriteLodAMD = 5015,
|
CapabilityImageReadWriteLodAMD = 5015,
|
||||||
CapabilityInt64ImageEXT = 5016,
|
CapabilityInt64ImageEXT = 5016,
|
||||||
CapabilityShaderClockKHR = 5055,
|
CapabilityShaderClockKHR = 5055,
|
||||||
|
CapabilityShaderEnqueueAMDX = 5067,
|
||||||
|
CapabilityQuadControlKHR = 5087,
|
||||||
CapabilitySampleMaskOverrideCoverageNV = 5249,
|
CapabilitySampleMaskOverrideCoverageNV = 5249,
|
||||||
CapabilityGeometryShaderPassthroughNV = 5251,
|
CapabilityGeometryShaderPassthroughNV = 5251,
|
||||||
CapabilityShaderViewportIndexLayerEXT = 5254,
|
CapabilityShaderViewportIndexLayerEXT = 5254,
|
||||||
@@ -1053,6 +1130,7 @@ enum Capability {
|
|||||||
CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||||
CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
|
CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||||
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||||
|
CapabilityRayTracingPositionFetchKHR = 5336,
|
||||||
CapabilityRayTracingNV = 5340,
|
CapabilityRayTracingNV = 5340,
|
||||||
CapabilityRayTracingMotionBlurNV = 5341,
|
CapabilityRayTracingMotionBlurNV = 5341,
|
||||||
CapabilityVulkanMemoryModel = 5345,
|
CapabilityVulkanMemoryModel = 5345,
|
||||||
@@ -1070,9 +1148,14 @@ enum Capability {
|
|||||||
CapabilityFragmentShaderPixelInterlockEXT = 5378,
|
CapabilityFragmentShaderPixelInterlockEXT = 5378,
|
||||||
CapabilityDemoteToHelperInvocation = 5379,
|
CapabilityDemoteToHelperInvocation = 5379,
|
||||||
CapabilityDemoteToHelperInvocationEXT = 5379,
|
CapabilityDemoteToHelperInvocationEXT = 5379,
|
||||||
|
CapabilityDisplacementMicromapNV = 5380,
|
||||||
CapabilityRayTracingOpacityMicromapEXT = 5381,
|
CapabilityRayTracingOpacityMicromapEXT = 5381,
|
||||||
CapabilityShaderInvocationReorderNV = 5383,
|
CapabilityShaderInvocationReorderNV = 5383,
|
||||||
CapabilityBindlessTextureNV = 5390,
|
CapabilityBindlessTextureNV = 5390,
|
||||||
|
CapabilityRayQueryPositionFetchKHR = 5391,
|
||||||
|
CapabilityAtomicFloat16VectorNV = 5404,
|
||||||
|
CapabilityRayTracingDisplacementMicromapNV = 5409,
|
||||||
|
CapabilityRawAccessChainsNV = 5414,
|
||||||
CapabilitySubgroupShuffleINTEL = 5568,
|
CapabilitySubgroupShuffleINTEL = 5568,
|
||||||
CapabilitySubgroupBufferBlockIOINTEL = 5569,
|
CapabilitySubgroupBufferBlockIOINTEL = 5569,
|
||||||
CapabilitySubgroupImageBlockIOINTEL = 5570,
|
CapabilitySubgroupImageBlockIOINTEL = 5570,
|
||||||
@@ -1124,16 +1207,29 @@ enum Capability {
|
|||||||
CapabilityDotProduct = 6019,
|
CapabilityDotProduct = 6019,
|
||||||
CapabilityDotProductKHR = 6019,
|
CapabilityDotProductKHR = 6019,
|
||||||
CapabilityRayCullMaskKHR = 6020,
|
CapabilityRayCullMaskKHR = 6020,
|
||||||
|
CapabilityCooperativeMatrixKHR = 6022,
|
||||||
CapabilityBitInstructions = 6025,
|
CapabilityBitInstructions = 6025,
|
||||||
CapabilityGroupNonUniformRotateKHR = 6026,
|
CapabilityGroupNonUniformRotateKHR = 6026,
|
||||||
|
CapabilityFloatControls2 = 6029,
|
||||||
CapabilityAtomicFloat32AddEXT = 6033,
|
CapabilityAtomicFloat32AddEXT = 6033,
|
||||||
CapabilityAtomicFloat64AddEXT = 6034,
|
CapabilityAtomicFloat64AddEXT = 6034,
|
||||||
CapabilityLongConstantCompositeINTEL = 6089,
|
CapabilityLongCompositesINTEL = 6089,
|
||||||
CapabilityOptNoneINTEL = 6094,
|
CapabilityOptNoneINTEL = 6094,
|
||||||
CapabilityAtomicFloat16AddEXT = 6095,
|
CapabilityAtomicFloat16AddEXT = 6095,
|
||||||
CapabilityDebugInfoModuleINTEL = 6114,
|
CapabilityDebugInfoModuleINTEL = 6114,
|
||||||
|
CapabilityBFloat16ConversionINTEL = 6115,
|
||||||
CapabilitySplitBarrierINTEL = 6141,
|
CapabilitySplitBarrierINTEL = 6141,
|
||||||
|
CapabilityFPGAClusterAttributesV2INTEL = 6150,
|
||||||
|
CapabilityFPGAKernelAttributesv2INTEL = 6161,
|
||||||
|
CapabilityFPMaxErrorINTEL = 6169,
|
||||||
|
CapabilityFPGALatencyControlINTEL = 6171,
|
||||||
|
CapabilityFPGAArgumentInterfacesINTEL = 6174,
|
||||||
|
CapabilityGlobalVariableHostAccessINTEL = 6187,
|
||||||
|
CapabilityGlobalVariableFPGADecorationsINTEL = 6189,
|
||||||
CapabilityGroupUniformArithmeticKHR = 6400,
|
CapabilityGroupUniformArithmeticKHR = 6400,
|
||||||
|
CapabilityMaskedGatherScatterINTEL = 6427,
|
||||||
|
CapabilityCacheControlsINTEL = 6441,
|
||||||
|
CapabilityRegisterLimitsINTEL = 6460,
|
||||||
CapabilityMax = 0x7fffffff,
|
CapabilityMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1240,6 +1336,85 @@ enum PackedVectorFormat {
|
|||||||
PackedVectorFormatMax = 0x7fffffff,
|
PackedVectorFormatMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum CooperativeMatrixOperandsShift {
|
||||||
|
CooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0,
|
||||||
|
CooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1,
|
||||||
|
CooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2,
|
||||||
|
CooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3,
|
||||||
|
CooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4,
|
||||||
|
CooperativeMatrixOperandsMax = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum CooperativeMatrixOperandsMask {
|
||||||
|
CooperativeMatrixOperandsMaskNone = 0,
|
||||||
|
CooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001,
|
||||||
|
CooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002,
|
||||||
|
CooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004,
|
||||||
|
CooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008,
|
||||||
|
CooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum CooperativeMatrixLayout {
|
||||||
|
CooperativeMatrixLayoutRowMajorKHR = 0,
|
||||||
|
CooperativeMatrixLayoutColumnMajorKHR = 1,
|
||||||
|
CooperativeMatrixLayoutMax = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum CooperativeMatrixUse {
|
||||||
|
CooperativeMatrixUseMatrixAKHR = 0,
|
||||||
|
CooperativeMatrixUseMatrixBKHR = 1,
|
||||||
|
CooperativeMatrixUseMatrixAccumulatorKHR = 2,
|
||||||
|
CooperativeMatrixUseMax = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum InitializationModeQualifier {
|
||||||
|
InitializationModeQualifierInitOnDeviceReprogramINTEL = 0,
|
||||||
|
InitializationModeQualifierInitOnDeviceResetINTEL = 1,
|
||||||
|
InitializationModeQualifierMax = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum HostAccessQualifier {
|
||||||
|
HostAccessQualifierNoneINTEL = 0,
|
||||||
|
HostAccessQualifierReadINTEL = 1,
|
||||||
|
HostAccessQualifierWriteINTEL = 2,
|
||||||
|
HostAccessQualifierReadWriteINTEL = 3,
|
||||||
|
HostAccessQualifierMax = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum LoadCacheControl {
|
||||||
|
LoadCacheControlUncachedINTEL = 0,
|
||||||
|
LoadCacheControlCachedINTEL = 1,
|
||||||
|
LoadCacheControlStreamingINTEL = 2,
|
||||||
|
LoadCacheControlInvalidateAfterReadINTEL = 3,
|
||||||
|
LoadCacheControlConstCachedINTEL = 4,
|
||||||
|
LoadCacheControlMax = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum StoreCacheControl {
|
||||||
|
StoreCacheControlUncachedINTEL = 0,
|
||||||
|
StoreCacheControlWriteThroughINTEL = 1,
|
||||||
|
StoreCacheControlWriteBackINTEL = 2,
|
||||||
|
StoreCacheControlStreamingINTEL = 3,
|
||||||
|
StoreCacheControlMax = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum NamedMaximumNumberOfRegisters {
|
||||||
|
NamedMaximumNumberOfRegistersAutoINTEL = 0,
|
||||||
|
NamedMaximumNumberOfRegistersMax = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum RawAccessChainOperandsShift {
|
||||||
|
RawAccessChainOperandsRobustnessPerComponentNVShift = 0,
|
||||||
|
RawAccessChainOperandsRobustnessPerElementNVShift = 1,
|
||||||
|
RawAccessChainOperandsMax = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum RawAccessChainOperandsMask {
|
||||||
|
RawAccessChainOperandsMaskNone = 0,
|
||||||
|
RawAccessChainOperandsRobustnessPerComponentNVMask = 0x00000001,
|
||||||
|
RawAccessChainOperandsRobustnessPerElementNVMask = 0x00000002,
|
||||||
|
};
|
||||||
|
|
||||||
enum Op {
|
enum Op {
|
||||||
OpNop = 0,
|
OpNop = 0,
|
||||||
OpUndef = 1,
|
OpUndef = 1,
|
||||||
@@ -1585,6 +1760,9 @@ enum Op {
|
|||||||
OpPtrEqual = 401,
|
OpPtrEqual = 401,
|
||||||
OpPtrNotEqual = 402,
|
OpPtrNotEqual = 402,
|
||||||
OpPtrDiff = 403,
|
OpPtrDiff = 403,
|
||||||
|
OpColorAttachmentReadEXT = 4160,
|
||||||
|
OpDepthAttachmentReadEXT = 4161,
|
||||||
|
OpStencilAttachmentReadEXT = 4162,
|
||||||
OpTerminateInvocation = 4416,
|
OpTerminateInvocation = 4416,
|
||||||
OpSubgroupBallotKHR = 4421,
|
OpSubgroupBallotKHR = 4421,
|
||||||
OpSubgroupFirstInvocationKHR = 4422,
|
OpSubgroupFirstInvocationKHR = 4422,
|
||||||
@@ -1610,6 +1788,11 @@ enum Op {
|
|||||||
OpUDotAccSatKHR = 4454,
|
OpUDotAccSatKHR = 4454,
|
||||||
OpSUDotAccSat = 4455,
|
OpSUDotAccSat = 4455,
|
||||||
OpSUDotAccSatKHR = 4455,
|
OpSUDotAccSatKHR = 4455,
|
||||||
|
OpTypeCooperativeMatrixKHR = 4456,
|
||||||
|
OpCooperativeMatrixLoadKHR = 4457,
|
||||||
|
OpCooperativeMatrixStoreKHR = 4458,
|
||||||
|
OpCooperativeMatrixMulAddKHR = 4459,
|
||||||
|
OpCooperativeMatrixLengthKHR = 4460,
|
||||||
OpTypeRayQueryKHR = 4472,
|
OpTypeRayQueryKHR = 4472,
|
||||||
OpRayQueryInitializeKHR = 4473,
|
OpRayQueryInitializeKHR = 4473,
|
||||||
OpRayQueryTerminateKHR = 4474,
|
OpRayQueryTerminateKHR = 4474,
|
||||||
@@ -1617,6 +1800,14 @@ enum Op {
|
|||||||
OpRayQueryConfirmIntersectionKHR = 4476,
|
OpRayQueryConfirmIntersectionKHR = 4476,
|
||||||
OpRayQueryProceedKHR = 4477,
|
OpRayQueryProceedKHR = 4477,
|
||||||
OpRayQueryGetIntersectionTypeKHR = 4479,
|
OpRayQueryGetIntersectionTypeKHR = 4479,
|
||||||
|
OpImageSampleWeightedQCOM = 4480,
|
||||||
|
OpImageBoxFilterQCOM = 4481,
|
||||||
|
OpImageBlockMatchSSDQCOM = 4482,
|
||||||
|
OpImageBlockMatchSADQCOM = 4483,
|
||||||
|
OpImageBlockMatchWindowSSDQCOM = 4500,
|
||||||
|
OpImageBlockMatchWindowSADQCOM = 4501,
|
||||||
|
OpImageBlockMatchGatherSSDQCOM = 4502,
|
||||||
|
OpImageBlockMatchGatherSADQCOM = 4503,
|
||||||
OpGroupIAddNonUniformAMD = 5000,
|
OpGroupIAddNonUniformAMD = 5000,
|
||||||
OpGroupFAddNonUniformAMD = 5001,
|
OpGroupFAddNonUniformAMD = 5001,
|
||||||
OpGroupFMinNonUniformAMD = 5002,
|
OpGroupFMinNonUniformAMD = 5002,
|
||||||
@@ -1628,6 +1819,11 @@ enum Op {
|
|||||||
OpFragmentMaskFetchAMD = 5011,
|
OpFragmentMaskFetchAMD = 5011,
|
||||||
OpFragmentFetchAMD = 5012,
|
OpFragmentFetchAMD = 5012,
|
||||||
OpReadClockKHR = 5056,
|
OpReadClockKHR = 5056,
|
||||||
|
OpFinalizeNodePayloadsAMDX = 5075,
|
||||||
|
OpFinishWritingNodePayloadAMDX = 5078,
|
||||||
|
OpInitializeNodePayloadsAMDX = 5090,
|
||||||
|
OpGroupNonUniformQuadAllKHR = 5110,
|
||||||
|
OpGroupNonUniformQuadAnyKHR = 5111,
|
||||||
OpHitObjectRecordHitMotionNV = 5249,
|
OpHitObjectRecordHitMotionNV = 5249,
|
||||||
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||||
OpHitObjectRecordMissMotionNV = 5251,
|
OpHitObjectRecordMissMotionNV = 5251,
|
||||||
@@ -1666,6 +1862,8 @@ enum Op {
|
|||||||
OpSetMeshOutputsEXT = 5295,
|
OpSetMeshOutputsEXT = 5295,
|
||||||
OpGroupNonUniformPartitionNV = 5296,
|
OpGroupNonUniformPartitionNV = 5296,
|
||||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||||
|
OpFetchMicroTriangleVertexPositionNV = 5300,
|
||||||
|
OpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||||
OpReportIntersectionKHR = 5334,
|
OpReportIntersectionKHR = 5334,
|
||||||
OpReportIntersectionNV = 5334,
|
OpReportIntersectionNV = 5334,
|
||||||
OpIgnoreIntersectionNV = 5335,
|
OpIgnoreIntersectionNV = 5335,
|
||||||
@@ -1673,6 +1871,7 @@ enum Op {
|
|||||||
OpTraceNV = 5337,
|
OpTraceNV = 5337,
|
||||||
OpTraceMotionNV = 5338,
|
OpTraceMotionNV = 5338,
|
||||||
OpTraceRayMotionNV = 5339,
|
OpTraceRayMotionNV = 5339,
|
||||||
|
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||||
OpTypeAccelerationStructureKHR = 5341,
|
OpTypeAccelerationStructureKHR = 5341,
|
||||||
OpTypeAccelerationStructureNV = 5341,
|
OpTypeAccelerationStructureNV = 5341,
|
||||||
OpExecuteCallableNV = 5344,
|
OpExecuteCallableNV = 5344,
|
||||||
@@ -1693,6 +1892,7 @@ enum Op {
|
|||||||
OpConvertUToSampledImageNV = 5395,
|
OpConvertUToSampledImageNV = 5395,
|
||||||
OpConvertSampledImageToUNV = 5396,
|
OpConvertSampledImageToUNV = 5396,
|
||||||
OpSamplerImageAddressingModeNV = 5397,
|
OpSamplerImageAddressingModeNV = 5397,
|
||||||
|
OpRawAccessChainNV = 5398,
|
||||||
OpSubgroupShuffleINTEL = 5571,
|
OpSubgroupShuffleINTEL = 5571,
|
||||||
OpSubgroupShuffleDownINTEL = 5572,
|
OpSubgroupShuffleDownINTEL = 5572,
|
||||||
OpSubgroupShuffleUpINTEL = 5573,
|
OpSubgroupShuffleUpINTEL = 5573,
|
||||||
@@ -1934,6 +2134,9 @@ enum Op {
|
|||||||
OpTypeStructContinuedINTEL = 6090,
|
OpTypeStructContinuedINTEL = 6090,
|
||||||
OpConstantCompositeContinuedINTEL = 6091,
|
OpConstantCompositeContinuedINTEL = 6091,
|
||||||
OpSpecConstantCompositeContinuedINTEL = 6092,
|
OpSpecConstantCompositeContinuedINTEL = 6092,
|
||||||
|
OpCompositeConstructContinuedINTEL = 6096,
|
||||||
|
OpConvertFToBF16INTEL = 6116,
|
||||||
|
OpConvertBF16ToFINTEL = 6117,
|
||||||
OpControlBarrierArriveINTEL = 6142,
|
OpControlBarrierArriveINTEL = 6142,
|
||||||
OpControlBarrierWaitINTEL = 6143,
|
OpControlBarrierWaitINTEL = 6143,
|
||||||
OpGroupIMulKHR = 6401,
|
OpGroupIMulKHR = 6401,
|
||||||
@@ -1944,6 +2147,8 @@ enum Op {
|
|||||||
OpGroupLogicalAndKHR = 6406,
|
OpGroupLogicalAndKHR = 6406,
|
||||||
OpGroupLogicalOrKHR = 6407,
|
OpGroupLogicalOrKHR = 6407,
|
||||||
OpGroupLogicalXorKHR = 6408,
|
OpGroupLogicalXorKHR = 6408,
|
||||||
|
OpMaskedGatherINTEL = 6428,
|
||||||
|
OpMaskedScatterINTEL = 6429,
|
||||||
OpMax = 0x7fffffff,
|
OpMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2299,6 +2504,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
|
case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
|
case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
|
case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
|
case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
|
case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
|
case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
@@ -2318,6 +2526,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
|
case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
|
||||||
|
case OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
|
case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
|
||||||
case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
|
case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
|
case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
|
||||||
@@ -2325,6 +2538,14 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
|
case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
|
case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
|
case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
@@ -2336,6 +2557,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
|
case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
|
case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
|
case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case OpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
|
case OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
|
case OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
|
case OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
@@ -2374,12 +2600,15 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
|
case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
|
case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
|
case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
|
case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
|
case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
|
case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpTraceNV: *hasResult = false; *hasResultType = false; break;
|
case OpTraceNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
|
case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
|
case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
|
case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
|
||||||
case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
|
case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
|
case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
|
||||||
@@ -2398,6 +2627,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
|
case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
|
case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
|
case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case OpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
@@ -2637,6 +2867,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
|
case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
@@ -2647,6 +2880,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
|
case OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
|
case OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
|
case OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* SPV_ENABLE_UTILITY_CODE */
|
#endif /* SPV_ENABLE_UTILITY_CODE */
|
||||||
@@ -2693,6 +2928,14 @@ inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShad
|
|||||||
inline FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
|
inline FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
|
||||||
inline FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
|
inline FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
|
||||||
inline FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
|
inline FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
|
||||||
|
inline CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); }
|
||||||
|
inline CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); }
|
||||||
|
inline CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); }
|
||||||
|
inline CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); }
|
||||||
|
inline RawAccessChainOperandsMask operator|(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) | unsigned(b)); }
|
||||||
|
inline RawAccessChainOperandsMask operator&(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) & unsigned(b)); }
|
||||||
|
inline RawAccessChainOperandsMask operator^(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) ^ unsigned(b)); }
|
||||||
|
inline RawAccessChainOperandsMask operator~(RawAccessChainOperandsMask a) { return RawAccessChainOperandsMask(~unsigned(a)); }
|
||||||
|
|
||||||
} // end namespace spv
|
} // end namespace spv
|
||||||
|
|
||||||
|
|||||||
+285
-42
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2014-2020 The Khronos Group Inc.
|
// Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and/or associated documentation files (the "Materials"),
|
// of this software and/or associated documentation files (the "Materials"),
|
||||||
@@ -69,6 +69,11 @@ enum class SourceLanguage : unsigned {
|
|||||||
HLSL = 5,
|
HLSL = 5,
|
||||||
CPP_for_OpenCL = 6,
|
CPP_for_OpenCL = 6,
|
||||||
SYCL = 7,
|
SYCL = 7,
|
||||||
|
HERO_C = 8,
|
||||||
|
NZSL = 9,
|
||||||
|
WGSL = 10,
|
||||||
|
Slang = 11,
|
||||||
|
Zig = 12,
|
||||||
Max = 0x7fffffff,
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -156,6 +161,9 @@ enum class ExecutionMode : unsigned {
|
|||||||
SubgroupsPerWorkgroupId = 37,
|
SubgroupsPerWorkgroupId = 37,
|
||||||
LocalSizeId = 38,
|
LocalSizeId = 38,
|
||||||
LocalSizeHintId = 39,
|
LocalSizeHintId = 39,
|
||||||
|
NonCoherentColorAttachmentReadEXT = 4169,
|
||||||
|
NonCoherentDepthAttachmentReadEXT = 4170,
|
||||||
|
NonCoherentStencilAttachmentReadEXT = 4171,
|
||||||
SubgroupUniformControlFlowKHR = 4421,
|
SubgroupUniformControlFlowKHR = 4421,
|
||||||
PostDepthCoverage = 4446,
|
PostDepthCoverage = 4446,
|
||||||
DenormPreserve = 4459,
|
DenormPreserve = 4459,
|
||||||
@@ -165,12 +173,19 @@ enum class ExecutionMode : unsigned {
|
|||||||
RoundingModeRTZ = 4463,
|
RoundingModeRTZ = 4463,
|
||||||
EarlyAndLateFragmentTestsAMD = 5017,
|
EarlyAndLateFragmentTestsAMD = 5017,
|
||||||
StencilRefReplacingEXT = 5027,
|
StencilRefReplacingEXT = 5027,
|
||||||
|
CoalescingAMDX = 5069,
|
||||||
|
MaxNodeRecursionAMDX = 5071,
|
||||||
|
StaticNumWorkgroupsAMDX = 5072,
|
||||||
|
ShaderIndexAMDX = 5073,
|
||||||
|
MaxNumWorkgroupsAMDX = 5077,
|
||||||
StencilRefUnchangedFrontAMD = 5079,
|
StencilRefUnchangedFrontAMD = 5079,
|
||||||
StencilRefGreaterFrontAMD = 5080,
|
StencilRefGreaterFrontAMD = 5080,
|
||||||
StencilRefLessFrontAMD = 5081,
|
StencilRefLessFrontAMD = 5081,
|
||||||
StencilRefUnchangedBackAMD = 5082,
|
StencilRefUnchangedBackAMD = 5082,
|
||||||
StencilRefGreaterBackAMD = 5083,
|
StencilRefGreaterBackAMD = 5083,
|
||||||
StencilRefLessBackAMD = 5084,
|
StencilRefLessBackAMD = 5084,
|
||||||
|
QuadDerivativesKHR = 5088,
|
||||||
|
RequireFullQuadsKHR = 5089,
|
||||||
OutputLinesEXT = 5269,
|
OutputLinesEXT = 5269,
|
||||||
OutputLinesNV = 5269,
|
OutputLinesNV = 5269,
|
||||||
OutputPrimitivesEXT = 5270,
|
OutputPrimitivesEXT = 5270,
|
||||||
@@ -195,8 +210,14 @@ enum class ExecutionMode : unsigned {
|
|||||||
NoGlobalOffsetINTEL = 5895,
|
NoGlobalOffsetINTEL = 5895,
|
||||||
NumSIMDWorkitemsINTEL = 5896,
|
NumSIMDWorkitemsINTEL = 5896,
|
||||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
SchedulerTargetFmaxMhzINTEL = 5903,
|
||||||
|
MaximallyReconvergesKHR = 6023,
|
||||||
|
FPFastMathDefault = 6028,
|
||||||
StreamingInterfaceINTEL = 6154,
|
StreamingInterfaceINTEL = 6154,
|
||||||
|
RegisterMapInterfaceINTEL = 6160,
|
||||||
NamedBarrierCountINTEL = 6417,
|
NamedBarrierCountINTEL = 6417,
|
||||||
|
MaximumRegistersINTEL = 6461,
|
||||||
|
MaximumRegistersIdINTEL = 6462,
|
||||||
|
NamedMaximumRegistersINTEL = 6463,
|
||||||
Max = 0x7fffffff,
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -214,6 +235,9 @@ enum class StorageClass : unsigned {
|
|||||||
AtomicCounter = 10,
|
AtomicCounter = 10,
|
||||||
Image = 11,
|
Image = 11,
|
||||||
StorageBuffer = 12,
|
StorageBuffer = 12,
|
||||||
|
TileImageEXT = 4172,
|
||||||
|
NodePayloadAMDX = 5068,
|
||||||
|
NodeOutputPayloadAMDX = 5076,
|
||||||
CallableDataKHR = 5328,
|
CallableDataKHR = 5328,
|
||||||
CallableDataNV = 5328,
|
CallableDataNV = 5328,
|
||||||
IncomingCallableDataKHR = 5329,
|
IncomingCallableDataKHR = 5329,
|
||||||
@@ -244,6 +268,7 @@ enum class Dim : unsigned {
|
|||||||
Rect = 4,
|
Rect = 4,
|
||||||
Buffer = 5,
|
Buffer = 5,
|
||||||
SubpassData = 6,
|
SubpassData = 6,
|
||||||
|
TileImageDataEXT = 4173,
|
||||||
Max = 0x7fffffff,
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -350,6 +375,8 @@ enum class ImageChannelDataType : unsigned {
|
|||||||
Float = 14,
|
Float = 14,
|
||||||
UnormInt24 = 15,
|
UnormInt24 = 15,
|
||||||
UnormInt101010_2 = 16,
|
UnormInt101010_2 = 16,
|
||||||
|
UnsignedIntRaw10EXT = 19,
|
||||||
|
UnsignedIntRaw12EXT = 20,
|
||||||
Max = 0x7fffffff,
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -407,8 +434,11 @@ enum class FPFastMathModeShift : unsigned {
|
|||||||
NSZ = 2,
|
NSZ = 2,
|
||||||
AllowRecip = 3,
|
AllowRecip = 3,
|
||||||
Fast = 4,
|
Fast = 4,
|
||||||
|
AllowContract = 16,
|
||||||
AllowContractFastINTEL = 16,
|
AllowContractFastINTEL = 16,
|
||||||
|
AllowReassoc = 17,
|
||||||
AllowReassocINTEL = 17,
|
AllowReassocINTEL = 17,
|
||||||
|
AllowTransform = 18,
|
||||||
Max = 0x7fffffff,
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -419,8 +449,11 @@ enum class FPFastMathModeMask : unsigned {
|
|||||||
NSZ = 0x00000004,
|
NSZ = 0x00000004,
|
||||||
AllowRecip = 0x00000008,
|
AllowRecip = 0x00000008,
|
||||||
Fast = 0x00000010,
|
Fast = 0x00000010,
|
||||||
|
AllowContract = 0x00010000,
|
||||||
AllowContractFastINTEL = 0x00010000,
|
AllowContractFastINTEL = 0x00010000,
|
||||||
|
AllowReassoc = 0x00020000,
|
||||||
AllowReassocINTEL = 0x00020000,
|
AllowReassocINTEL = 0x00020000,
|
||||||
|
AllowTransform = 0x00040000,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class FPRoundingMode : unsigned {
|
enum class FPRoundingMode : unsigned {
|
||||||
@@ -508,7 +541,14 @@ enum class Decoration : unsigned {
|
|||||||
MaxByteOffsetId = 47,
|
MaxByteOffsetId = 47,
|
||||||
NoSignedWrap = 4469,
|
NoSignedWrap = 4469,
|
||||||
NoUnsignedWrap = 4470,
|
NoUnsignedWrap = 4470,
|
||||||
|
WeightTextureQCOM = 4487,
|
||||||
|
BlockMatchTextureQCOM = 4488,
|
||||||
|
BlockMatchSamplerQCOM = 4499,
|
||||||
ExplicitInterpAMD = 4999,
|
ExplicitInterpAMD = 4999,
|
||||||
|
NodeSharesPayloadLimitsWithAMDX = 5019,
|
||||||
|
NodeMaxPayloadsAMDX = 5020,
|
||||||
|
TrackFinishWritingAMDX = 5078,
|
||||||
|
PayloadNodeNameAMDX = 5091,
|
||||||
OverrideCoverageNV = 5248,
|
OverrideCoverageNV = 5248,
|
||||||
PassthroughNV = 5250,
|
PassthroughNV = 5250,
|
||||||
ViewportRelativeNV = 5252,
|
ViewportRelativeNV = 5252,
|
||||||
@@ -558,6 +598,9 @@ enum class Decoration : unsigned {
|
|||||||
MergeINTEL = 5834,
|
MergeINTEL = 5834,
|
||||||
BankBitsINTEL = 5835,
|
BankBitsINTEL = 5835,
|
||||||
ForcePow2DepthINTEL = 5836,
|
ForcePow2DepthINTEL = 5836,
|
||||||
|
StridesizeINTEL = 5883,
|
||||||
|
WordsizeINTEL = 5884,
|
||||||
|
TrueDualPortINTEL = 5885,
|
||||||
BurstCoalesceINTEL = 5899,
|
BurstCoalesceINTEL = 5899,
|
||||||
CacheSizeINTEL = 5900,
|
CacheSizeINTEL = 5900,
|
||||||
DontStaticallyCoalesceINTEL = 5901,
|
DontStaticallyCoalesceINTEL = 5901,
|
||||||
@@ -576,6 +619,24 @@ enum class Decoration : unsigned {
|
|||||||
SingleElementVectorINTEL = 6085,
|
SingleElementVectorINTEL = 6085,
|
||||||
VectorComputeCallableFunctionINTEL = 6087,
|
VectorComputeCallableFunctionINTEL = 6087,
|
||||||
MediaBlockIOINTEL = 6140,
|
MediaBlockIOINTEL = 6140,
|
||||||
|
StallFreeINTEL = 6151,
|
||||||
|
FPMaxErrorDecorationINTEL = 6170,
|
||||||
|
LatencyControlLabelINTEL = 6172,
|
||||||
|
LatencyControlConstraintINTEL = 6173,
|
||||||
|
ConduitKernelArgumentINTEL = 6175,
|
||||||
|
RegisterMapKernelArgumentINTEL = 6176,
|
||||||
|
MMHostInterfaceAddressWidthINTEL = 6177,
|
||||||
|
MMHostInterfaceDataWidthINTEL = 6178,
|
||||||
|
MMHostInterfaceLatencyINTEL = 6179,
|
||||||
|
MMHostInterfaceReadWriteModeINTEL = 6180,
|
||||||
|
MMHostInterfaceMaxBurstINTEL = 6181,
|
||||||
|
MMHostInterfaceWaitRequestINTEL = 6182,
|
||||||
|
StableKernelArgumentINTEL = 6183,
|
||||||
|
HostAccessINTEL = 6188,
|
||||||
|
InitModeINTEL = 6190,
|
||||||
|
ImplementInRegisterMapINTEL = 6191,
|
||||||
|
CacheControlLoadINTEL = 6442,
|
||||||
|
CacheControlStoreINTEL = 6443,
|
||||||
Max = 0x7fffffff,
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -651,6 +712,8 @@ enum class BuiltIn : unsigned {
|
|||||||
BaryCoordSmoothSampleAMD = 4997,
|
BaryCoordSmoothSampleAMD = 4997,
|
||||||
BaryCoordPullModelAMD = 4998,
|
BaryCoordPullModelAMD = 4998,
|
||||||
FragStencilRefEXT = 5014,
|
FragStencilRefEXT = 5014,
|
||||||
|
CoalescedInputCountAMDX = 5021,
|
||||||
|
ShaderIndexAMDX = 5073,
|
||||||
ViewportMaskNV = 5253,
|
ViewportMaskNV = 5253,
|
||||||
SecondaryPositionNV = 5257,
|
SecondaryPositionNV = 5257,
|
||||||
SecondaryViewportMaskNV = 5258,
|
SecondaryViewportMaskNV = 5258,
|
||||||
@@ -703,6 +766,9 @@ enum class BuiltIn : unsigned {
|
|||||||
HitKindKHR = 5333,
|
HitKindKHR = 5333,
|
||||||
HitKindNV = 5333,
|
HitKindNV = 5333,
|
||||||
CurrentRayTimeNV = 5334,
|
CurrentRayTimeNV = 5334,
|
||||||
|
HitTriangleVertexPositionsKHR = 5335,
|
||||||
|
HitMicroTriangleVertexPositionsNV = 5337,
|
||||||
|
HitMicroTriangleVertexBarycentricsNV = 5344,
|
||||||
IncomingRayFlagsKHR = 5351,
|
IncomingRayFlagsKHR = 5351,
|
||||||
IncomingRayFlagsNV = 5351,
|
IncomingRayFlagsNV = 5351,
|
||||||
RayGeometryIndexKHR = 5352,
|
RayGeometryIndexKHR = 5352,
|
||||||
@@ -710,6 +776,8 @@ enum class BuiltIn : unsigned {
|
|||||||
SMCountNV = 5375,
|
SMCountNV = 5375,
|
||||||
WarpIDNV = 5376,
|
WarpIDNV = 5376,
|
||||||
SMIDNV = 5377,
|
SMIDNV = 5377,
|
||||||
|
HitKindFrontFacingMicroTriangleNV = 5405,
|
||||||
|
HitKindBackFacingMicroTriangleNV = 5406,
|
||||||
CullMaskKHR = 6021,
|
CullMaskKHR = 6021,
|
||||||
Max = 0x7fffffff,
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
@@ -974,6 +1042,9 @@ enum class Capability : unsigned {
|
|||||||
ShaderViewportIndex = 70,
|
ShaderViewportIndex = 70,
|
||||||
UniformDecoration = 71,
|
UniformDecoration = 71,
|
||||||
CoreBuiltinsARM = 4165,
|
CoreBuiltinsARM = 4165,
|
||||||
|
TileImageColorReadAccessEXT = 4166,
|
||||||
|
TileImageDepthReadAccessEXT = 4167,
|
||||||
|
TileImageStencilReadAccessEXT = 4168,
|
||||||
FragmentShadingRateKHR = 4422,
|
FragmentShadingRateKHR = 4422,
|
||||||
SubgroupBallotKHR = 4423,
|
SubgroupBallotKHR = 4423,
|
||||||
DrawParameters = 4427,
|
DrawParameters = 4427,
|
||||||
@@ -1005,6 +1076,10 @@ enum class Capability : unsigned {
|
|||||||
RayQueryKHR = 4472,
|
RayQueryKHR = 4472,
|
||||||
RayTraversalPrimitiveCullingKHR = 4478,
|
RayTraversalPrimitiveCullingKHR = 4478,
|
||||||
RayTracingKHR = 4479,
|
RayTracingKHR = 4479,
|
||||||
|
TextureSampleWeightedQCOM = 4484,
|
||||||
|
TextureBoxFilterQCOM = 4485,
|
||||||
|
TextureBlockMatchQCOM = 4486,
|
||||||
|
TextureBlockMatch2QCOM = 4498,
|
||||||
Float16ImageAMD = 5008,
|
Float16ImageAMD = 5008,
|
||||||
ImageGatherBiasLodAMD = 5009,
|
ImageGatherBiasLodAMD = 5009,
|
||||||
FragmentMaskAMD = 5010,
|
FragmentMaskAMD = 5010,
|
||||||
@@ -1012,6 +1087,8 @@ enum class Capability : unsigned {
|
|||||||
ImageReadWriteLodAMD = 5015,
|
ImageReadWriteLodAMD = 5015,
|
||||||
Int64ImageEXT = 5016,
|
Int64ImageEXT = 5016,
|
||||||
ShaderClockKHR = 5055,
|
ShaderClockKHR = 5055,
|
||||||
|
ShaderEnqueueAMDX = 5067,
|
||||||
|
QuadControlKHR = 5087,
|
||||||
SampleMaskOverrideCoverageNV = 5249,
|
SampleMaskOverrideCoverageNV = 5249,
|
||||||
GeometryShaderPassthroughNV = 5251,
|
GeometryShaderPassthroughNV = 5251,
|
||||||
ShaderViewportIndexLayerEXT = 5254,
|
ShaderViewportIndexLayerEXT = 5254,
|
||||||
@@ -1053,6 +1130,7 @@ enum class Capability : unsigned {
|
|||||||
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||||
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||||
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||||
|
RayTracingPositionFetchKHR = 5336,
|
||||||
RayTracingNV = 5340,
|
RayTracingNV = 5340,
|
||||||
RayTracingMotionBlurNV = 5341,
|
RayTracingMotionBlurNV = 5341,
|
||||||
VulkanMemoryModel = 5345,
|
VulkanMemoryModel = 5345,
|
||||||
@@ -1070,9 +1148,14 @@ enum class Capability : unsigned {
|
|||||||
FragmentShaderPixelInterlockEXT = 5378,
|
FragmentShaderPixelInterlockEXT = 5378,
|
||||||
DemoteToHelperInvocation = 5379,
|
DemoteToHelperInvocation = 5379,
|
||||||
DemoteToHelperInvocationEXT = 5379,
|
DemoteToHelperInvocationEXT = 5379,
|
||||||
|
DisplacementMicromapNV = 5380,
|
||||||
RayTracingOpacityMicromapEXT = 5381,
|
RayTracingOpacityMicromapEXT = 5381,
|
||||||
ShaderInvocationReorderNV = 5383,
|
ShaderInvocationReorderNV = 5383,
|
||||||
BindlessTextureNV = 5390,
|
BindlessTextureNV = 5390,
|
||||||
|
RayQueryPositionFetchKHR = 5391,
|
||||||
|
AtomicFloat16VectorNV = 5404,
|
||||||
|
RayTracingDisplacementMicromapNV = 5409,
|
||||||
|
RawAccessChainsNV = 5414,
|
||||||
SubgroupShuffleINTEL = 5568,
|
SubgroupShuffleINTEL = 5568,
|
||||||
SubgroupBufferBlockIOINTEL = 5569,
|
SubgroupBufferBlockIOINTEL = 5569,
|
||||||
SubgroupImageBlockIOINTEL = 5570,
|
SubgroupImageBlockIOINTEL = 5570,
|
||||||
@@ -1124,16 +1207,29 @@ enum class Capability : unsigned {
|
|||||||
DotProduct = 6019,
|
DotProduct = 6019,
|
||||||
DotProductKHR = 6019,
|
DotProductKHR = 6019,
|
||||||
RayCullMaskKHR = 6020,
|
RayCullMaskKHR = 6020,
|
||||||
|
CooperativeMatrixKHR = 6022,
|
||||||
BitInstructions = 6025,
|
BitInstructions = 6025,
|
||||||
GroupNonUniformRotateKHR = 6026,
|
GroupNonUniformRotateKHR = 6026,
|
||||||
|
FloatControls2 = 6029,
|
||||||
AtomicFloat32AddEXT = 6033,
|
AtomicFloat32AddEXT = 6033,
|
||||||
AtomicFloat64AddEXT = 6034,
|
AtomicFloat64AddEXT = 6034,
|
||||||
LongConstantCompositeINTEL = 6089,
|
LongCompositesINTEL = 6089,
|
||||||
OptNoneINTEL = 6094,
|
OptNoneINTEL = 6094,
|
||||||
AtomicFloat16AddEXT = 6095,
|
AtomicFloat16AddEXT = 6095,
|
||||||
DebugInfoModuleINTEL = 6114,
|
DebugInfoModuleINTEL = 6114,
|
||||||
|
BFloat16ConversionINTEL = 6115,
|
||||||
SplitBarrierINTEL = 6141,
|
SplitBarrierINTEL = 6141,
|
||||||
|
FPGAClusterAttributesV2INTEL = 6150,
|
||||||
|
FPGAKernelAttributesv2INTEL = 6161,
|
||||||
|
FPMaxErrorINTEL = 6169,
|
||||||
|
FPGALatencyControlINTEL = 6171,
|
||||||
|
FPGAArgumentInterfacesINTEL = 6174,
|
||||||
|
GlobalVariableHostAccessINTEL = 6187,
|
||||||
|
GlobalVariableFPGADecorationsINTEL = 6189,
|
||||||
GroupUniformArithmeticKHR = 6400,
|
GroupUniformArithmeticKHR = 6400,
|
||||||
|
MaskedGatherScatterINTEL = 6427,
|
||||||
|
CacheControlsINTEL = 6441,
|
||||||
|
RegisterLimitsINTEL = 6460,
|
||||||
Max = 0x7fffffff,
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1240,6 +1336,85 @@ enum class PackedVectorFormat : unsigned {
|
|||||||
Max = 0x7fffffff,
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class CooperativeMatrixOperandsShift : unsigned {
|
||||||
|
MatrixASignedComponentsKHR = 0,
|
||||||
|
MatrixBSignedComponentsKHR = 1,
|
||||||
|
MatrixCSignedComponentsKHR = 2,
|
||||||
|
MatrixResultSignedComponentsKHR = 3,
|
||||||
|
SaturatingAccumulationKHR = 4,
|
||||||
|
Max = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class CooperativeMatrixOperandsMask : unsigned {
|
||||||
|
MaskNone = 0,
|
||||||
|
MatrixASignedComponentsKHR = 0x00000001,
|
||||||
|
MatrixBSignedComponentsKHR = 0x00000002,
|
||||||
|
MatrixCSignedComponentsKHR = 0x00000004,
|
||||||
|
MatrixResultSignedComponentsKHR = 0x00000008,
|
||||||
|
SaturatingAccumulationKHR = 0x00000010,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class CooperativeMatrixLayout : unsigned {
|
||||||
|
RowMajorKHR = 0,
|
||||||
|
ColumnMajorKHR = 1,
|
||||||
|
Max = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class CooperativeMatrixUse : unsigned {
|
||||||
|
MatrixAKHR = 0,
|
||||||
|
MatrixBKHR = 1,
|
||||||
|
MatrixAccumulatorKHR = 2,
|
||||||
|
Max = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class InitializationModeQualifier : unsigned {
|
||||||
|
InitOnDeviceReprogramINTEL = 0,
|
||||||
|
InitOnDeviceResetINTEL = 1,
|
||||||
|
Max = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class HostAccessQualifier : unsigned {
|
||||||
|
NoneINTEL = 0,
|
||||||
|
ReadINTEL = 1,
|
||||||
|
WriteINTEL = 2,
|
||||||
|
ReadWriteINTEL = 3,
|
||||||
|
Max = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class LoadCacheControl : unsigned {
|
||||||
|
UncachedINTEL = 0,
|
||||||
|
CachedINTEL = 1,
|
||||||
|
StreamingINTEL = 2,
|
||||||
|
InvalidateAfterReadINTEL = 3,
|
||||||
|
ConstCachedINTEL = 4,
|
||||||
|
Max = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class StoreCacheControl : unsigned {
|
||||||
|
UncachedINTEL = 0,
|
||||||
|
WriteThroughINTEL = 1,
|
||||||
|
WriteBackINTEL = 2,
|
||||||
|
StreamingINTEL = 3,
|
||||||
|
Max = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class NamedMaximumNumberOfRegisters : unsigned {
|
||||||
|
AutoINTEL = 0,
|
||||||
|
Max = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class RawAccessChainOperandsShift : unsigned {
|
||||||
|
RobustnessPerComponentNV = 0,
|
||||||
|
RobustnessPerElementNV = 1,
|
||||||
|
Max = 0x7fffffff,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class RawAccessChainOperandsMask : unsigned {
|
||||||
|
MaskNone = 0,
|
||||||
|
RobustnessPerComponentNV = 0x00000001,
|
||||||
|
RobustnessPerElementNV = 0x00000002,
|
||||||
|
};
|
||||||
|
|
||||||
enum class Op : unsigned {
|
enum class Op : unsigned {
|
||||||
OpNop = 0,
|
OpNop = 0,
|
||||||
OpUndef = 1,
|
OpUndef = 1,
|
||||||
@@ -1585,6 +1760,9 @@ enum class Op : unsigned {
|
|||||||
OpPtrEqual = 401,
|
OpPtrEqual = 401,
|
||||||
OpPtrNotEqual = 402,
|
OpPtrNotEqual = 402,
|
||||||
OpPtrDiff = 403,
|
OpPtrDiff = 403,
|
||||||
|
OpColorAttachmentReadEXT = 4160,
|
||||||
|
OpDepthAttachmentReadEXT = 4161,
|
||||||
|
OpStencilAttachmentReadEXT = 4162,
|
||||||
OpTerminateInvocation = 4416,
|
OpTerminateInvocation = 4416,
|
||||||
OpSubgroupBallotKHR = 4421,
|
OpSubgroupBallotKHR = 4421,
|
||||||
OpSubgroupFirstInvocationKHR = 4422,
|
OpSubgroupFirstInvocationKHR = 4422,
|
||||||
@@ -1610,6 +1788,11 @@ enum class Op : unsigned {
|
|||||||
OpUDotAccSatKHR = 4454,
|
OpUDotAccSatKHR = 4454,
|
||||||
OpSUDotAccSat = 4455,
|
OpSUDotAccSat = 4455,
|
||||||
OpSUDotAccSatKHR = 4455,
|
OpSUDotAccSatKHR = 4455,
|
||||||
|
OpTypeCooperativeMatrixKHR = 4456,
|
||||||
|
OpCooperativeMatrixLoadKHR = 4457,
|
||||||
|
OpCooperativeMatrixStoreKHR = 4458,
|
||||||
|
OpCooperativeMatrixMulAddKHR = 4459,
|
||||||
|
OpCooperativeMatrixLengthKHR = 4460,
|
||||||
OpTypeRayQueryKHR = 4472,
|
OpTypeRayQueryKHR = 4472,
|
||||||
OpRayQueryInitializeKHR = 4473,
|
OpRayQueryInitializeKHR = 4473,
|
||||||
OpRayQueryTerminateKHR = 4474,
|
OpRayQueryTerminateKHR = 4474,
|
||||||
@@ -1617,6 +1800,14 @@ enum class Op : unsigned {
|
|||||||
OpRayQueryConfirmIntersectionKHR = 4476,
|
OpRayQueryConfirmIntersectionKHR = 4476,
|
||||||
OpRayQueryProceedKHR = 4477,
|
OpRayQueryProceedKHR = 4477,
|
||||||
OpRayQueryGetIntersectionTypeKHR = 4479,
|
OpRayQueryGetIntersectionTypeKHR = 4479,
|
||||||
|
OpImageSampleWeightedQCOM = 4480,
|
||||||
|
OpImageBoxFilterQCOM = 4481,
|
||||||
|
OpImageBlockMatchSSDQCOM = 4482,
|
||||||
|
OpImageBlockMatchSADQCOM = 4483,
|
||||||
|
OpImageBlockMatchWindowSSDQCOM = 4500,
|
||||||
|
OpImageBlockMatchWindowSADQCOM = 4501,
|
||||||
|
OpImageBlockMatchGatherSSDQCOM = 4502,
|
||||||
|
OpImageBlockMatchGatherSADQCOM = 4503,
|
||||||
OpGroupIAddNonUniformAMD = 5000,
|
OpGroupIAddNonUniformAMD = 5000,
|
||||||
OpGroupFAddNonUniformAMD = 5001,
|
OpGroupFAddNonUniformAMD = 5001,
|
||||||
OpGroupFMinNonUniformAMD = 5002,
|
OpGroupFMinNonUniformAMD = 5002,
|
||||||
@@ -1628,6 +1819,11 @@ enum class Op : unsigned {
|
|||||||
OpFragmentMaskFetchAMD = 5011,
|
OpFragmentMaskFetchAMD = 5011,
|
||||||
OpFragmentFetchAMD = 5012,
|
OpFragmentFetchAMD = 5012,
|
||||||
OpReadClockKHR = 5056,
|
OpReadClockKHR = 5056,
|
||||||
|
OpFinalizeNodePayloadsAMDX = 5075,
|
||||||
|
OpFinishWritingNodePayloadAMDX = 5078,
|
||||||
|
OpInitializeNodePayloadsAMDX = 5090,
|
||||||
|
OpGroupNonUniformQuadAllKHR = 5110,
|
||||||
|
OpGroupNonUniformQuadAnyKHR = 5111,
|
||||||
OpHitObjectRecordHitMotionNV = 5249,
|
OpHitObjectRecordHitMotionNV = 5249,
|
||||||
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||||
OpHitObjectRecordMissMotionNV = 5251,
|
OpHitObjectRecordMissMotionNV = 5251,
|
||||||
@@ -1666,6 +1862,8 @@ enum class Op : unsigned {
|
|||||||
OpSetMeshOutputsEXT = 5295,
|
OpSetMeshOutputsEXT = 5295,
|
||||||
OpGroupNonUniformPartitionNV = 5296,
|
OpGroupNonUniformPartitionNV = 5296,
|
||||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||||
|
OpFetchMicroTriangleVertexPositionNV = 5300,
|
||||||
|
OpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||||
OpReportIntersectionKHR = 5334,
|
OpReportIntersectionKHR = 5334,
|
||||||
OpReportIntersectionNV = 5334,
|
OpReportIntersectionNV = 5334,
|
||||||
OpIgnoreIntersectionNV = 5335,
|
OpIgnoreIntersectionNV = 5335,
|
||||||
@@ -1673,6 +1871,7 @@ enum class Op : unsigned {
|
|||||||
OpTraceNV = 5337,
|
OpTraceNV = 5337,
|
||||||
OpTraceMotionNV = 5338,
|
OpTraceMotionNV = 5338,
|
||||||
OpTraceRayMotionNV = 5339,
|
OpTraceRayMotionNV = 5339,
|
||||||
|
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||||
OpTypeAccelerationStructureKHR = 5341,
|
OpTypeAccelerationStructureKHR = 5341,
|
||||||
OpTypeAccelerationStructureNV = 5341,
|
OpTypeAccelerationStructureNV = 5341,
|
||||||
OpExecuteCallableNV = 5344,
|
OpExecuteCallableNV = 5344,
|
||||||
@@ -1693,6 +1892,7 @@ enum class Op : unsigned {
|
|||||||
OpConvertUToSampledImageNV = 5395,
|
OpConvertUToSampledImageNV = 5395,
|
||||||
OpConvertSampledImageToUNV = 5396,
|
OpConvertSampledImageToUNV = 5396,
|
||||||
OpSamplerImageAddressingModeNV = 5397,
|
OpSamplerImageAddressingModeNV = 5397,
|
||||||
|
OpRawAccessChainNV = 5398,
|
||||||
OpSubgroupShuffleINTEL = 5571,
|
OpSubgroupShuffleINTEL = 5571,
|
||||||
OpSubgroupShuffleDownINTEL = 5572,
|
OpSubgroupShuffleDownINTEL = 5572,
|
||||||
OpSubgroupShuffleUpINTEL = 5573,
|
OpSubgroupShuffleUpINTEL = 5573,
|
||||||
@@ -1934,6 +2134,9 @@ enum class Op : unsigned {
|
|||||||
OpTypeStructContinuedINTEL = 6090,
|
OpTypeStructContinuedINTEL = 6090,
|
||||||
OpConstantCompositeContinuedINTEL = 6091,
|
OpConstantCompositeContinuedINTEL = 6091,
|
||||||
OpSpecConstantCompositeContinuedINTEL = 6092,
|
OpSpecConstantCompositeContinuedINTEL = 6092,
|
||||||
|
OpCompositeConstructContinuedINTEL = 6096,
|
||||||
|
OpConvertFToBF16INTEL = 6116,
|
||||||
|
OpConvertBF16ToFINTEL = 6117,
|
||||||
OpControlBarrierArriveINTEL = 6142,
|
OpControlBarrierArriveINTEL = 6142,
|
||||||
OpControlBarrierWaitINTEL = 6143,
|
OpControlBarrierWaitINTEL = 6143,
|
||||||
OpGroupIMulKHR = 6401,
|
OpGroupIMulKHR = 6401,
|
||||||
@@ -1944,6 +2147,8 @@ enum class Op : unsigned {
|
|||||||
OpGroupLogicalAndKHR = 6406,
|
OpGroupLogicalAndKHR = 6406,
|
||||||
OpGroupLogicalOrKHR = 6407,
|
OpGroupLogicalOrKHR = 6407,
|
||||||
OpGroupLogicalXorKHR = 6408,
|
OpGroupLogicalXorKHR = 6408,
|
||||||
|
OpMaskedGatherINTEL = 6428,
|
||||||
|
OpMaskedScatterINTEL = 6429,
|
||||||
Max = 0x7fffffff,
|
Max = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2299,6 +2504,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break;
|
case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
|
case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpPtrDiff: *hasResult = true; *hasResultType = true; break;
|
case Op::OpPtrDiff: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
|
case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
|
case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
|
case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
@@ -2318,6 +2526,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case Op::OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
|
case Op::OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
case Op::OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
case Op::OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
|
||||||
|
case Op::OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case Op::OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
|
case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
|
||||||
case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
|
case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
|
case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
|
||||||
@@ -2325,6 +2538,14 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case Op::OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
|
case Op::OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
|
case Op::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
|
case Op::OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
case Op::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
case Op::OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
case Op::OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
@@ -2336,6 +2557,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case Op::OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
|
case Op::OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
|
case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
|
case Op::OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case Op::OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case Op::OpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
|
case Op::OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
|
case Op::OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
|
case Op::OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
@@ -2374,12 +2600,15 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case Op::OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
|
case Op::OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
|
case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
|
case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case Op::OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
|
case Op::OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
|
case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
|
case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break;
|
case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
|
case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
|
case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
|
case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
|
||||||
case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
|
case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
|
case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
|
||||||
@@ -2398,6 +2627,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case Op::OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
|
case Op::OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
|
case Op::OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
|
case Op::OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case Op::OpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
@@ -2637,6 +2867,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
|
case Op::OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
|
case Op::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
@@ -2647,52 +2880,62 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|||||||
case Op::OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
|
case Op::OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
|
case Op::OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
case Op::OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
|
case Op::OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
|
||||||
|
case Op::OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* SPV_ENABLE_UTILITY_CODE */
|
#endif /* SPV_ENABLE_UTILITY_CODE */
|
||||||
|
|
||||||
// Overload bitwise operators for mask bit combining
|
// Overload bitwise operators for mask bit combining
|
||||||
|
|
||||||
inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
|
constexpr ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
|
||||||
inline ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); }
|
constexpr ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); }
|
||||||
inline ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
|
constexpr ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
|
||||||
inline ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
|
constexpr ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
|
||||||
inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
|
constexpr FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
|
||||||
inline FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); }
|
constexpr FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); }
|
||||||
inline FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
|
constexpr FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
|
||||||
inline FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
|
constexpr FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
|
||||||
inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
|
constexpr SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
|
||||||
inline SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); }
|
constexpr SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); }
|
||||||
inline SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); }
|
constexpr SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); }
|
||||||
inline SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); }
|
constexpr SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); }
|
||||||
inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
|
constexpr LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
|
||||||
inline LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); }
|
constexpr LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); }
|
||||||
inline LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); }
|
constexpr LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); }
|
||||||
inline LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); }
|
constexpr LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); }
|
||||||
inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
|
constexpr FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
|
||||||
inline FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); }
|
constexpr FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); }
|
||||||
inline FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); }
|
constexpr FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); }
|
||||||
inline FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); }
|
constexpr FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); }
|
||||||
inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
|
constexpr MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
|
||||||
inline MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); }
|
constexpr MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); }
|
||||||
inline MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); }
|
constexpr MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); }
|
||||||
inline MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); }
|
constexpr MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); }
|
||||||
inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
|
constexpr MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
|
||||||
inline MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); }
|
constexpr MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); }
|
||||||
inline MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); }
|
constexpr MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); }
|
||||||
inline MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); }
|
constexpr MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); }
|
||||||
inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
|
constexpr KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
|
||||||
inline KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); }
|
constexpr KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); }
|
||||||
inline KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); }
|
constexpr KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); }
|
||||||
inline KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); }
|
constexpr KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); }
|
||||||
inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
|
constexpr RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
|
||||||
inline RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); }
|
constexpr RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); }
|
||||||
inline RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); }
|
constexpr RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); }
|
||||||
inline RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); }
|
constexpr RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); }
|
||||||
inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
|
constexpr FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
|
||||||
inline FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
|
constexpr FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
|
||||||
inline FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
|
constexpr FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
|
||||||
inline FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
|
constexpr FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
|
||||||
|
constexpr CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); }
|
||||||
|
constexpr CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); }
|
||||||
|
constexpr CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); }
|
||||||
|
constexpr CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); }
|
||||||
|
constexpr RawAccessChainOperandsMask operator|(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) | unsigned(b)); }
|
||||||
|
constexpr RawAccessChainOperandsMask operator&(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) & unsigned(b)); }
|
||||||
|
constexpr RawAccessChainOperandsMask operator^(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) ^ unsigned(b)); }
|
||||||
|
constexpr RawAccessChainOperandsMask operator~(RawAccessChainOperandsMask a) { return RawAccessChainOperandsMask(~unsigned(a)); }
|
||||||
|
|
||||||
} // end namespace spv
|
} // end namespace spv
|
||||||
|
|
||||||
|
|||||||
+224
-10
@@ -6,7 +6,7 @@
|
|||||||
"Comment":
|
"Comment":
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"Copyright (c) 2014-2020 The Khronos Group Inc.",
|
"Copyright (c) 2014-2024 The Khronos Group Inc.",
|
||||||
"",
|
"",
|
||||||
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
||||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||||
@@ -75,7 +75,12 @@
|
|||||||
"OpenCL_CPP": 4,
|
"OpenCL_CPP": 4,
|
||||||
"HLSL": 5,
|
"HLSL": 5,
|
||||||
"CPP_for_OpenCL": 6,
|
"CPP_for_OpenCL": 6,
|
||||||
"SYCL": 7
|
"SYCL": 7,
|
||||||
|
"HERO_C": 8,
|
||||||
|
"NZSL": 9,
|
||||||
|
"WGSL": 10,
|
||||||
|
"Slang": 11,
|
||||||
|
"Zig": 12
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -175,6 +180,9 @@
|
|||||||
"SubgroupsPerWorkgroupId": 37,
|
"SubgroupsPerWorkgroupId": 37,
|
||||||
"LocalSizeId": 38,
|
"LocalSizeId": 38,
|
||||||
"LocalSizeHintId": 39,
|
"LocalSizeHintId": 39,
|
||||||
|
"NonCoherentColorAttachmentReadEXT": 4169,
|
||||||
|
"NonCoherentDepthAttachmentReadEXT": 4170,
|
||||||
|
"NonCoherentStencilAttachmentReadEXT": 4171,
|
||||||
"SubgroupUniformControlFlowKHR": 4421,
|
"SubgroupUniformControlFlowKHR": 4421,
|
||||||
"PostDepthCoverage": 4446,
|
"PostDepthCoverage": 4446,
|
||||||
"DenormPreserve": 4459,
|
"DenormPreserve": 4459,
|
||||||
@@ -184,12 +192,19 @@
|
|||||||
"RoundingModeRTZ": 4463,
|
"RoundingModeRTZ": 4463,
|
||||||
"EarlyAndLateFragmentTestsAMD": 5017,
|
"EarlyAndLateFragmentTestsAMD": 5017,
|
||||||
"StencilRefReplacingEXT": 5027,
|
"StencilRefReplacingEXT": 5027,
|
||||||
|
"CoalescingAMDX": 5069,
|
||||||
|
"MaxNodeRecursionAMDX": 5071,
|
||||||
|
"StaticNumWorkgroupsAMDX": 5072,
|
||||||
|
"ShaderIndexAMDX": 5073,
|
||||||
|
"MaxNumWorkgroupsAMDX": 5077,
|
||||||
"StencilRefUnchangedFrontAMD": 5079,
|
"StencilRefUnchangedFrontAMD": 5079,
|
||||||
"StencilRefGreaterFrontAMD": 5080,
|
"StencilRefGreaterFrontAMD": 5080,
|
||||||
"StencilRefLessFrontAMD": 5081,
|
"StencilRefLessFrontAMD": 5081,
|
||||||
"StencilRefUnchangedBackAMD": 5082,
|
"StencilRefUnchangedBackAMD": 5082,
|
||||||
"StencilRefGreaterBackAMD": 5083,
|
"StencilRefGreaterBackAMD": 5083,
|
||||||
"StencilRefLessBackAMD": 5084,
|
"StencilRefLessBackAMD": 5084,
|
||||||
|
"QuadDerivativesKHR": 5088,
|
||||||
|
"RequireFullQuadsKHR": 5089,
|
||||||
"OutputLinesEXT": 5269,
|
"OutputLinesEXT": 5269,
|
||||||
"OutputLinesNV": 5269,
|
"OutputLinesNV": 5269,
|
||||||
"OutputPrimitivesEXT": 5270,
|
"OutputPrimitivesEXT": 5270,
|
||||||
@@ -214,8 +229,14 @@
|
|||||||
"NoGlobalOffsetINTEL": 5895,
|
"NoGlobalOffsetINTEL": 5895,
|
||||||
"NumSIMDWorkitemsINTEL": 5896,
|
"NumSIMDWorkitemsINTEL": 5896,
|
||||||
"SchedulerTargetFmaxMhzINTEL": 5903,
|
"SchedulerTargetFmaxMhzINTEL": 5903,
|
||||||
|
"MaximallyReconvergesKHR": 6023,
|
||||||
|
"FPFastMathDefault": 6028,
|
||||||
"StreamingInterfaceINTEL": 6154,
|
"StreamingInterfaceINTEL": 6154,
|
||||||
"NamedBarrierCountINTEL": 6417
|
"RegisterMapInterfaceINTEL": 6160,
|
||||||
|
"NamedBarrierCountINTEL": 6417,
|
||||||
|
"MaximumRegistersINTEL": 6461,
|
||||||
|
"MaximumRegistersIdINTEL": 6462,
|
||||||
|
"NamedMaximumRegistersINTEL": 6463
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -236,6 +257,9 @@
|
|||||||
"AtomicCounter": 10,
|
"AtomicCounter": 10,
|
||||||
"Image": 11,
|
"Image": 11,
|
||||||
"StorageBuffer": 12,
|
"StorageBuffer": 12,
|
||||||
|
"TileImageEXT": 4172,
|
||||||
|
"NodePayloadAMDX": 5068,
|
||||||
|
"NodeOutputPayloadAMDX": 5076,
|
||||||
"CallableDataKHR": 5328,
|
"CallableDataKHR": 5328,
|
||||||
"CallableDataNV": 5328,
|
"CallableDataNV": 5328,
|
||||||
"IncomingCallableDataKHR": 5329,
|
"IncomingCallableDataKHR": 5329,
|
||||||
@@ -268,7 +292,8 @@
|
|||||||
"Cube": 3,
|
"Cube": 3,
|
||||||
"Rect": 4,
|
"Rect": 4,
|
||||||
"Buffer": 5,
|
"Buffer": 5,
|
||||||
"SubpassData": 6
|
"SubpassData": 6,
|
||||||
|
"TileImageDataEXT": 4173
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -389,7 +414,9 @@
|
|||||||
"HalfFloat": 13,
|
"HalfFloat": 13,
|
||||||
"Float": 14,
|
"Float": 14,
|
||||||
"UnormInt24": 15,
|
"UnormInt24": 15,
|
||||||
"UnormInt101010_2": 16
|
"UnormInt101010_2": 16,
|
||||||
|
"UnsignedIntRaw10EXT": 19,
|
||||||
|
"UnsignedIntRaw12EXT": 20
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -429,8 +456,11 @@
|
|||||||
"NSZ": 2,
|
"NSZ": 2,
|
||||||
"AllowRecip": 3,
|
"AllowRecip": 3,
|
||||||
"Fast": 4,
|
"Fast": 4,
|
||||||
|
"AllowContract": 16,
|
||||||
"AllowContractFastINTEL": 16,
|
"AllowContractFastINTEL": 16,
|
||||||
"AllowReassocINTEL": 17
|
"AllowReassoc": 17,
|
||||||
|
"AllowReassocINTEL": 17,
|
||||||
|
"AllowTransform": 18
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -534,7 +564,14 @@
|
|||||||
"MaxByteOffsetId": 47,
|
"MaxByteOffsetId": 47,
|
||||||
"NoSignedWrap": 4469,
|
"NoSignedWrap": 4469,
|
||||||
"NoUnsignedWrap": 4470,
|
"NoUnsignedWrap": 4470,
|
||||||
|
"WeightTextureQCOM": 4487,
|
||||||
|
"BlockMatchTextureQCOM": 4488,
|
||||||
|
"BlockMatchSamplerQCOM": 4499,
|
||||||
"ExplicitInterpAMD": 4999,
|
"ExplicitInterpAMD": 4999,
|
||||||
|
"NodeSharesPayloadLimitsWithAMDX": 5019,
|
||||||
|
"NodeMaxPayloadsAMDX": 5020,
|
||||||
|
"TrackFinishWritingAMDX": 5078,
|
||||||
|
"PayloadNodeNameAMDX": 5091,
|
||||||
"OverrideCoverageNV": 5248,
|
"OverrideCoverageNV": 5248,
|
||||||
"PassthroughNV": 5250,
|
"PassthroughNV": 5250,
|
||||||
"ViewportRelativeNV": 5252,
|
"ViewportRelativeNV": 5252,
|
||||||
@@ -584,6 +621,9 @@
|
|||||||
"MergeINTEL": 5834,
|
"MergeINTEL": 5834,
|
||||||
"BankBitsINTEL": 5835,
|
"BankBitsINTEL": 5835,
|
||||||
"ForcePow2DepthINTEL": 5836,
|
"ForcePow2DepthINTEL": 5836,
|
||||||
|
"StridesizeINTEL": 5883,
|
||||||
|
"WordsizeINTEL": 5884,
|
||||||
|
"TrueDualPortINTEL": 5885,
|
||||||
"BurstCoalesceINTEL": 5899,
|
"BurstCoalesceINTEL": 5899,
|
||||||
"CacheSizeINTEL": 5900,
|
"CacheSizeINTEL": 5900,
|
||||||
"DontStaticallyCoalesceINTEL": 5901,
|
"DontStaticallyCoalesceINTEL": 5901,
|
||||||
@@ -601,7 +641,25 @@
|
|||||||
"FunctionFloatingPointModeINTEL": 6080,
|
"FunctionFloatingPointModeINTEL": 6080,
|
||||||
"SingleElementVectorINTEL": 6085,
|
"SingleElementVectorINTEL": 6085,
|
||||||
"VectorComputeCallableFunctionINTEL": 6087,
|
"VectorComputeCallableFunctionINTEL": 6087,
|
||||||
"MediaBlockIOINTEL": 6140
|
"MediaBlockIOINTEL": 6140,
|
||||||
|
"StallFreeINTEL": 6151,
|
||||||
|
"FPMaxErrorDecorationINTEL": 6170,
|
||||||
|
"LatencyControlLabelINTEL": 6172,
|
||||||
|
"LatencyControlConstraintINTEL": 6173,
|
||||||
|
"ConduitKernelArgumentINTEL": 6175,
|
||||||
|
"RegisterMapKernelArgumentINTEL": 6176,
|
||||||
|
"MMHostInterfaceAddressWidthINTEL": 6177,
|
||||||
|
"MMHostInterfaceDataWidthINTEL": 6178,
|
||||||
|
"MMHostInterfaceLatencyINTEL": 6179,
|
||||||
|
"MMHostInterfaceReadWriteModeINTEL": 6180,
|
||||||
|
"MMHostInterfaceMaxBurstINTEL": 6181,
|
||||||
|
"MMHostInterfaceWaitRequestINTEL": 6182,
|
||||||
|
"StableKernelArgumentINTEL": 6183,
|
||||||
|
"HostAccessINTEL": 6188,
|
||||||
|
"InitModeINTEL": 6190,
|
||||||
|
"ImplementInRegisterMapINTEL": 6191,
|
||||||
|
"CacheControlLoadINTEL": 6442,
|
||||||
|
"CacheControlStoreINTEL": 6443
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -680,6 +738,8 @@
|
|||||||
"BaryCoordSmoothSampleAMD": 4997,
|
"BaryCoordSmoothSampleAMD": 4997,
|
||||||
"BaryCoordPullModelAMD": 4998,
|
"BaryCoordPullModelAMD": 4998,
|
||||||
"FragStencilRefEXT": 5014,
|
"FragStencilRefEXT": 5014,
|
||||||
|
"CoalescedInputCountAMDX": 5021,
|
||||||
|
"ShaderIndexAMDX": 5073,
|
||||||
"ViewportMaskNV": 5253,
|
"ViewportMaskNV": 5253,
|
||||||
"SecondaryPositionNV": 5257,
|
"SecondaryPositionNV": 5257,
|
||||||
"SecondaryViewportMaskNV": 5258,
|
"SecondaryViewportMaskNV": 5258,
|
||||||
@@ -732,6 +792,9 @@
|
|||||||
"HitKindKHR": 5333,
|
"HitKindKHR": 5333,
|
||||||
"HitKindNV": 5333,
|
"HitKindNV": 5333,
|
||||||
"CurrentRayTimeNV": 5334,
|
"CurrentRayTimeNV": 5334,
|
||||||
|
"HitTriangleVertexPositionsKHR": 5335,
|
||||||
|
"HitMicroTriangleVertexPositionsNV": 5337,
|
||||||
|
"HitMicroTriangleVertexBarycentricsNV": 5344,
|
||||||
"IncomingRayFlagsKHR": 5351,
|
"IncomingRayFlagsKHR": 5351,
|
||||||
"IncomingRayFlagsNV": 5351,
|
"IncomingRayFlagsNV": 5351,
|
||||||
"RayGeometryIndexKHR": 5352,
|
"RayGeometryIndexKHR": 5352,
|
||||||
@@ -739,6 +802,8 @@
|
|||||||
"SMCountNV": 5375,
|
"SMCountNV": 5375,
|
||||||
"WarpIDNV": 5376,
|
"WarpIDNV": 5376,
|
||||||
"SMIDNV": 5377,
|
"SMIDNV": 5377,
|
||||||
|
"HitKindFrontFacingMicroTriangleNV": 5405,
|
||||||
|
"HitKindBackFacingMicroTriangleNV": 5406,
|
||||||
"CullMaskKHR": 6021
|
"CullMaskKHR": 6021
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -954,6 +1019,9 @@
|
|||||||
"ShaderViewportIndex": 70,
|
"ShaderViewportIndex": 70,
|
||||||
"UniformDecoration": 71,
|
"UniformDecoration": 71,
|
||||||
"CoreBuiltinsARM": 4165,
|
"CoreBuiltinsARM": 4165,
|
||||||
|
"TileImageColorReadAccessEXT": 4166,
|
||||||
|
"TileImageDepthReadAccessEXT": 4167,
|
||||||
|
"TileImageStencilReadAccessEXT": 4168,
|
||||||
"FragmentShadingRateKHR": 4422,
|
"FragmentShadingRateKHR": 4422,
|
||||||
"SubgroupBallotKHR": 4423,
|
"SubgroupBallotKHR": 4423,
|
||||||
"DrawParameters": 4427,
|
"DrawParameters": 4427,
|
||||||
@@ -985,6 +1053,10 @@
|
|||||||
"RayQueryKHR": 4472,
|
"RayQueryKHR": 4472,
|
||||||
"RayTraversalPrimitiveCullingKHR": 4478,
|
"RayTraversalPrimitiveCullingKHR": 4478,
|
||||||
"RayTracingKHR": 4479,
|
"RayTracingKHR": 4479,
|
||||||
|
"TextureSampleWeightedQCOM": 4484,
|
||||||
|
"TextureBoxFilterQCOM": 4485,
|
||||||
|
"TextureBlockMatchQCOM": 4486,
|
||||||
|
"TextureBlockMatch2QCOM": 4498,
|
||||||
"Float16ImageAMD": 5008,
|
"Float16ImageAMD": 5008,
|
||||||
"ImageGatherBiasLodAMD": 5009,
|
"ImageGatherBiasLodAMD": 5009,
|
||||||
"FragmentMaskAMD": 5010,
|
"FragmentMaskAMD": 5010,
|
||||||
@@ -992,6 +1064,8 @@
|
|||||||
"ImageReadWriteLodAMD": 5015,
|
"ImageReadWriteLodAMD": 5015,
|
||||||
"Int64ImageEXT": 5016,
|
"Int64ImageEXT": 5016,
|
||||||
"ShaderClockKHR": 5055,
|
"ShaderClockKHR": 5055,
|
||||||
|
"ShaderEnqueueAMDX": 5067,
|
||||||
|
"QuadControlKHR": 5087,
|
||||||
"SampleMaskOverrideCoverageNV": 5249,
|
"SampleMaskOverrideCoverageNV": 5249,
|
||||||
"GeometryShaderPassthroughNV": 5251,
|
"GeometryShaderPassthroughNV": 5251,
|
||||||
"ShaderViewportIndexLayerEXT": 5254,
|
"ShaderViewportIndexLayerEXT": 5254,
|
||||||
@@ -1033,6 +1107,7 @@
|
|||||||
"UniformTexelBufferArrayNonUniformIndexingEXT": 5311,
|
"UniformTexelBufferArrayNonUniformIndexingEXT": 5311,
|
||||||
"StorageTexelBufferArrayNonUniformIndexing": 5312,
|
"StorageTexelBufferArrayNonUniformIndexing": 5312,
|
||||||
"StorageTexelBufferArrayNonUniformIndexingEXT": 5312,
|
"StorageTexelBufferArrayNonUniformIndexingEXT": 5312,
|
||||||
|
"RayTracingPositionFetchKHR": 5336,
|
||||||
"RayTracingNV": 5340,
|
"RayTracingNV": 5340,
|
||||||
"RayTracingMotionBlurNV": 5341,
|
"RayTracingMotionBlurNV": 5341,
|
||||||
"VulkanMemoryModel": 5345,
|
"VulkanMemoryModel": 5345,
|
||||||
@@ -1050,9 +1125,14 @@
|
|||||||
"FragmentShaderPixelInterlockEXT": 5378,
|
"FragmentShaderPixelInterlockEXT": 5378,
|
||||||
"DemoteToHelperInvocation": 5379,
|
"DemoteToHelperInvocation": 5379,
|
||||||
"DemoteToHelperInvocationEXT": 5379,
|
"DemoteToHelperInvocationEXT": 5379,
|
||||||
|
"DisplacementMicromapNV": 5380,
|
||||||
"RayTracingOpacityMicromapEXT": 5381,
|
"RayTracingOpacityMicromapEXT": 5381,
|
||||||
"ShaderInvocationReorderNV": 5383,
|
"ShaderInvocationReorderNV": 5383,
|
||||||
"BindlessTextureNV": 5390,
|
"BindlessTextureNV": 5390,
|
||||||
|
"RayQueryPositionFetchKHR": 5391,
|
||||||
|
"AtomicFloat16VectorNV": 5404,
|
||||||
|
"RayTracingDisplacementMicromapNV": 5409,
|
||||||
|
"RawAccessChainsNV": 5414,
|
||||||
"SubgroupShuffleINTEL": 5568,
|
"SubgroupShuffleINTEL": 5568,
|
||||||
"SubgroupBufferBlockIOINTEL": 5569,
|
"SubgroupBufferBlockIOINTEL": 5569,
|
||||||
"SubgroupImageBlockIOINTEL": 5570,
|
"SubgroupImageBlockIOINTEL": 5570,
|
||||||
@@ -1104,16 +1184,29 @@
|
|||||||
"DotProduct": 6019,
|
"DotProduct": 6019,
|
||||||
"DotProductKHR": 6019,
|
"DotProductKHR": 6019,
|
||||||
"RayCullMaskKHR": 6020,
|
"RayCullMaskKHR": 6020,
|
||||||
|
"CooperativeMatrixKHR": 6022,
|
||||||
"BitInstructions": 6025,
|
"BitInstructions": 6025,
|
||||||
"GroupNonUniformRotateKHR": 6026,
|
"GroupNonUniformRotateKHR": 6026,
|
||||||
|
"FloatControls2": 6029,
|
||||||
"AtomicFloat32AddEXT": 6033,
|
"AtomicFloat32AddEXT": 6033,
|
||||||
"AtomicFloat64AddEXT": 6034,
|
"AtomicFloat64AddEXT": 6034,
|
||||||
"LongConstantCompositeINTEL": 6089,
|
"LongCompositesINTEL": 6089,
|
||||||
"OptNoneINTEL": 6094,
|
"OptNoneINTEL": 6094,
|
||||||
"AtomicFloat16AddEXT": 6095,
|
"AtomicFloat16AddEXT": 6095,
|
||||||
"DebugInfoModuleINTEL": 6114,
|
"DebugInfoModuleINTEL": 6114,
|
||||||
|
"BFloat16ConversionINTEL": 6115,
|
||||||
"SplitBarrierINTEL": 6141,
|
"SplitBarrierINTEL": 6141,
|
||||||
"GroupUniformArithmeticKHR": 6400
|
"FPGAClusterAttributesV2INTEL": 6150,
|
||||||
|
"FPGAKernelAttributesv2INTEL": 6161,
|
||||||
|
"FPMaxErrorINTEL": 6169,
|
||||||
|
"FPGALatencyControlINTEL": 6171,
|
||||||
|
"FPGAArgumentInterfacesINTEL": 6174,
|
||||||
|
"GlobalVariableHostAccessINTEL": 6187,
|
||||||
|
"GlobalVariableFPGADecorationsINTEL": 6189,
|
||||||
|
"GroupUniformArithmeticKHR": 6400,
|
||||||
|
"MaskedGatherScatterINTEL": 6427,
|
||||||
|
"CacheControlsINTEL": 6441,
|
||||||
|
"RegisterLimitsINTEL": 6460
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1226,6 +1319,97 @@
|
|||||||
"PackedVectorFormat4x8BitKHR": 0
|
"PackedVectorFormat4x8BitKHR": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Name": "CooperativeMatrixOperands",
|
||||||
|
"Type": "Bit",
|
||||||
|
"Values":
|
||||||
|
{
|
||||||
|
"MatrixASignedComponentsKHR": 0,
|
||||||
|
"MatrixBSignedComponentsKHR": 1,
|
||||||
|
"MatrixCSignedComponentsKHR": 2,
|
||||||
|
"MatrixResultSignedComponentsKHR": 3,
|
||||||
|
"SaturatingAccumulationKHR": 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "CooperativeMatrixLayout",
|
||||||
|
"Type": "Value",
|
||||||
|
"Values":
|
||||||
|
{
|
||||||
|
"RowMajorKHR": 0,
|
||||||
|
"ColumnMajorKHR": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "CooperativeMatrixUse",
|
||||||
|
"Type": "Value",
|
||||||
|
"Values":
|
||||||
|
{
|
||||||
|
"MatrixAKHR": 0,
|
||||||
|
"MatrixBKHR": 1,
|
||||||
|
"MatrixAccumulatorKHR": 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "InitializationModeQualifier",
|
||||||
|
"Type": "Value",
|
||||||
|
"Values":
|
||||||
|
{
|
||||||
|
"InitOnDeviceReprogramINTEL": 0,
|
||||||
|
"InitOnDeviceResetINTEL": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "HostAccessQualifier",
|
||||||
|
"Type": "Value",
|
||||||
|
"Values":
|
||||||
|
{
|
||||||
|
"NoneINTEL": 0,
|
||||||
|
"ReadINTEL": 1,
|
||||||
|
"WriteINTEL": 2,
|
||||||
|
"ReadWriteINTEL": 3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "LoadCacheControl",
|
||||||
|
"Type": "Value",
|
||||||
|
"Values":
|
||||||
|
{
|
||||||
|
"UncachedINTEL": 0,
|
||||||
|
"CachedINTEL": 1,
|
||||||
|
"StreamingINTEL": 2,
|
||||||
|
"InvalidateAfterReadINTEL": 3,
|
||||||
|
"ConstCachedINTEL": 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "StoreCacheControl",
|
||||||
|
"Type": "Value",
|
||||||
|
"Values":
|
||||||
|
{
|
||||||
|
"UncachedINTEL": 0,
|
||||||
|
"WriteThroughINTEL": 1,
|
||||||
|
"WriteBackINTEL": 2,
|
||||||
|
"StreamingINTEL": 3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "NamedMaximumNumberOfRegisters",
|
||||||
|
"Type": "Value",
|
||||||
|
"Values":
|
||||||
|
{
|
||||||
|
"AutoINTEL": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "RawAccessChainOperands",
|
||||||
|
"Type": "Bit",
|
||||||
|
"Values":
|
||||||
|
{
|
||||||
|
"RobustnessPerComponentNV": 0,
|
||||||
|
"RobustnessPerElementNV": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Name": "Op",
|
"Name": "Op",
|
||||||
"Type": "Value",
|
"Type": "Value",
|
||||||
@@ -1575,6 +1759,9 @@
|
|||||||
"OpPtrEqual": 401,
|
"OpPtrEqual": 401,
|
||||||
"OpPtrNotEqual": 402,
|
"OpPtrNotEqual": 402,
|
||||||
"OpPtrDiff": 403,
|
"OpPtrDiff": 403,
|
||||||
|
"OpColorAttachmentReadEXT": 4160,
|
||||||
|
"OpDepthAttachmentReadEXT": 4161,
|
||||||
|
"OpStencilAttachmentReadEXT": 4162,
|
||||||
"OpTerminateInvocation": 4416,
|
"OpTerminateInvocation": 4416,
|
||||||
"OpSubgroupBallotKHR": 4421,
|
"OpSubgroupBallotKHR": 4421,
|
||||||
"OpSubgroupFirstInvocationKHR": 4422,
|
"OpSubgroupFirstInvocationKHR": 4422,
|
||||||
@@ -1600,6 +1787,11 @@
|
|||||||
"OpUDotAccSatKHR": 4454,
|
"OpUDotAccSatKHR": 4454,
|
||||||
"OpSUDotAccSat": 4455,
|
"OpSUDotAccSat": 4455,
|
||||||
"OpSUDotAccSatKHR": 4455,
|
"OpSUDotAccSatKHR": 4455,
|
||||||
|
"OpTypeCooperativeMatrixKHR": 4456,
|
||||||
|
"OpCooperativeMatrixLoadKHR": 4457,
|
||||||
|
"OpCooperativeMatrixStoreKHR": 4458,
|
||||||
|
"OpCooperativeMatrixMulAddKHR": 4459,
|
||||||
|
"OpCooperativeMatrixLengthKHR": 4460,
|
||||||
"OpTypeRayQueryKHR": 4472,
|
"OpTypeRayQueryKHR": 4472,
|
||||||
"OpRayQueryInitializeKHR": 4473,
|
"OpRayQueryInitializeKHR": 4473,
|
||||||
"OpRayQueryTerminateKHR": 4474,
|
"OpRayQueryTerminateKHR": 4474,
|
||||||
@@ -1607,6 +1799,14 @@
|
|||||||
"OpRayQueryConfirmIntersectionKHR": 4476,
|
"OpRayQueryConfirmIntersectionKHR": 4476,
|
||||||
"OpRayQueryProceedKHR": 4477,
|
"OpRayQueryProceedKHR": 4477,
|
||||||
"OpRayQueryGetIntersectionTypeKHR": 4479,
|
"OpRayQueryGetIntersectionTypeKHR": 4479,
|
||||||
|
"OpImageSampleWeightedQCOM": 4480,
|
||||||
|
"OpImageBoxFilterQCOM": 4481,
|
||||||
|
"OpImageBlockMatchSSDQCOM": 4482,
|
||||||
|
"OpImageBlockMatchSADQCOM": 4483,
|
||||||
|
"OpImageBlockMatchWindowSSDQCOM": 4500,
|
||||||
|
"OpImageBlockMatchWindowSADQCOM": 4501,
|
||||||
|
"OpImageBlockMatchGatherSSDQCOM": 4502,
|
||||||
|
"OpImageBlockMatchGatherSADQCOM": 4503,
|
||||||
"OpGroupIAddNonUniformAMD": 5000,
|
"OpGroupIAddNonUniformAMD": 5000,
|
||||||
"OpGroupFAddNonUniformAMD": 5001,
|
"OpGroupFAddNonUniformAMD": 5001,
|
||||||
"OpGroupFMinNonUniformAMD": 5002,
|
"OpGroupFMinNonUniformAMD": 5002,
|
||||||
@@ -1618,6 +1818,11 @@
|
|||||||
"OpFragmentMaskFetchAMD": 5011,
|
"OpFragmentMaskFetchAMD": 5011,
|
||||||
"OpFragmentFetchAMD": 5012,
|
"OpFragmentFetchAMD": 5012,
|
||||||
"OpReadClockKHR": 5056,
|
"OpReadClockKHR": 5056,
|
||||||
|
"OpFinalizeNodePayloadsAMDX": 5075,
|
||||||
|
"OpFinishWritingNodePayloadAMDX": 5078,
|
||||||
|
"OpInitializeNodePayloadsAMDX": 5090,
|
||||||
|
"OpGroupNonUniformQuadAllKHR": 5110,
|
||||||
|
"OpGroupNonUniformQuadAnyKHR": 5111,
|
||||||
"OpHitObjectRecordHitMotionNV": 5249,
|
"OpHitObjectRecordHitMotionNV": 5249,
|
||||||
"OpHitObjectRecordHitWithIndexMotionNV": 5250,
|
"OpHitObjectRecordHitWithIndexMotionNV": 5250,
|
||||||
"OpHitObjectRecordMissMotionNV": 5251,
|
"OpHitObjectRecordMissMotionNV": 5251,
|
||||||
@@ -1656,6 +1861,8 @@
|
|||||||
"OpSetMeshOutputsEXT": 5295,
|
"OpSetMeshOutputsEXT": 5295,
|
||||||
"OpGroupNonUniformPartitionNV": 5296,
|
"OpGroupNonUniformPartitionNV": 5296,
|
||||||
"OpWritePackedPrimitiveIndices4x8NV": 5299,
|
"OpWritePackedPrimitiveIndices4x8NV": 5299,
|
||||||
|
"OpFetchMicroTriangleVertexPositionNV": 5300,
|
||||||
|
"OpFetchMicroTriangleVertexBarycentricNV": 5301,
|
||||||
"OpReportIntersectionKHR": 5334,
|
"OpReportIntersectionKHR": 5334,
|
||||||
"OpReportIntersectionNV": 5334,
|
"OpReportIntersectionNV": 5334,
|
||||||
"OpIgnoreIntersectionNV": 5335,
|
"OpIgnoreIntersectionNV": 5335,
|
||||||
@@ -1663,6 +1870,7 @@
|
|||||||
"OpTraceNV": 5337,
|
"OpTraceNV": 5337,
|
||||||
"OpTraceMotionNV": 5338,
|
"OpTraceMotionNV": 5338,
|
||||||
"OpTraceRayMotionNV": 5339,
|
"OpTraceRayMotionNV": 5339,
|
||||||
|
"OpRayQueryGetIntersectionTriangleVertexPositionsKHR": 5340,
|
||||||
"OpTypeAccelerationStructureKHR": 5341,
|
"OpTypeAccelerationStructureKHR": 5341,
|
||||||
"OpTypeAccelerationStructureNV": 5341,
|
"OpTypeAccelerationStructureNV": 5341,
|
||||||
"OpExecuteCallableNV": 5344,
|
"OpExecuteCallableNV": 5344,
|
||||||
@@ -1683,6 +1891,7 @@
|
|||||||
"OpConvertUToSampledImageNV": 5395,
|
"OpConvertUToSampledImageNV": 5395,
|
||||||
"OpConvertSampledImageToUNV": 5396,
|
"OpConvertSampledImageToUNV": 5396,
|
||||||
"OpSamplerImageAddressingModeNV": 5397,
|
"OpSamplerImageAddressingModeNV": 5397,
|
||||||
|
"OpRawAccessChainNV": 5398,
|
||||||
"OpSubgroupShuffleINTEL": 5571,
|
"OpSubgroupShuffleINTEL": 5571,
|
||||||
"OpSubgroupShuffleDownINTEL": 5572,
|
"OpSubgroupShuffleDownINTEL": 5572,
|
||||||
"OpSubgroupShuffleUpINTEL": 5573,
|
"OpSubgroupShuffleUpINTEL": 5573,
|
||||||
@@ -1924,6 +2133,9 @@
|
|||||||
"OpTypeStructContinuedINTEL": 6090,
|
"OpTypeStructContinuedINTEL": 6090,
|
||||||
"OpConstantCompositeContinuedINTEL": 6091,
|
"OpConstantCompositeContinuedINTEL": 6091,
|
||||||
"OpSpecConstantCompositeContinuedINTEL": 6092,
|
"OpSpecConstantCompositeContinuedINTEL": 6092,
|
||||||
|
"OpCompositeConstructContinuedINTEL": 6096,
|
||||||
|
"OpConvertFToBF16INTEL": 6116,
|
||||||
|
"OpConvertBF16ToFINTEL": 6117,
|
||||||
"OpControlBarrierArriveINTEL": 6142,
|
"OpControlBarrierArriveINTEL": 6142,
|
||||||
"OpControlBarrierWaitINTEL": 6143,
|
"OpControlBarrierWaitINTEL": 6143,
|
||||||
"OpGroupIMulKHR": 6401,
|
"OpGroupIMulKHR": 6401,
|
||||||
@@ -1933,7 +2145,9 @@
|
|||||||
"OpGroupBitwiseXorKHR": 6405,
|
"OpGroupBitwiseXorKHR": 6405,
|
||||||
"OpGroupLogicalAndKHR": 6406,
|
"OpGroupLogicalAndKHR": 6406,
|
||||||
"OpGroupLogicalOrKHR": 6407,
|
"OpGroupLogicalOrKHR": 6407,
|
||||||
"OpGroupLogicalXorKHR": 6408
|
"OpGroupLogicalXorKHR": 6408,
|
||||||
|
"OpMaskedGatherINTEL": 6428,
|
||||||
|
"OpMaskedScatterINTEL": 6429
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
+198
-2
@@ -1,4 +1,4 @@
|
|||||||
-- Copyright (c) 2014-2020 The Khronos Group Inc.
|
-- Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
--
|
--
|
||||||
-- Permission is hereby granted, free of charge, to any person obtaining a copy
|
-- Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
-- of this software and/or associated documentation files (the "Materials"),
|
-- of this software and/or associated documentation files (the "Materials"),
|
||||||
@@ -60,6 +60,11 @@ spv = {
|
|||||||
HLSL = 5,
|
HLSL = 5,
|
||||||
CPP_for_OpenCL = 6,
|
CPP_for_OpenCL = 6,
|
||||||
SYCL = 7,
|
SYCL = 7,
|
||||||
|
HERO_C = 8,
|
||||||
|
NZSL = 9,
|
||||||
|
WGSL = 10,
|
||||||
|
Slang = 11,
|
||||||
|
Zig = 12,
|
||||||
},
|
},
|
||||||
|
|
||||||
ExecutionModel = {
|
ExecutionModel = {
|
||||||
@@ -143,6 +148,9 @@ spv = {
|
|||||||
SubgroupsPerWorkgroupId = 37,
|
SubgroupsPerWorkgroupId = 37,
|
||||||
LocalSizeId = 38,
|
LocalSizeId = 38,
|
||||||
LocalSizeHintId = 39,
|
LocalSizeHintId = 39,
|
||||||
|
NonCoherentColorAttachmentReadEXT = 4169,
|
||||||
|
NonCoherentDepthAttachmentReadEXT = 4170,
|
||||||
|
NonCoherentStencilAttachmentReadEXT = 4171,
|
||||||
SubgroupUniformControlFlowKHR = 4421,
|
SubgroupUniformControlFlowKHR = 4421,
|
||||||
PostDepthCoverage = 4446,
|
PostDepthCoverage = 4446,
|
||||||
DenormPreserve = 4459,
|
DenormPreserve = 4459,
|
||||||
@@ -152,12 +160,19 @@ spv = {
|
|||||||
RoundingModeRTZ = 4463,
|
RoundingModeRTZ = 4463,
|
||||||
EarlyAndLateFragmentTestsAMD = 5017,
|
EarlyAndLateFragmentTestsAMD = 5017,
|
||||||
StencilRefReplacingEXT = 5027,
|
StencilRefReplacingEXT = 5027,
|
||||||
|
CoalescingAMDX = 5069,
|
||||||
|
MaxNodeRecursionAMDX = 5071,
|
||||||
|
StaticNumWorkgroupsAMDX = 5072,
|
||||||
|
ShaderIndexAMDX = 5073,
|
||||||
|
MaxNumWorkgroupsAMDX = 5077,
|
||||||
StencilRefUnchangedFrontAMD = 5079,
|
StencilRefUnchangedFrontAMD = 5079,
|
||||||
StencilRefGreaterFrontAMD = 5080,
|
StencilRefGreaterFrontAMD = 5080,
|
||||||
StencilRefLessFrontAMD = 5081,
|
StencilRefLessFrontAMD = 5081,
|
||||||
StencilRefUnchangedBackAMD = 5082,
|
StencilRefUnchangedBackAMD = 5082,
|
||||||
StencilRefGreaterBackAMD = 5083,
|
StencilRefGreaterBackAMD = 5083,
|
||||||
StencilRefLessBackAMD = 5084,
|
StencilRefLessBackAMD = 5084,
|
||||||
|
QuadDerivativesKHR = 5088,
|
||||||
|
RequireFullQuadsKHR = 5089,
|
||||||
OutputLinesEXT = 5269,
|
OutputLinesEXT = 5269,
|
||||||
OutputLinesNV = 5269,
|
OutputLinesNV = 5269,
|
||||||
OutputPrimitivesEXT = 5270,
|
OutputPrimitivesEXT = 5270,
|
||||||
@@ -182,8 +197,14 @@ spv = {
|
|||||||
NoGlobalOffsetINTEL = 5895,
|
NoGlobalOffsetINTEL = 5895,
|
||||||
NumSIMDWorkitemsINTEL = 5896,
|
NumSIMDWorkitemsINTEL = 5896,
|
||||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
SchedulerTargetFmaxMhzINTEL = 5903,
|
||||||
|
MaximallyReconvergesKHR = 6023,
|
||||||
|
FPFastMathDefault = 6028,
|
||||||
StreamingInterfaceINTEL = 6154,
|
StreamingInterfaceINTEL = 6154,
|
||||||
|
RegisterMapInterfaceINTEL = 6160,
|
||||||
NamedBarrierCountINTEL = 6417,
|
NamedBarrierCountINTEL = 6417,
|
||||||
|
MaximumRegistersINTEL = 6461,
|
||||||
|
MaximumRegistersIdINTEL = 6462,
|
||||||
|
NamedMaximumRegistersINTEL = 6463,
|
||||||
},
|
},
|
||||||
|
|
||||||
StorageClass = {
|
StorageClass = {
|
||||||
@@ -200,6 +221,9 @@ spv = {
|
|||||||
AtomicCounter = 10,
|
AtomicCounter = 10,
|
||||||
Image = 11,
|
Image = 11,
|
||||||
StorageBuffer = 12,
|
StorageBuffer = 12,
|
||||||
|
TileImageEXT = 4172,
|
||||||
|
NodePayloadAMDX = 5068,
|
||||||
|
NodeOutputPayloadAMDX = 5076,
|
||||||
CallableDataKHR = 5328,
|
CallableDataKHR = 5328,
|
||||||
CallableDataNV = 5328,
|
CallableDataNV = 5328,
|
||||||
IncomingCallableDataKHR = 5329,
|
IncomingCallableDataKHR = 5329,
|
||||||
@@ -229,6 +253,7 @@ spv = {
|
|||||||
Rect = 4,
|
Rect = 4,
|
||||||
Buffer = 5,
|
Buffer = 5,
|
||||||
SubpassData = 6,
|
SubpassData = 6,
|
||||||
|
TileImageDataEXT = 4173,
|
||||||
},
|
},
|
||||||
|
|
||||||
SamplerAddressingMode = {
|
SamplerAddressingMode = {
|
||||||
@@ -330,6 +355,8 @@ spv = {
|
|||||||
Float = 14,
|
Float = 14,
|
||||||
UnormInt24 = 15,
|
UnormInt24 = 15,
|
||||||
UnormInt101010_2 = 16,
|
UnormInt101010_2 = 16,
|
||||||
|
UnsignedIntRaw10EXT = 19,
|
||||||
|
UnsignedIntRaw12EXT = 20,
|
||||||
},
|
},
|
||||||
|
|
||||||
ImageOperandsShift = {
|
ImageOperandsShift = {
|
||||||
@@ -385,8 +412,11 @@ spv = {
|
|||||||
NSZ = 2,
|
NSZ = 2,
|
||||||
AllowRecip = 3,
|
AllowRecip = 3,
|
||||||
Fast = 4,
|
Fast = 4,
|
||||||
|
AllowContract = 16,
|
||||||
AllowContractFastINTEL = 16,
|
AllowContractFastINTEL = 16,
|
||||||
|
AllowReassoc = 17,
|
||||||
AllowReassocINTEL = 17,
|
AllowReassocINTEL = 17,
|
||||||
|
AllowTransform = 18,
|
||||||
},
|
},
|
||||||
|
|
||||||
FPFastMathModeMask = {
|
FPFastMathModeMask = {
|
||||||
@@ -396,8 +426,11 @@ spv = {
|
|||||||
NSZ = 0x00000004,
|
NSZ = 0x00000004,
|
||||||
AllowRecip = 0x00000008,
|
AllowRecip = 0x00000008,
|
||||||
Fast = 0x00000010,
|
Fast = 0x00000010,
|
||||||
|
AllowContract = 0x00010000,
|
||||||
AllowContractFastINTEL = 0x00010000,
|
AllowContractFastINTEL = 0x00010000,
|
||||||
|
AllowReassoc = 0x00020000,
|
||||||
AllowReassocINTEL = 0x00020000,
|
AllowReassocINTEL = 0x00020000,
|
||||||
|
AllowTransform = 0x00040000,
|
||||||
},
|
},
|
||||||
|
|
||||||
FPRoundingMode = {
|
FPRoundingMode = {
|
||||||
@@ -481,7 +514,14 @@ spv = {
|
|||||||
MaxByteOffsetId = 47,
|
MaxByteOffsetId = 47,
|
||||||
NoSignedWrap = 4469,
|
NoSignedWrap = 4469,
|
||||||
NoUnsignedWrap = 4470,
|
NoUnsignedWrap = 4470,
|
||||||
|
WeightTextureQCOM = 4487,
|
||||||
|
BlockMatchTextureQCOM = 4488,
|
||||||
|
BlockMatchSamplerQCOM = 4499,
|
||||||
ExplicitInterpAMD = 4999,
|
ExplicitInterpAMD = 4999,
|
||||||
|
NodeSharesPayloadLimitsWithAMDX = 5019,
|
||||||
|
NodeMaxPayloadsAMDX = 5020,
|
||||||
|
TrackFinishWritingAMDX = 5078,
|
||||||
|
PayloadNodeNameAMDX = 5091,
|
||||||
OverrideCoverageNV = 5248,
|
OverrideCoverageNV = 5248,
|
||||||
PassthroughNV = 5250,
|
PassthroughNV = 5250,
|
||||||
ViewportRelativeNV = 5252,
|
ViewportRelativeNV = 5252,
|
||||||
@@ -531,6 +571,9 @@ spv = {
|
|||||||
MergeINTEL = 5834,
|
MergeINTEL = 5834,
|
||||||
BankBitsINTEL = 5835,
|
BankBitsINTEL = 5835,
|
||||||
ForcePow2DepthINTEL = 5836,
|
ForcePow2DepthINTEL = 5836,
|
||||||
|
StridesizeINTEL = 5883,
|
||||||
|
WordsizeINTEL = 5884,
|
||||||
|
TrueDualPortINTEL = 5885,
|
||||||
BurstCoalesceINTEL = 5899,
|
BurstCoalesceINTEL = 5899,
|
||||||
CacheSizeINTEL = 5900,
|
CacheSizeINTEL = 5900,
|
||||||
DontStaticallyCoalesceINTEL = 5901,
|
DontStaticallyCoalesceINTEL = 5901,
|
||||||
@@ -549,6 +592,24 @@ spv = {
|
|||||||
SingleElementVectorINTEL = 6085,
|
SingleElementVectorINTEL = 6085,
|
||||||
VectorComputeCallableFunctionINTEL = 6087,
|
VectorComputeCallableFunctionINTEL = 6087,
|
||||||
MediaBlockIOINTEL = 6140,
|
MediaBlockIOINTEL = 6140,
|
||||||
|
StallFreeINTEL = 6151,
|
||||||
|
FPMaxErrorDecorationINTEL = 6170,
|
||||||
|
LatencyControlLabelINTEL = 6172,
|
||||||
|
LatencyControlConstraintINTEL = 6173,
|
||||||
|
ConduitKernelArgumentINTEL = 6175,
|
||||||
|
RegisterMapKernelArgumentINTEL = 6176,
|
||||||
|
MMHostInterfaceAddressWidthINTEL = 6177,
|
||||||
|
MMHostInterfaceDataWidthINTEL = 6178,
|
||||||
|
MMHostInterfaceLatencyINTEL = 6179,
|
||||||
|
MMHostInterfaceReadWriteModeINTEL = 6180,
|
||||||
|
MMHostInterfaceMaxBurstINTEL = 6181,
|
||||||
|
MMHostInterfaceWaitRequestINTEL = 6182,
|
||||||
|
StableKernelArgumentINTEL = 6183,
|
||||||
|
HostAccessINTEL = 6188,
|
||||||
|
InitModeINTEL = 6190,
|
||||||
|
ImplementInRegisterMapINTEL = 6191,
|
||||||
|
CacheControlLoadINTEL = 6442,
|
||||||
|
CacheControlStoreINTEL = 6443,
|
||||||
},
|
},
|
||||||
|
|
||||||
BuiltIn = {
|
BuiltIn = {
|
||||||
@@ -623,6 +684,8 @@ spv = {
|
|||||||
BaryCoordSmoothSampleAMD = 4997,
|
BaryCoordSmoothSampleAMD = 4997,
|
||||||
BaryCoordPullModelAMD = 4998,
|
BaryCoordPullModelAMD = 4998,
|
||||||
FragStencilRefEXT = 5014,
|
FragStencilRefEXT = 5014,
|
||||||
|
CoalescedInputCountAMDX = 5021,
|
||||||
|
ShaderIndexAMDX = 5073,
|
||||||
ViewportMaskNV = 5253,
|
ViewportMaskNV = 5253,
|
||||||
SecondaryPositionNV = 5257,
|
SecondaryPositionNV = 5257,
|
||||||
SecondaryViewportMaskNV = 5258,
|
SecondaryViewportMaskNV = 5258,
|
||||||
@@ -675,6 +738,9 @@ spv = {
|
|||||||
HitKindKHR = 5333,
|
HitKindKHR = 5333,
|
||||||
HitKindNV = 5333,
|
HitKindNV = 5333,
|
||||||
CurrentRayTimeNV = 5334,
|
CurrentRayTimeNV = 5334,
|
||||||
|
HitTriangleVertexPositionsKHR = 5335,
|
||||||
|
HitMicroTriangleVertexPositionsNV = 5337,
|
||||||
|
HitMicroTriangleVertexBarycentricsNV = 5344,
|
||||||
IncomingRayFlagsKHR = 5351,
|
IncomingRayFlagsKHR = 5351,
|
||||||
IncomingRayFlagsNV = 5351,
|
IncomingRayFlagsNV = 5351,
|
||||||
RayGeometryIndexKHR = 5352,
|
RayGeometryIndexKHR = 5352,
|
||||||
@@ -682,6 +748,8 @@ spv = {
|
|||||||
SMCountNV = 5375,
|
SMCountNV = 5375,
|
||||||
WarpIDNV = 5376,
|
WarpIDNV = 5376,
|
||||||
SMIDNV = 5377,
|
SMIDNV = 5377,
|
||||||
|
HitKindFrontFacingMicroTriangleNV = 5405,
|
||||||
|
HitKindBackFacingMicroTriangleNV = 5406,
|
||||||
CullMaskKHR = 6021,
|
CullMaskKHR = 6021,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -936,6 +1004,9 @@ spv = {
|
|||||||
ShaderViewportIndex = 70,
|
ShaderViewportIndex = 70,
|
||||||
UniformDecoration = 71,
|
UniformDecoration = 71,
|
||||||
CoreBuiltinsARM = 4165,
|
CoreBuiltinsARM = 4165,
|
||||||
|
TileImageColorReadAccessEXT = 4166,
|
||||||
|
TileImageDepthReadAccessEXT = 4167,
|
||||||
|
TileImageStencilReadAccessEXT = 4168,
|
||||||
FragmentShadingRateKHR = 4422,
|
FragmentShadingRateKHR = 4422,
|
||||||
SubgroupBallotKHR = 4423,
|
SubgroupBallotKHR = 4423,
|
||||||
DrawParameters = 4427,
|
DrawParameters = 4427,
|
||||||
@@ -967,6 +1038,10 @@ spv = {
|
|||||||
RayQueryKHR = 4472,
|
RayQueryKHR = 4472,
|
||||||
RayTraversalPrimitiveCullingKHR = 4478,
|
RayTraversalPrimitiveCullingKHR = 4478,
|
||||||
RayTracingKHR = 4479,
|
RayTracingKHR = 4479,
|
||||||
|
TextureSampleWeightedQCOM = 4484,
|
||||||
|
TextureBoxFilterQCOM = 4485,
|
||||||
|
TextureBlockMatchQCOM = 4486,
|
||||||
|
TextureBlockMatch2QCOM = 4498,
|
||||||
Float16ImageAMD = 5008,
|
Float16ImageAMD = 5008,
|
||||||
ImageGatherBiasLodAMD = 5009,
|
ImageGatherBiasLodAMD = 5009,
|
||||||
FragmentMaskAMD = 5010,
|
FragmentMaskAMD = 5010,
|
||||||
@@ -974,6 +1049,8 @@ spv = {
|
|||||||
ImageReadWriteLodAMD = 5015,
|
ImageReadWriteLodAMD = 5015,
|
||||||
Int64ImageEXT = 5016,
|
Int64ImageEXT = 5016,
|
||||||
ShaderClockKHR = 5055,
|
ShaderClockKHR = 5055,
|
||||||
|
ShaderEnqueueAMDX = 5067,
|
||||||
|
QuadControlKHR = 5087,
|
||||||
SampleMaskOverrideCoverageNV = 5249,
|
SampleMaskOverrideCoverageNV = 5249,
|
||||||
GeometryShaderPassthroughNV = 5251,
|
GeometryShaderPassthroughNV = 5251,
|
||||||
ShaderViewportIndexLayerEXT = 5254,
|
ShaderViewportIndexLayerEXT = 5254,
|
||||||
@@ -1015,6 +1092,7 @@ spv = {
|
|||||||
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||||
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||||
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||||
|
RayTracingPositionFetchKHR = 5336,
|
||||||
RayTracingNV = 5340,
|
RayTracingNV = 5340,
|
||||||
RayTracingMotionBlurNV = 5341,
|
RayTracingMotionBlurNV = 5341,
|
||||||
VulkanMemoryModel = 5345,
|
VulkanMemoryModel = 5345,
|
||||||
@@ -1032,9 +1110,14 @@ spv = {
|
|||||||
FragmentShaderPixelInterlockEXT = 5378,
|
FragmentShaderPixelInterlockEXT = 5378,
|
||||||
DemoteToHelperInvocation = 5379,
|
DemoteToHelperInvocation = 5379,
|
||||||
DemoteToHelperInvocationEXT = 5379,
|
DemoteToHelperInvocationEXT = 5379,
|
||||||
|
DisplacementMicromapNV = 5380,
|
||||||
RayTracingOpacityMicromapEXT = 5381,
|
RayTracingOpacityMicromapEXT = 5381,
|
||||||
ShaderInvocationReorderNV = 5383,
|
ShaderInvocationReorderNV = 5383,
|
||||||
BindlessTextureNV = 5390,
|
BindlessTextureNV = 5390,
|
||||||
|
RayQueryPositionFetchKHR = 5391,
|
||||||
|
AtomicFloat16VectorNV = 5404,
|
||||||
|
RayTracingDisplacementMicromapNV = 5409,
|
||||||
|
RawAccessChainsNV = 5414,
|
||||||
SubgroupShuffleINTEL = 5568,
|
SubgroupShuffleINTEL = 5568,
|
||||||
SubgroupBufferBlockIOINTEL = 5569,
|
SubgroupBufferBlockIOINTEL = 5569,
|
||||||
SubgroupImageBlockIOINTEL = 5570,
|
SubgroupImageBlockIOINTEL = 5570,
|
||||||
@@ -1086,16 +1169,29 @@ spv = {
|
|||||||
DotProduct = 6019,
|
DotProduct = 6019,
|
||||||
DotProductKHR = 6019,
|
DotProductKHR = 6019,
|
||||||
RayCullMaskKHR = 6020,
|
RayCullMaskKHR = 6020,
|
||||||
|
CooperativeMatrixKHR = 6022,
|
||||||
BitInstructions = 6025,
|
BitInstructions = 6025,
|
||||||
GroupNonUniformRotateKHR = 6026,
|
GroupNonUniformRotateKHR = 6026,
|
||||||
|
FloatControls2 = 6029,
|
||||||
AtomicFloat32AddEXT = 6033,
|
AtomicFloat32AddEXT = 6033,
|
||||||
AtomicFloat64AddEXT = 6034,
|
AtomicFloat64AddEXT = 6034,
|
||||||
LongConstantCompositeINTEL = 6089,
|
LongCompositesINTEL = 6089,
|
||||||
OptNoneINTEL = 6094,
|
OptNoneINTEL = 6094,
|
||||||
AtomicFloat16AddEXT = 6095,
|
AtomicFloat16AddEXT = 6095,
|
||||||
DebugInfoModuleINTEL = 6114,
|
DebugInfoModuleINTEL = 6114,
|
||||||
|
BFloat16ConversionINTEL = 6115,
|
||||||
SplitBarrierINTEL = 6141,
|
SplitBarrierINTEL = 6141,
|
||||||
|
FPGAClusterAttributesV2INTEL = 6150,
|
||||||
|
FPGAKernelAttributesv2INTEL = 6161,
|
||||||
|
FPMaxErrorINTEL = 6169,
|
||||||
|
FPGALatencyControlINTEL = 6171,
|
||||||
|
FPGAArgumentInterfacesINTEL = 6174,
|
||||||
|
GlobalVariableHostAccessINTEL = 6187,
|
||||||
|
GlobalVariableFPGADecorationsINTEL = 6189,
|
||||||
GroupUniformArithmeticKHR = 6400,
|
GroupUniformArithmeticKHR = 6400,
|
||||||
|
MaskedGatherScatterINTEL = 6427,
|
||||||
|
CacheControlsINTEL = 6441,
|
||||||
|
RegisterLimitsINTEL = 6460,
|
||||||
},
|
},
|
||||||
|
|
||||||
RayFlagsShift = {
|
RayFlagsShift = {
|
||||||
@@ -1191,6 +1287,76 @@ spv = {
|
|||||||
PackedVectorFormat4x8BitKHR = 0,
|
PackedVectorFormat4x8BitKHR = 0,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
CooperativeMatrixOperandsShift = {
|
||||||
|
MatrixASignedComponentsKHR = 0,
|
||||||
|
MatrixBSignedComponentsKHR = 1,
|
||||||
|
MatrixCSignedComponentsKHR = 2,
|
||||||
|
MatrixResultSignedComponentsKHR = 3,
|
||||||
|
SaturatingAccumulationKHR = 4,
|
||||||
|
},
|
||||||
|
|
||||||
|
CooperativeMatrixOperandsMask = {
|
||||||
|
MaskNone = 0,
|
||||||
|
MatrixASignedComponentsKHR = 0x00000001,
|
||||||
|
MatrixBSignedComponentsKHR = 0x00000002,
|
||||||
|
MatrixCSignedComponentsKHR = 0x00000004,
|
||||||
|
MatrixResultSignedComponentsKHR = 0x00000008,
|
||||||
|
SaturatingAccumulationKHR = 0x00000010,
|
||||||
|
},
|
||||||
|
|
||||||
|
CooperativeMatrixLayout = {
|
||||||
|
RowMajorKHR = 0,
|
||||||
|
ColumnMajorKHR = 1,
|
||||||
|
},
|
||||||
|
|
||||||
|
CooperativeMatrixUse = {
|
||||||
|
MatrixAKHR = 0,
|
||||||
|
MatrixBKHR = 1,
|
||||||
|
MatrixAccumulatorKHR = 2,
|
||||||
|
},
|
||||||
|
|
||||||
|
InitializationModeQualifier = {
|
||||||
|
InitOnDeviceReprogramINTEL = 0,
|
||||||
|
InitOnDeviceResetINTEL = 1,
|
||||||
|
},
|
||||||
|
|
||||||
|
HostAccessQualifier = {
|
||||||
|
NoneINTEL = 0,
|
||||||
|
ReadINTEL = 1,
|
||||||
|
WriteINTEL = 2,
|
||||||
|
ReadWriteINTEL = 3,
|
||||||
|
},
|
||||||
|
|
||||||
|
LoadCacheControl = {
|
||||||
|
UncachedINTEL = 0,
|
||||||
|
CachedINTEL = 1,
|
||||||
|
StreamingINTEL = 2,
|
||||||
|
InvalidateAfterReadINTEL = 3,
|
||||||
|
ConstCachedINTEL = 4,
|
||||||
|
},
|
||||||
|
|
||||||
|
StoreCacheControl = {
|
||||||
|
UncachedINTEL = 0,
|
||||||
|
WriteThroughINTEL = 1,
|
||||||
|
WriteBackINTEL = 2,
|
||||||
|
StreamingINTEL = 3,
|
||||||
|
},
|
||||||
|
|
||||||
|
NamedMaximumNumberOfRegisters = {
|
||||||
|
AutoINTEL = 0,
|
||||||
|
},
|
||||||
|
|
||||||
|
RawAccessChainOperandsShift = {
|
||||||
|
RobustnessPerComponentNV = 0,
|
||||||
|
RobustnessPerElementNV = 1,
|
||||||
|
},
|
||||||
|
|
||||||
|
RawAccessChainOperandsMask = {
|
||||||
|
MaskNone = 0,
|
||||||
|
RobustnessPerComponentNV = 0x00000001,
|
||||||
|
RobustnessPerElementNV = 0x00000002,
|
||||||
|
},
|
||||||
|
|
||||||
Op = {
|
Op = {
|
||||||
OpNop = 0,
|
OpNop = 0,
|
||||||
OpUndef = 1,
|
OpUndef = 1,
|
||||||
@@ -1536,6 +1702,9 @@ spv = {
|
|||||||
OpPtrEqual = 401,
|
OpPtrEqual = 401,
|
||||||
OpPtrNotEqual = 402,
|
OpPtrNotEqual = 402,
|
||||||
OpPtrDiff = 403,
|
OpPtrDiff = 403,
|
||||||
|
OpColorAttachmentReadEXT = 4160,
|
||||||
|
OpDepthAttachmentReadEXT = 4161,
|
||||||
|
OpStencilAttachmentReadEXT = 4162,
|
||||||
OpTerminateInvocation = 4416,
|
OpTerminateInvocation = 4416,
|
||||||
OpSubgroupBallotKHR = 4421,
|
OpSubgroupBallotKHR = 4421,
|
||||||
OpSubgroupFirstInvocationKHR = 4422,
|
OpSubgroupFirstInvocationKHR = 4422,
|
||||||
@@ -1561,6 +1730,11 @@ spv = {
|
|||||||
OpUDotAccSatKHR = 4454,
|
OpUDotAccSatKHR = 4454,
|
||||||
OpSUDotAccSat = 4455,
|
OpSUDotAccSat = 4455,
|
||||||
OpSUDotAccSatKHR = 4455,
|
OpSUDotAccSatKHR = 4455,
|
||||||
|
OpTypeCooperativeMatrixKHR = 4456,
|
||||||
|
OpCooperativeMatrixLoadKHR = 4457,
|
||||||
|
OpCooperativeMatrixStoreKHR = 4458,
|
||||||
|
OpCooperativeMatrixMulAddKHR = 4459,
|
||||||
|
OpCooperativeMatrixLengthKHR = 4460,
|
||||||
OpTypeRayQueryKHR = 4472,
|
OpTypeRayQueryKHR = 4472,
|
||||||
OpRayQueryInitializeKHR = 4473,
|
OpRayQueryInitializeKHR = 4473,
|
||||||
OpRayQueryTerminateKHR = 4474,
|
OpRayQueryTerminateKHR = 4474,
|
||||||
@@ -1568,6 +1742,14 @@ spv = {
|
|||||||
OpRayQueryConfirmIntersectionKHR = 4476,
|
OpRayQueryConfirmIntersectionKHR = 4476,
|
||||||
OpRayQueryProceedKHR = 4477,
|
OpRayQueryProceedKHR = 4477,
|
||||||
OpRayQueryGetIntersectionTypeKHR = 4479,
|
OpRayQueryGetIntersectionTypeKHR = 4479,
|
||||||
|
OpImageSampleWeightedQCOM = 4480,
|
||||||
|
OpImageBoxFilterQCOM = 4481,
|
||||||
|
OpImageBlockMatchSSDQCOM = 4482,
|
||||||
|
OpImageBlockMatchSADQCOM = 4483,
|
||||||
|
OpImageBlockMatchWindowSSDQCOM = 4500,
|
||||||
|
OpImageBlockMatchWindowSADQCOM = 4501,
|
||||||
|
OpImageBlockMatchGatherSSDQCOM = 4502,
|
||||||
|
OpImageBlockMatchGatherSADQCOM = 4503,
|
||||||
OpGroupIAddNonUniformAMD = 5000,
|
OpGroupIAddNonUniformAMD = 5000,
|
||||||
OpGroupFAddNonUniformAMD = 5001,
|
OpGroupFAddNonUniformAMD = 5001,
|
||||||
OpGroupFMinNonUniformAMD = 5002,
|
OpGroupFMinNonUniformAMD = 5002,
|
||||||
@@ -1579,6 +1761,11 @@ spv = {
|
|||||||
OpFragmentMaskFetchAMD = 5011,
|
OpFragmentMaskFetchAMD = 5011,
|
||||||
OpFragmentFetchAMD = 5012,
|
OpFragmentFetchAMD = 5012,
|
||||||
OpReadClockKHR = 5056,
|
OpReadClockKHR = 5056,
|
||||||
|
OpFinalizeNodePayloadsAMDX = 5075,
|
||||||
|
OpFinishWritingNodePayloadAMDX = 5078,
|
||||||
|
OpInitializeNodePayloadsAMDX = 5090,
|
||||||
|
OpGroupNonUniformQuadAllKHR = 5110,
|
||||||
|
OpGroupNonUniformQuadAnyKHR = 5111,
|
||||||
OpHitObjectRecordHitMotionNV = 5249,
|
OpHitObjectRecordHitMotionNV = 5249,
|
||||||
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||||
OpHitObjectRecordMissMotionNV = 5251,
|
OpHitObjectRecordMissMotionNV = 5251,
|
||||||
@@ -1617,6 +1804,8 @@ spv = {
|
|||||||
OpSetMeshOutputsEXT = 5295,
|
OpSetMeshOutputsEXT = 5295,
|
||||||
OpGroupNonUniformPartitionNV = 5296,
|
OpGroupNonUniformPartitionNV = 5296,
|
||||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||||
|
OpFetchMicroTriangleVertexPositionNV = 5300,
|
||||||
|
OpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||||
OpReportIntersectionKHR = 5334,
|
OpReportIntersectionKHR = 5334,
|
||||||
OpReportIntersectionNV = 5334,
|
OpReportIntersectionNV = 5334,
|
||||||
OpIgnoreIntersectionNV = 5335,
|
OpIgnoreIntersectionNV = 5335,
|
||||||
@@ -1624,6 +1813,7 @@ spv = {
|
|||||||
OpTraceNV = 5337,
|
OpTraceNV = 5337,
|
||||||
OpTraceMotionNV = 5338,
|
OpTraceMotionNV = 5338,
|
||||||
OpTraceRayMotionNV = 5339,
|
OpTraceRayMotionNV = 5339,
|
||||||
|
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||||
OpTypeAccelerationStructureKHR = 5341,
|
OpTypeAccelerationStructureKHR = 5341,
|
||||||
OpTypeAccelerationStructureNV = 5341,
|
OpTypeAccelerationStructureNV = 5341,
|
||||||
OpExecuteCallableNV = 5344,
|
OpExecuteCallableNV = 5344,
|
||||||
@@ -1644,6 +1834,7 @@ spv = {
|
|||||||
OpConvertUToSampledImageNV = 5395,
|
OpConvertUToSampledImageNV = 5395,
|
||||||
OpConvertSampledImageToUNV = 5396,
|
OpConvertSampledImageToUNV = 5396,
|
||||||
OpSamplerImageAddressingModeNV = 5397,
|
OpSamplerImageAddressingModeNV = 5397,
|
||||||
|
OpRawAccessChainNV = 5398,
|
||||||
OpSubgroupShuffleINTEL = 5571,
|
OpSubgroupShuffleINTEL = 5571,
|
||||||
OpSubgroupShuffleDownINTEL = 5572,
|
OpSubgroupShuffleDownINTEL = 5572,
|
||||||
OpSubgroupShuffleUpINTEL = 5573,
|
OpSubgroupShuffleUpINTEL = 5573,
|
||||||
@@ -1885,6 +2076,9 @@ spv = {
|
|||||||
OpTypeStructContinuedINTEL = 6090,
|
OpTypeStructContinuedINTEL = 6090,
|
||||||
OpConstantCompositeContinuedINTEL = 6091,
|
OpConstantCompositeContinuedINTEL = 6091,
|
||||||
OpSpecConstantCompositeContinuedINTEL = 6092,
|
OpSpecConstantCompositeContinuedINTEL = 6092,
|
||||||
|
OpCompositeConstructContinuedINTEL = 6096,
|
||||||
|
OpConvertFToBF16INTEL = 6116,
|
||||||
|
OpConvertBF16ToFINTEL = 6117,
|
||||||
OpControlBarrierArriveINTEL = 6142,
|
OpControlBarrierArriveINTEL = 6142,
|
||||||
OpControlBarrierWaitINTEL = 6143,
|
OpControlBarrierWaitINTEL = 6143,
|
||||||
OpGroupIMulKHR = 6401,
|
OpGroupIMulKHR = 6401,
|
||||||
@@ -1895,6 +2089,8 @@ spv = {
|
|||||||
OpGroupLogicalAndKHR = 6406,
|
OpGroupLogicalAndKHR = 6406,
|
||||||
OpGroupLogicalOrKHR = 6407,
|
OpGroupLogicalOrKHR = 6407,
|
||||||
OpGroupLogicalXorKHR = 6408,
|
OpGroupLogicalXorKHR = 6408,
|
||||||
|
OpMaskedGatherINTEL = 6428,
|
||||||
|
OpMaskedScatterINTEL = 6429,
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+198
-2
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2014-2020 The Khronos Group Inc.
|
# Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
# of this software and/or associated documentation files (the "Materials"),
|
# of this software and/or associated documentation files (the "Materials"),
|
||||||
@@ -60,6 +60,11 @@ spv = {
|
|||||||
'HLSL' : 5,
|
'HLSL' : 5,
|
||||||
'CPP_for_OpenCL' : 6,
|
'CPP_for_OpenCL' : 6,
|
||||||
'SYCL' : 7,
|
'SYCL' : 7,
|
||||||
|
'HERO_C' : 8,
|
||||||
|
'NZSL' : 9,
|
||||||
|
'WGSL' : 10,
|
||||||
|
'Slang' : 11,
|
||||||
|
'Zig' : 12,
|
||||||
},
|
},
|
||||||
|
|
||||||
'ExecutionModel' : {
|
'ExecutionModel' : {
|
||||||
@@ -143,6 +148,9 @@ spv = {
|
|||||||
'SubgroupsPerWorkgroupId' : 37,
|
'SubgroupsPerWorkgroupId' : 37,
|
||||||
'LocalSizeId' : 38,
|
'LocalSizeId' : 38,
|
||||||
'LocalSizeHintId' : 39,
|
'LocalSizeHintId' : 39,
|
||||||
|
'NonCoherentColorAttachmentReadEXT' : 4169,
|
||||||
|
'NonCoherentDepthAttachmentReadEXT' : 4170,
|
||||||
|
'NonCoherentStencilAttachmentReadEXT' : 4171,
|
||||||
'SubgroupUniformControlFlowKHR' : 4421,
|
'SubgroupUniformControlFlowKHR' : 4421,
|
||||||
'PostDepthCoverage' : 4446,
|
'PostDepthCoverage' : 4446,
|
||||||
'DenormPreserve' : 4459,
|
'DenormPreserve' : 4459,
|
||||||
@@ -152,12 +160,19 @@ spv = {
|
|||||||
'RoundingModeRTZ' : 4463,
|
'RoundingModeRTZ' : 4463,
|
||||||
'EarlyAndLateFragmentTestsAMD' : 5017,
|
'EarlyAndLateFragmentTestsAMD' : 5017,
|
||||||
'StencilRefReplacingEXT' : 5027,
|
'StencilRefReplacingEXT' : 5027,
|
||||||
|
'CoalescingAMDX' : 5069,
|
||||||
|
'MaxNodeRecursionAMDX' : 5071,
|
||||||
|
'StaticNumWorkgroupsAMDX' : 5072,
|
||||||
|
'ShaderIndexAMDX' : 5073,
|
||||||
|
'MaxNumWorkgroupsAMDX' : 5077,
|
||||||
'StencilRefUnchangedFrontAMD' : 5079,
|
'StencilRefUnchangedFrontAMD' : 5079,
|
||||||
'StencilRefGreaterFrontAMD' : 5080,
|
'StencilRefGreaterFrontAMD' : 5080,
|
||||||
'StencilRefLessFrontAMD' : 5081,
|
'StencilRefLessFrontAMD' : 5081,
|
||||||
'StencilRefUnchangedBackAMD' : 5082,
|
'StencilRefUnchangedBackAMD' : 5082,
|
||||||
'StencilRefGreaterBackAMD' : 5083,
|
'StencilRefGreaterBackAMD' : 5083,
|
||||||
'StencilRefLessBackAMD' : 5084,
|
'StencilRefLessBackAMD' : 5084,
|
||||||
|
'QuadDerivativesKHR' : 5088,
|
||||||
|
'RequireFullQuadsKHR' : 5089,
|
||||||
'OutputLinesEXT' : 5269,
|
'OutputLinesEXT' : 5269,
|
||||||
'OutputLinesNV' : 5269,
|
'OutputLinesNV' : 5269,
|
||||||
'OutputPrimitivesEXT' : 5270,
|
'OutputPrimitivesEXT' : 5270,
|
||||||
@@ -182,8 +197,14 @@ spv = {
|
|||||||
'NoGlobalOffsetINTEL' : 5895,
|
'NoGlobalOffsetINTEL' : 5895,
|
||||||
'NumSIMDWorkitemsINTEL' : 5896,
|
'NumSIMDWorkitemsINTEL' : 5896,
|
||||||
'SchedulerTargetFmaxMhzINTEL' : 5903,
|
'SchedulerTargetFmaxMhzINTEL' : 5903,
|
||||||
|
'MaximallyReconvergesKHR' : 6023,
|
||||||
|
'FPFastMathDefault' : 6028,
|
||||||
'StreamingInterfaceINTEL' : 6154,
|
'StreamingInterfaceINTEL' : 6154,
|
||||||
|
'RegisterMapInterfaceINTEL' : 6160,
|
||||||
'NamedBarrierCountINTEL' : 6417,
|
'NamedBarrierCountINTEL' : 6417,
|
||||||
|
'MaximumRegistersINTEL' : 6461,
|
||||||
|
'MaximumRegistersIdINTEL' : 6462,
|
||||||
|
'NamedMaximumRegistersINTEL' : 6463,
|
||||||
},
|
},
|
||||||
|
|
||||||
'StorageClass' : {
|
'StorageClass' : {
|
||||||
@@ -200,6 +221,9 @@ spv = {
|
|||||||
'AtomicCounter' : 10,
|
'AtomicCounter' : 10,
|
||||||
'Image' : 11,
|
'Image' : 11,
|
||||||
'StorageBuffer' : 12,
|
'StorageBuffer' : 12,
|
||||||
|
'TileImageEXT' : 4172,
|
||||||
|
'NodePayloadAMDX' : 5068,
|
||||||
|
'NodeOutputPayloadAMDX' : 5076,
|
||||||
'CallableDataKHR' : 5328,
|
'CallableDataKHR' : 5328,
|
||||||
'CallableDataNV' : 5328,
|
'CallableDataNV' : 5328,
|
||||||
'IncomingCallableDataKHR' : 5329,
|
'IncomingCallableDataKHR' : 5329,
|
||||||
@@ -229,6 +253,7 @@ spv = {
|
|||||||
'Rect' : 4,
|
'Rect' : 4,
|
||||||
'Buffer' : 5,
|
'Buffer' : 5,
|
||||||
'SubpassData' : 6,
|
'SubpassData' : 6,
|
||||||
|
'TileImageDataEXT' : 4173,
|
||||||
},
|
},
|
||||||
|
|
||||||
'SamplerAddressingMode' : {
|
'SamplerAddressingMode' : {
|
||||||
@@ -330,6 +355,8 @@ spv = {
|
|||||||
'Float' : 14,
|
'Float' : 14,
|
||||||
'UnormInt24' : 15,
|
'UnormInt24' : 15,
|
||||||
'UnormInt101010_2' : 16,
|
'UnormInt101010_2' : 16,
|
||||||
|
'UnsignedIntRaw10EXT' : 19,
|
||||||
|
'UnsignedIntRaw12EXT' : 20,
|
||||||
},
|
},
|
||||||
|
|
||||||
'ImageOperandsShift' : {
|
'ImageOperandsShift' : {
|
||||||
@@ -385,8 +412,11 @@ spv = {
|
|||||||
'NSZ' : 2,
|
'NSZ' : 2,
|
||||||
'AllowRecip' : 3,
|
'AllowRecip' : 3,
|
||||||
'Fast' : 4,
|
'Fast' : 4,
|
||||||
|
'AllowContract' : 16,
|
||||||
'AllowContractFastINTEL' : 16,
|
'AllowContractFastINTEL' : 16,
|
||||||
|
'AllowReassoc' : 17,
|
||||||
'AllowReassocINTEL' : 17,
|
'AllowReassocINTEL' : 17,
|
||||||
|
'AllowTransform' : 18,
|
||||||
},
|
},
|
||||||
|
|
||||||
'FPFastMathModeMask' : {
|
'FPFastMathModeMask' : {
|
||||||
@@ -396,8 +426,11 @@ spv = {
|
|||||||
'NSZ' : 0x00000004,
|
'NSZ' : 0x00000004,
|
||||||
'AllowRecip' : 0x00000008,
|
'AllowRecip' : 0x00000008,
|
||||||
'Fast' : 0x00000010,
|
'Fast' : 0x00000010,
|
||||||
|
'AllowContract' : 0x00010000,
|
||||||
'AllowContractFastINTEL' : 0x00010000,
|
'AllowContractFastINTEL' : 0x00010000,
|
||||||
|
'AllowReassoc' : 0x00020000,
|
||||||
'AllowReassocINTEL' : 0x00020000,
|
'AllowReassocINTEL' : 0x00020000,
|
||||||
|
'AllowTransform' : 0x00040000,
|
||||||
},
|
},
|
||||||
|
|
||||||
'FPRoundingMode' : {
|
'FPRoundingMode' : {
|
||||||
@@ -481,7 +514,14 @@ spv = {
|
|||||||
'MaxByteOffsetId' : 47,
|
'MaxByteOffsetId' : 47,
|
||||||
'NoSignedWrap' : 4469,
|
'NoSignedWrap' : 4469,
|
||||||
'NoUnsignedWrap' : 4470,
|
'NoUnsignedWrap' : 4470,
|
||||||
|
'WeightTextureQCOM' : 4487,
|
||||||
|
'BlockMatchTextureQCOM' : 4488,
|
||||||
|
'BlockMatchSamplerQCOM' : 4499,
|
||||||
'ExplicitInterpAMD' : 4999,
|
'ExplicitInterpAMD' : 4999,
|
||||||
|
'NodeSharesPayloadLimitsWithAMDX' : 5019,
|
||||||
|
'NodeMaxPayloadsAMDX' : 5020,
|
||||||
|
'TrackFinishWritingAMDX' : 5078,
|
||||||
|
'PayloadNodeNameAMDX' : 5091,
|
||||||
'OverrideCoverageNV' : 5248,
|
'OverrideCoverageNV' : 5248,
|
||||||
'PassthroughNV' : 5250,
|
'PassthroughNV' : 5250,
|
||||||
'ViewportRelativeNV' : 5252,
|
'ViewportRelativeNV' : 5252,
|
||||||
@@ -531,6 +571,9 @@ spv = {
|
|||||||
'MergeINTEL' : 5834,
|
'MergeINTEL' : 5834,
|
||||||
'BankBitsINTEL' : 5835,
|
'BankBitsINTEL' : 5835,
|
||||||
'ForcePow2DepthINTEL' : 5836,
|
'ForcePow2DepthINTEL' : 5836,
|
||||||
|
'StridesizeINTEL' : 5883,
|
||||||
|
'WordsizeINTEL' : 5884,
|
||||||
|
'TrueDualPortINTEL' : 5885,
|
||||||
'BurstCoalesceINTEL' : 5899,
|
'BurstCoalesceINTEL' : 5899,
|
||||||
'CacheSizeINTEL' : 5900,
|
'CacheSizeINTEL' : 5900,
|
||||||
'DontStaticallyCoalesceINTEL' : 5901,
|
'DontStaticallyCoalesceINTEL' : 5901,
|
||||||
@@ -549,6 +592,24 @@ spv = {
|
|||||||
'SingleElementVectorINTEL' : 6085,
|
'SingleElementVectorINTEL' : 6085,
|
||||||
'VectorComputeCallableFunctionINTEL' : 6087,
|
'VectorComputeCallableFunctionINTEL' : 6087,
|
||||||
'MediaBlockIOINTEL' : 6140,
|
'MediaBlockIOINTEL' : 6140,
|
||||||
|
'StallFreeINTEL' : 6151,
|
||||||
|
'FPMaxErrorDecorationINTEL' : 6170,
|
||||||
|
'LatencyControlLabelINTEL' : 6172,
|
||||||
|
'LatencyControlConstraintINTEL' : 6173,
|
||||||
|
'ConduitKernelArgumentINTEL' : 6175,
|
||||||
|
'RegisterMapKernelArgumentINTEL' : 6176,
|
||||||
|
'MMHostInterfaceAddressWidthINTEL' : 6177,
|
||||||
|
'MMHostInterfaceDataWidthINTEL' : 6178,
|
||||||
|
'MMHostInterfaceLatencyINTEL' : 6179,
|
||||||
|
'MMHostInterfaceReadWriteModeINTEL' : 6180,
|
||||||
|
'MMHostInterfaceMaxBurstINTEL' : 6181,
|
||||||
|
'MMHostInterfaceWaitRequestINTEL' : 6182,
|
||||||
|
'StableKernelArgumentINTEL' : 6183,
|
||||||
|
'HostAccessINTEL' : 6188,
|
||||||
|
'InitModeINTEL' : 6190,
|
||||||
|
'ImplementInRegisterMapINTEL' : 6191,
|
||||||
|
'CacheControlLoadINTEL' : 6442,
|
||||||
|
'CacheControlStoreINTEL' : 6443,
|
||||||
},
|
},
|
||||||
|
|
||||||
'BuiltIn' : {
|
'BuiltIn' : {
|
||||||
@@ -623,6 +684,8 @@ spv = {
|
|||||||
'BaryCoordSmoothSampleAMD' : 4997,
|
'BaryCoordSmoothSampleAMD' : 4997,
|
||||||
'BaryCoordPullModelAMD' : 4998,
|
'BaryCoordPullModelAMD' : 4998,
|
||||||
'FragStencilRefEXT' : 5014,
|
'FragStencilRefEXT' : 5014,
|
||||||
|
'CoalescedInputCountAMDX' : 5021,
|
||||||
|
'ShaderIndexAMDX' : 5073,
|
||||||
'ViewportMaskNV' : 5253,
|
'ViewportMaskNV' : 5253,
|
||||||
'SecondaryPositionNV' : 5257,
|
'SecondaryPositionNV' : 5257,
|
||||||
'SecondaryViewportMaskNV' : 5258,
|
'SecondaryViewportMaskNV' : 5258,
|
||||||
@@ -675,6 +738,9 @@ spv = {
|
|||||||
'HitKindKHR' : 5333,
|
'HitKindKHR' : 5333,
|
||||||
'HitKindNV' : 5333,
|
'HitKindNV' : 5333,
|
||||||
'CurrentRayTimeNV' : 5334,
|
'CurrentRayTimeNV' : 5334,
|
||||||
|
'HitTriangleVertexPositionsKHR' : 5335,
|
||||||
|
'HitMicroTriangleVertexPositionsNV' : 5337,
|
||||||
|
'HitMicroTriangleVertexBarycentricsNV' : 5344,
|
||||||
'IncomingRayFlagsKHR' : 5351,
|
'IncomingRayFlagsKHR' : 5351,
|
||||||
'IncomingRayFlagsNV' : 5351,
|
'IncomingRayFlagsNV' : 5351,
|
||||||
'RayGeometryIndexKHR' : 5352,
|
'RayGeometryIndexKHR' : 5352,
|
||||||
@@ -682,6 +748,8 @@ spv = {
|
|||||||
'SMCountNV' : 5375,
|
'SMCountNV' : 5375,
|
||||||
'WarpIDNV' : 5376,
|
'WarpIDNV' : 5376,
|
||||||
'SMIDNV' : 5377,
|
'SMIDNV' : 5377,
|
||||||
|
'HitKindFrontFacingMicroTriangleNV' : 5405,
|
||||||
|
'HitKindBackFacingMicroTriangleNV' : 5406,
|
||||||
'CullMaskKHR' : 6021,
|
'CullMaskKHR' : 6021,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -936,6 +1004,9 @@ spv = {
|
|||||||
'ShaderViewportIndex' : 70,
|
'ShaderViewportIndex' : 70,
|
||||||
'UniformDecoration' : 71,
|
'UniformDecoration' : 71,
|
||||||
'CoreBuiltinsARM' : 4165,
|
'CoreBuiltinsARM' : 4165,
|
||||||
|
'TileImageColorReadAccessEXT' : 4166,
|
||||||
|
'TileImageDepthReadAccessEXT' : 4167,
|
||||||
|
'TileImageStencilReadAccessEXT' : 4168,
|
||||||
'FragmentShadingRateKHR' : 4422,
|
'FragmentShadingRateKHR' : 4422,
|
||||||
'SubgroupBallotKHR' : 4423,
|
'SubgroupBallotKHR' : 4423,
|
||||||
'DrawParameters' : 4427,
|
'DrawParameters' : 4427,
|
||||||
@@ -967,6 +1038,10 @@ spv = {
|
|||||||
'RayQueryKHR' : 4472,
|
'RayQueryKHR' : 4472,
|
||||||
'RayTraversalPrimitiveCullingKHR' : 4478,
|
'RayTraversalPrimitiveCullingKHR' : 4478,
|
||||||
'RayTracingKHR' : 4479,
|
'RayTracingKHR' : 4479,
|
||||||
|
'TextureSampleWeightedQCOM' : 4484,
|
||||||
|
'TextureBoxFilterQCOM' : 4485,
|
||||||
|
'TextureBlockMatchQCOM' : 4486,
|
||||||
|
'TextureBlockMatch2QCOM' : 4498,
|
||||||
'Float16ImageAMD' : 5008,
|
'Float16ImageAMD' : 5008,
|
||||||
'ImageGatherBiasLodAMD' : 5009,
|
'ImageGatherBiasLodAMD' : 5009,
|
||||||
'FragmentMaskAMD' : 5010,
|
'FragmentMaskAMD' : 5010,
|
||||||
@@ -974,6 +1049,8 @@ spv = {
|
|||||||
'ImageReadWriteLodAMD' : 5015,
|
'ImageReadWriteLodAMD' : 5015,
|
||||||
'Int64ImageEXT' : 5016,
|
'Int64ImageEXT' : 5016,
|
||||||
'ShaderClockKHR' : 5055,
|
'ShaderClockKHR' : 5055,
|
||||||
|
'ShaderEnqueueAMDX' : 5067,
|
||||||
|
'QuadControlKHR' : 5087,
|
||||||
'SampleMaskOverrideCoverageNV' : 5249,
|
'SampleMaskOverrideCoverageNV' : 5249,
|
||||||
'GeometryShaderPassthroughNV' : 5251,
|
'GeometryShaderPassthroughNV' : 5251,
|
||||||
'ShaderViewportIndexLayerEXT' : 5254,
|
'ShaderViewportIndexLayerEXT' : 5254,
|
||||||
@@ -1015,6 +1092,7 @@ spv = {
|
|||||||
'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311,
|
'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311,
|
||||||
'StorageTexelBufferArrayNonUniformIndexing' : 5312,
|
'StorageTexelBufferArrayNonUniformIndexing' : 5312,
|
||||||
'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312,
|
'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312,
|
||||||
|
'RayTracingPositionFetchKHR' : 5336,
|
||||||
'RayTracingNV' : 5340,
|
'RayTracingNV' : 5340,
|
||||||
'RayTracingMotionBlurNV' : 5341,
|
'RayTracingMotionBlurNV' : 5341,
|
||||||
'VulkanMemoryModel' : 5345,
|
'VulkanMemoryModel' : 5345,
|
||||||
@@ -1032,9 +1110,14 @@ spv = {
|
|||||||
'FragmentShaderPixelInterlockEXT' : 5378,
|
'FragmentShaderPixelInterlockEXT' : 5378,
|
||||||
'DemoteToHelperInvocation' : 5379,
|
'DemoteToHelperInvocation' : 5379,
|
||||||
'DemoteToHelperInvocationEXT' : 5379,
|
'DemoteToHelperInvocationEXT' : 5379,
|
||||||
|
'DisplacementMicromapNV' : 5380,
|
||||||
'RayTracingOpacityMicromapEXT' : 5381,
|
'RayTracingOpacityMicromapEXT' : 5381,
|
||||||
'ShaderInvocationReorderNV' : 5383,
|
'ShaderInvocationReorderNV' : 5383,
|
||||||
'BindlessTextureNV' : 5390,
|
'BindlessTextureNV' : 5390,
|
||||||
|
'RayQueryPositionFetchKHR' : 5391,
|
||||||
|
'AtomicFloat16VectorNV' : 5404,
|
||||||
|
'RayTracingDisplacementMicromapNV' : 5409,
|
||||||
|
'RawAccessChainsNV' : 5414,
|
||||||
'SubgroupShuffleINTEL' : 5568,
|
'SubgroupShuffleINTEL' : 5568,
|
||||||
'SubgroupBufferBlockIOINTEL' : 5569,
|
'SubgroupBufferBlockIOINTEL' : 5569,
|
||||||
'SubgroupImageBlockIOINTEL' : 5570,
|
'SubgroupImageBlockIOINTEL' : 5570,
|
||||||
@@ -1086,16 +1169,29 @@ spv = {
|
|||||||
'DotProduct' : 6019,
|
'DotProduct' : 6019,
|
||||||
'DotProductKHR' : 6019,
|
'DotProductKHR' : 6019,
|
||||||
'RayCullMaskKHR' : 6020,
|
'RayCullMaskKHR' : 6020,
|
||||||
|
'CooperativeMatrixKHR' : 6022,
|
||||||
'BitInstructions' : 6025,
|
'BitInstructions' : 6025,
|
||||||
'GroupNonUniformRotateKHR' : 6026,
|
'GroupNonUniformRotateKHR' : 6026,
|
||||||
|
'FloatControls2' : 6029,
|
||||||
'AtomicFloat32AddEXT' : 6033,
|
'AtomicFloat32AddEXT' : 6033,
|
||||||
'AtomicFloat64AddEXT' : 6034,
|
'AtomicFloat64AddEXT' : 6034,
|
||||||
'LongConstantCompositeINTEL' : 6089,
|
'LongCompositesINTEL' : 6089,
|
||||||
'OptNoneINTEL' : 6094,
|
'OptNoneINTEL' : 6094,
|
||||||
'AtomicFloat16AddEXT' : 6095,
|
'AtomicFloat16AddEXT' : 6095,
|
||||||
'DebugInfoModuleINTEL' : 6114,
|
'DebugInfoModuleINTEL' : 6114,
|
||||||
|
'BFloat16ConversionINTEL' : 6115,
|
||||||
'SplitBarrierINTEL' : 6141,
|
'SplitBarrierINTEL' : 6141,
|
||||||
|
'FPGAClusterAttributesV2INTEL' : 6150,
|
||||||
|
'FPGAKernelAttributesv2INTEL' : 6161,
|
||||||
|
'FPMaxErrorINTEL' : 6169,
|
||||||
|
'FPGALatencyControlINTEL' : 6171,
|
||||||
|
'FPGAArgumentInterfacesINTEL' : 6174,
|
||||||
|
'GlobalVariableHostAccessINTEL' : 6187,
|
||||||
|
'GlobalVariableFPGADecorationsINTEL' : 6189,
|
||||||
'GroupUniformArithmeticKHR' : 6400,
|
'GroupUniformArithmeticKHR' : 6400,
|
||||||
|
'MaskedGatherScatterINTEL' : 6427,
|
||||||
|
'CacheControlsINTEL' : 6441,
|
||||||
|
'RegisterLimitsINTEL' : 6460,
|
||||||
},
|
},
|
||||||
|
|
||||||
'RayFlagsShift' : {
|
'RayFlagsShift' : {
|
||||||
@@ -1191,6 +1287,76 @@ spv = {
|
|||||||
'PackedVectorFormat4x8BitKHR' : 0,
|
'PackedVectorFormat4x8BitKHR' : 0,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
'CooperativeMatrixOperandsShift' : {
|
||||||
|
'MatrixASignedComponentsKHR' : 0,
|
||||||
|
'MatrixBSignedComponentsKHR' : 1,
|
||||||
|
'MatrixCSignedComponentsKHR' : 2,
|
||||||
|
'MatrixResultSignedComponentsKHR' : 3,
|
||||||
|
'SaturatingAccumulationKHR' : 4,
|
||||||
|
},
|
||||||
|
|
||||||
|
'CooperativeMatrixOperandsMask' : {
|
||||||
|
'MaskNone' : 0,
|
||||||
|
'MatrixASignedComponentsKHR' : 0x00000001,
|
||||||
|
'MatrixBSignedComponentsKHR' : 0x00000002,
|
||||||
|
'MatrixCSignedComponentsKHR' : 0x00000004,
|
||||||
|
'MatrixResultSignedComponentsKHR' : 0x00000008,
|
||||||
|
'SaturatingAccumulationKHR' : 0x00000010,
|
||||||
|
},
|
||||||
|
|
||||||
|
'CooperativeMatrixLayout' : {
|
||||||
|
'RowMajorKHR' : 0,
|
||||||
|
'ColumnMajorKHR' : 1,
|
||||||
|
},
|
||||||
|
|
||||||
|
'CooperativeMatrixUse' : {
|
||||||
|
'MatrixAKHR' : 0,
|
||||||
|
'MatrixBKHR' : 1,
|
||||||
|
'MatrixAccumulatorKHR' : 2,
|
||||||
|
},
|
||||||
|
|
||||||
|
'InitializationModeQualifier' : {
|
||||||
|
'InitOnDeviceReprogramINTEL' : 0,
|
||||||
|
'InitOnDeviceResetINTEL' : 1,
|
||||||
|
},
|
||||||
|
|
||||||
|
'HostAccessQualifier' : {
|
||||||
|
'NoneINTEL' : 0,
|
||||||
|
'ReadINTEL' : 1,
|
||||||
|
'WriteINTEL' : 2,
|
||||||
|
'ReadWriteINTEL' : 3,
|
||||||
|
},
|
||||||
|
|
||||||
|
'LoadCacheControl' : {
|
||||||
|
'UncachedINTEL' : 0,
|
||||||
|
'CachedINTEL' : 1,
|
||||||
|
'StreamingINTEL' : 2,
|
||||||
|
'InvalidateAfterReadINTEL' : 3,
|
||||||
|
'ConstCachedINTEL' : 4,
|
||||||
|
},
|
||||||
|
|
||||||
|
'StoreCacheControl' : {
|
||||||
|
'UncachedINTEL' : 0,
|
||||||
|
'WriteThroughINTEL' : 1,
|
||||||
|
'WriteBackINTEL' : 2,
|
||||||
|
'StreamingINTEL' : 3,
|
||||||
|
},
|
||||||
|
|
||||||
|
'NamedMaximumNumberOfRegisters' : {
|
||||||
|
'AutoINTEL' : 0,
|
||||||
|
},
|
||||||
|
|
||||||
|
'RawAccessChainOperandsShift' : {
|
||||||
|
'RobustnessPerComponentNV' : 0,
|
||||||
|
'RobustnessPerElementNV' : 1,
|
||||||
|
},
|
||||||
|
|
||||||
|
'RawAccessChainOperandsMask' : {
|
||||||
|
'MaskNone' : 0,
|
||||||
|
'RobustnessPerComponentNV' : 0x00000001,
|
||||||
|
'RobustnessPerElementNV' : 0x00000002,
|
||||||
|
},
|
||||||
|
|
||||||
'Op' : {
|
'Op' : {
|
||||||
'OpNop' : 0,
|
'OpNop' : 0,
|
||||||
'OpUndef' : 1,
|
'OpUndef' : 1,
|
||||||
@@ -1536,6 +1702,9 @@ spv = {
|
|||||||
'OpPtrEqual' : 401,
|
'OpPtrEqual' : 401,
|
||||||
'OpPtrNotEqual' : 402,
|
'OpPtrNotEqual' : 402,
|
||||||
'OpPtrDiff' : 403,
|
'OpPtrDiff' : 403,
|
||||||
|
'OpColorAttachmentReadEXT' : 4160,
|
||||||
|
'OpDepthAttachmentReadEXT' : 4161,
|
||||||
|
'OpStencilAttachmentReadEXT' : 4162,
|
||||||
'OpTerminateInvocation' : 4416,
|
'OpTerminateInvocation' : 4416,
|
||||||
'OpSubgroupBallotKHR' : 4421,
|
'OpSubgroupBallotKHR' : 4421,
|
||||||
'OpSubgroupFirstInvocationKHR' : 4422,
|
'OpSubgroupFirstInvocationKHR' : 4422,
|
||||||
@@ -1561,6 +1730,11 @@ spv = {
|
|||||||
'OpUDotAccSatKHR' : 4454,
|
'OpUDotAccSatKHR' : 4454,
|
||||||
'OpSUDotAccSat' : 4455,
|
'OpSUDotAccSat' : 4455,
|
||||||
'OpSUDotAccSatKHR' : 4455,
|
'OpSUDotAccSatKHR' : 4455,
|
||||||
|
'OpTypeCooperativeMatrixKHR' : 4456,
|
||||||
|
'OpCooperativeMatrixLoadKHR' : 4457,
|
||||||
|
'OpCooperativeMatrixStoreKHR' : 4458,
|
||||||
|
'OpCooperativeMatrixMulAddKHR' : 4459,
|
||||||
|
'OpCooperativeMatrixLengthKHR' : 4460,
|
||||||
'OpTypeRayQueryKHR' : 4472,
|
'OpTypeRayQueryKHR' : 4472,
|
||||||
'OpRayQueryInitializeKHR' : 4473,
|
'OpRayQueryInitializeKHR' : 4473,
|
||||||
'OpRayQueryTerminateKHR' : 4474,
|
'OpRayQueryTerminateKHR' : 4474,
|
||||||
@@ -1568,6 +1742,14 @@ spv = {
|
|||||||
'OpRayQueryConfirmIntersectionKHR' : 4476,
|
'OpRayQueryConfirmIntersectionKHR' : 4476,
|
||||||
'OpRayQueryProceedKHR' : 4477,
|
'OpRayQueryProceedKHR' : 4477,
|
||||||
'OpRayQueryGetIntersectionTypeKHR' : 4479,
|
'OpRayQueryGetIntersectionTypeKHR' : 4479,
|
||||||
|
'OpImageSampleWeightedQCOM' : 4480,
|
||||||
|
'OpImageBoxFilterQCOM' : 4481,
|
||||||
|
'OpImageBlockMatchSSDQCOM' : 4482,
|
||||||
|
'OpImageBlockMatchSADQCOM' : 4483,
|
||||||
|
'OpImageBlockMatchWindowSSDQCOM' : 4500,
|
||||||
|
'OpImageBlockMatchWindowSADQCOM' : 4501,
|
||||||
|
'OpImageBlockMatchGatherSSDQCOM' : 4502,
|
||||||
|
'OpImageBlockMatchGatherSADQCOM' : 4503,
|
||||||
'OpGroupIAddNonUniformAMD' : 5000,
|
'OpGroupIAddNonUniformAMD' : 5000,
|
||||||
'OpGroupFAddNonUniformAMD' : 5001,
|
'OpGroupFAddNonUniformAMD' : 5001,
|
||||||
'OpGroupFMinNonUniformAMD' : 5002,
|
'OpGroupFMinNonUniformAMD' : 5002,
|
||||||
@@ -1579,6 +1761,11 @@ spv = {
|
|||||||
'OpFragmentMaskFetchAMD' : 5011,
|
'OpFragmentMaskFetchAMD' : 5011,
|
||||||
'OpFragmentFetchAMD' : 5012,
|
'OpFragmentFetchAMD' : 5012,
|
||||||
'OpReadClockKHR' : 5056,
|
'OpReadClockKHR' : 5056,
|
||||||
|
'OpFinalizeNodePayloadsAMDX' : 5075,
|
||||||
|
'OpFinishWritingNodePayloadAMDX' : 5078,
|
||||||
|
'OpInitializeNodePayloadsAMDX' : 5090,
|
||||||
|
'OpGroupNonUniformQuadAllKHR' : 5110,
|
||||||
|
'OpGroupNonUniformQuadAnyKHR' : 5111,
|
||||||
'OpHitObjectRecordHitMotionNV' : 5249,
|
'OpHitObjectRecordHitMotionNV' : 5249,
|
||||||
'OpHitObjectRecordHitWithIndexMotionNV' : 5250,
|
'OpHitObjectRecordHitWithIndexMotionNV' : 5250,
|
||||||
'OpHitObjectRecordMissMotionNV' : 5251,
|
'OpHitObjectRecordMissMotionNV' : 5251,
|
||||||
@@ -1617,6 +1804,8 @@ spv = {
|
|||||||
'OpSetMeshOutputsEXT' : 5295,
|
'OpSetMeshOutputsEXT' : 5295,
|
||||||
'OpGroupNonUniformPartitionNV' : 5296,
|
'OpGroupNonUniformPartitionNV' : 5296,
|
||||||
'OpWritePackedPrimitiveIndices4x8NV' : 5299,
|
'OpWritePackedPrimitiveIndices4x8NV' : 5299,
|
||||||
|
'OpFetchMicroTriangleVertexPositionNV' : 5300,
|
||||||
|
'OpFetchMicroTriangleVertexBarycentricNV' : 5301,
|
||||||
'OpReportIntersectionKHR' : 5334,
|
'OpReportIntersectionKHR' : 5334,
|
||||||
'OpReportIntersectionNV' : 5334,
|
'OpReportIntersectionNV' : 5334,
|
||||||
'OpIgnoreIntersectionNV' : 5335,
|
'OpIgnoreIntersectionNV' : 5335,
|
||||||
@@ -1624,6 +1813,7 @@ spv = {
|
|||||||
'OpTraceNV' : 5337,
|
'OpTraceNV' : 5337,
|
||||||
'OpTraceMotionNV' : 5338,
|
'OpTraceMotionNV' : 5338,
|
||||||
'OpTraceRayMotionNV' : 5339,
|
'OpTraceRayMotionNV' : 5339,
|
||||||
|
'OpRayQueryGetIntersectionTriangleVertexPositionsKHR' : 5340,
|
||||||
'OpTypeAccelerationStructureKHR' : 5341,
|
'OpTypeAccelerationStructureKHR' : 5341,
|
||||||
'OpTypeAccelerationStructureNV' : 5341,
|
'OpTypeAccelerationStructureNV' : 5341,
|
||||||
'OpExecuteCallableNV' : 5344,
|
'OpExecuteCallableNV' : 5344,
|
||||||
@@ -1644,6 +1834,7 @@ spv = {
|
|||||||
'OpConvertUToSampledImageNV' : 5395,
|
'OpConvertUToSampledImageNV' : 5395,
|
||||||
'OpConvertSampledImageToUNV' : 5396,
|
'OpConvertSampledImageToUNV' : 5396,
|
||||||
'OpSamplerImageAddressingModeNV' : 5397,
|
'OpSamplerImageAddressingModeNV' : 5397,
|
||||||
|
'OpRawAccessChainNV' : 5398,
|
||||||
'OpSubgroupShuffleINTEL' : 5571,
|
'OpSubgroupShuffleINTEL' : 5571,
|
||||||
'OpSubgroupShuffleDownINTEL' : 5572,
|
'OpSubgroupShuffleDownINTEL' : 5572,
|
||||||
'OpSubgroupShuffleUpINTEL' : 5573,
|
'OpSubgroupShuffleUpINTEL' : 5573,
|
||||||
@@ -1885,6 +2076,9 @@ spv = {
|
|||||||
'OpTypeStructContinuedINTEL' : 6090,
|
'OpTypeStructContinuedINTEL' : 6090,
|
||||||
'OpConstantCompositeContinuedINTEL' : 6091,
|
'OpConstantCompositeContinuedINTEL' : 6091,
|
||||||
'OpSpecConstantCompositeContinuedINTEL' : 6092,
|
'OpSpecConstantCompositeContinuedINTEL' : 6092,
|
||||||
|
'OpCompositeConstructContinuedINTEL' : 6096,
|
||||||
|
'OpConvertFToBF16INTEL' : 6116,
|
||||||
|
'OpConvertBF16ToFINTEL' : 6117,
|
||||||
'OpControlBarrierArriveINTEL' : 6142,
|
'OpControlBarrierArriveINTEL' : 6142,
|
||||||
'OpControlBarrierWaitINTEL' : 6143,
|
'OpControlBarrierWaitINTEL' : 6143,
|
||||||
'OpGroupIMulKHR' : 6401,
|
'OpGroupIMulKHR' : 6401,
|
||||||
@@ -1895,6 +2089,8 @@ spv = {
|
|||||||
'OpGroupLogicalAndKHR' : 6406,
|
'OpGroupLogicalAndKHR' : 6406,
|
||||||
'OpGroupLogicalOrKHR' : 6407,
|
'OpGroupLogicalOrKHR' : 6407,
|
||||||
'OpGroupLogicalXorKHR' : 6408,
|
'OpGroupLogicalXorKHR' : 6408,
|
||||||
|
'OpMaskedGatherINTEL' : 6428,
|
||||||
|
'OpMaskedScatterINTEL' : 6429,
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+209
-2
@@ -1,5 +1,5 @@
|
|||||||
/+
|
/+
|
||||||
+ Copyright (c) 2014-2020 The Khronos Group Inc.
|
+ Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
+
|
+
|
||||||
+ Permission is hereby granted, free of charge, to any person obtaining a copy
|
+ Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
+ of this software and/or associated documentation files (the "Materials"),
|
+ of this software and/or associated documentation files (the "Materials"),
|
||||||
@@ -68,6 +68,11 @@ enum SourceLanguage : uint
|
|||||||
HLSL = 5,
|
HLSL = 5,
|
||||||
CPP_for_OpenCL = 6,
|
CPP_for_OpenCL = 6,
|
||||||
SYCL = 7,
|
SYCL = 7,
|
||||||
|
HERO_C = 8,
|
||||||
|
NZSL = 9,
|
||||||
|
WGSL = 10,
|
||||||
|
Slang = 11,
|
||||||
|
Zig = 12,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ExecutionModel : uint
|
enum ExecutionModel : uint
|
||||||
@@ -155,6 +160,9 @@ enum ExecutionMode : uint
|
|||||||
SubgroupsPerWorkgroupId = 37,
|
SubgroupsPerWorkgroupId = 37,
|
||||||
LocalSizeId = 38,
|
LocalSizeId = 38,
|
||||||
LocalSizeHintId = 39,
|
LocalSizeHintId = 39,
|
||||||
|
NonCoherentColorAttachmentReadEXT = 4169,
|
||||||
|
NonCoherentDepthAttachmentReadEXT = 4170,
|
||||||
|
NonCoherentStencilAttachmentReadEXT = 4171,
|
||||||
SubgroupUniformControlFlowKHR = 4421,
|
SubgroupUniformControlFlowKHR = 4421,
|
||||||
PostDepthCoverage = 4446,
|
PostDepthCoverage = 4446,
|
||||||
DenormPreserve = 4459,
|
DenormPreserve = 4459,
|
||||||
@@ -164,12 +172,19 @@ enum ExecutionMode : uint
|
|||||||
RoundingModeRTZ = 4463,
|
RoundingModeRTZ = 4463,
|
||||||
EarlyAndLateFragmentTestsAMD = 5017,
|
EarlyAndLateFragmentTestsAMD = 5017,
|
||||||
StencilRefReplacingEXT = 5027,
|
StencilRefReplacingEXT = 5027,
|
||||||
|
CoalescingAMDX = 5069,
|
||||||
|
MaxNodeRecursionAMDX = 5071,
|
||||||
|
StaticNumWorkgroupsAMDX = 5072,
|
||||||
|
ShaderIndexAMDX = 5073,
|
||||||
|
MaxNumWorkgroupsAMDX = 5077,
|
||||||
StencilRefUnchangedFrontAMD = 5079,
|
StencilRefUnchangedFrontAMD = 5079,
|
||||||
StencilRefGreaterFrontAMD = 5080,
|
StencilRefGreaterFrontAMD = 5080,
|
||||||
StencilRefLessFrontAMD = 5081,
|
StencilRefLessFrontAMD = 5081,
|
||||||
StencilRefUnchangedBackAMD = 5082,
|
StencilRefUnchangedBackAMD = 5082,
|
||||||
StencilRefGreaterBackAMD = 5083,
|
StencilRefGreaterBackAMD = 5083,
|
||||||
StencilRefLessBackAMD = 5084,
|
StencilRefLessBackAMD = 5084,
|
||||||
|
QuadDerivativesKHR = 5088,
|
||||||
|
RequireFullQuadsKHR = 5089,
|
||||||
OutputLinesEXT = 5269,
|
OutputLinesEXT = 5269,
|
||||||
OutputLinesNV = 5269,
|
OutputLinesNV = 5269,
|
||||||
OutputPrimitivesEXT = 5270,
|
OutputPrimitivesEXT = 5270,
|
||||||
@@ -194,8 +209,14 @@ enum ExecutionMode : uint
|
|||||||
NoGlobalOffsetINTEL = 5895,
|
NoGlobalOffsetINTEL = 5895,
|
||||||
NumSIMDWorkitemsINTEL = 5896,
|
NumSIMDWorkitemsINTEL = 5896,
|
||||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
SchedulerTargetFmaxMhzINTEL = 5903,
|
||||||
|
MaximallyReconvergesKHR = 6023,
|
||||||
|
FPFastMathDefault = 6028,
|
||||||
StreamingInterfaceINTEL = 6154,
|
StreamingInterfaceINTEL = 6154,
|
||||||
|
RegisterMapInterfaceINTEL = 6160,
|
||||||
NamedBarrierCountINTEL = 6417,
|
NamedBarrierCountINTEL = 6417,
|
||||||
|
MaximumRegistersINTEL = 6461,
|
||||||
|
MaximumRegistersIdINTEL = 6462,
|
||||||
|
NamedMaximumRegistersINTEL = 6463,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum StorageClass : uint
|
enum StorageClass : uint
|
||||||
@@ -213,6 +234,9 @@ enum StorageClass : uint
|
|||||||
AtomicCounter = 10,
|
AtomicCounter = 10,
|
||||||
Image = 11,
|
Image = 11,
|
||||||
StorageBuffer = 12,
|
StorageBuffer = 12,
|
||||||
|
TileImageEXT = 4172,
|
||||||
|
NodePayloadAMDX = 5068,
|
||||||
|
NodeOutputPayloadAMDX = 5076,
|
||||||
CallableDataKHR = 5328,
|
CallableDataKHR = 5328,
|
||||||
CallableDataNV = 5328,
|
CallableDataNV = 5328,
|
||||||
IncomingCallableDataKHR = 5329,
|
IncomingCallableDataKHR = 5329,
|
||||||
@@ -243,6 +267,7 @@ enum Dim : uint
|
|||||||
Rect = 4,
|
Rect = 4,
|
||||||
Buffer = 5,
|
Buffer = 5,
|
||||||
SubpassData = 6,
|
SubpassData = 6,
|
||||||
|
TileImageDataEXT = 4173,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum SamplerAddressingMode : uint
|
enum SamplerAddressingMode : uint
|
||||||
@@ -349,6 +374,8 @@ enum ImageChannelDataType : uint
|
|||||||
Float = 14,
|
Float = 14,
|
||||||
UnormInt24 = 15,
|
UnormInt24 = 15,
|
||||||
UnormInt101010_2 = 16,
|
UnormInt101010_2 = 16,
|
||||||
|
UnsignedIntRaw10EXT = 19,
|
||||||
|
UnsignedIntRaw12EXT = 20,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ImageOperandsShift : uint
|
enum ImageOperandsShift : uint
|
||||||
@@ -407,8 +434,11 @@ enum FPFastMathModeShift : uint
|
|||||||
NSZ = 2,
|
NSZ = 2,
|
||||||
AllowRecip = 3,
|
AllowRecip = 3,
|
||||||
Fast = 4,
|
Fast = 4,
|
||||||
|
AllowContract = 16,
|
||||||
AllowContractFastINTEL = 16,
|
AllowContractFastINTEL = 16,
|
||||||
|
AllowReassoc = 17,
|
||||||
AllowReassocINTEL = 17,
|
AllowReassocINTEL = 17,
|
||||||
|
AllowTransform = 18,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum FPFastMathModeMask : uint
|
enum FPFastMathModeMask : uint
|
||||||
@@ -419,8 +449,11 @@ enum FPFastMathModeMask : uint
|
|||||||
NSZ = 0x00000004,
|
NSZ = 0x00000004,
|
||||||
AllowRecip = 0x00000008,
|
AllowRecip = 0x00000008,
|
||||||
Fast = 0x00000010,
|
Fast = 0x00000010,
|
||||||
|
AllowContract = 0x00010000,
|
||||||
AllowContractFastINTEL = 0x00010000,
|
AllowContractFastINTEL = 0x00010000,
|
||||||
|
AllowReassoc = 0x00020000,
|
||||||
AllowReassocINTEL = 0x00020000,
|
AllowReassocINTEL = 0x00020000,
|
||||||
|
AllowTransform = 0x00040000,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum FPRoundingMode : uint
|
enum FPRoundingMode : uint
|
||||||
@@ -509,7 +542,14 @@ enum Decoration : uint
|
|||||||
MaxByteOffsetId = 47,
|
MaxByteOffsetId = 47,
|
||||||
NoSignedWrap = 4469,
|
NoSignedWrap = 4469,
|
||||||
NoUnsignedWrap = 4470,
|
NoUnsignedWrap = 4470,
|
||||||
|
WeightTextureQCOM = 4487,
|
||||||
|
BlockMatchTextureQCOM = 4488,
|
||||||
|
BlockMatchSamplerQCOM = 4499,
|
||||||
ExplicitInterpAMD = 4999,
|
ExplicitInterpAMD = 4999,
|
||||||
|
NodeSharesPayloadLimitsWithAMDX = 5019,
|
||||||
|
NodeMaxPayloadsAMDX = 5020,
|
||||||
|
TrackFinishWritingAMDX = 5078,
|
||||||
|
PayloadNodeNameAMDX = 5091,
|
||||||
OverrideCoverageNV = 5248,
|
OverrideCoverageNV = 5248,
|
||||||
PassthroughNV = 5250,
|
PassthroughNV = 5250,
|
||||||
ViewportRelativeNV = 5252,
|
ViewportRelativeNV = 5252,
|
||||||
@@ -559,6 +599,9 @@ enum Decoration : uint
|
|||||||
MergeINTEL = 5834,
|
MergeINTEL = 5834,
|
||||||
BankBitsINTEL = 5835,
|
BankBitsINTEL = 5835,
|
||||||
ForcePow2DepthINTEL = 5836,
|
ForcePow2DepthINTEL = 5836,
|
||||||
|
StridesizeINTEL = 5883,
|
||||||
|
WordsizeINTEL = 5884,
|
||||||
|
TrueDualPortINTEL = 5885,
|
||||||
BurstCoalesceINTEL = 5899,
|
BurstCoalesceINTEL = 5899,
|
||||||
CacheSizeINTEL = 5900,
|
CacheSizeINTEL = 5900,
|
||||||
DontStaticallyCoalesceINTEL = 5901,
|
DontStaticallyCoalesceINTEL = 5901,
|
||||||
@@ -577,6 +620,24 @@ enum Decoration : uint
|
|||||||
SingleElementVectorINTEL = 6085,
|
SingleElementVectorINTEL = 6085,
|
||||||
VectorComputeCallableFunctionINTEL = 6087,
|
VectorComputeCallableFunctionINTEL = 6087,
|
||||||
MediaBlockIOINTEL = 6140,
|
MediaBlockIOINTEL = 6140,
|
||||||
|
StallFreeINTEL = 6151,
|
||||||
|
FPMaxErrorDecorationINTEL = 6170,
|
||||||
|
LatencyControlLabelINTEL = 6172,
|
||||||
|
LatencyControlConstraintINTEL = 6173,
|
||||||
|
ConduitKernelArgumentINTEL = 6175,
|
||||||
|
RegisterMapKernelArgumentINTEL = 6176,
|
||||||
|
MMHostInterfaceAddressWidthINTEL = 6177,
|
||||||
|
MMHostInterfaceDataWidthINTEL = 6178,
|
||||||
|
MMHostInterfaceLatencyINTEL = 6179,
|
||||||
|
MMHostInterfaceReadWriteModeINTEL = 6180,
|
||||||
|
MMHostInterfaceMaxBurstINTEL = 6181,
|
||||||
|
MMHostInterfaceWaitRequestINTEL = 6182,
|
||||||
|
StableKernelArgumentINTEL = 6183,
|
||||||
|
HostAccessINTEL = 6188,
|
||||||
|
InitModeINTEL = 6190,
|
||||||
|
ImplementInRegisterMapINTEL = 6191,
|
||||||
|
CacheControlLoadINTEL = 6442,
|
||||||
|
CacheControlStoreINTEL = 6443,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum BuiltIn : uint
|
enum BuiltIn : uint
|
||||||
@@ -652,6 +713,8 @@ enum BuiltIn : uint
|
|||||||
BaryCoordSmoothSampleAMD = 4997,
|
BaryCoordSmoothSampleAMD = 4997,
|
||||||
BaryCoordPullModelAMD = 4998,
|
BaryCoordPullModelAMD = 4998,
|
||||||
FragStencilRefEXT = 5014,
|
FragStencilRefEXT = 5014,
|
||||||
|
CoalescedInputCountAMDX = 5021,
|
||||||
|
ShaderIndexAMDX = 5073,
|
||||||
ViewportMaskNV = 5253,
|
ViewportMaskNV = 5253,
|
||||||
SecondaryPositionNV = 5257,
|
SecondaryPositionNV = 5257,
|
||||||
SecondaryViewportMaskNV = 5258,
|
SecondaryViewportMaskNV = 5258,
|
||||||
@@ -704,6 +767,9 @@ enum BuiltIn : uint
|
|||||||
HitKindKHR = 5333,
|
HitKindKHR = 5333,
|
||||||
HitKindNV = 5333,
|
HitKindNV = 5333,
|
||||||
CurrentRayTimeNV = 5334,
|
CurrentRayTimeNV = 5334,
|
||||||
|
HitTriangleVertexPositionsKHR = 5335,
|
||||||
|
HitMicroTriangleVertexPositionsNV = 5337,
|
||||||
|
HitMicroTriangleVertexBarycentricsNV = 5344,
|
||||||
IncomingRayFlagsKHR = 5351,
|
IncomingRayFlagsKHR = 5351,
|
||||||
IncomingRayFlagsNV = 5351,
|
IncomingRayFlagsNV = 5351,
|
||||||
RayGeometryIndexKHR = 5352,
|
RayGeometryIndexKHR = 5352,
|
||||||
@@ -711,6 +777,8 @@ enum BuiltIn : uint
|
|||||||
SMCountNV = 5375,
|
SMCountNV = 5375,
|
||||||
WarpIDNV = 5376,
|
WarpIDNV = 5376,
|
||||||
SMIDNV = 5377,
|
SMIDNV = 5377,
|
||||||
|
HitKindFrontFacingMicroTriangleNV = 5405,
|
||||||
|
HitKindBackFacingMicroTriangleNV = 5406,
|
||||||
CullMaskKHR = 6021,
|
CullMaskKHR = 6021,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -981,6 +1049,9 @@ enum Capability : uint
|
|||||||
ShaderViewportIndex = 70,
|
ShaderViewportIndex = 70,
|
||||||
UniformDecoration = 71,
|
UniformDecoration = 71,
|
||||||
CoreBuiltinsARM = 4165,
|
CoreBuiltinsARM = 4165,
|
||||||
|
TileImageColorReadAccessEXT = 4166,
|
||||||
|
TileImageDepthReadAccessEXT = 4167,
|
||||||
|
TileImageStencilReadAccessEXT = 4168,
|
||||||
FragmentShadingRateKHR = 4422,
|
FragmentShadingRateKHR = 4422,
|
||||||
SubgroupBallotKHR = 4423,
|
SubgroupBallotKHR = 4423,
|
||||||
DrawParameters = 4427,
|
DrawParameters = 4427,
|
||||||
@@ -1012,6 +1083,10 @@ enum Capability : uint
|
|||||||
RayQueryKHR = 4472,
|
RayQueryKHR = 4472,
|
||||||
RayTraversalPrimitiveCullingKHR = 4478,
|
RayTraversalPrimitiveCullingKHR = 4478,
|
||||||
RayTracingKHR = 4479,
|
RayTracingKHR = 4479,
|
||||||
|
TextureSampleWeightedQCOM = 4484,
|
||||||
|
TextureBoxFilterQCOM = 4485,
|
||||||
|
TextureBlockMatchQCOM = 4486,
|
||||||
|
TextureBlockMatch2QCOM = 4498,
|
||||||
Float16ImageAMD = 5008,
|
Float16ImageAMD = 5008,
|
||||||
ImageGatherBiasLodAMD = 5009,
|
ImageGatherBiasLodAMD = 5009,
|
||||||
FragmentMaskAMD = 5010,
|
FragmentMaskAMD = 5010,
|
||||||
@@ -1019,6 +1094,8 @@ enum Capability : uint
|
|||||||
ImageReadWriteLodAMD = 5015,
|
ImageReadWriteLodAMD = 5015,
|
||||||
Int64ImageEXT = 5016,
|
Int64ImageEXT = 5016,
|
||||||
ShaderClockKHR = 5055,
|
ShaderClockKHR = 5055,
|
||||||
|
ShaderEnqueueAMDX = 5067,
|
||||||
|
QuadControlKHR = 5087,
|
||||||
SampleMaskOverrideCoverageNV = 5249,
|
SampleMaskOverrideCoverageNV = 5249,
|
||||||
GeometryShaderPassthroughNV = 5251,
|
GeometryShaderPassthroughNV = 5251,
|
||||||
ShaderViewportIndexLayerEXT = 5254,
|
ShaderViewportIndexLayerEXT = 5254,
|
||||||
@@ -1060,6 +1137,7 @@ enum Capability : uint
|
|||||||
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||||
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||||
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||||
|
RayTracingPositionFetchKHR = 5336,
|
||||||
RayTracingNV = 5340,
|
RayTracingNV = 5340,
|
||||||
RayTracingMotionBlurNV = 5341,
|
RayTracingMotionBlurNV = 5341,
|
||||||
VulkanMemoryModel = 5345,
|
VulkanMemoryModel = 5345,
|
||||||
@@ -1077,9 +1155,14 @@ enum Capability : uint
|
|||||||
FragmentShaderPixelInterlockEXT = 5378,
|
FragmentShaderPixelInterlockEXT = 5378,
|
||||||
DemoteToHelperInvocation = 5379,
|
DemoteToHelperInvocation = 5379,
|
||||||
DemoteToHelperInvocationEXT = 5379,
|
DemoteToHelperInvocationEXT = 5379,
|
||||||
|
DisplacementMicromapNV = 5380,
|
||||||
RayTracingOpacityMicromapEXT = 5381,
|
RayTracingOpacityMicromapEXT = 5381,
|
||||||
ShaderInvocationReorderNV = 5383,
|
ShaderInvocationReorderNV = 5383,
|
||||||
BindlessTextureNV = 5390,
|
BindlessTextureNV = 5390,
|
||||||
|
RayQueryPositionFetchKHR = 5391,
|
||||||
|
AtomicFloat16VectorNV = 5404,
|
||||||
|
RayTracingDisplacementMicromapNV = 5409,
|
||||||
|
RawAccessChainsNV = 5414,
|
||||||
SubgroupShuffleINTEL = 5568,
|
SubgroupShuffleINTEL = 5568,
|
||||||
SubgroupBufferBlockIOINTEL = 5569,
|
SubgroupBufferBlockIOINTEL = 5569,
|
||||||
SubgroupImageBlockIOINTEL = 5570,
|
SubgroupImageBlockIOINTEL = 5570,
|
||||||
@@ -1131,16 +1214,29 @@ enum Capability : uint
|
|||||||
DotProduct = 6019,
|
DotProduct = 6019,
|
||||||
DotProductKHR = 6019,
|
DotProductKHR = 6019,
|
||||||
RayCullMaskKHR = 6020,
|
RayCullMaskKHR = 6020,
|
||||||
|
CooperativeMatrixKHR = 6022,
|
||||||
BitInstructions = 6025,
|
BitInstructions = 6025,
|
||||||
GroupNonUniformRotateKHR = 6026,
|
GroupNonUniformRotateKHR = 6026,
|
||||||
|
FloatControls2 = 6029,
|
||||||
AtomicFloat32AddEXT = 6033,
|
AtomicFloat32AddEXT = 6033,
|
||||||
AtomicFloat64AddEXT = 6034,
|
AtomicFloat64AddEXT = 6034,
|
||||||
LongConstantCompositeINTEL = 6089,
|
LongCompositesINTEL = 6089,
|
||||||
OptNoneINTEL = 6094,
|
OptNoneINTEL = 6094,
|
||||||
AtomicFloat16AddEXT = 6095,
|
AtomicFloat16AddEXT = 6095,
|
||||||
DebugInfoModuleINTEL = 6114,
|
DebugInfoModuleINTEL = 6114,
|
||||||
|
BFloat16ConversionINTEL = 6115,
|
||||||
SplitBarrierINTEL = 6141,
|
SplitBarrierINTEL = 6141,
|
||||||
|
FPGAClusterAttributesV2INTEL = 6150,
|
||||||
|
FPGAKernelAttributesv2INTEL = 6161,
|
||||||
|
FPMaxErrorINTEL = 6169,
|
||||||
|
FPGALatencyControlINTEL = 6171,
|
||||||
|
FPGAArgumentInterfacesINTEL = 6174,
|
||||||
|
GlobalVariableHostAccessINTEL = 6187,
|
||||||
|
GlobalVariableFPGADecorationsINTEL = 6189,
|
||||||
GroupUniformArithmeticKHR = 6400,
|
GroupUniformArithmeticKHR = 6400,
|
||||||
|
MaskedGatherScatterINTEL = 6427,
|
||||||
|
CacheControlsINTEL = 6441,
|
||||||
|
RegisterLimitsINTEL = 6460,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum RayFlagsShift : uint
|
enum RayFlagsShift : uint
|
||||||
@@ -1248,6 +1344,87 @@ enum PackedVectorFormat : uint
|
|||||||
PackedVectorFormat4x8BitKHR = 0,
|
PackedVectorFormat4x8BitKHR = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum CooperativeMatrixOperandsShift : uint
|
||||||
|
{
|
||||||
|
MatrixASignedComponentsKHR = 0,
|
||||||
|
MatrixBSignedComponentsKHR = 1,
|
||||||
|
MatrixCSignedComponentsKHR = 2,
|
||||||
|
MatrixResultSignedComponentsKHR = 3,
|
||||||
|
SaturatingAccumulationKHR = 4,
|
||||||
|
}
|
||||||
|
|
||||||
|
enum CooperativeMatrixOperandsMask : uint
|
||||||
|
{
|
||||||
|
MaskNone = 0,
|
||||||
|
MatrixASignedComponentsKHR = 0x00000001,
|
||||||
|
MatrixBSignedComponentsKHR = 0x00000002,
|
||||||
|
MatrixCSignedComponentsKHR = 0x00000004,
|
||||||
|
MatrixResultSignedComponentsKHR = 0x00000008,
|
||||||
|
SaturatingAccumulationKHR = 0x00000010,
|
||||||
|
}
|
||||||
|
|
||||||
|
enum CooperativeMatrixLayout : uint
|
||||||
|
{
|
||||||
|
RowMajorKHR = 0,
|
||||||
|
ColumnMajorKHR = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
enum CooperativeMatrixUse : uint
|
||||||
|
{
|
||||||
|
MatrixAKHR = 0,
|
||||||
|
MatrixBKHR = 1,
|
||||||
|
MatrixAccumulatorKHR = 2,
|
||||||
|
}
|
||||||
|
|
||||||
|
enum InitializationModeQualifier : uint
|
||||||
|
{
|
||||||
|
InitOnDeviceReprogramINTEL = 0,
|
||||||
|
InitOnDeviceResetINTEL = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
enum HostAccessQualifier : uint
|
||||||
|
{
|
||||||
|
NoneINTEL = 0,
|
||||||
|
ReadINTEL = 1,
|
||||||
|
WriteINTEL = 2,
|
||||||
|
ReadWriteINTEL = 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
enum LoadCacheControl : uint
|
||||||
|
{
|
||||||
|
UncachedINTEL = 0,
|
||||||
|
CachedINTEL = 1,
|
||||||
|
StreamingINTEL = 2,
|
||||||
|
InvalidateAfterReadINTEL = 3,
|
||||||
|
ConstCachedINTEL = 4,
|
||||||
|
}
|
||||||
|
|
||||||
|
enum StoreCacheControl : uint
|
||||||
|
{
|
||||||
|
UncachedINTEL = 0,
|
||||||
|
WriteThroughINTEL = 1,
|
||||||
|
WriteBackINTEL = 2,
|
||||||
|
StreamingINTEL = 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
enum NamedMaximumNumberOfRegisters : uint
|
||||||
|
{
|
||||||
|
AutoINTEL = 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
enum RawAccessChainOperandsShift : uint
|
||||||
|
{
|
||||||
|
RobustnessPerComponentNV = 0,
|
||||||
|
RobustnessPerElementNV = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
enum RawAccessChainOperandsMask : uint
|
||||||
|
{
|
||||||
|
MaskNone = 0,
|
||||||
|
RobustnessPerComponentNV = 0x00000001,
|
||||||
|
RobustnessPerElementNV = 0x00000002,
|
||||||
|
}
|
||||||
|
|
||||||
enum Op : uint
|
enum Op : uint
|
||||||
{
|
{
|
||||||
OpNop = 0,
|
OpNop = 0,
|
||||||
@@ -1594,6 +1771,9 @@ enum Op : uint
|
|||||||
OpPtrEqual = 401,
|
OpPtrEqual = 401,
|
||||||
OpPtrNotEqual = 402,
|
OpPtrNotEqual = 402,
|
||||||
OpPtrDiff = 403,
|
OpPtrDiff = 403,
|
||||||
|
OpColorAttachmentReadEXT = 4160,
|
||||||
|
OpDepthAttachmentReadEXT = 4161,
|
||||||
|
OpStencilAttachmentReadEXT = 4162,
|
||||||
OpTerminateInvocation = 4416,
|
OpTerminateInvocation = 4416,
|
||||||
OpSubgroupBallotKHR = 4421,
|
OpSubgroupBallotKHR = 4421,
|
||||||
OpSubgroupFirstInvocationKHR = 4422,
|
OpSubgroupFirstInvocationKHR = 4422,
|
||||||
@@ -1619,6 +1799,11 @@ enum Op : uint
|
|||||||
OpUDotAccSatKHR = 4454,
|
OpUDotAccSatKHR = 4454,
|
||||||
OpSUDotAccSat = 4455,
|
OpSUDotAccSat = 4455,
|
||||||
OpSUDotAccSatKHR = 4455,
|
OpSUDotAccSatKHR = 4455,
|
||||||
|
OpTypeCooperativeMatrixKHR = 4456,
|
||||||
|
OpCooperativeMatrixLoadKHR = 4457,
|
||||||
|
OpCooperativeMatrixStoreKHR = 4458,
|
||||||
|
OpCooperativeMatrixMulAddKHR = 4459,
|
||||||
|
OpCooperativeMatrixLengthKHR = 4460,
|
||||||
OpTypeRayQueryKHR = 4472,
|
OpTypeRayQueryKHR = 4472,
|
||||||
OpRayQueryInitializeKHR = 4473,
|
OpRayQueryInitializeKHR = 4473,
|
||||||
OpRayQueryTerminateKHR = 4474,
|
OpRayQueryTerminateKHR = 4474,
|
||||||
@@ -1626,6 +1811,14 @@ enum Op : uint
|
|||||||
OpRayQueryConfirmIntersectionKHR = 4476,
|
OpRayQueryConfirmIntersectionKHR = 4476,
|
||||||
OpRayQueryProceedKHR = 4477,
|
OpRayQueryProceedKHR = 4477,
|
||||||
OpRayQueryGetIntersectionTypeKHR = 4479,
|
OpRayQueryGetIntersectionTypeKHR = 4479,
|
||||||
|
OpImageSampleWeightedQCOM = 4480,
|
||||||
|
OpImageBoxFilterQCOM = 4481,
|
||||||
|
OpImageBlockMatchSSDQCOM = 4482,
|
||||||
|
OpImageBlockMatchSADQCOM = 4483,
|
||||||
|
OpImageBlockMatchWindowSSDQCOM = 4500,
|
||||||
|
OpImageBlockMatchWindowSADQCOM = 4501,
|
||||||
|
OpImageBlockMatchGatherSSDQCOM = 4502,
|
||||||
|
OpImageBlockMatchGatherSADQCOM = 4503,
|
||||||
OpGroupIAddNonUniformAMD = 5000,
|
OpGroupIAddNonUniformAMD = 5000,
|
||||||
OpGroupFAddNonUniformAMD = 5001,
|
OpGroupFAddNonUniformAMD = 5001,
|
||||||
OpGroupFMinNonUniformAMD = 5002,
|
OpGroupFMinNonUniformAMD = 5002,
|
||||||
@@ -1637,6 +1830,11 @@ enum Op : uint
|
|||||||
OpFragmentMaskFetchAMD = 5011,
|
OpFragmentMaskFetchAMD = 5011,
|
||||||
OpFragmentFetchAMD = 5012,
|
OpFragmentFetchAMD = 5012,
|
||||||
OpReadClockKHR = 5056,
|
OpReadClockKHR = 5056,
|
||||||
|
OpFinalizeNodePayloadsAMDX = 5075,
|
||||||
|
OpFinishWritingNodePayloadAMDX = 5078,
|
||||||
|
OpInitializeNodePayloadsAMDX = 5090,
|
||||||
|
OpGroupNonUniformQuadAllKHR = 5110,
|
||||||
|
OpGroupNonUniformQuadAnyKHR = 5111,
|
||||||
OpHitObjectRecordHitMotionNV = 5249,
|
OpHitObjectRecordHitMotionNV = 5249,
|
||||||
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||||
OpHitObjectRecordMissMotionNV = 5251,
|
OpHitObjectRecordMissMotionNV = 5251,
|
||||||
@@ -1675,6 +1873,8 @@ enum Op : uint
|
|||||||
OpSetMeshOutputsEXT = 5295,
|
OpSetMeshOutputsEXT = 5295,
|
||||||
OpGroupNonUniformPartitionNV = 5296,
|
OpGroupNonUniformPartitionNV = 5296,
|
||||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||||
|
OpFetchMicroTriangleVertexPositionNV = 5300,
|
||||||
|
OpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||||
OpReportIntersectionKHR = 5334,
|
OpReportIntersectionKHR = 5334,
|
||||||
OpReportIntersectionNV = 5334,
|
OpReportIntersectionNV = 5334,
|
||||||
OpIgnoreIntersectionNV = 5335,
|
OpIgnoreIntersectionNV = 5335,
|
||||||
@@ -1682,6 +1882,7 @@ enum Op : uint
|
|||||||
OpTraceNV = 5337,
|
OpTraceNV = 5337,
|
||||||
OpTraceMotionNV = 5338,
|
OpTraceMotionNV = 5338,
|
||||||
OpTraceRayMotionNV = 5339,
|
OpTraceRayMotionNV = 5339,
|
||||||
|
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||||
OpTypeAccelerationStructureKHR = 5341,
|
OpTypeAccelerationStructureKHR = 5341,
|
||||||
OpTypeAccelerationStructureNV = 5341,
|
OpTypeAccelerationStructureNV = 5341,
|
||||||
OpExecuteCallableNV = 5344,
|
OpExecuteCallableNV = 5344,
|
||||||
@@ -1702,6 +1903,7 @@ enum Op : uint
|
|||||||
OpConvertUToSampledImageNV = 5395,
|
OpConvertUToSampledImageNV = 5395,
|
||||||
OpConvertSampledImageToUNV = 5396,
|
OpConvertSampledImageToUNV = 5396,
|
||||||
OpSamplerImageAddressingModeNV = 5397,
|
OpSamplerImageAddressingModeNV = 5397,
|
||||||
|
OpRawAccessChainNV = 5398,
|
||||||
OpSubgroupShuffleINTEL = 5571,
|
OpSubgroupShuffleINTEL = 5571,
|
||||||
OpSubgroupShuffleDownINTEL = 5572,
|
OpSubgroupShuffleDownINTEL = 5572,
|
||||||
OpSubgroupShuffleUpINTEL = 5573,
|
OpSubgroupShuffleUpINTEL = 5573,
|
||||||
@@ -1943,6 +2145,9 @@ enum Op : uint
|
|||||||
OpTypeStructContinuedINTEL = 6090,
|
OpTypeStructContinuedINTEL = 6090,
|
||||||
OpConstantCompositeContinuedINTEL = 6091,
|
OpConstantCompositeContinuedINTEL = 6091,
|
||||||
OpSpecConstantCompositeContinuedINTEL = 6092,
|
OpSpecConstantCompositeContinuedINTEL = 6092,
|
||||||
|
OpCompositeConstructContinuedINTEL = 6096,
|
||||||
|
OpConvertFToBF16INTEL = 6116,
|
||||||
|
OpConvertBF16ToFINTEL = 6117,
|
||||||
OpControlBarrierArriveINTEL = 6142,
|
OpControlBarrierArriveINTEL = 6142,
|
||||||
OpControlBarrierWaitINTEL = 6143,
|
OpControlBarrierWaitINTEL = 6143,
|
||||||
OpGroupIMulKHR = 6401,
|
OpGroupIMulKHR = 6401,
|
||||||
@@ -1953,6 +2158,8 @@ enum Op : uint
|
|||||||
OpGroupLogicalAndKHR = 6406,
|
OpGroupLogicalAndKHR = 6406,
|
||||||
OpGroupLogicalOrKHR = 6407,
|
OpGroupLogicalOrKHR = 6407,
|
||||||
OpGroupLogicalXorKHR = 6408,
|
OpGroupLogicalXorKHR = 6408,
|
||||||
|
OpMaskedGatherINTEL = 6428,
|
||||||
|
OpMaskedScatterINTEL = 6429,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+47
@@ -0,0 +1,47 @@
|
|||||||
|
# Copyright (c) 2015-2024 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.
|
||||||
|
|
||||||
|
add_library(spirv_headers_simple_test STATIC)
|
||||||
|
|
||||||
|
target_sources(spirv_headers_simple_test PRIVATE
|
||||||
|
example.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(spirv_headers_simple_test PRIVATE
|
||||||
|
SPIRV-Headers::SPIRV-Headers
|
||||||
|
)
|
||||||
|
|
||||||
|
if (NOT TARGET SPIRV-Headers)
|
||||||
|
message(FATAL_ERROR "SPIRV-Headers target not defined!")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT PROJECT_NAME STREQUAL "SPIRV-Headers")
|
||||||
|
message(FATAL_ERROR "PROJECT_NAME changed!") # Needed for backcompat with SPIRV-Tools.
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT DEFINED SPIRV-Headers_SOURCE_DIR)
|
||||||
|
message(FATAL_ERROR "SPIRV-Headers_SOURCE_DIR not defined!") # Needed for backcompat with SPIRV-Tools.
|
||||||
|
endif()
|
||||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2016 The Khronos Group Inc.
|
// Copyright (c) 2016-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
// copy of this software and/or associated documentation files (the
|
// copy of this software and/or associated documentation files (the
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.0)
|
||||||
|
|
||||||
|
project(TEST_FIND_PACKAGE LANGUAGES CXX)
|
||||||
|
|
||||||
|
add_library(find_package_example STATIC
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/../example.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
find_package(SPIRV-Headers REQUIRED CONFIG)
|
||||||
|
|
||||||
|
if (NOT TARGET SPIRV-Headers::SPIRV-Headers)
|
||||||
|
message(FATAL_ERROR "SPIRV-Headers::SPIRV-Headers target not defined")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
target_link_libraries(find_package_example PRIVATE
|
||||||
|
SPIRV-Headers::SPIRV-Headers
|
||||||
|
)
|
||||||
|
|
||||||
|
if (NOT DEFINED SPIRV-Headers_VERSION)
|
||||||
|
message(FATAL_ERROR "SPIRV-Headers_VERSION not provided!")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "SPIRV-Headers_VERSION = ${SPIRV-Headers_VERSION}")
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
|
project(TEST_PKGCONFIG LANGUAGES CXX)
|
||||||
|
|
||||||
|
add_library(pkgconfig_example STATIC)
|
||||||
|
|
||||||
|
target_sources(pkgconfig_example PRIVATE
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/../example.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
find_package(PkgConfig REQUIRED)
|
||||||
|
|
||||||
|
pkg_check_modules(SPIRV_HEADERS REQUIRED IMPORTED_TARGET SPIRV-Headers)
|
||||||
|
|
||||||
|
target_link_libraries(pkgconfig_example PRIVATE
|
||||||
|
PkgConfig::SPIRV_HEADERS
|
||||||
|
)
|
||||||
|
|
||||||
|
if (NOT DEFINED SPIRV_HEADERS_VERSION)
|
||||||
|
message(FATAL_ERROR "SPIRV_HEADERS_VERSION not defined!")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "PkgConfig::SPIRV_HEADERS version = ${SPIRV_HEADERS_VERSION}")
|
||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# Copyright (c) 2017-2020 Google LLC
|
# Copyright (c) 2017-2024 Google LLC
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
# copy of this software and/or associated documentation files (the
|
# copy of this software and/or associated documentation files (the
|
||||||
@@ -32,7 +32,7 @@ import json
|
|||||||
import os.path
|
import os.path
|
||||||
import re
|
import re
|
||||||
|
|
||||||
DEFAULT_COPYRIGHT="""Copyright (c) 2020 The Khronos Group Inc.
|
DEFAULT_COPYRIGHT="""Copyright (c) 2020-2024 The Khronos Group Inc.
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and/or associated documentation files (the
|
copy of this software and/or associated documentation files (the
|
||||||
|
|||||||
@@ -26,3 +26,5 @@ mk_extinst('AMD_shader_explicit_vertex_parameter', 'extinst.spv-amd-shader-expli
|
|||||||
mk_extinst('AMD_shader_trinary_minmax', 'extinst.spv-amd-shader-trinary-minmax.grammar.json')
|
mk_extinst('AMD_shader_trinary_minmax', 'extinst.spv-amd-shader-trinary-minmax.grammar.json')
|
||||||
mk_extinst('NonSemanticDebugPrintf', 'extinst.nonsemantic.debugprintf.grammar.json')
|
mk_extinst('NonSemanticDebugPrintf', 'extinst.nonsemantic.debugprintf.grammar.json')
|
||||||
mk_extinst('NonSemanticClspvReflection', 'extinst.nonsemantic.clspvreflection.grammar.json')
|
mk_extinst('NonSemanticClspvReflection', 'extinst.nonsemantic.clspvreflection.grammar.json')
|
||||||
|
mk_extinst('NonSemanticDebugBreak', 'extinst.nonsemantic.debugbreak.grammar.json')
|
||||||
|
mk_extinst('NonSemanticVkspReflection', 'extinst.nonsemantic.vkspreflection.grammar.json')
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
python3 bin/makeExtinstHeaders.py
|
python3 bin/makeExtinstHeaders.py
|
||||||
|
|
||||||
cd ../../include/spirv/unified1
|
cd ../../include/spirv/unified1
|
||||||
|
|||||||
+44
-35
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2014-2020 The Khronos Group Inc.
|
// Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and/or associated documentation files (the "Materials"),
|
// of this software and/or associated documentation files (the "Materials"),
|
||||||
@@ -169,29 +169,30 @@ namespace {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const std::string TPrinter::DocCopyright =
|
const std::string TPrinter::DocCopyright =
|
||||||
"Copyright (c) 2014-2020 The Khronos Group Inc.\n"
|
R"(Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
"\n"
|
|
||||||
"Permission is hereby granted, free of charge, to any person obtaining a copy\n"
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
"of this software and/or associated documentation files (the \"Materials\"),\n"
|
of this software and/or associated documentation files (the "Materials"),
|
||||||
"to deal in the Materials without restriction, including without limitation\n"
|
to deal in the Materials without restriction, including without limitation
|
||||||
"the rights to use, copy, modify, merge, publish, distribute, sublicense,\n"
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
"and/or sell copies of the Materials, and to permit persons to whom the\n"
|
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:\n"
|
Materials are furnished to do so, subject to the following conditions:
|
||||||
"\n"
|
|
||||||
"The above copyright notice and this permission notice shall be included in\n"
|
The above copyright notice and this permission notice shall be included in
|
||||||
"all copies or substantial portions of the Materials.\n"
|
all copies or substantial portions of the Materials.
|
||||||
"\n"
|
|
||||||
"MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS\n"
|
MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
|
||||||
"STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND\n"
|
STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
|
||||||
"HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ \n"
|
HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
|
||||||
"\n"
|
|
||||||
"THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n"
|
THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
"OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\n"
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
"THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n"
|
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\n"
|
FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
|
||||||
"IN THE MATERIALS.\n";
|
IN THE MATERIALS.
|
||||||
|
)";
|
||||||
|
|
||||||
const std::string TPrinter::DocComment1 =
|
const std::string TPrinter::DocComment1 =
|
||||||
"This header is automatically generated by the same tool that creates\n"
|
"This header is automatically generated by the same tool that creates\n"
|
||||||
@@ -574,13 +575,8 @@ namespace {
|
|||||||
|
|
||||||
// C++ printer
|
// C++ printer
|
||||||
class TPrinterCPP : public TPrinterCBase {
|
class TPrinterCPP : public TPrinterCBase {
|
||||||
private:
|
protected:
|
||||||
void printPrologue(std::ostream& out) const override {
|
void printMaskOperators(std::ostream& out, const std::string& specifiers) const {
|
||||||
TPrinterCBase::printPrologue(out);
|
|
||||||
out << "namespace spv {\n\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
void printEpilogue(std::ostream& out) const override {
|
|
||||||
const Json::Value& enums = spvRoot["spv"]["enum"];
|
const Json::Value& enums = spvRoot["spv"]["enum"];
|
||||||
|
|
||||||
out << "// Overload bitwise operators for mask bit combining\n\n";
|
out << "// Overload bitwise operators for mask bit combining\n\n";
|
||||||
@@ -593,20 +589,28 @@ namespace {
|
|||||||
const auto typeName = opName + styleStr(enumMask);
|
const auto typeName = opName + styleStr(enumMask);
|
||||||
|
|
||||||
// Overload operator|
|
// Overload operator|
|
||||||
out << "inline " << typeName << " operator|(" << typeName << " a, " << typeName << " b) { return " <<
|
out << specifiers << " " << typeName << " operator|(" << typeName << " a, " << typeName << " b) { return " <<
|
||||||
typeName << "(unsigned(a) | unsigned(b)); }\n";
|
typeName << "(unsigned(a) | unsigned(b)); }\n";
|
||||||
// Overload operator&
|
// Overload operator&
|
||||||
out << "inline " << typeName << " operator&(" << typeName << " a, " << typeName << " b) { return " <<
|
out << specifiers << " " << typeName << " operator&(" << typeName << " a, " << typeName << " b) { return " <<
|
||||||
typeName << "(unsigned(a) & unsigned(b)); }\n";
|
typeName << "(unsigned(a) & unsigned(b)); }\n";
|
||||||
// Overload operator^
|
// Overload operator^
|
||||||
out << "inline " << typeName << " operator^(" << typeName << " a, " << typeName << " b) { return " <<
|
out << specifiers << " " << typeName << " operator^(" << typeName << " a, " << typeName << " b) { return " <<
|
||||||
typeName << "(unsigned(a) ^ unsigned(b)); }\n";
|
typeName << "(unsigned(a) ^ unsigned(b)); }\n";
|
||||||
// Overload operator~
|
// Overload operator~
|
||||||
out << "inline " << typeName << " operator~(" << typeName << " a) { return " <<
|
out << specifiers << " " << typeName << " operator~(" << typeName << " a) { return " <<
|
||||||
typeName << "(~unsigned(a)); }\n";
|
typeName << "(~unsigned(a)); }\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
void printPrologue(std::ostream& out) const override {
|
||||||
|
TPrinterCBase::printPrologue(out);
|
||||||
|
out << "namespace spv {\n\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
void printEpilogue(std::ostream& out) const override {
|
||||||
|
printMaskOperators(out, "inline");
|
||||||
out << "\n} // end namespace spv\n\n";
|
out << "\n} // end namespace spv\n\n";
|
||||||
out << "#endif // #ifndef spirv_" << headerGuardSuffix() << std::endl;
|
out << "#endif // #ifndef spirv_" << headerGuardSuffix() << std::endl;
|
||||||
}
|
}
|
||||||
@@ -642,6 +646,11 @@ namespace {
|
|||||||
// C++11 printer (uses enum classes)
|
// C++11 printer (uses enum classes)
|
||||||
class TPrinterCPP11 final : public TPrinterCPP {
|
class TPrinterCPP11 final : public TPrinterCPP {
|
||||||
private:
|
private:
|
||||||
|
void printEpilogue(std::ostream& out) const override {
|
||||||
|
printMaskOperators(out, "constexpr");
|
||||||
|
out << "\n} // end namespace spv\n\n";
|
||||||
|
out << "#endif // #ifndef spirv_" << headerGuardSuffix() << std::endl;
|
||||||
|
}
|
||||||
std::string enumBeg(const std::string& s, enumStyle_t style) const override {
|
std::string enumBeg(const std::string& s, enumStyle_t style) const override {
|
||||||
return std::string("enum class ") + s + styleStr(style) + " : unsigned {\n";
|
return std::string("enum class ") + s + styleStr(style) + " : unsigned {\n";
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2014-2019 The Khronos Group Inc.
|
// Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and/or associated documentation files (the "Materials"),
|
// of this software and/or associated documentation files (the "Materials"),
|
||||||
|
|||||||
+251
-4
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2014-2020 The Khronos Group Inc.
|
// Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and/or associated documentation files (the "Materials"),
|
// of this software and/or associated documentation files (the "Materials"),
|
||||||
@@ -36,8 +36,185 @@
|
|||||||
|
|
||||||
#include "jsonToSpirv.h"
|
#include "jsonToSpirv.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
// Returns true if the given string is a valid SPIR-V version.
|
||||||
|
bool validSpirvVersionString(const std::string s) {
|
||||||
|
return
|
||||||
|
s == "1.0" ||
|
||||||
|
s == "1.1" ||
|
||||||
|
s == "1.2" ||
|
||||||
|
s == "1.3" ||
|
||||||
|
s == "1.4" ||
|
||||||
|
s == "1.5" ||
|
||||||
|
s == "1.6";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns true if the given string is a valid version
|
||||||
|
// specifier in the grammar file.
|
||||||
|
bool validSpirvVersionStringSpecifier(const std::string s) {
|
||||||
|
return s == "None" || validSpirvVersionString(s);
|
||||||
|
}
|
||||||
|
} // anonymous namespace
|
||||||
|
|
||||||
namespace spv {
|
namespace spv {
|
||||||
|
|
||||||
|
bool IsLegacyDoublyEnabledInstruction(const std::string& instruction) {
|
||||||
|
static std::unordered_set<std::string> allowed = {
|
||||||
|
"OpSubgroupBallotKHR",
|
||||||
|
"OpSubgroupFirstInvocationKHR",
|
||||||
|
"OpSubgroupAllKHR",
|
||||||
|
"OpSubgroupAnyKHR",
|
||||||
|
"OpSubgroupAllEqualKHR",
|
||||||
|
"OpSubgroupReadInvocationKHR",
|
||||||
|
"OpTraceRayKHR",
|
||||||
|
"OpExecuteCallableKHR",
|
||||||
|
"OpConvertUToAccelerationStructureKHR",
|
||||||
|
"OpIgnoreIntersectionKHR",
|
||||||
|
"OpTerminateRayKHR",
|
||||||
|
"OpTypeRayQueryKHR",
|
||||||
|
"OpRayQueryInitializeKHR",
|
||||||
|
"OpRayQueryTerminateKHR",
|
||||||
|
"OpRayQueryGenerateIntersectionKHR",
|
||||||
|
"OpRayQueryConfirmIntersectionKHR",
|
||||||
|
"OpRayQueryProceedKHR",
|
||||||
|
"OpRayQueryGetIntersectionTypeKHR",
|
||||||
|
"OpGroupIAddNonUniformAMD",
|
||||||
|
"OpGroupFAddNonUniformAMD",
|
||||||
|
"OpGroupFMinNonUniformAMD",
|
||||||
|
"OpGroupUMinNonUniformAMD",
|
||||||
|
"OpGroupSMinNonUniformAMD",
|
||||||
|
"OpGroupFMaxNonUniformAMD",
|
||||||
|
"OpGroupUMaxNonUniformAMD",
|
||||||
|
"OpGroupSMaxNonUniformAMD",
|
||||||
|
"OpFragmentMaskFetchAMD",
|
||||||
|
"OpFragmentFetchAMD",
|
||||||
|
"OpImageSampleFootprintNV",
|
||||||
|
"OpGroupNonUniformPartitionNV",
|
||||||
|
"OpWritePackedPrimitiveIndices4x8NV",
|
||||||
|
"OpReportIntersectionNV",
|
||||||
|
"OpReportIntersectionKHR",
|
||||||
|
"OpIgnoreIntersectionNV",
|
||||||
|
"OpTerminateRayNV",
|
||||||
|
"OpTraceNV",
|
||||||
|
"OpTraceMotionNV",
|
||||||
|
"OpTraceRayMotionNV",
|
||||||
|
"OpTypeAccelerationStructureNV",
|
||||||
|
"OpTypeAccelerationStructureKHR",
|
||||||
|
"OpExecuteCallableNV",
|
||||||
|
"OpTypeCooperativeMatrixNV",
|
||||||
|
"OpCooperativeMatrixLoadNV",
|
||||||
|
"OpCooperativeMatrixStoreNV",
|
||||||
|
"OpCooperativeMatrixMulAddNV",
|
||||||
|
"OpCooperativeMatrixLengthNV",
|
||||||
|
"OpBeginInvocationInterlockEXT",
|
||||||
|
"OpEndInvocationInterlockEXT",
|
||||||
|
"OpIsHelperInvocationEXT",
|
||||||
|
"OpConstantFunctionPointerINTEL",
|
||||||
|
"OpFunctionPointerCallINTEL",
|
||||||
|
"OpAssumeTrueKHR",
|
||||||
|
"OpExpectKHR",
|
||||||
|
"OpLoopControlINTEL",
|
||||||
|
"OpAliasDomainDeclINTEL",
|
||||||
|
"OpAliasScopeDeclINTEL",
|
||||||
|
"OpAliasScopeListDeclINTEL",
|
||||||
|
"OpReadPipeBlockingINTEL",
|
||||||
|
"OpWritePipeBlockingINTEL",
|
||||||
|
"OpFPGARegINTEL",
|
||||||
|
"OpRayQueryGetRayTMinKHR",
|
||||||
|
"OpRayQueryGetRayFlagsKHR",
|
||||||
|
"OpRayQueryGetIntersectionTKHR",
|
||||||
|
"OpRayQueryGetIntersectionInstanceCustomIndexKHR",
|
||||||
|
"OpRayQueryGetIntersectionInstanceIdKHR",
|
||||||
|
"OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR",
|
||||||
|
"OpRayQueryGetIntersectionGeometryIndexKHR",
|
||||||
|
"OpRayQueryGetIntersectionPrimitiveIndexKHR",
|
||||||
|
"OpRayQueryGetIntersectionBarycentricsKHR",
|
||||||
|
"OpRayQueryGetIntersectionFrontFaceKHR",
|
||||||
|
"OpRayQueryGetIntersectionCandidateAABBOpaqueKHR",
|
||||||
|
"OpRayQueryGetIntersectionObjectRayDirectionKHR",
|
||||||
|
"OpRayQueryGetIntersectionObjectRayOriginKHR",
|
||||||
|
"OpRayQueryGetWorldRayDirectionKHR",
|
||||||
|
"OpRayQueryGetWorldRayOriginKHR",
|
||||||
|
"OpRayQueryGetIntersectionObjectToWorldKHR",
|
||||||
|
"OpRayQueryGetIntersectionWorldToObjectKHR",
|
||||||
|
"OpAtomicFAddEXT",
|
||||||
|
};
|
||||||
|
return allowed.count(instruction) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool EnumValue::IsValid(OperandClass oc, const std::string& context) const
|
||||||
|
{
|
||||||
|
bool result = true;
|
||||||
|
if (firstVersion.empty()) {
|
||||||
|
std::cerr << "Error: " << context << " " << name << " \"version\" must be set, probably to \"None\"" << std::endl;
|
||||||
|
result = false;
|
||||||
|
} else if (!validSpirvVersionStringSpecifier(firstVersion)) {
|
||||||
|
std::cerr << "Error: " << context << " " << name << " \"version\" is invalid: " << firstVersion << std::endl;
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
if (!lastVersion.empty() && !validSpirvVersionString(lastVersion)) {
|
||||||
|
std::cerr << "Error: " << context << " " << name << " \"lastVersion\" is invalid: " << lastVersion << std::endl;
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// When a feature is introduced by an extension, the firstVersion is set to
|
||||||
|
// "None". There are three cases:
|
||||||
|
// - A new capability should be guarded/enabled by the extension
|
||||||
|
// - A new instruction should be:
|
||||||
|
// - Guarded/enabled by a new capability.
|
||||||
|
// - Not enabled by *both* a capability and an extension.
|
||||||
|
// There are many existing instructions that are already like this,
|
||||||
|
// and we grandparent them as allowed.
|
||||||
|
// - Other enums fall into two cases:
|
||||||
|
// 1. The enum is part of a new operand kind introduced by the extension.
|
||||||
|
// In this case we rely on transitivity: The use of the operand occurs
|
||||||
|
// in a new instruction that itself is guarded; or as the operand of
|
||||||
|
// another operand that itself is (recursively) guarded.
|
||||||
|
// 2. The enum is a new case in an existing operand kind. This case
|
||||||
|
// should be guarded by a capability. However, we do not check this
|
||||||
|
// here. Checking it requires more context than we have here.
|
||||||
|
if (oc == OperandOpcode) {
|
||||||
|
const bool instruction_unusable =
|
||||||
|
(firstVersion == "None") && extensions.empty() && capabilities.empty();
|
||||||
|
if (instruction_unusable) {
|
||||||
|
std::cerr << "Error: " << context << " " << name << " is not usable: "
|
||||||
|
<< "its version is set to \"None\", and it is not enabled by a "
|
||||||
|
<< "capability or extension. Guard it with a capability."
|
||||||
|
<< std::endl;
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
// Complain if an instruction is not in any core version and also enabled by
|
||||||
|
// both an extension and a capability.
|
||||||
|
// It's important to check the "not in any core version" case, because,
|
||||||
|
// for example, OpTerminateInvocation is in SPIR-V 1.6 *and* enabled by an
|
||||||
|
// extension, and guarded by the Shader capability.
|
||||||
|
const bool instruction_doubly_enabled = (firstVersion == "None") &&
|
||||||
|
!extensions.empty() &&
|
||||||
|
!capabilities.empty();
|
||||||
|
if (instruction_doubly_enabled && !IsLegacyDoublyEnabledInstruction(name)) {
|
||||||
|
std::cerr << "Error: " << context << " " << name << " is doubly-enabled: "
|
||||||
|
<< "it is enabled by both a capability and an extension. "
|
||||||
|
<< "Guard it with a capability only." << std::endl;
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (oc == OperandCapability) {
|
||||||
|
// If capability X lists capabilities Y and Z, then Y and Z are *enabled*
|
||||||
|
// when X is enabled. They are not *guards* on X's use.
|
||||||
|
// Only versions and extensions can guard a capability.
|
||||||
|
const bool capability_unusable =
|
||||||
|
(firstVersion == "None") && extensions.empty();
|
||||||
|
if (capability_unusable) {
|
||||||
|
std::cerr << "Error: " << context << " " << name << " is not usable: "
|
||||||
|
<< "its version is set to \"None\", and it is not enabled by "
|
||||||
|
<< "an extension. Guard it with an extension." << std::endl;
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
// The set of objects that hold all the instruction/operand
|
// The set of objects that hold all the instruction/operand
|
||||||
// parameterization information.
|
// parameterization information.
|
||||||
InstructionValues InstructionDesc;
|
InstructionValues InstructionDesc;
|
||||||
@@ -88,6 +265,15 @@ EnumValues RayQueryCommittedIntersectionTypeParams;
|
|||||||
EnumValues RayQueryCandidateIntersectionTypeParams;
|
EnumValues RayQueryCandidateIntersectionTypeParams;
|
||||||
EnumValues FragmentShadingRateParams;
|
EnumValues FragmentShadingRateParams;
|
||||||
EnumValues PackedVectorFormatParams;
|
EnumValues PackedVectorFormatParams;
|
||||||
|
EnumValues CooperativeMatrixOperandsParams;
|
||||||
|
EnumValues CooperativeMatrixLayoutParams;
|
||||||
|
EnumValues CooperativeMatrixUseParams;
|
||||||
|
EnumValues InitializationModeQualifierParams;
|
||||||
|
EnumValues HostAccessQualifierParams;
|
||||||
|
EnumValues LoadCacheControlParams;
|
||||||
|
EnumValues StoreCacheControlParams;
|
||||||
|
EnumValues NamedMaximumNumberOfRegistersParams;
|
||||||
|
EnumValues RawAccessChainOperandsParams;
|
||||||
|
|
||||||
std::pair<bool, std::string> ReadFile(const std::string& path)
|
std::pair<bool, std::string> ReadFile(const std::string& path)
|
||||||
{
|
{
|
||||||
@@ -158,6 +344,8 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
|
|||||||
type = OperandLiteralNumber;
|
type = OperandLiteralNumber;
|
||||||
} else if (operandKind == "LiteralContextDependentNumber") {
|
} else if (operandKind == "LiteralContextDependentNumber") {
|
||||||
type = OperandAnySizeLiteralNumber;
|
type = OperandAnySizeLiteralNumber;
|
||||||
|
} else if (operandKind == "LiteralFloat") {
|
||||||
|
type = OperandLiteralNumber;
|
||||||
} else if (operandKind == "SourceLanguage") {
|
} else if (operandKind == "SourceLanguage") {
|
||||||
type = OperandSource;
|
type = OperandSource;
|
||||||
} else if (operandKind == "ExecutionModel") {
|
} else if (operandKind == "ExecutionModel") {
|
||||||
@@ -234,6 +422,24 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
|
|||||||
type = OperandFragmentShadingRate;
|
type = OperandFragmentShadingRate;
|
||||||
} else if (operandKind == "PackedVectorFormat") {
|
} else if (operandKind == "PackedVectorFormat") {
|
||||||
type = OperandPackedVectorFormat;
|
type = OperandPackedVectorFormat;
|
||||||
|
} else if (operandKind == "CooperativeMatrixOperands") {
|
||||||
|
type = OperandCooperativeMatrixOperands;
|
||||||
|
} else if (operandKind == "CooperativeMatrixLayout") {
|
||||||
|
type = OperandCooperativeMatrixLayout;
|
||||||
|
} else if (operandKind == "CooperativeMatrixUse") {
|
||||||
|
type = OperandCooperativeMatrixUse;
|
||||||
|
} else if (operandKind == "InitializationModeQualifier") {
|
||||||
|
type = OperandInitializationModeQualifier;
|
||||||
|
} else if (operandKind == "HostAccessQualifier") {
|
||||||
|
type = OperandHostAccessQualifier;
|
||||||
|
} else if (operandKind == "LoadCacheControl") {
|
||||||
|
type = OperandLoadCacheControl;
|
||||||
|
} else if (operandKind == "StoreCacheControl") {
|
||||||
|
type = OperandStoreCacheControl;
|
||||||
|
} else if (operandKind == "NamedMaximumNumberOfRegisters") {
|
||||||
|
type = OperandNamedMaximumNumberOfRegisters;
|
||||||
|
} else if (operandKind == "RawAccessChainOperands") {
|
||||||
|
type = OperandRawAccessChainOperands;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == OperandNone) {
|
if (type == OperandNone) {
|
||||||
@@ -273,6 +479,8 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
|
|||||||
return;
|
return;
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
||||||
|
size_t errorCount = 0;
|
||||||
|
|
||||||
// Read the JSON grammar file.
|
// Read the JSON grammar file.
|
||||||
bool fileReadOk = false;
|
bool fileReadOk = false;
|
||||||
std::string content;
|
std::string content;
|
||||||
@@ -326,8 +534,10 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
|
|||||||
for (const auto& printingClass : printingClasses) {
|
for (const auto& printingClass : printingClasses) {
|
||||||
if (printingClass["tag"].asString().size() > 0)
|
if (printingClass["tag"].asString().size() > 0)
|
||||||
tags.insert(printingClass["tag"].asString()); // just for error checking
|
tags.insert(printingClass["tag"].asString()); // just for error checking
|
||||||
else
|
else {
|
||||||
std::cerr << "Error: each instruction_printing_class requires a non-empty \"tag\"" << std::endl;
|
std::cerr << "Error: each instruction_printing_class requires a non-empty \"tag\"" << std::endl;
|
||||||
|
std::exit(1);
|
||||||
|
}
|
||||||
if (buildingHeaders || printingClass["tag"].asString() != "@exclude") {
|
if (buildingHeaders || printingClass["tag"].asString() != "@exclude") {
|
||||||
InstructionPrintingClasses.push_back({printingClass["tag"].asString(),
|
InstructionPrintingClasses.push_back({printingClass["tag"].asString(),
|
||||||
printingClass["heading"].asString()});
|
printingClass["heading"].asString()});
|
||||||
@@ -343,6 +553,7 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
|
|||||||
if (printingClass.size() == 0) {
|
if (printingClass.size() == 0) {
|
||||||
std::cerr << "Error: " << inst["opname"].asString()
|
std::cerr << "Error: " << inst["opname"].asString()
|
||||||
<< " requires a non-empty printing \"class\" tag" << std::endl;
|
<< " requires a non-empty printing \"class\" tag" << std::endl;
|
||||||
|
std::exit(1);
|
||||||
}
|
}
|
||||||
if (!buildingHeaders && printingClass == "@exclude")
|
if (!buildingHeaders && printingClass == "@exclude")
|
||||||
continue;
|
continue;
|
||||||
@@ -350,6 +561,7 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
|
|||||||
std::cerr << "Error: " << inst["opname"].asString()
|
std::cerr << "Error: " << inst["opname"].asString()
|
||||||
<< " requires a \"class\" declared as a \"tag\" in \"instruction printing_class\""
|
<< " requires a \"class\" declared as a \"tag\" in \"instruction printing_class\""
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
|
std::exit(1);
|
||||||
}
|
}
|
||||||
const auto opcode = inst["opcode"].asUInt();
|
const auto opcode = inst["opcode"].asUInt();
|
||||||
const std::string name = inst["opname"].asString();
|
const std::string name = inst["opname"].asString();
|
||||||
@@ -387,12 +599,15 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
|
|||||||
std::move(caps), std::move(version), std::move(lastVersion), std::move(exts),
|
std::move(caps), std::move(version), std::move(lastVersion), std::move(exts),
|
||||||
std::move(operands))),
|
std::move(operands))),
|
||||||
printingClass, defTypeId, defResultId);
|
printingClass, defTypeId, defResultId);
|
||||||
|
if (!InstructionDesc.back().IsValid(OperandOpcode, "instruction")) {
|
||||||
|
errorCount++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Specific additional context-dependent operands
|
// Specific additional context-dependent operands
|
||||||
|
|
||||||
// Populate dest with EnumValue objects constructed from source.
|
// Populate dest with EnumValue objects constructed from source.
|
||||||
const auto populateEnumValues = [&getCaps,&getExts](EnumValues* dest, const Json::Value& source, bool bitEnum) {
|
const auto populateEnumValues = [&getCaps,&getExts,&errorCount](EnumValues* dest, const Json::Value& source, bool bitEnum) {
|
||||||
// A lambda for determining the numeric value to be used for a given
|
// A lambda for determining the numeric value to be used for a given
|
||||||
// enumerant in JSON form, and whether that value is a 0 in a bitfield.
|
// enumerant in JSON form, and whether that value is a 0 in a bitfield.
|
||||||
auto getValue = [&bitEnum](const Json::Value& enumerant) {
|
auto getValue = [&bitEnum](const Json::Value& enumerant) {
|
||||||
@@ -451,12 +666,22 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const auto establishOperandClass = [&populateEnumValues](
|
const auto establishOperandClass = [&populateEnumValues,&errorCount](
|
||||||
const std::string& enumName, spv::OperandClass operandClass,
|
const std::string& enumName, spv::OperandClass operandClass,
|
||||||
spv::EnumValues* enumValues, const Json::Value& operandEnum, const std::string& category) {
|
spv::EnumValues* enumValues, const Json::Value& operandEnum, const std::string& category) {
|
||||||
assert(category == "BitEnum" || category == "ValueEnum");
|
assert(category == "BitEnum" || category == "ValueEnum");
|
||||||
bool bitEnum = (category == "BitEnum");
|
bool bitEnum = (category == "BitEnum");
|
||||||
|
if (!operandEnum["version"].empty()) {
|
||||||
|
std::cerr << "Error: container for " << enumName << " operand_kind must not have a version field" << std::endl;
|
||||||
|
errorCount++;
|
||||||
|
}
|
||||||
populateEnumValues(enumValues, operandEnum, bitEnum);
|
populateEnumValues(enumValues, operandEnum, bitEnum);
|
||||||
|
const std::string errContext = "enum " + enumName;
|
||||||
|
for (const auto& e: *enumValues) {
|
||||||
|
if (!e.IsValid(operandClass, errContext)) {
|
||||||
|
errorCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
OperandClassParams[operandClass].set(enumName, enumValues, bitEnum);
|
OperandClassParams[operandClass].set(enumName, enumValues, bitEnum);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -544,8 +769,30 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
|
|||||||
establishOperandClass(enumName, OperandFragmentShadingRate, &FragmentShadingRateParams, operandEnum, category);
|
establishOperandClass(enumName, OperandFragmentShadingRate, &FragmentShadingRateParams, operandEnum, category);
|
||||||
} else if (enumName == "PackedVectorFormat") {
|
} else if (enumName == "PackedVectorFormat") {
|
||||||
establishOperandClass(enumName, OperandPackedVectorFormat, &PackedVectorFormatParams, operandEnum, category);
|
establishOperandClass(enumName, OperandPackedVectorFormat, &PackedVectorFormatParams, operandEnum, category);
|
||||||
|
} else if (enumName == "CooperativeMatrixOperands") {
|
||||||
|
establishOperandClass(enumName, OperandCooperativeMatrixOperands, &CooperativeMatrixOperandsParams, operandEnum, category);
|
||||||
|
} else if (enumName == "CooperativeMatrixLayout") {
|
||||||
|
establishOperandClass(enumName, OperandCooperativeMatrixLayout, &CooperativeMatrixLayoutParams, operandEnum, category);
|
||||||
|
} else if (enumName == "CooperativeMatrixUse") {
|
||||||
|
establishOperandClass(enumName, OperandCooperativeMatrixUse, &CooperativeMatrixUseParams, operandEnum, category);
|
||||||
|
} else if (enumName == "InitializationModeQualifier") {
|
||||||
|
establishOperandClass(enumName, OperandInitializationModeQualifier, &InitializationModeQualifierParams, operandEnum, category);
|
||||||
|
} else if (enumName == "HostAccessQualifier") {
|
||||||
|
establishOperandClass(enumName, OperandHostAccessQualifier, &HostAccessQualifierParams, operandEnum, category);
|
||||||
|
} else if (enumName == "LoadCacheControl") {
|
||||||
|
establishOperandClass(enumName, OperandLoadCacheControl, &LoadCacheControlParams, operandEnum, category);
|
||||||
|
} else if (enumName == "StoreCacheControl") {
|
||||||
|
establishOperandClass(enumName, OperandStoreCacheControl, &StoreCacheControlParams, operandEnum, category);
|
||||||
|
} else if (enumName == "NamedMaximumNumberOfRegisters") {
|
||||||
|
establishOperandClass(enumName, OperandNamedMaximumNumberOfRegisters, &NamedMaximumNumberOfRegistersParams, operandEnum, category);
|
||||||
|
} else if (enumName == "RawAccessChainOperands") {
|
||||||
|
establishOperandClass(enumName, OperandRawAccessChainOperands, &RawAccessChainOperandsParams, operandEnum, category);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (errorCount > 0) {
|
||||||
|
std::exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}; // end namespace spv
|
}; // end namespace spv
|
||||||
|
|||||||
+15
-1
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2014-2020 The Khronos Group Inc.
|
// Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and/or associated documentation files (the "Materials"),
|
// of this software and/or associated documentation files (the "Materials"),
|
||||||
@@ -96,6 +96,15 @@ enum OperandClass {
|
|||||||
OperandQuantizationModes,
|
OperandQuantizationModes,
|
||||||
OperandOverflowModes,
|
OperandOverflowModes,
|
||||||
OperandPackedVectorFormat,
|
OperandPackedVectorFormat,
|
||||||
|
OperandCooperativeMatrixOperands,
|
||||||
|
OperandCooperativeMatrixLayout,
|
||||||
|
OperandCooperativeMatrixUse,
|
||||||
|
OperandInitializationModeQualifier,
|
||||||
|
OperandHostAccessQualifier,
|
||||||
|
OperandLoadCacheControl,
|
||||||
|
OperandStoreCacheControl,
|
||||||
|
OperandNamedMaximumNumberOfRegisters,
|
||||||
|
OperandRawAccessChainOperands,
|
||||||
|
|
||||||
OperandOpcode,
|
OperandOpcode,
|
||||||
|
|
||||||
@@ -184,6 +193,7 @@ public:
|
|||||||
|
|
||||||
iterator begin() { return values.begin(); }
|
iterator begin() { return values.begin(); }
|
||||||
iterator end() { return values.end(); }
|
iterator end() { return values.end(); }
|
||||||
|
EValue& back() { return values.back(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ContainerType values;
|
ContainerType values;
|
||||||
@@ -216,6 +226,10 @@ public:
|
|||||||
Extensions extensions;
|
Extensions extensions;
|
||||||
OperandParameters operands;
|
OperandParameters operands;
|
||||||
const char* desc;
|
const char* desc;
|
||||||
|
|
||||||
|
// Returns true if this enum is valid, in isolation.
|
||||||
|
// Otherwise emits a diagnostic to std::cerr and returns false.
|
||||||
|
bool IsValid(OperandClass oc, const std::string& context) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
using EnumValues = EnumValuesContainer<EnumValue>;
|
using EnumValues = EnumValuesContainer<EnumValue>;
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2014-2019 The Khronos Group Inc.
|
// Copyright (c) 2014-2024 The Khronos Group Inc.
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and/or associated documentation files (the "Materials"),
|
// of this software and/or associated documentation files (the "Materials"),
|
||||||
|
|||||||
Vendored
+7
@@ -0,0 +1,7 @@
|
|||||||
|
# Enable Bzlmod for every Bazel command
|
||||||
|
common --enable_bzlmod
|
||||||
|
|
||||||
|
build --enable_platform_specific_config
|
||||||
|
build:linux --cxxopt=-std=c++17
|
||||||
|
build:macos --cxxopt=-std=c++17
|
||||||
|
build:windows --cxxopt=/std:c++17
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
7.0.2
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
compile_commands.json
|
compile_commands.json
|
||||||
/build*/
|
/build*/
|
||||||
/buildtools/
|
/buildtools/
|
||||||
|
/external/abseil_cpp/
|
||||||
/external/googletest
|
/external/googletest
|
||||||
/external/SPIRV-Headers
|
/external/SPIRV-Headers
|
||||||
/external/spirv-headers
|
/external/spirv-headers
|
||||||
@@ -22,6 +23,7 @@ bazel-out
|
|||||||
bazel-spirv-tools
|
bazel-spirv-tools
|
||||||
bazel-SPIRV-Tools
|
bazel-SPIRV-Tools
|
||||||
bazel-testlogs
|
bazel-testlogs
|
||||||
|
MODULE.bazel.lock
|
||||||
|
|
||||||
# Vim
|
# Vim
|
||||||
[._]*.s[a-w][a-z]
|
[._]*.s[a-w][a-z]
|
||||||
|
|||||||
Vendored
+7
-2
@@ -136,6 +136,7 @@ SPVTOOLS_OPT_SRC_FILES := \
|
|||||||
source/opt/instrument_pass.cpp \
|
source/opt/instrument_pass.cpp \
|
||||||
source/opt/interface_var_sroa.cpp \
|
source/opt/interface_var_sroa.cpp \
|
||||||
source/opt/interp_fixup_pass.cpp \
|
source/opt/interp_fixup_pass.cpp \
|
||||||
|
source/opt/invocation_interlock_placement_pass.cpp \
|
||||||
source/opt/ir_context.cpp \
|
source/opt/ir_context.cpp \
|
||||||
source/opt/ir_loader.cpp \
|
source/opt/ir_loader.cpp \
|
||||||
source/opt/licm_pass.cpp \
|
source/opt/licm_pass.cpp \
|
||||||
@@ -156,6 +157,7 @@ SPVTOOLS_OPT_SRC_FILES := \
|
|||||||
source/opt/loop_utils.cpp \
|
source/opt/loop_utils.cpp \
|
||||||
source/opt/mem_pass.cpp \
|
source/opt/mem_pass.cpp \
|
||||||
source/opt/merge_return_pass.cpp \
|
source/opt/merge_return_pass.cpp \
|
||||||
|
source/opt/modify_maximal_reconvergence.cpp \
|
||||||
source/opt/module.cpp \
|
source/opt/module.cpp \
|
||||||
source/opt/optimizer.cpp \
|
source/opt/optimizer.cpp \
|
||||||
source/opt/pass.cpp \
|
source/opt/pass.cpp \
|
||||||
@@ -182,6 +184,8 @@ SPVTOOLS_OPT_SRC_FILES := \
|
|||||||
source/opt/strip_debug_info_pass.cpp \
|
source/opt/strip_debug_info_pass.cpp \
|
||||||
source/opt/strip_nonsemantic_info_pass.cpp \
|
source/opt/strip_nonsemantic_info_pass.cpp \
|
||||||
source/opt/struct_cfg_analysis.cpp \
|
source/opt/struct_cfg_analysis.cpp \
|
||||||
|
source/opt/switch_descriptorset_pass.cpp \
|
||||||
|
source/opt/trim_capabilities_pass.cpp \
|
||||||
source/opt/type_manager.cpp \
|
source/opt/type_manager.cpp \
|
||||||
source/opt/types.cpp \
|
source/opt/types.cpp \
|
||||||
source/opt/unify_const_pass.cpp \
|
source/opt/unify_const_pass.cpp \
|
||||||
@@ -285,6 +289,7 @@ $(eval $(call gen_spvtools_vendor_tables,$(SPVTOOLS_OUT_PATH),spv-amd-shader-bal
|
|||||||
$(eval $(call gen_spvtools_vendor_tables,$(SPVTOOLS_OUT_PATH),spv-amd-shader-explicit-vertex-parameter,""))
|
$(eval $(call gen_spvtools_vendor_tables,$(SPVTOOLS_OUT_PATH),spv-amd-shader-explicit-vertex-parameter,""))
|
||||||
$(eval $(call gen_spvtools_vendor_tables,$(SPVTOOLS_OUT_PATH),spv-amd-shader-trinary-minmax,""))
|
$(eval $(call gen_spvtools_vendor_tables,$(SPVTOOLS_OUT_PATH),spv-amd-shader-trinary-minmax,""))
|
||||||
$(eval $(call gen_spvtools_vendor_tables,$(SPVTOOLS_OUT_PATH),nonsemantic.clspvreflection,""))
|
$(eval $(call gen_spvtools_vendor_tables,$(SPVTOOLS_OUT_PATH),nonsemantic.clspvreflection,""))
|
||||||
|
$(eval $(call gen_spvtools_vendor_tables,$(SPVTOOLS_OUT_PATH),nonsemantic.vkspreflection,""))
|
||||||
|
|
||||||
define gen_spvtools_enum_string_mapping
|
define gen_spvtools_enum_string_mapping
|
||||||
$(call generate-file-dir,$(1)/extension_enum.inc.inc)
|
$(call generate-file-dir,$(1)/extension_enum.inc.inc)
|
||||||
@@ -340,7 +345,7 @@ LOCAL_C_INCLUDES := \
|
|||||||
$(SPVTOOLS_OUT_PATH)
|
$(SPVTOOLS_OUT_PATH)
|
||||||
LOCAL_EXPORT_C_INCLUDES := \
|
LOCAL_EXPORT_C_INCLUDES := \
|
||||||
$(LOCAL_PATH)/include
|
$(LOCAL_PATH)/include
|
||||||
LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti -Werror
|
LOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti -Werror
|
||||||
LOCAL_SRC_FILES:= $(SPVTOOLS_SRC_FILES)
|
LOCAL_SRC_FILES:= $(SPVTOOLS_SRC_FILES)
|
||||||
include $(BUILD_STATIC_LIBRARY)
|
include $(BUILD_STATIC_LIBRARY)
|
||||||
|
|
||||||
@@ -351,7 +356,7 @@ LOCAL_C_INCLUDES := \
|
|||||||
$(LOCAL_PATH)/source \
|
$(LOCAL_PATH)/source \
|
||||||
$(SPVHEADERS_LOCAL_PATH)/include \
|
$(SPVHEADERS_LOCAL_PATH)/include \
|
||||||
$(SPVTOOLS_OUT_PATH)
|
$(SPVTOOLS_OUT_PATH)
|
||||||
LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti -Werror
|
LOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti -Werror
|
||||||
LOCAL_STATIC_LIBRARIES:=SPIRV-Tools
|
LOCAL_STATIC_LIBRARIES:=SPIRV-Tools
|
||||||
LOCAL_SRC_FILES:= $(SPVTOOLS_OPT_SRC_FILES)
|
LOCAL_SRC_FILES:= $(SPVTOOLS_OPT_SRC_FILES)
|
||||||
include $(BUILD_STATIC_LIBRARY)
|
include $(BUILD_STATIC_LIBRARY)
|
||||||
|
|||||||
Vendored
+422
-253
@@ -1,27 +1,24 @@
|
|||||||
load(
|
load(
|
||||||
":build_defs.bzl",
|
":build_defs.bzl",
|
||||||
|
"CLDEBUGINFO100_GRAMMAR_JSON_FILE",
|
||||||
"COMMON_COPTS",
|
"COMMON_COPTS",
|
||||||
"DEBUGINFO_GRAMMAR_JSON_FILE",
|
"DEBUGINFO_GRAMMAR_JSON_FILE",
|
||||||
"CLDEBUGINFO100_GRAMMAR_JSON_FILE",
|
|
||||||
"SHDEBUGINFO100_GRAMMAR_JSON_FILE",
|
"SHDEBUGINFO100_GRAMMAR_JSON_FILE",
|
||||||
"TEST_COPTS",
|
"TEST_COPTS",
|
||||||
"base_test",
|
|
||||||
"generate_core_tables",
|
"generate_core_tables",
|
||||||
"generate_enum_string_mapping",
|
"generate_enum_string_mapping",
|
||||||
"generate_extinst_lang_headers",
|
"generate_extinst_lang_headers",
|
||||||
"generate_glsl_tables",
|
"generate_glsl_tables",
|
||||||
"generate_opencl_tables",
|
"generate_opencl_tables",
|
||||||
"generate_vendor_tables",
|
"generate_vendor_tables",
|
||||||
"link_test",
|
"incompatible_with",
|
||||||
"lint_test",
|
|
||||||
"opt_test",
|
|
||||||
"reduce_test",
|
|
||||||
"util_test",
|
|
||||||
"val_test",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
package(
|
package(
|
||||||
default_visibility = ["//visibility:private"],
|
default_visibility = ["//visibility:private"],
|
||||||
|
features = [
|
||||||
|
"layering_check",
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
licenses(["notice"])
|
licenses(["notice"])
|
||||||
@@ -41,35 +38,52 @@ py_binary(
|
|||||||
srcs = ["utils/generate_language_headers.py"],
|
srcs = ["utils/generate_language_headers.py"],
|
||||||
)
|
)
|
||||||
|
|
||||||
generate_core_tables("unified1")
|
generate_core_tables(version = "unified1")
|
||||||
|
|
||||||
generate_enum_string_mapping("unified1")
|
generate_enum_string_mapping(version = "unified1")
|
||||||
|
|
||||||
generate_opencl_tables("unified1")
|
generate_opencl_tables(version = "unified1")
|
||||||
|
|
||||||
generate_glsl_tables("unified1")
|
generate_glsl_tables(version = "unified1")
|
||||||
|
|
||||||
generate_vendor_tables("spv-amd-shader-explicit-vertex-parameter")
|
generate_vendor_tables(extension = "spv-amd-shader-explicit-vertex-parameter")
|
||||||
|
|
||||||
generate_vendor_tables("spv-amd-shader-trinary-minmax")
|
generate_vendor_tables(extension = "spv-amd-shader-trinary-minmax")
|
||||||
|
|
||||||
generate_vendor_tables("spv-amd-gcn-shader")
|
generate_vendor_tables(extension = "spv-amd-gcn-shader")
|
||||||
|
|
||||||
generate_vendor_tables("spv-amd-shader-ballot")
|
generate_vendor_tables(extension = "spv-amd-shader-ballot")
|
||||||
|
|
||||||
generate_vendor_tables("debuginfo")
|
generate_vendor_tables(extension = "debuginfo")
|
||||||
|
|
||||||
generate_vendor_tables("opencl.debuginfo.100", "CLDEBUG100_")
|
generate_vendor_tables(extension = "nonsemantic.clspvreflection")
|
||||||
|
|
||||||
generate_vendor_tables("nonsemantic.shader.debuginfo.100", "SHDEBUG100_")
|
generate_vendor_tables(extension = "nonsemantic.vkspreflection")
|
||||||
|
|
||||||
generate_vendor_tables("nonsemantic.clspvreflection")
|
generate_vendor_tables(
|
||||||
|
extension = "opencl.debuginfo.100",
|
||||||
|
operand_kind_prefix = "CLDEBUG100_",
|
||||||
|
)
|
||||||
|
|
||||||
generate_extinst_lang_headers("DebugInfo", DEBUGINFO_GRAMMAR_JSON_FILE)
|
generate_vendor_tables(
|
||||||
|
extension = "nonsemantic.shader.debuginfo.100",
|
||||||
|
operand_kind_prefix = "SHDEBUG100_",
|
||||||
|
)
|
||||||
|
|
||||||
generate_extinst_lang_headers("OpenCLDebugInfo100", CLDEBUGINFO100_GRAMMAR_JSON_FILE)
|
generate_extinst_lang_headers(
|
||||||
|
name = "DebugInfo",
|
||||||
|
grammar = DEBUGINFO_GRAMMAR_JSON_FILE,
|
||||||
|
)
|
||||||
|
|
||||||
generate_extinst_lang_headers("NonSemanticShaderDebugInfo100", SHDEBUGINFO100_GRAMMAR_JSON_FILE)
|
generate_extinst_lang_headers(
|
||||||
|
name = "OpenCLDebugInfo100",
|
||||||
|
grammar = CLDEBUGINFO100_GRAMMAR_JSON_FILE,
|
||||||
|
)
|
||||||
|
|
||||||
|
generate_extinst_lang_headers(
|
||||||
|
name = "NonSemanticShaderDebugInfo100",
|
||||||
|
grammar = SHDEBUGINFO100_GRAMMAR_JSON_FILE,
|
||||||
|
)
|
||||||
|
|
||||||
py_binary(
|
py_binary(
|
||||||
name = "generate_registry_tables",
|
name = "generate_registry_tables",
|
||||||
@@ -77,12 +91,12 @@ py_binary(
|
|||||||
)
|
)
|
||||||
|
|
||||||
genrule(
|
genrule(
|
||||||
name = "gen_registry_tables",
|
name = "generators_inc",
|
||||||
srcs = ["@spirv_headers//:spirv_xml_registry"],
|
srcs = ["@spirv_headers//:spirv_xml_registry"],
|
||||||
outs = ["generators.inc"],
|
outs = ["generators.inc"],
|
||||||
cmd = "$(location generate_registry_tables) --xml=$(location @spirv_headers//:spirv_xml_registry) --generator-output=$(location generators.inc)",
|
cmd = "$(location :generate_registry_tables) --xml=$(location @spirv_headers//:spirv_xml_registry) --generator-output=$(location generators.inc)",
|
||||||
cmd_bat = "$(location //:generate_registry_tables) --xml=$(location @spirv_headers//:spirv_xml_registry) --generator-output=$(location generators.inc)",
|
cmd_bat = "$(location :generate_registry_tables) --xml=$(location @spirv_headers//:spirv_xml_registry) --generator-output=$(location generators.inc)",
|
||||||
exec_tools = [":generate_registry_tables"],
|
tools = [":generate_registry_tables"],
|
||||||
)
|
)
|
||||||
|
|
||||||
py_binary(
|
py_binary(
|
||||||
@@ -91,120 +105,104 @@ py_binary(
|
|||||||
)
|
)
|
||||||
|
|
||||||
genrule(
|
genrule(
|
||||||
name = "gen_build_version",
|
name = "build_version_inc",
|
||||||
srcs = ["CHANGES"],
|
srcs = ["CHANGES"],
|
||||||
outs = ["build-version.inc"],
|
outs = ["build-version.inc"],
|
||||||
cmd = "SOURCE_DATE_EPOCH=0 $(location update_build_version) $(location CHANGES) $(location build-version.inc)",
|
cmd = "SOURCE_DATE_EPOCH=0 $(location :update_build_version) $(location CHANGES) $(location build-version.inc)",
|
||||||
cmd_bat = "set SOURCE_DATE_EPOCH=0 && $(location //:update_build_version) $(location CHANGES) $(location build-version.inc)",
|
cmd_bat = "set SOURCE_DATE_EPOCH=0 && $(location :update_build_version) $(location CHANGES) $(location build-version.inc)",
|
||||||
exec_tools = [":update_build_version"],
|
local = True,
|
||||||
|
tools = [":update_build_version"],
|
||||||
)
|
)
|
||||||
|
|
||||||
# Libraries
|
# Libraries
|
||||||
|
|
||||||
cc_library(
|
cc_library(
|
||||||
name = "generated_headers",
|
name = "spirv_tools",
|
||||||
hdrs = [
|
hdrs = [
|
||||||
":gen_build_version",
|
"include/spirv-tools/libspirv.h",
|
||||||
|
"include/spirv-tools/libspirv.hpp",
|
||||||
|
],
|
||||||
|
copts = COMMON_COPTS,
|
||||||
|
includes = ["include"],
|
||||||
|
linkstatic = 1,
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
cc_library(
|
||||||
|
name = "spirv_tools_internal",
|
||||||
|
srcs = glob([
|
||||||
|
"source/*.cpp",
|
||||||
|
"source/util/*.cpp",
|
||||||
|
"source/val/*.cpp",
|
||||||
|
]) + [
|
||||||
|
":build_version_inc",
|
||||||
":gen_core_tables_unified1",
|
":gen_core_tables_unified1",
|
||||||
":gen_enum_string_mapping",
|
":gen_enum_string_mapping",
|
||||||
":gen_extinst_lang_headers_DebugInfo",
|
":gen_extinst_lang_headers_DebugInfo",
|
||||||
":gen_extinst_lang_headers_OpenCLDebugInfo100",
|
|
||||||
":gen_extinst_lang_headers_NonSemanticShaderDebugInfo100",
|
":gen_extinst_lang_headers_NonSemanticShaderDebugInfo100",
|
||||||
|
":gen_extinst_lang_headers_OpenCLDebugInfo100",
|
||||||
":gen_glsl_tables_unified1",
|
":gen_glsl_tables_unified1",
|
||||||
":gen_opencl_tables_unified1",
|
":gen_opencl_tables_unified1",
|
||||||
":gen_registry_tables",
|
|
||||||
":gen_vendor_tables_debuginfo",
|
":gen_vendor_tables_debuginfo",
|
||||||
":gen_vendor_tables_nonsemantic_clspvreflection",
|
":gen_vendor_tables_nonsemantic_clspvreflection",
|
||||||
":gen_vendor_tables_opencl_debuginfo_100",
|
":gen_vendor_tables_nonsemantic_vkspreflection",
|
||||||
":gen_vendor_tables_nonsemantic_shader_debuginfo_100",
|
":gen_vendor_tables_nonsemantic_shader_debuginfo_100",
|
||||||
|
":gen_vendor_tables_opencl_debuginfo_100",
|
||||||
":gen_vendor_tables_spv_amd_gcn_shader",
|
":gen_vendor_tables_spv_amd_gcn_shader",
|
||||||
":gen_vendor_tables_spv_amd_shader_ballot",
|
":gen_vendor_tables_spv_amd_shader_ballot",
|
||||||
":gen_vendor_tables_spv_amd_shader_explicit_vertex_parameter",
|
":gen_vendor_tables_spv_amd_shader_explicit_vertex_parameter",
|
||||||
":gen_vendor_tables_spv_amd_shader_trinary_minmax",
|
":gen_vendor_tables_spv_amd_shader_trinary_minmax",
|
||||||
|
":generators_inc",
|
||||||
],
|
],
|
||||||
copts = COMMON_COPTS,
|
hdrs = [
|
||||||
)
|
|
||||||
|
|
||||||
cc_library(
|
|
||||||
name = "spirv_tools_headers",
|
|
||||||
hdrs = glob([
|
|
||||||
"include/spirv-tools/libspirv.h",
|
"include/spirv-tools/libspirv.h",
|
||||||
"include/spirv-tools/libspirv.hpp",
|
"include/spirv-tools/libspirv.hpp",
|
||||||
|
":gen_extinst_lang_headers_DebugInfo",
|
||||||
|
":gen_extinst_lang_headers_NonSemanticShaderDebugInfo100",
|
||||||
|
":gen_extinst_lang_headers_OpenCLDebugInfo100",
|
||||||
|
] + glob([
|
||||||
"source/*.h",
|
"source/*.h",
|
||||||
"source/util/*.h",
|
"source/util/*.h",
|
||||||
"source/val/*.h",
|
"source/val/*.h",
|
||||||
]),
|
]),
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
includes = ["source"],
|
|
||||||
deps = [
|
|
||||||
"@spirv_headers//:spirv_cpp11_headers",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
cc_library(
|
|
||||||
name = "spirv_tools",
|
|
||||||
srcs = glob([
|
|
||||||
"source/*.cpp",
|
|
||||||
"source/util/*.cpp",
|
|
||||||
"source/val/*.cpp",
|
|
||||||
]),
|
|
||||||
hdrs = [
|
|
||||||
"include/spirv-tools/libspirv.h",
|
|
||||||
"include/spirv-tools/libspirv.hpp",
|
|
||||||
],
|
|
||||||
copts = COMMON_COPTS + select({
|
|
||||||
"@bazel_tools//src/conditions:windows": [""],
|
|
||||||
"//conditions:default": ["-Wno-implicit-fallthrough"],
|
|
||||||
}),
|
|
||||||
includes = ["include"],
|
includes = ["include"],
|
||||||
linkstatic = 1,
|
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
deps = [
|
deps = [
|
||||||
":generated_headers",
|
"@spirv_headers//:spirv_common_headers",
|
||||||
":spirv_tools_headers",
|
|
||||||
"@spirv_headers//:spirv_cpp11_headers",
|
"@spirv_headers//:spirv_cpp11_headers",
|
||||||
"@spirv_headers//:spirv_common_headers",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
cc_library(
|
|
||||||
name = "spirv_tools_comp",
|
|
||||||
srcs = glob([
|
|
||||||
"source/comp/*.cpp",
|
|
||||||
"source/comp/*.h",
|
|
||||||
]),
|
|
||||||
copts = COMMON_COPTS,
|
|
||||||
linkstatic = 1,
|
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
deps = [
|
|
||||||
":generated_headers",
|
|
||||||
":spirv_tools",
|
|
||||||
":spirv_tools_headers",
|
|
||||||
"@spirv_headers//:spirv_common_headers",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
cc_library(
|
|
||||||
name = "spirv_tools_opt_headers",
|
|
||||||
hdrs = glob(["source/opt/*.h"]),
|
|
||||||
copts = COMMON_COPTS,
|
|
||||||
)
|
|
||||||
|
|
||||||
cc_library(
|
cc_library(
|
||||||
name = "spirv_tools_opt",
|
name = "spirv_tools_opt",
|
||||||
srcs = glob(["source/opt/*.cpp"]),
|
|
||||||
hdrs = [
|
hdrs = [
|
||||||
"include/spirv-tools/instrument.hpp",
|
"include/spirv-tools/instrument.hpp",
|
||||||
"include/spirv-tools/optimizer.hpp",
|
"include/spirv-tools/optimizer.hpp",
|
||||||
],
|
],
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
includes = ["include"],
|
|
||||||
linkstatic = 1,
|
linkstatic = 1,
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools",
|
":spirv_tools",
|
||||||
":spirv_tools_headers",
|
":spirv_tools_opt_internal",
|
||||||
":spirv_tools_opt_headers",
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
cc_library(
|
||||||
|
name = "spirv_tools_opt_internal",
|
||||||
|
srcs = glob(["source/opt/*.cpp"]) + [
|
||||||
|
":gen_vendor_tables_spv_amd_shader_ballot",
|
||||||
|
],
|
||||||
|
hdrs = glob(["source/opt/*.h"]) + [
|
||||||
|
"include/spirv-tools/instrument.hpp",
|
||||||
|
"include/spirv-tools/optimizer.hpp",
|
||||||
|
],
|
||||||
|
copts = COMMON_COPTS,
|
||||||
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
"@spirv_headers//:spirv_common_headers",
|
"@spirv_headers//:spirv_common_headers",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@@ -214,11 +212,9 @@ cc_library(
|
|||||||
srcs = glob(["source/reduce/*.cpp"]),
|
srcs = glob(["source/reduce/*.cpp"]),
|
||||||
hdrs = glob(["source/reduce/*.h"]),
|
hdrs = glob(["source/reduce/*.h"]),
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
linkstatic = 1,
|
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools",
|
":spirv_tools_internal",
|
||||||
":spirv_tools_opt",
|
":spirv_tools_opt_internal",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -230,21 +226,38 @@ cc_library(
|
|||||||
linkstatic = 1,
|
linkstatic = 1,
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools",
|
":spirv_tools_internal",
|
||||||
":spirv_tools_opt",
|
":spirv_tools_opt_internal",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
cc_library(
|
||||||
|
name = "spirv_tools_lint_internal",
|
||||||
|
srcs = glob([
|
||||||
|
"source/lint/*.cpp",
|
||||||
|
"source/lint/*.h",
|
||||||
|
]),
|
||||||
|
hdrs = ["include/spirv-tools/linter.hpp"] + glob([
|
||||||
|
"source/lint/*.h",
|
||||||
|
]),
|
||||||
|
copts = COMMON_COPTS,
|
||||||
|
includes = ["include"],
|
||||||
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
|
":spirv_tools_opt_internal",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
cc_library(
|
cc_library(
|
||||||
name = "spirv_tools_lint",
|
name = "spirv_tools_lint",
|
||||||
srcs = glob(["source/lint/*.cpp", "source/lint/*.h"]),
|
|
||||||
hdrs = ["include/spirv-tools/linter.hpp"],
|
hdrs = ["include/spirv-tools/linter.hpp"],
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
|
includes = ["include"],
|
||||||
linkstatic = 1,
|
linkstatic = 1,
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools",
|
":spirv_tools",
|
||||||
":spirv_tools_opt",
|
":spirv_tools_lint_internal",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -253,23 +266,28 @@ cc_library(
|
|||||||
srcs = glob(["tools/util/*.cpp"]),
|
srcs = glob(["tools/util/*.cpp"]),
|
||||||
hdrs = glob(["tools/util/*.h"]),
|
hdrs = glob(["tools/util/*.h"]),
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
linkstatic = 1,
|
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
deps = [":spirv_tools"],
|
deps = [":spirv_tools"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
cc_library(
|
||||||
|
name = "tools_io",
|
||||||
|
hdrs = ["tools/io.h"],
|
||||||
|
copts = COMMON_COPTS,
|
||||||
|
)
|
||||||
|
|
||||||
# Tools
|
# Tools
|
||||||
|
|
||||||
cc_binary(
|
cc_binary(
|
||||||
name = "spirv-as",
|
name = "spirv-as",
|
||||||
srcs = [
|
srcs = [
|
||||||
"tools/as/as.cpp",
|
"tools/as/as.cpp",
|
||||||
"tools/io.h",
|
|
||||||
],
|
],
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools",
|
":spirv_tools_internal",
|
||||||
|
":tools_io",
|
||||||
|
":tools_util",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -277,25 +295,44 @@ cc_binary(
|
|||||||
name = "spirv-dis",
|
name = "spirv-dis",
|
||||||
srcs = [
|
srcs = [
|
||||||
"tools/dis/dis.cpp",
|
"tools/dis/dis.cpp",
|
||||||
"tools/io.h",
|
|
||||||
],
|
],
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools",
|
":spirv_tools",
|
||||||
|
":tools_io",
|
||||||
|
":tools_util",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
cc_binary(
|
||||||
|
name = "spirv-objdump",
|
||||||
|
srcs = [
|
||||||
|
"tools/objdump/extract_source.cpp",
|
||||||
|
"tools/objdump/extract_source.h",
|
||||||
|
"tools/objdump/objdump.cpp",
|
||||||
|
],
|
||||||
|
copts = COMMON_COPTS,
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
|
":spirv_tools_opt_internal",
|
||||||
|
":tools_io",
|
||||||
|
":tools_util",
|
||||||
|
"@spirv_headers//:spirv_cpp_headers",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
cc_binary(
|
cc_binary(
|
||||||
name = "spirv-val",
|
name = "spirv-val",
|
||||||
srcs = [
|
srcs = [
|
||||||
"tools/io.h",
|
|
||||||
"tools/val/val.cpp",
|
"tools/val/val.cpp",
|
||||||
],
|
],
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools",
|
":spirv_tools_internal",
|
||||||
|
":tools_io",
|
||||||
":tools_util",
|
":tools_util",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@@ -303,14 +340,14 @@ cc_binary(
|
|||||||
cc_binary(
|
cc_binary(
|
||||||
name = "spirv-opt",
|
name = "spirv-opt",
|
||||||
srcs = [
|
srcs = [
|
||||||
"tools/io.h",
|
|
||||||
"tools/opt/opt.cpp",
|
"tools/opt/opt.cpp",
|
||||||
],
|
],
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools",
|
":spirv_tools_internal",
|
||||||
":spirv_tools_opt",
|
":spirv_tools_opt_internal",
|
||||||
|
":tools_io",
|
||||||
":tools_util",
|
":tools_util",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@@ -318,15 +355,15 @@ cc_binary(
|
|||||||
cc_binary(
|
cc_binary(
|
||||||
name = "spirv-reduce",
|
name = "spirv-reduce",
|
||||||
srcs = [
|
srcs = [
|
||||||
"tools/io.h",
|
|
||||||
"tools/reduce/reduce.cpp",
|
"tools/reduce/reduce.cpp",
|
||||||
],
|
],
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools",
|
":spirv_tools_internal",
|
||||||
":spirv_tools_opt",
|
":spirv_tools_opt_internal",
|
||||||
":spirv_tools_reduce",
|
":spirv_tools_reduce",
|
||||||
|
":tools_io",
|
||||||
":tools_util",
|
":tools_util",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@@ -334,28 +371,29 @@ cc_binary(
|
|||||||
cc_binary(
|
cc_binary(
|
||||||
name = "spirv-link",
|
name = "spirv-link",
|
||||||
srcs = [
|
srcs = [
|
||||||
"tools/io.h",
|
|
||||||
"tools/link/linker.cpp",
|
"tools/link/linker.cpp",
|
||||||
],
|
],
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools",
|
":spirv_tools_internal",
|
||||||
":spirv_tools_link",
|
":spirv_tools_link",
|
||||||
|
":tools_io",
|
||||||
|
":tools_util",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
cc_binary(
|
cc_binary(
|
||||||
name = "spirv-lint",
|
name = "spirv-lint",
|
||||||
srcs = [
|
srcs = [
|
||||||
"tools/io.h",
|
|
||||||
"tools/lint/lint.cpp",
|
"tools/lint/lint.cpp",
|
||||||
],
|
],
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools",
|
|
||||||
":spirv_tools_lint",
|
":spirv_tools_lint",
|
||||||
|
":spirv_tools_opt_internal",
|
||||||
|
":tools_io",
|
||||||
":tools_util",
|
":tools_util",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@@ -366,50 +404,143 @@ cc_binary(
|
|||||||
"tools/cfg/bin_to_dot.cpp",
|
"tools/cfg/bin_to_dot.cpp",
|
||||||
"tools/cfg/bin_to_dot.h",
|
"tools/cfg/bin_to_dot.h",
|
||||||
"tools/cfg/cfg.cpp",
|
"tools/cfg/cfg.cpp",
|
||||||
"tools/io.h",
|
|
||||||
],
|
],
|
||||||
copts = COMMON_COPTS,
|
copts = COMMON_COPTS,
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [":spirv_tools"],
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
|
":tools_io",
|
||||||
|
":tools_util",
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
# Unit tests
|
# Unit tests
|
||||||
|
|
||||||
cc_library(
|
cc_library(
|
||||||
name = "test_common",
|
name = "test_lib",
|
||||||
testonly = 1,
|
testonly = 1,
|
||||||
srcs = [
|
srcs = [
|
||||||
"test/test_fixture.h",
|
|
||||||
"test/unit_spirv.cpp",
|
"test/unit_spirv.cpp",
|
||||||
|
],
|
||||||
|
hdrs = [
|
||||||
|
"test/test_fixture.h",
|
||||||
"test/unit_spirv.h",
|
"test/unit_spirv.h",
|
||||||
],
|
],
|
||||||
compatible_with = [],
|
|
||||||
copts = TEST_COPTS,
|
copts = TEST_COPTS,
|
||||||
includes = ["test"],
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
# PCH (precompiled header) tests only work when using CMake and MSVC on Windows,
|
||||||
|
# so they will be skipped in the Bazel builds.
|
||||||
|
|
||||||
|
[cc_test(
|
||||||
|
name = "base_{testcase}_test".format(testcase = f[len("test/"):-len("_test.cpp")]),
|
||||||
|
size = "small",
|
||||||
|
srcs = [f],
|
||||||
|
copts = TEST_COPTS + ["-DTESTING"],
|
||||||
|
linkstatic = 1,
|
||||||
|
target_compatible_with = {
|
||||||
|
"test/timer_test.cpp": incompatible_with(["@bazel_tools//src/conditions:windows"]),
|
||||||
|
}.get(f, []),
|
||||||
|
deps = [
|
||||||
|
"tools_util",
|
||||||
|
":spirv_tools_internal",
|
||||||
|
":test_lib",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
|
],
|
||||||
|
) for f in glob(
|
||||||
|
[
|
||||||
|
"test/*_test.cpp",
|
||||||
|
"test/tools/*_test.cpp",
|
||||||
|
],
|
||||||
|
exclude = [
|
||||||
|
"test/cpp_interface_test.cpp",
|
||||||
|
"test/pch_test.cpp",
|
||||||
|
],
|
||||||
|
)]
|
||||||
|
|
||||||
|
cc_test(
|
||||||
|
name = "base_cpp_interface_test",
|
||||||
|
size = "small",
|
||||||
|
srcs = ["test/cpp_interface_test.cpp"],
|
||||||
|
linkstatic = 1,
|
||||||
|
deps = [
|
||||||
|
":spirv_tools_opt_internal",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
|
"@spirv_headers//:spirv_cpp11_headers",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
cc_test(
|
||||||
|
name = "base_ilist_test",
|
||||||
|
size = "small",
|
||||||
|
srcs = ["test/util/ilist_test.cpp"],
|
||||||
|
copts = TEST_COPTS,
|
||||||
|
linkstatic = 1,
|
||||||
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
cc_library(
|
||||||
|
name = "link_test_lib",
|
||||||
|
testonly = 1,
|
||||||
|
hdrs = ["test/link/linker_fixture.h"],
|
||||||
|
copts = TEST_COPTS,
|
||||||
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
|
":spirv_tools_link",
|
||||||
|
":test_lib",
|
||||||
|
"@com_google_effcee//:effcee",
|
||||||
|
"@com_googlesource_code_re2//:re2",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
[cc_test(
|
||||||
|
name = "link_{testcase}_test".format(testcase = f[len("test/link/"):-len("_test.cpp")]),
|
||||||
|
size = "small",
|
||||||
|
srcs = [f],
|
||||||
|
copts = TEST_COPTS,
|
||||||
|
linkstatic = 1,
|
||||||
|
deps = [
|
||||||
|
":link_test_lib",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
|
],
|
||||||
|
) for f in glob(
|
||||||
|
["test/link/*_test.cpp"],
|
||||||
|
)]
|
||||||
|
|
||||||
|
[cc_test(
|
||||||
|
name = "lint_{testcase}_test".format(testcase = f[len("test/lint/"):-len("_test.cpp")]),
|
||||||
|
size = "small",
|
||||||
|
srcs = [f],
|
||||||
|
copts = TEST_COPTS,
|
||||||
linkstatic = 1,
|
linkstatic = 1,
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools",
|
":spirv_tools",
|
||||||
"@com_google_googletest//:gtest",
|
":spirv_tools_lint_internal",
|
||||||
|
":spirv_tools_opt_internal",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
],
|
],
|
||||||
)
|
) for f in glob(
|
||||||
|
["test/lint/*_test.cpp"],
|
||||||
|
)]
|
||||||
|
|
||||||
cc_library(
|
cc_library(
|
||||||
name = "link_test_common",
|
name = "opt_test_lib",
|
||||||
testonly = 1,
|
testonly = 1,
|
||||||
srcs = ["test/link/linker_fixture.h"],
|
srcs = [
|
||||||
compatible_with = [],
|
"test/opt/pass_utils.cpp",
|
||||||
copts = TEST_COPTS,
|
|
||||||
linkstatic = 1,
|
|
||||||
deps = [
|
|
||||||
":spirv_tools_link",
|
|
||||||
":test_common",
|
|
||||||
],
|
],
|
||||||
)
|
|
||||||
|
|
||||||
cc_library(
|
|
||||||
name = "opt_test_common",
|
|
||||||
testonly = 1,
|
|
||||||
srcs = ["test/opt/pass_utils.cpp"],
|
|
||||||
hdrs = [
|
hdrs = [
|
||||||
"test/opt/assembly_builder.h",
|
"test/opt/assembly_builder.h",
|
||||||
"test/opt/function_utils.h",
|
"test/opt/function_utils.h",
|
||||||
@@ -417,143 +548,181 @@ cc_library(
|
|||||||
"test/opt/pass_fixture.h",
|
"test/opt/pass_fixture.h",
|
||||||
"test/opt/pass_utils.h",
|
"test/opt/pass_utils.h",
|
||||||
],
|
],
|
||||||
compatible_with = [],
|
copts = TEST_COPTS,
|
||||||
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
|
":spirv_tools_opt_internal",
|
||||||
|
"@com_google_effcee//:effcee",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
[cc_test(
|
||||||
|
name = "opt_{testcase}_test".format(testcase = f[len("test/opt/"):-len("_test.cpp")]),
|
||||||
|
size = "small",
|
||||||
|
srcs = [f],
|
||||||
copts = TEST_COPTS,
|
copts = TEST_COPTS,
|
||||||
linkstatic = 1,
|
linkstatic = 1,
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools_opt",
|
":opt_test_lib",
|
||||||
":test_common",
|
":spirv_tools_internal",
|
||||||
|
":spirv_tools_opt_internal",
|
||||||
|
":test_lib",
|
||||||
|
"@com_google_effcee//:effcee",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
],
|
],
|
||||||
)
|
) for f in glob(["test/opt/*_test.cpp"])]
|
||||||
|
|
||||||
cc_library(
|
[cc_test(
|
||||||
name = "reduce_test_common",
|
name = "opt_dom_tree_{testcase}_test".format(testcase = f[len("test/opt/dominator_tree/"):-len(".cpp")]),
|
||||||
testonly = 1,
|
size = "small",
|
||||||
srcs = [
|
srcs = [f],
|
||||||
"test/reduce/reduce_test_util.cpp",
|
|
||||||
"tools/io.h",
|
|
||||||
],
|
|
||||||
hdrs = ["test/reduce/reduce_test_util.h"],
|
|
||||||
compatible_with = [],
|
|
||||||
copts = TEST_COPTS,
|
copts = TEST_COPTS,
|
||||||
linkstatic = 1,
|
linkstatic = 1,
|
||||||
deps = [
|
deps = [
|
||||||
":spirv_tools_reduce",
|
":opt_test_lib",
|
||||||
":test_common",
|
":spirv_tools_opt_internal",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
],
|
],
|
||||||
)
|
|
||||||
|
|
||||||
cc_library(
|
|
||||||
name = "val_test_common",
|
|
||||||
testonly = 1,
|
|
||||||
srcs = [
|
|
||||||
"test/val/val_code_generator.cpp",
|
|
||||||
"test/val/val_fixtures.h",
|
|
||||||
],
|
|
||||||
hdrs = [
|
|
||||||
"test/val/val_code_generator.h",
|
|
||||||
],
|
|
||||||
compatible_with = [],
|
|
||||||
copts = TEST_COPTS,
|
|
||||||
linkstatic = 1,
|
|
||||||
deps = [":test_common"],
|
|
||||||
)
|
|
||||||
|
|
||||||
# PCH (precompiled header) tests only work when using CMake and MSVC on Windows,
|
|
||||||
# so they will be skipped in the Bazel builds.
|
|
||||||
|
|
||||||
[base_test(
|
|
||||||
name = f[5:-4], # strip test/, .cpp
|
|
||||||
srcs = [f],
|
|
||||||
) for f in glob(
|
|
||||||
["test/*.cpp"],
|
|
||||||
exclude = [
|
|
||||||
"test/cpp_interface_test.cpp", # has its own base_test below.
|
|
||||||
"test/log_test.cpp", # has its own base_test below.
|
|
||||||
"test/pch_test.cpp", # pch tests are skipped.
|
|
||||||
"test/timer_test.cpp", # has its own base_test below.
|
|
||||||
],
|
|
||||||
)]
|
|
||||||
|
|
||||||
# This test uses unistd.h and does not run on Windows.
|
|
||||||
base_test(
|
|
||||||
name = "timer_test",
|
|
||||||
srcs = select({
|
|
||||||
"@bazel_tools//src/conditions:windows": [],
|
|
||||||
"//conditions:default": ["test/timer_test.cpp"],
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
|
|
||||||
base_test(
|
|
||||||
name = "cpp_interface_test",
|
|
||||||
srcs = ["test/cpp_interface_test.cpp"],
|
|
||||||
deps = [":spirv_tools_opt"],
|
|
||||||
)
|
|
||||||
|
|
||||||
base_test(
|
|
||||||
name = "log_test",
|
|
||||||
srcs = ["test/log_test.cpp"],
|
|
||||||
deps = [":spirv_tools_opt"],
|
|
||||||
)
|
|
||||||
|
|
||||||
[link_test(
|
|
||||||
name = f[10:-4], # strip test/link/, .cpp
|
|
||||||
srcs = [f],
|
|
||||||
) for f in glob(
|
|
||||||
["test/link/*.cpp"],
|
|
||||||
)]
|
|
||||||
|
|
||||||
[lint_test(
|
|
||||||
name = f[10:-4], # strip test/lint/, .cpp
|
|
||||||
srcs = [f],
|
|
||||||
) for f in glob(
|
|
||||||
["test/lint/*.cpp"],
|
|
||||||
)]
|
|
||||||
|
|
||||||
[opt_test(
|
|
||||||
name = f[9:-4], # strip test/opt/, .cpp
|
|
||||||
srcs = [f],
|
|
||||||
) for f in glob(
|
|
||||||
["test/opt/*.cpp"],
|
|
||||||
# pch tests are skipped.
|
|
||||||
exclude = ["test/opt/pch_test_opt.cpp"],
|
|
||||||
)]
|
|
||||||
|
|
||||||
[opt_test(
|
|
||||||
name = "dom_tree_" + f[24:-4], # strip test/opt/dominator_tree/, .cpp
|
|
||||||
srcs = [f],
|
|
||||||
) for f in glob(
|
) for f in glob(
|
||||||
["test/opt/dominator_tree/*.cpp"],
|
["test/opt/dominator_tree/*.cpp"],
|
||||||
# pch tests are skipped.
|
|
||||||
exclude = ["test/opt/dominator_tree/pch_test_opt_dom.cpp"],
|
exclude = ["test/opt/dominator_tree/pch_test_opt_dom.cpp"],
|
||||||
)]
|
)]
|
||||||
|
|
||||||
[opt_test(
|
[cc_test(
|
||||||
name = "loop_" + f[28:-4], # strip test/opt/loop_optimizations/, .cpp
|
name = "opt_loop_{testcase}_test".format(testcase = f[len("test/opt/loop_optimizations/"):-len(".cpp")]),
|
||||||
|
size = "small",
|
||||||
srcs = [f],
|
srcs = [f],
|
||||||
|
copts = TEST_COPTS,
|
||||||
|
linkstatic = 1,
|
||||||
|
deps = [
|
||||||
|
":opt_test_lib",
|
||||||
|
":spirv_tools",
|
||||||
|
":spirv_tools_opt_internal",
|
||||||
|
"@com_google_effcee//:effcee",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
|
],
|
||||||
) for f in glob(
|
) for f in glob(
|
||||||
["test/opt/loop_optimizations/*.cpp"],
|
["test/opt/loop_optimizations/*.cpp"],
|
||||||
# pch tests are skipped.
|
|
||||||
exclude = ["test/opt/loop_optimizations/pch_test_opt_loop.cpp"],
|
exclude = ["test/opt/loop_optimizations/pch_test_opt_loop.cpp"],
|
||||||
)]
|
)]
|
||||||
|
|
||||||
[reduce_test(
|
cc_library(
|
||||||
name = f[12:-4], # strip test/reduce/, .cpp
|
name = "reduce_test_lib",
|
||||||
srcs = [f],
|
testonly = 1,
|
||||||
) for f in glob(["test/reduce/*.cpp"])]
|
srcs = [
|
||||||
|
"test/reduce/reduce_test_util.cpp",
|
||||||
|
],
|
||||||
|
hdrs = ["test/reduce/reduce_test_util.h"],
|
||||||
|
copts = TEST_COPTS,
|
||||||
|
deps = [
|
||||||
|
":spirv_tools",
|
||||||
|
":spirv_tools_opt_internal",
|
||||||
|
":spirv_tools_reduce",
|
||||||
|
":test_lib",
|
||||||
|
":tools_io",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
[util_test(
|
[cc_test(
|
||||||
name = f[10:-4], # strip test/util/, .cpp
|
name = "reduce_{testcase}_test".format(testcase = f[len("test/reduce/"):-len("_test.cpp")]),
|
||||||
|
size = "small",
|
||||||
srcs = [f],
|
srcs = [f],
|
||||||
) for f in glob(["test/util/*.cpp"])]
|
copts = TEST_COPTS,
|
||||||
|
linkstatic = 1,
|
||||||
|
deps = [
|
||||||
|
":reduce_test_lib",
|
||||||
|
":spirv_tools_internal",
|
||||||
|
":spirv_tools_opt_internal",
|
||||||
|
":spirv_tools_reduce",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
|
],
|
||||||
|
) for f in glob(["test/reduce/*_test.cpp"])]
|
||||||
|
|
||||||
[val_test(
|
[cc_test(
|
||||||
name = f[9:-4], # strip test/val/, .cpp
|
name = "util_{testcase}_test".format(testcase = f[len("test/util/"):-len("_test.cpp")]),
|
||||||
|
size = "small",
|
||||||
srcs = [f],
|
srcs = [f],
|
||||||
|
copts = TEST_COPTS,
|
||||||
|
linkstatic = 1,
|
||||||
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
|
],
|
||||||
|
) for f in glob(["test/util/*_test.cpp"])]
|
||||||
|
|
||||||
|
cc_library(
|
||||||
|
name = "val_test_lib",
|
||||||
|
testonly = 1,
|
||||||
|
srcs = [
|
||||||
|
"test/val/val_code_generator.cpp",
|
||||||
|
],
|
||||||
|
hdrs = [
|
||||||
|
"test/val/val_code_generator.h",
|
||||||
|
"test/val/val_fixtures.h",
|
||||||
|
],
|
||||||
|
copts = TEST_COPTS,
|
||||||
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
|
":test_lib",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
[cc_test(
|
||||||
|
name = "val_{testcase}_test".format(testcase = f[len("test/val/val_"):-len("_test.cpp")]),
|
||||||
|
size = "small",
|
||||||
|
srcs = [f],
|
||||||
|
copts = TEST_COPTS,
|
||||||
|
linkstatic = 1,
|
||||||
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
|
":test_lib",
|
||||||
|
":val_test_lib",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
|
],
|
||||||
) for f in glob(
|
) for f in glob(
|
||||||
["test/val/*.cpp"],
|
["test/val/val_*_test.cpp"],
|
||||||
exclude = [
|
exclude = [
|
||||||
"test/val/pch_test_val.cpp", # pch tests are skipped.
|
"test/val/val_capability_test.cpp",
|
||||||
|
"test/val/val_limits_test.cpp",
|
||||||
],
|
],
|
||||||
)]
|
)]
|
||||||
|
|
||||||
|
cc_test(
|
||||||
|
name = "val_capability_test",
|
||||||
|
size = "large",
|
||||||
|
timeout = "long",
|
||||||
|
srcs = ["test/val/val_capability_test.cpp"],
|
||||||
|
copts = TEST_COPTS + ["-O3"],
|
||||||
|
linkstatic = 1,
|
||||||
|
deps = [
|
||||||
|
":spirv_tools_internal",
|
||||||
|
":test_lib",
|
||||||
|
":val_test_lib",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
cc_test(
|
||||||
|
name = "val_limits_test",
|
||||||
|
size = "large",
|
||||||
|
timeout = "long",
|
||||||
|
srcs = ["test/val/val_limits_test.cpp"],
|
||||||
|
copts = TEST_COPTS + [
|
||||||
|
"-O3",
|
||||||
|
],
|
||||||
|
linkstatic = 1,
|
||||||
|
deps = [
|
||||||
|
":test_lib",
|
||||||
|
":val_test_lib",
|
||||||
|
"@googletest//:gtest",
|
||||||
|
"@googletest//:gtest_main",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|||||||
Vendored
+39
-13
@@ -327,6 +327,10 @@ spvtools_vendor_tables = [
|
|||||||
"nonsemantic.clspvreflection",
|
"nonsemantic.clspvreflection",
|
||||||
"...nil...",
|
"...nil...",
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
"nonsemantic.vkspreflection",
|
||||||
|
"...nil...",
|
||||||
|
],
|
||||||
[
|
[
|
||||||
"nonsemantic.shader.debuginfo.100",
|
"nonsemantic.shader.debuginfo.100",
|
||||||
"SHDEBUG100_",
|
"SHDEBUG100_",
|
||||||
@@ -370,6 +374,15 @@ config("spvtools_internal_config") {
|
|||||||
} else if (!is_win) {
|
} else if (!is_win) {
|
||||||
# Work around a false-positive on a Skia GCC 10 builder.
|
# Work around a false-positive on a Skia GCC 10 builder.
|
||||||
cflags += [ "-Wno-format-truncation" ]
|
cflags += [ "-Wno-format-truncation" ]
|
||||||
|
} else {
|
||||||
|
# Make MSVC report the correct value for __cplusplus
|
||||||
|
cflags += [ "/Zc:__cplusplus" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!is_win) {
|
||||||
|
cflags += [ "-std=c++17" ]
|
||||||
|
} else {
|
||||||
|
cflags += [ "/std:c++17" ]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -684,6 +697,8 @@ static_library("spvtools_opt") {
|
|||||||
"source/opt/interface_var_sroa.h",
|
"source/opt/interface_var_sroa.h",
|
||||||
"source/opt/interp_fixup_pass.cpp",
|
"source/opt/interp_fixup_pass.cpp",
|
||||||
"source/opt/interp_fixup_pass.h",
|
"source/opt/interp_fixup_pass.h",
|
||||||
|
"source/opt/invocation_interlock_placement_pass.cpp",
|
||||||
|
"source/opt/invocation_interlock_placement_pass.h",
|
||||||
"source/opt/ir_builder.h",
|
"source/opt/ir_builder.h",
|
||||||
"source/opt/ir_context.cpp",
|
"source/opt/ir_context.cpp",
|
||||||
"source/opt/ir_context.h",
|
"source/opt/ir_context.h",
|
||||||
@@ -726,6 +741,8 @@ static_library("spvtools_opt") {
|
|||||||
"source/opt/mem_pass.h",
|
"source/opt/mem_pass.h",
|
||||||
"source/opt/merge_return_pass.cpp",
|
"source/opt/merge_return_pass.cpp",
|
||||||
"source/opt/merge_return_pass.h",
|
"source/opt/merge_return_pass.h",
|
||||||
|
"source/opt/modify_maximal_reconvergence.cpp",
|
||||||
|
"source/opt/modify_maximal_reconvergence.h",
|
||||||
"source/opt/module.cpp",
|
"source/opt/module.cpp",
|
||||||
"source/opt/module.h",
|
"source/opt/module.h",
|
||||||
"source/opt/null_pass.h",
|
"source/opt/null_pass.h",
|
||||||
@@ -780,7 +797,11 @@ static_library("spvtools_opt") {
|
|||||||
"source/opt/strip_nonsemantic_info_pass.h",
|
"source/opt/strip_nonsemantic_info_pass.h",
|
||||||
"source/opt/struct_cfg_analysis.cpp",
|
"source/opt/struct_cfg_analysis.cpp",
|
||||||
"source/opt/struct_cfg_analysis.h",
|
"source/opt/struct_cfg_analysis.h",
|
||||||
|
"source/opt/switch_descriptorset_pass.cpp",
|
||||||
|
"source/opt/switch_descriptorset_pass.h",
|
||||||
"source/opt/tree_iterator.h",
|
"source/opt/tree_iterator.h",
|
||||||
|
"source/opt/trim_capabilities_pass.cpp",
|
||||||
|
"source/opt/trim_capabilities_pass.h",
|
||||||
"source/opt/type_manager.cpp",
|
"source/opt/type_manager.cpp",
|
||||||
"source/opt/type_manager.h",
|
"source/opt/type_manager.h",
|
||||||
"source/opt/types.cpp",
|
"source/opt/types.cpp",
|
||||||
@@ -1427,15 +1448,6 @@ if (spirv_tools_standalone) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
source_set("spvtools_util_cli_consumer") {
|
|
||||||
sources = [
|
|
||||||
"tools/util/cli_consumer.cpp",
|
|
||||||
"tools/util/cli_consumer.h",
|
|
||||||
]
|
|
||||||
deps = [ ":spvtools_headers" ]
|
|
||||||
configs += [ ":spvtools_internal_config" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
source_set("spvtools_software_version") {
|
source_set("spvtools_software_version") {
|
||||||
sources = [ "source/software_version.cpp" ]
|
sources = [ "source/software_version.cpp" ]
|
||||||
deps = [
|
deps = [
|
||||||
@@ -1445,12 +1457,23 @@ source_set("spvtools_software_version") {
|
|||||||
configs += [ ":spvtools_internal_config" ]
|
configs += [ ":spvtools_internal_config" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
source_set("spvtools_tools_util") {
|
||||||
|
sources = [
|
||||||
|
"tools/util/flags.cpp",
|
||||||
|
"tools/util/cli_consumer.cpp",
|
||||||
|
"tools/util/cli_consumer.h",
|
||||||
|
]
|
||||||
|
deps = [ ":spvtools_headers" ]
|
||||||
|
configs += [ ":spvtools_internal_config" ]
|
||||||
|
}
|
||||||
|
|
||||||
if (spvtools_build_executables) {
|
if (spvtools_build_executables) {
|
||||||
executable("spirv-as") {
|
executable("spirv-as") {
|
||||||
sources = [ "tools/as/as.cpp" ]
|
sources = [ "tools/as/as.cpp" ]
|
||||||
deps = [
|
deps = [
|
||||||
":spvtools",
|
":spvtools",
|
||||||
":spvtools_software_version",
|
":spvtools_software_version",
|
||||||
|
":spvtools_tools_util",
|
||||||
]
|
]
|
||||||
configs += [ ":spvtools_internal_config" ]
|
configs += [ ":spvtools_internal_config" ]
|
||||||
}
|
}
|
||||||
@@ -1460,6 +1483,7 @@ if (spvtools_build_executables) {
|
|||||||
deps = [
|
deps = [
|
||||||
":spvtools",
|
":spvtools",
|
||||||
":spvtools_software_version",
|
":spvtools_software_version",
|
||||||
|
":spvtools_tools_util",
|
||||||
]
|
]
|
||||||
configs += [ ":spvtools_internal_config" ]
|
configs += [ ":spvtools_internal_config" ]
|
||||||
}
|
}
|
||||||
@@ -1469,7 +1493,7 @@ if (spvtools_build_executables) {
|
|||||||
deps = [
|
deps = [
|
||||||
":spvtools",
|
":spvtools",
|
||||||
":spvtools_software_version",
|
":spvtools_software_version",
|
||||||
":spvtools_util_cli_consumer",
|
":spvtools_tools_util",
|
||||||
":spvtools_val",
|
":spvtools_val",
|
||||||
]
|
]
|
||||||
configs += [ ":spvtools_internal_config" ]
|
configs += [ ":spvtools_internal_config" ]
|
||||||
@@ -1484,6 +1508,7 @@ if (spvtools_build_executables) {
|
|||||||
deps = [
|
deps = [
|
||||||
":spvtools",
|
":spvtools",
|
||||||
":spvtools_software_version",
|
":spvtools_software_version",
|
||||||
|
":spvtools_tools_util",
|
||||||
]
|
]
|
||||||
configs += [ ":spvtools_internal_config" ]
|
configs += [ ":spvtools_internal_config" ]
|
||||||
}
|
}
|
||||||
@@ -1494,7 +1519,7 @@ if (spvtools_build_executables) {
|
|||||||
":spvtools",
|
":spvtools",
|
||||||
":spvtools_opt",
|
":spvtools_opt",
|
||||||
":spvtools_software_version",
|
":spvtools_software_version",
|
||||||
":spvtools_util_cli_consumer",
|
":spvtools_tools_util",
|
||||||
":spvtools_val",
|
":spvtools_val",
|
||||||
]
|
]
|
||||||
configs += [ ":spvtools_internal_config" ]
|
configs += [ ":spvtools_internal_config" ]
|
||||||
@@ -1507,6 +1532,7 @@ if (spvtools_build_executables) {
|
|||||||
":spvtools_link",
|
":spvtools_link",
|
||||||
":spvtools_opt",
|
":spvtools_opt",
|
||||||
":spvtools_software_version",
|
":spvtools_software_version",
|
||||||
|
":spvtools_tools_util",
|
||||||
":spvtools_val",
|
":spvtools_val",
|
||||||
]
|
]
|
||||||
configs += [ ":spvtools_internal_config" ]
|
configs += [ ":spvtools_internal_config" ]
|
||||||
@@ -1526,7 +1552,7 @@ if (!is_ios && !spirv_is_winuwp && build_with_chromium && spvtools_build_executa
|
|||||||
":spvtools_opt",
|
":spvtools_opt",
|
||||||
":spvtools_reduce",
|
":spvtools_reduce",
|
||||||
":spvtools_software_version",
|
":spvtools_software_version",
|
||||||
":spvtools_util_cli_consumer",
|
":spvtools_tools_util",
|
||||||
":spvtools_val",
|
":spvtools_val",
|
||||||
"//third_party/protobuf:protobuf_full",
|
"//third_party/protobuf:protobuf_full",
|
||||||
]
|
]
|
||||||
@@ -1545,7 +1571,7 @@ if (!is_ios && !spirv_is_winuwp && spvtools_build_executables) {
|
|||||||
":spvtools_opt",
|
":spvtools_opt",
|
||||||
":spvtools_reduce",
|
":spvtools_reduce",
|
||||||
":spvtools_software_version",
|
":spvtools_software_version",
|
||||||
":spvtools_util_cli_consumer",
|
":spvtools_tools_util",
|
||||||
":spvtools_val",
|
":spvtools_val",
|
||||||
]
|
]
|
||||||
configs += [ ":spvtools_internal_config" ]
|
configs += [ ":spvtools_internal_config" ]
|
||||||
|
|||||||
Vendored
+191
-2
@@ -1,7 +1,196 @@
|
|||||||
Revision history for SPIRV-Tools
|
Revision history for SPIRV-Tools
|
||||||
|
|
||||||
v2022.5-dev 2022-10-12
|
v2024.2 2024-04-22
|
||||||
- Start v2022.5-dev
|
- General
|
||||||
|
- Add SPIRV_TOOLS_EXPORT to public C++ API (#5591)
|
||||||
|
- Use bazel 7 and bzlmod (#5601)
|
||||||
|
- Optimizer
|
||||||
|
- opt: add GroupNonUniformPartitionedNV capability to trim pass (#5648)
|
||||||
|
- Fix rebuilding types with circular references. (#5637)
|
||||||
|
- Add AliasedPointer decoration (#5635)
|
||||||
|
- add support for vulkan-shader-profiler external passes (#5512)
|
||||||
|
- Validator
|
||||||
|
- A fix to support of SPV_QCOM_image_processing2 (#5646)
|
||||||
|
- spirv-val: Add Vulkan check for Rect Dim in OpTypeImage (#5644)
|
||||||
|
- Validate duplicate decorations and execution modes (#5641)
|
||||||
|
- Validator: Support SPV_NV_raw_access_chains (#5568)
|
||||||
|
|
||||||
|
v2024.1 2024-03-06
|
||||||
|
- General
|
||||||
|
- Add tooling support for SPV_KHR_maximal_reconvergence (#5542)
|
||||||
|
- Add support for SPV_KHR_float_controls2 (#5543)
|
||||||
|
- SPV_KHR_quad_control (#5547)
|
||||||
|
- Fold 64-bit int operations (#5561)
|
||||||
|
- update image enum tests to remove Kernel capability (#5562)
|
||||||
|
- Support operand kind for SPV_INTEL_maximum_registers (#5580)
|
||||||
|
- SPV_NV_shader_atomic_fp16_vector (#5581)
|
||||||
|
- Support for SPV_QCOM_image_processing2 (#5582)
|
||||||
|
- Fix access chain struct checks (#5592)
|
||||||
|
- Optimizer
|
||||||
|
- opt: add Int16 and Float16 to capability trim pass (#5519)
|
||||||
|
- Add preserver-interface option to spirv-opt (#5524)
|
||||||
|
- spirv-opt: Fix OpCompositeExtract relaxation with struct operands (#5536)
|
||||||
|
- opt: Add VulkanMemoryModelDeviceScope to trim (#5544)
|
||||||
|
- opt: Add TrimCapabilities pass to spirv-opt tool (#5545)
|
||||||
|
- Add modify-maximal-reconvergence to spirv-opt help (#5546)
|
||||||
|
- opt: add SPV_EXT_mesh_shader to opt allowlist (#5551)
|
||||||
|
- opt: Add OpEntryPoint to DescriptorScalarReplacement pass (#5553)
|
||||||
|
- opt: prevent meld to merge block with MaximalReconvergence (#5557)
|
||||||
|
- [OPT] Use new instruction folder for for all opcodes in spec consti folding (#5569)
|
||||||
|
- [OPT] Identify arrays with unknown length in copy prop arrays (#5570)
|
||||||
|
- [OPT] Add removed unused interface var pass to legalization passes (#5579)
|
||||||
|
- Validator
|
||||||
|
- spirv-val: Re-enable OpControlBarrier VU (#5527)
|
||||||
|
- spirv-val: Add Mesh Primitive Built-In validaiton (#5529)
|
||||||
|
- spirv-val: Validate PhysicalStorageBuffer Stage Interface (#5539)
|
||||||
|
- spirv-val: Multiple interface var with same SC (#5528)
|
||||||
|
- spirv-val: Revert Validate PhysicalStorageBuffer Stage Interface (#5575)
|
||||||
|
- spirv-val: Make Constant evaluation consistent (#5587)
|
||||||
|
|
||||||
|
v2023.6 2023-12-18
|
||||||
|
- General
|
||||||
|
- update_build_version.py produce deterministic header. (#5426)
|
||||||
|
- Support missing git in update_build_version.py (#5473)
|
||||||
|
- Optimizer
|
||||||
|
- Add ComputeDerivativeGroup*NV capabilities to trim capabilities pass. (#5430)
|
||||||
|
- Do not crash when tryingto fold unsupported spec constant (#5496)
|
||||||
|
- instrument: Fix handling of gl_InvocationID (#5493)
|
||||||
|
- Fix nullptr argument in MarkInsertChain (#5465)
|
||||||
|
- opt: support 64-bit OpAccessChain index in FixStorageClass (#5446)
|
||||||
|
- opt: add StorageImageReadWithoutFormat to cap trim (#5475)
|
||||||
|
- opt: add PhysicalStorageBufferAddresses to trim (#5476)
|
||||||
|
- Fix array size calculation (#5463
|
||||||
|
- Validator
|
||||||
|
- spirv-val: Loosen restriction on base type of DebugTypePointer and DebugTypeQualifier (#5479)
|
||||||
|
- spirv-val: Add WorkgroupMemoryExplicitLayoutKHR check for Block (#5461)
|
||||||
|
|
||||||
|
v2023.5 2023-10-15
|
||||||
|
- General
|
||||||
|
- Support 2 Intel extensions (#5357)
|
||||||
|
- SPV_QCOM_image_processing support (#5223)
|
||||||
|
- Optimizer
|
||||||
|
- opt: fix StorageInputOutput16 trimming. (#5359)
|
||||||
|
- opt: add StoragePushConstant16 to trim pass (#5366)
|
||||||
|
- opt: enable StorageUniform16 (#5371)
|
||||||
|
- opt: add bitmask support for capability trimming (#5372)
|
||||||
|
- opt: Add SwitchDescriptorSetPass (#5375)
|
||||||
|
- opt: add FragmentShader*InterlockEXT to capability trim pass (#5390)
|
||||||
|
- opt: add Int64 capability to trim pass (#5398)
|
||||||
|
- opt: add Float64 capability to trim pass (#5428)
|
||||||
|
- opt: add raytracing/rayquery to trim pass (#5397)
|
||||||
|
- opt: add ImageMSArray capability to trim pass. (#5395)
|
||||||
|
- Add SPV_KHR_physical_storage_buffer to allowlists (#5402)
|
||||||
|
- Add SPV_EXT_fragment_shader_interlock to allow lists (#5393)
|
||||||
|
- Make sure that fragment shader interlock instructions are not removed by DCE (#5400)
|
||||||
|
- instrument: Use Import linkage for instrumentation functions (#5355)
|
||||||
|
- Add a new legalization pass to dedupe invocation interlock instructions (#5409)
|
||||||
|
- instrument: Ensure linking works even of nothing is changed (#5419)
|
||||||
|
- Validator
|
||||||
|
- Move token version/cap/ext checks from parsing to validation (#5370)
|
||||||
|
- val: re-add ImageMSArray validation (#5394)
|
||||||
|
- Linker
|
||||||
|
- linker: Add --use-highest-version option
|
||||||
|
|
||||||
|
v2023.4 2023-07-17
|
||||||
|
- General
|
||||||
|
- Set cmake_policy CMP0128 (#5341)
|
||||||
|
- Add python3 requirement for the script (#5326)
|
||||||
|
- Add support for LiteralFloat type (#5323)
|
||||||
|
- SPV_KHR_cooperative_matrix (#5286)
|
||||||
|
- Allow OpTypeBool in UniformConstant (#5237)
|
||||||
|
- Allow physical storage buffer pointer in IO (#5251)
|
||||||
|
- Remove const zero image operands (#5232)
|
||||||
|
- Optimizer
|
||||||
|
- Enable vector constant folding (#4913) (#5272)
|
||||||
|
- Fold negation of integer vectors (#5269)
|
||||||
|
- Add folding rule for OpTranspose (#5241)
|
||||||
|
- Add SPV_NV_bindless_texture to spirv optimizations (#5231)
|
||||||
|
- Fix incorrect half float conversion (#5349)
|
||||||
|
- Add SPV_EXT_shader_atomic_float_add to allow lists (#5348)
|
||||||
|
- Instrument
|
||||||
|
- instrument: Cast gl_VertexIndex and InstanceIndex to uint (#5319)
|
||||||
|
- instrument: Fix buffer address length calculations (#5257)
|
||||||
|
- instrument: Reduce number of inst_bindless_stream_write_6 calls (#5327)
|
||||||
|
- Validator
|
||||||
|
- Validate GroupNonUniform instructions (#5296)
|
||||||
|
- spirv-val: Label SPV_KHR_cooperative_matrix VUID (#5301)
|
||||||
|
- Validate layouts for PhysicalStorageBuffer pointers (#5291)
|
||||||
|
- spirv-val: Remove VUID from 1.3.251 spec (#5244)
|
||||||
|
- Diff
|
||||||
|
- spirv-diff: Update test expectations (#5264)
|
||||||
|
- spirv-diff: Leave undefined ids unpaired. (#5262)
|
||||||
|
- spirv-diff: Properly match SPV_KHR_ray_query types. (#5259)
|
||||||
|
- diff: Don't give up entry point matching too early. (#5224)
|
||||||
|
|
||||||
|
v2023.3 2023-05-15
|
||||||
|
- General
|
||||||
|
- Update spirv_headers to include SPV_KHR_ray_tracing_position_fetch (#5205)
|
||||||
|
- spirv-tools: Add support for QNX (#5211)
|
||||||
|
- build: set std=c++17 for BUILD.gn (#5162)
|
||||||
|
- Optimizer
|
||||||
|
- Run ADCE when the printf extension is used. (#5215)
|
||||||
|
- Don't convert struct members to half (#5201)
|
||||||
|
- Apply scalar replacement on vars with Pointer decorations (#5208)
|
||||||
|
- opt: Fix null deref in OpMatrixTimesVector and OpVectorTimesMatrix (#5199)
|
||||||
|
- instrument: Add set and binding to bindless error records (#5204)
|
||||||
|
- instrument: Change descriptor state storage format (#5178)
|
||||||
|
- Fix LICMPass (#5087)
|
||||||
|
- Add Vulkan memory model to allow lists (#5173)
|
||||||
|
- Do not remove control barrier after spv1.3 (#5174)
|
||||||
|
- Validator
|
||||||
|
- spirv-val: Label Interface Location/Component VUIDs (#5221)
|
||||||
|
- Add support for SPV_EXT_shader_tile_image (#5188)
|
||||||
|
- Fix vector OpConstantComposite type validation (#5191)
|
||||||
|
- spirv-val: Label new Vulkan VUID 07951 (#5154)
|
||||||
|
- Fuzz
|
||||||
|
- Do not define GOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE if it is already defined. (#5200)
|
||||||
|
|
||||||
|
v2023.2 2023-03-10
|
||||||
|
- General
|
||||||
|
- build: move from c++11 to c++17 (#4983)
|
||||||
|
- tools: refactorize tools flags parsing. (#5111)
|
||||||
|
- Add C interface for Optimizer (#5030)
|
||||||
|
- libspirv.cpp: adds c++ api for spvBinaryParse (#5109)
|
||||||
|
- build: change the way we set cxx version for bazel. (#5114)
|
||||||
|
- Optimizer
|
||||||
|
- Fix null pointer in FoldInsertWithConstants. (#5093)
|
||||||
|
- Fix removal of dependent non-semantic instructions (#5122)
|
||||||
|
- Remove duplicate lists of constant and type opcodes (#5106)
|
||||||
|
- opt: fix spirv ABI on Linux again. (#5113)
|
||||||
|
- Validator
|
||||||
|
- Validate decoration of structs with RuntimeArray (#5094)
|
||||||
|
- Validate operand type before operating on it (#5092)
|
||||||
|
- spirv-val: Conditional Branch without an exit is invalid in loop header (#5069)
|
||||||
|
- spirv-val: Initial SPV_EXT_mesh_shader builtins (#5080)
|
||||||
|
|
||||||
|
v2023.1 2023-01-17
|
||||||
|
- General
|
||||||
|
- Renamed "master" to "main" (issue#5051)
|
||||||
|
- Validate version 5 of clspv reflection (#5050)
|
||||||
|
- Remove testing support for VS2015 (#5027)
|
||||||
|
- Fix undef behaviour in hex float parsing (#5025)
|
||||||
|
- Require C++11 *or later* (#5020)
|
||||||
|
- Instrument
|
||||||
|
- Instrument: Fix bindless checking for BufferDeviceAddress (#5049)
|
||||||
|
- Optimizer
|
||||||
|
- Optimize allocation of spvtools::opt::Instruction::operands_ (#5024)
|
||||||
|
- spirv-opt: Fix OpCompositeInsert with Null Constant (#5008)
|
||||||
|
- spirv-opt: Handle null CompositeInsert (#4998)
|
||||||
|
- Add option to ADCE to remove output variables from interface. (#4994)
|
||||||
|
- Add support for tesc, tese and geom to EliminateDead*Components (#4990)
|
||||||
|
- Add pass to eliminate dead output components (#4982)
|
||||||
|
- spirv-opt: Add const folding for CompositeInsert (#4943)
|
||||||
|
- Add passes to eliminate dead output stores (#4970)
|
||||||
|
- Prevent eliminating case constructs in block merging (#4976)
|
||||||
|
- Validator
|
||||||
|
- Fix layout validation (#5015)
|
||||||
|
- Fix use of invalid analysis (#5013)
|
||||||
|
- Fix infinite loop in validator (#5006)
|
||||||
|
- Add validation support for SPV_NV_shader_invocation_reorder. (#4979)
|
||||||
|
- Only validate full layout in Vulkan environments (#4972)
|
||||||
|
- spirv-val: Label new Vulkan OpPtrAccessChain VUs (#4975)
|
||||||
|
- spirv-val: Add OpPtrAccessChain Base checks (#4965)
|
||||||
|
|
||||||
|
|
||||||
v2022.4 2022-10-12
|
v2022.4 2022-10-12
|
||||||
- General
|
- General
|
||||||
|
|||||||
+39
-25
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2015-2016 The Khronos Group Inc.
|
# Copyright (c) 2015-2023 The Khronos Group Inc.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@@ -13,15 +13,19 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.19)
|
cmake_minimum_required(VERSION 3.19)
|
||||||
if (POLICY CMP0048)
|
|
||||||
cmake_policy(SET CMP0048 NEW)
|
project(spirv-tools)
|
||||||
endif()
|
|
||||||
if (POLICY CMP0054)
|
# Avoid a bug in CMake 3.22.1. By default it will set -std=c++11 for
|
||||||
# Avoid dereferencing variables or interpret keywords that have been
|
# targets in test/*, when those tests need -std=c++17.
|
||||||
# quoted or bracketed.
|
# https://github.com/KhronosGroup/SPIRV-Tools/issues/5340
|
||||||
# https://cmake.org/cmake/help/v3.1/policy/CMP0054.html
|
# The bug is fixed in CMake 3.22.2
|
||||||
cmake_policy(SET CMP0054 NEW)
|
if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.22.1")
|
||||||
|
if (${CMAKE_VERSION} VERSION_LESS "3.22.2")
|
||||||
|
cmake_policy(SET CMP0128 NEW)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||||
|
|
||||||
set(SPIRV-Headers_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../spirv-headers)
|
set(SPIRV-Headers_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../spirv-headers)
|
||||||
@@ -33,20 +37,20 @@ set(SPIRV_SKIP_EXECUTABLES_OPTION ON)
|
|||||||
set(SPIRV_SKIP_TESTS_OPTION ON)
|
set(SPIRV_SKIP_TESTS_OPTION ON)
|
||||||
set(SKIP_SPIRV_TOOLS_INSTALL ON)
|
set(SKIP_SPIRV_TOOLS_INSTALL ON)
|
||||||
|
|
||||||
project(spirv-tools)
|
|
||||||
set(SPIRV_TOOLS "SPIRV-Tools")
|
set(SPIRV_TOOLS "SPIRV-Tools")
|
||||||
|
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
# Require at least C++11
|
# Require at least C++17
|
||||||
if(NOT CMAKE_CXX_STANDARD)
|
if(NOT CMAKE_CXX_STANDARD)
|
||||||
set(CMAKE_CXX_STANDARD 11)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
endif()
|
endif()
|
||||||
if(${CMAKE_CXX_STANDARD} LESS 11)
|
if(${CMAKE_CXX_STANDARD} LESS 17)
|
||||||
message(FATAL_ERROR "SPIRV-Tools requires C++11 or later, but is configured for C++${CMAKE_CXX_STANDARD})")
|
message(FATAL_ERROR "SPIRV-Tools requires C++17 or later, but is configured for C++${CMAKE_CXX_STANDARD})")
|
||||||
endif()
|
endif()
|
||||||
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
|
|
||||||
|
|
||||||
option(ENABLE_RTTI "Enables RTTI" OFF)
|
option(ENABLE_RTTI "Enables RTTI" OFF)
|
||||||
@@ -67,6 +71,8 @@ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "iOS")
|
|||||||
add_definitions(-DSPIRV_IOS)
|
add_definitions(-DSPIRV_IOS)
|
||||||
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "tvOS")
|
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "tvOS")
|
||||||
add_definitions(-DSPIRV_TVOS)
|
add_definitions(-DSPIRV_TVOS)
|
||||||
|
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "visionOS")
|
||||||
|
add_definitions(-DSPIRV_VISIONOS)
|
||||||
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Android")
|
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Android")
|
||||||
add_definitions(-DSPIRV_ANDROID)
|
add_definitions(-DSPIRV_ANDROID)
|
||||||
set(SPIRV_TIMER_ENABLED ${SPIRV_ALLOW_TIMERS})
|
set(SPIRV_TIMER_ENABLED ${SPIRV_ALLOW_TIMERS})
|
||||||
@@ -78,6 +84,8 @@ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia")
|
|||||||
add_definitions(-DSPIRV_FUCHSIA)
|
add_definitions(-DSPIRV_FUCHSIA)
|
||||||
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "GNU")
|
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "GNU")
|
||||||
add_definitions(-DSPIRV_GNU)
|
add_definitions(-DSPIRV_GNU)
|
||||||
|
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "QNX")
|
||||||
|
add_definitions(-DSPIRV_QNX)
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "Your platform '${CMAKE_SYSTEM_NAME}' is not supported!")
|
message(FATAL_ERROR "Your platform '${CMAKE_SYSTEM_NAME}' is not supported!")
|
||||||
endif()
|
endif()
|
||||||
@@ -108,7 +116,6 @@ set(SPIRV_LIB_FUZZING_ENGINE_LINK_OPTIONS "" CACHE STRING "Used by OSS-Fuzz to c
|
|||||||
option(SPIRV_BUILD_LIBFUZZER_TARGETS "Build libFuzzer targets" OFF)
|
option(SPIRV_BUILD_LIBFUZZER_TARGETS "Build libFuzzer targets" OFF)
|
||||||
|
|
||||||
set(SPIRV_WERROR OFF)
|
set(SPIRV_WERROR OFF)
|
||||||
|
|
||||||
if(("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR (("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") AND (NOT CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")))
|
if(("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR (("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") AND (NOT CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")))
|
||||||
set(COMPILER_IS_LIKE_GNU TRUE)
|
set(COMPILER_IS_LIKE_GNU TRUE)
|
||||||
endif()
|
endif()
|
||||||
@@ -204,10 +211,9 @@ function(spvtools_default_compile_options TARGET)
|
|||||||
target_compile_options(${TARGET} PRIVATE ${SPIRV_WARNINGS})
|
target_compile_options(${TARGET} PRIVATE ${SPIRV_WARNINGS})
|
||||||
|
|
||||||
if (${COMPILER_IS_LIKE_GNU})
|
if (${COMPILER_IS_LIKE_GNU})
|
||||||
target_compile_options(${TARGET} PRIVATE -std=c++11 -fno-exceptions)
|
|
||||||
target_compile_options(${TARGET} PRIVATE
|
target_compile_options(${TARGET} PRIVATE
|
||||||
-Wall -Wextra -Wno-long-long -Wshadow -Wundef -Wconversion
|
-Wall -Wextra -Wno-long-long -Wshadow -Wundef -Wconversion
|
||||||
-Wno-sign-conversion)
|
-Wno-sign-conversion -fno-exceptions)
|
||||||
|
|
||||||
if(NOT ENABLE_RTTI)
|
if(NOT ENABLE_RTTI)
|
||||||
add_compile_options(-fno-rtti)
|
add_compile_options(-fno-rtti)
|
||||||
@@ -244,7 +250,7 @@ function(spvtools_default_compile_options TARGET)
|
|||||||
# For MinGW cross compile, statically link to the C++ runtime.
|
# For MinGW cross compile, statically link to the C++ runtime.
|
||||||
# But it still depends on MSVCRT.dll.
|
# But it still depends on MSVCRT.dll.
|
||||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||||
if (${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
|
if (NOT MSVC)
|
||||||
set_target_properties(${TARGET} PROPERTIES
|
set_target_properties(${TARGET} PROPERTIES
|
||||||
LINK_FLAGS -static -static-libgcc -static-libstdc++)
|
LINK_FLAGS -static -static-libgcc -static-libstdc++)
|
||||||
endif()
|
endif()
|
||||||
@@ -277,7 +283,7 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
|||||||
macro(spvtools_check_symbol_exports TARGET)
|
macro(spvtools_check_symbol_exports TARGET)
|
||||||
if (NOT "${SPIRV_SKIP_TESTS}")
|
if (NOT "${SPIRV_SKIP_TESTS}")
|
||||||
add_test(NAME spirv-tools-symbol-exports-${TARGET}
|
add_test(NAME spirv-tools-symbol-exports-${TARGET}
|
||||||
COMMAND ${PYTHON_EXECUTABLE}
|
COMMAND Python3::Interpreter
|
||||||
${spirv-tools_SOURCE_DIR}/utils/check_symbol_exports.py "$<TARGET_FILE:${TARGET}>")
|
${spirv-tools_SOURCE_DIR}/utils/check_symbol_exports.py "$<TARGET_FILE:${TARGET}>")
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
@@ -290,7 +296,7 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_SPIRV_TOOLS_INSTALL)
|
if(ENABLE_SPIRV_TOOLS_INSTALL)
|
||||||
if(WIN32)
|
if(WIN32 AND NOT MINGW)
|
||||||
macro(spvtools_config_package_dir TARGET PATH)
|
macro(spvtools_config_package_dir TARGET PATH)
|
||||||
set(${PATH} ${TARGET}/cmake)
|
set(${PATH} ${TARGET}/cmake)
|
||||||
endmacro()
|
endmacro()
|
||||||
@@ -310,15 +316,23 @@ if(ENABLE_SPIRV_TOOLS_INSTALL)
|
|||||||
endmacro()
|
endmacro()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Defaults to OFF if the user didn't set it.
|
# Currently iOS and Android are very similar.
|
||||||
|
# They both have their own packaging (APP/APK).
|
||||||
|
# Which makes regular executables/testing problematic.
|
||||||
|
#
|
||||||
|
# Currently the only deliverables for these platforms are
|
||||||
|
# libraries (either STATIC or SHARED).
|
||||||
|
#
|
||||||
|
# Furthermore testing is equally problematic.
|
||||||
|
if (IOS OR ANDROID)
|
||||||
|
set(SPIRV_SKIP_EXECUTABLES ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
option(SPIRV_SKIP_EXECUTABLES
|
option(SPIRV_SKIP_EXECUTABLES
|
||||||
"Skip building the executable and tests along with the library"
|
"Skip building the executable and tests along with the library"
|
||||||
${SPIRV_SKIP_EXECUTABLES_OPTION})
|
${SPIRV_SKIP_EXECUTABLES_OPTION})
|
||||||
option(SPIRV_SKIP_TESTS
|
option(SPIRV_SKIP_TESTS
|
||||||
"Skip building tests along with the library" ${SPIRV_SKIP_TESTS_OPTION})
|
"Skip building tests along with the library" ${SPIRV_SKIP_TESTS_OPTION})
|
||||||
if ("${SPIRV_SKIP_EXECUTABLES}")
|
|
||||||
set(SPIRV_SKIP_TESTS ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Defaults to ON. The checks can be time consuming.
|
# Defaults to ON. The checks can be time consuming.
|
||||||
# Turn off if they take too long.
|
# Turn off if they take too long.
|
||||||
@@ -373,7 +387,7 @@ endif(ENABLE_SPIRV_TOOLS_INSTALL)
|
|||||||
|
|
||||||
if (NOT "${SPIRV_SKIP_TESTS}")
|
if (NOT "${SPIRV_SKIP_TESTS}")
|
||||||
add_test(NAME spirv-tools-copyrights
|
add_test(NAME spirv-tools-copyrights
|
||||||
COMMAND ${PYTHON_EXECUTABLE} utils/check_copyright.py
|
COMMAND Python3::Interpreter utils/check_copyright.py
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
+45
-81
@@ -2,9 +2,8 @@
|
|||||||
|
|
||||||
## For users: Reporting bugs and requesting features
|
## For users: Reporting bugs and requesting features
|
||||||
|
|
||||||
We organize known future work in GitHub projects. See [Tracking SPIRV-Tools work
|
We organize known future work in GitHub projects. See
|
||||||
with GitHub
|
[Tracking SPIRV-Tools work with GitHub projects](https://github.com/KhronosGroup/SPIRV-Tools/blob/main/docs/projects.md)
|
||||||
projects](https://github.com/KhronosGroup/SPIRV-Tools/blob/master/docs/projects.md)
|
|
||||||
for more.
|
for more.
|
||||||
|
|
||||||
To report a new bug or request a new feature, please file a GitHub issue. Please
|
To report a new bug or request a new feature, please file a GitHub issue. Please
|
||||||
@@ -36,9 +35,9 @@ create a new issue, as with bugs. In the issue provide
|
|||||||
|
|
||||||
## For developers: Contributing a patch
|
## For developers: Contributing a patch
|
||||||
|
|
||||||
Before we can use your code, you must sign the [Khronos Open Source Contributor
|
Before we can use your code, you must sign the
|
||||||
License Agreement](https://cla-assistant.io/KhronosGroup/SPIRV-Tools) (CLA),
|
[Khronos Open Source Contributor License Agreement](https://cla-assistant.io/KhronosGroup/SPIRV-Tools)
|
||||||
which you can do online. The CLA is necessary mainly because you own the
|
(CLA), which you can do online. The CLA is necessary mainly because you own the
|
||||||
copyright to your changes, even after your contribution becomes part of our
|
copyright to your changes, even after your contribution becomes part of our
|
||||||
codebase, so we need your permission to use and distribute your code. We also
|
codebase, so we need your permission to use and distribute your code. We also
|
||||||
need to be sure of various other things -- for instance that you'll tell us if
|
need to be sure of various other things -- for instance that you'll tell us if
|
||||||
@@ -47,20 +46,20 @@ sign the CLA until after you've submitted your code for review and a member has
|
|||||||
approved it, but you must do it before we can put your code into our codebase.
|
approved it, but you must do it before we can put your code into our codebase.
|
||||||
|
|
||||||
See
|
See
|
||||||
[README.md](https://github.com/KhronosGroup/SPIRV-Tools/blob/master/README.md)
|
[README.md](https://github.com/KhronosGroup/SPIRV-Tools/blob/main/README.md)
|
||||||
for instruction on how to get, build, and test the source. Once you have made
|
for instruction on how to get, build, and test the source. Once you have made
|
||||||
your changes:
|
your changes:
|
||||||
|
|
||||||
* Ensure the code follows the [Google C++ Style
|
* Ensure the code follows the
|
||||||
Guide](https://google.github.io/styleguide/cppguide.html). Running
|
[Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html).
|
||||||
`clang-format -style=file -i [modified-files]` can help.
|
Running `clang-format -style=file -i [modified-files]` can help.
|
||||||
* Create a pull request (PR) with your patch.
|
* Create a pull request (PR) with your patch.
|
||||||
* Make sure the PR description clearly identified the problem, explains the
|
* Make sure the PR description clearly identified the problem, explains the
|
||||||
solution, and references the issue if applicable.
|
solution, and references the issue if applicable.
|
||||||
* If your patch completely fixes bug 1234, the commit message should say
|
* If your patch completely fixes bug 1234, the commit message should say
|
||||||
`Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/1234`
|
`Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/1234` When you do
|
||||||
When you do this, the issue will be closed automatically when the commit
|
this, the issue will be closed automatically when the commit goes into
|
||||||
goes into master. Also, this helps us update the [CHANGES](CHANGES) file.
|
main. Also, this helps us update the [CHANGES](CHANGES) file.
|
||||||
* Watch the continuous builds to make sure they pass.
|
* Watch the continuous builds to make sure they pass.
|
||||||
* Request a code review.
|
* Request a code review.
|
||||||
|
|
||||||
@@ -82,8 +81,8 @@ Instructions for this are given below.
|
|||||||
The formal code reviews are done on GitHub. Reviewers are to look for all of the
|
The formal code reviews are done on GitHub. Reviewers are to look for all of the
|
||||||
usual things:
|
usual things:
|
||||||
|
|
||||||
* Coding style follows the [Google C++ Style
|
* Coding style follows the
|
||||||
Guide](https://google.github.io/styleguide/cppguide.html)
|
[Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html)
|
||||||
* Identify potential functional problems.
|
* Identify potential functional problems.
|
||||||
* Identify code duplication.
|
* Identify code duplication.
|
||||||
* Ensure the unit tests have enough coverage.
|
* Ensure the unit tests have enough coverage.
|
||||||
@@ -102,84 +101,49 @@ should pay particular attention to:
|
|||||||
updated. For example, a new instruction is added, but the def-use manager is
|
updated. For example, a new instruction is added, but the def-use manager is
|
||||||
not updated. Later on, it is possible that the def-use manager will be used,
|
not updated. Later on, it is possible that the def-use manager will be used,
|
||||||
and give wrong results.
|
and give wrong results.
|
||||||
|
* If a pass gets the id of a type from the type manager, make sure the type is
|
||||||
|
not a struct or array. It there are two structs that look the same, the type
|
||||||
|
manager can return the wrong one.
|
||||||
|
|
||||||
## For maintainers: Merging a PR
|
## For maintainers: Merging a PR
|
||||||
|
|
||||||
We intend to maintain a linear history on the GitHub master branch, and the
|
We intend to maintain a linear history on the GitHub main branch, and the
|
||||||
build and its tests should pass at each commit in that history. A linear
|
build and its tests should pass at each commit in that history. A linear
|
||||||
always-working history is easier to understand and to bisect in case we want to
|
always-working history is easier to understand and to bisect in case we want to
|
||||||
find which commit introduced a bug.
|
find which commit introduced a bug. The
|
||||||
|
[Squash and Merge](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-commits)
|
||||||
|
button on the GitHub web interface. All other ways of merging on the web
|
||||||
|
interface have been disabled.
|
||||||
|
|
||||||
### Initial merge setup
|
Before merging, we generally require:
|
||||||
|
|
||||||
The following steps should be done exactly once (when you are about to merge a
|
1. All tests except for the smoke test pass. See
|
||||||
PR for the first time):
|
[failing smoke test](#failing-smoke-test).
|
||||||
|
1. The PR is approved by at least one of the maintainers. If the PR modifies
|
||||||
|
different parts of the code, then multiple reviewers might be necessary.
|
||||||
|
|
||||||
* It is assumed that upstream points to
|
The squash-and-merge button will turn green when these requirements are met.
|
||||||
[git@github.com](mailto:git@github.com):KhronosGroup/SPIRV-Tools.git or
|
Maintainers have the to power to merge even if the button is not green, but that
|
||||||
https://github.com/KhronosGroup/SPIRV-Tools.git.
|
is discouraged.
|
||||||
|
|
||||||
* Find out the local name for the main github repo in your git configuration.
|
### Failing smoke test
|
||||||
For example, in this configuration, it is labeled `upstream`.
|
|
||||||
|
|
||||||
```
|
The purpose of the smoke test is to let us know if
|
||||||
git remote -v
|
[shaderc](https://github.com/google/shaderc) fails to build with the change. If
|
||||||
[ ... ]
|
it fails, the maintainer needs to determine if the reason for the failure is a
|
||||||
upstream https://github.com/KhronosGroup/SPIRV-Tools.git (fetch)
|
problem in the current PR or if another repository needs to be changed. Most of
|
||||||
upstream https://github.com/KhronosGroup/SPIRV-Tools.git (push)
|
the time [Glslang](https://github.com/KhronosGroup/glslang) needs to be updated
|
||||||
```
|
to account for the change in SPIR-V Tools.
|
||||||
|
|
||||||
* Make sure that the `upstream` remote is set to fetch from the `refs/pull`
|
The PR can still be merged if the problem is not with that PR.
|
||||||
namespace:
|
|
||||||
|
|
||||||
```
|
## For maintainers: Running tests
|
||||||
git config --get-all remote.upstream.fetch
|
|
||||||
+refs/heads/*:refs/remotes/upstream/*
|
|
||||||
+refs/pull/*/head:refs/remotes/upstream/pr/*
|
|
||||||
```
|
|
||||||
|
|
||||||
* If the line `+refs/pull/*/head:refs/remotes/upstream/pr/*` is not present in
|
For security reasons, not all tests will run automatically. When they do not, a
|
||||||
your configuration, you can add it with the command:
|
maintainer will have to start the tests.
|
||||||
|
|
||||||
```
|
If the Github actions tests do not run on a PR, they can be initiated by closing
|
||||||
git config --local --add remote.upstream.fetch '+refs/pull/*/head:refs/remotes/upstream/pr/*'
|
and reopening the PR.
|
||||||
```
|
|
||||||
|
|
||||||
### Merge workflow
|
If the kokoro tests are not run, they can be run by adding the label
|
||||||
|
`kokoro:run` to the PR.
|
||||||
The following steps should be done for every PR that you intend to merge:
|
|
||||||
|
|
||||||
* Make sure your local copy of the master branch is up to date:
|
|
||||||
|
|
||||||
```
|
|
||||||
git checkout master
|
|
||||||
git pull
|
|
||||||
```
|
|
||||||
|
|
||||||
* Fetch all pull requests refs:
|
|
||||||
|
|
||||||
```
|
|
||||||
git fetch upstream
|
|
||||||
```
|
|
||||||
|
|
||||||
* Checkout the particular pull request you are going to review:
|
|
||||||
|
|
||||||
```
|
|
||||||
git checkout pr/1048
|
|
||||||
```
|
|
||||||
|
|
||||||
* Rebase the PR on top of the master branch. If there are conflicts, send it
|
|
||||||
back to the author and ask them to rebase. During the interactive rebase be
|
|
||||||
sure to squash all of the commits down to a single commit.
|
|
||||||
|
|
||||||
```
|
|
||||||
git rebase -i master
|
|
||||||
```
|
|
||||||
|
|
||||||
* **Build and test the PR.**
|
|
||||||
|
|
||||||
* If all of the tests pass, push the commit `git push upstream HEAD:master`
|
|
||||||
|
|
||||||
* Close the PR and add a comment saying it was push using the commit that you
|
|
||||||
just pushed. See https://github.com/KhronosGroup/SPIRV-Tools/pull/935 as an
|
|
||||||
example.
|
|
||||||
|
|||||||
Vendored
+17
-4
@@ -3,19 +3,32 @@ use_relative_paths = True
|
|||||||
vars = {
|
vars = {
|
||||||
'github': 'https://github.com',
|
'github': 'https://github.com',
|
||||||
|
|
||||||
'effcee_revision': '35912e1b7778ec2ddcff7e7188177761539e59e0',
|
'abseil_revision': '79ca5d7aad63973c83a4962a66ab07cd623131ea',
|
||||||
'googletest_revision': 'd9bb8412d60b993365abb53f00b6dad9b2c01b62',
|
|
||||||
're2_revision': 'd2836d1b1c34c4e330a85a1006201db474bf2c8a',
|
'effcee_revision': '19b4aa87af25cb4ee779a071409732f34bfc305c',
|
||||||
'spirv_headers_revision': '34d04647d384e0aed037e7a2662a655fc39841bb',
|
|
||||||
|
'googletest_revision': '5a37b517ad4ab6738556f0284c256cae1466c5b4',
|
||||||
|
|
||||||
|
# Use protobufs before they gained the dependency on abseil
|
||||||
|
'protobuf_revision': 'v21.12',
|
||||||
|
|
||||||
|
're2_revision': '917047f3606d3ba9e2de0d383c3cd80c94ed732c',
|
||||||
|
'spirv_headers_revision': '4f7b471f1a66b6d06462cd4ba57628cc0cd087d7',
|
||||||
}
|
}
|
||||||
|
|
||||||
deps = {
|
deps = {
|
||||||
|
'external/abseil_cpp':
|
||||||
|
Var('github') + '/abseil/abseil-cpp.git@' + Var('abseil_revision'),
|
||||||
|
|
||||||
'external/effcee':
|
'external/effcee':
|
||||||
Var('github') + '/google/effcee.git@' + Var('effcee_revision'),
|
Var('github') + '/google/effcee.git@' + Var('effcee_revision'),
|
||||||
|
|
||||||
'external/googletest':
|
'external/googletest':
|
||||||
Var('github') + '/google/googletest.git@' + Var('googletest_revision'),
|
Var('github') + '/google/googletest.git@' + Var('googletest_revision'),
|
||||||
|
|
||||||
|
'external/protobuf':
|
||||||
|
Var('github') + '/protocolbuffers/protobuf.git@' + Var('protobuf_revision'),
|
||||||
|
|
||||||
'external/re2':
|
'external/re2':
|
||||||
Var('github') + '/google/re2.git@' + Var('re2_revision'),
|
Var('github') + '/google/re2.git@' + Var('re2_revision'),
|
||||||
|
|
||||||
|
|||||||
Vendored
+7
@@ -0,0 +1,7 @@
|
|||||||
|
bazel_dep(name = "bazel_skylib", version = "1.5.0")
|
||||||
|
|
||||||
|
bazel_dep(name = "googletest", dev_dependency = True)
|
||||||
|
local_path_override(
|
||||||
|
module_name = "googletest",
|
||||||
|
path = "external/googletest",
|
||||||
|
)
|
||||||
Vendored
+47
-24
@@ -1,4 +1,7 @@
|
|||||||
# SPIR-V Tools
|
# SPIR-V Tools
|
||||||
|
[](https://securityscorecards.dev/viewer/?uri=github.com/KhronosGroup/SPIRV-Tools)
|
||||||
|
|
||||||
|
NEWS 2023-01-11: Development occurs on the `main` branch.
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
@@ -21,9 +24,16 @@ headers, and XML registry.
|
|||||||
|
|
||||||
## Downloads
|
## Downloads
|
||||||
|
|
||||||
|
The official releases for SPIRV-Tools can be found on LunarG's
|
||||||
|
[SDK download page](https://vulkan.lunarg.com/sdk/home).
|
||||||
|
|
||||||
|
For convenience, here are also links to the latest builds (HEAD).
|
||||||
|
Those are untested automated builds. Those are not official releases, nor
|
||||||
|
are guaranteed to work. Official releases builds are in the Vulkan SDK.
|
||||||
|
|
||||||
<img alt="Linux" src="kokoro/img/linux.png" width="20px" height="20px" hspace="2px"/>[](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_clang_release.html)
|
<img alt="Linux" src="kokoro/img/linux.png" width="20px" height="20px" hspace="2px"/>[](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_clang_release.html)
|
||||||
<img alt="MacOS" src="kokoro/img/macos.png" width="20px" height="20px" hspace="2px"/>[](https://storage.googleapis.com/spirv-tools/badges/build_link_macos_clang_release.html)
|
<img alt="MacOS" src="kokoro/img/macos.png" width="20px" height="20px" hspace="2px"/>[](https://storage.googleapis.com/spirv-tools/badges/build_link_macos_clang_release.html)
|
||||||
<img alt="Windows" src="kokoro/img/windows.png" width="20px" height="20px" hspace="2px"/>[](https://storage.googleapis.com/spirv-tools/badges/build_link_windows_vs2017_release.html)
|
<img alt="Windows" src="kokoro/img/windows.png" width="20px" height="20px" hspace="2px"/>[](https://storage.googleapis.com/spirv-tools/badges/build_link_windows_vs2019_release.html)
|
||||||
|
|
||||||
[More downloads](docs/downloads.md)
|
[More downloads](docs/downloads.md)
|
||||||
|
|
||||||
@@ -46,17 +56,14 @@ version. An API call reports the software version as a C-style string.
|
|||||||
|
|
||||||
## Releases
|
## Releases
|
||||||
|
|
||||||
Some versions of SPIRV-Tools are tagged as stable releases (see
|
The official releases for SPIRV-Tools can be found on LunarG's
|
||||||
[tags](https://github.com/KhronosGroup/SPIRV-Tools/tags) on github).
|
[SDK download page](https://vulkan.lunarg.com/sdk/home).
|
||||||
These versions undergo extra testing.
|
|
||||||
Releases are not directly related to releases (or versions) of
|
You can find either the prebuilt, and QA tested binaries, or download the
|
||||||
[SPIRV-Headers][spirv-headers].
|
SDK Config, which lists the commits to use to build the release from scratch.
|
||||||
Releases of SPIRV-Tools are tested against the version of SPIRV-Headers listed
|
|
||||||
in the [DEPS](DEPS) file.
|
GitHub releases are deprecated, and we will not publish new releases until
|
||||||
The release generally uses the most recent compatible version of SPIRV-Headers
|
further notice.
|
||||||
available at the time of release.
|
|
||||||
No version of SPIRV-Headers other than the one listed in the DEPS file is
|
|
||||||
guaranteed to work with the SPIRV-Tools release.
|
|
||||||
|
|
||||||
## Supported features
|
## Supported features
|
||||||
|
|
||||||
@@ -271,7 +278,7 @@ Contributions via merge request are welcome. Changes should:
|
|||||||
`clang-format version 5.0.0` for SPIRV-Tools. Settings are defined by
|
`clang-format version 5.0.0` for SPIRV-Tools. Settings are defined by
|
||||||
the included [.clang-format](.clang-format) file.
|
the included [.clang-format](.clang-format) file.
|
||||||
|
|
||||||
We intend to maintain a linear history on the GitHub `master` branch.
|
We intend to maintain a linear history on the GitHub `main` branch.
|
||||||
|
|
||||||
### Getting the source
|
### Getting the source
|
||||||
|
|
||||||
@@ -290,16 +297,18 @@ For some kinds of development, you may need the latest sources from the third-pa
|
|||||||
git clone https://github.com/google/googletest.git spirv-tools/external/googletest
|
git clone https://github.com/google/googletest.git spirv-tools/external/googletest
|
||||||
git clone https://github.com/google/effcee.git spirv-tools/external/effcee
|
git clone https://github.com/google/effcee.git spirv-tools/external/effcee
|
||||||
git clone https://github.com/google/re2.git spirv-tools/external/re2
|
git clone https://github.com/google/re2.git spirv-tools/external/re2
|
||||||
|
git clone https://github.com/abseil/abseil-cpp.git spirv-tools/external/abseil_cpp
|
||||||
|
|
||||||
#### Dependency on Effcee
|
#### Dependency on Effcee
|
||||||
|
|
||||||
Some tests depend on the [Effcee][effcee] library for stateful matching.
|
Some tests depend on the [Effcee][effcee] library for stateful matching.
|
||||||
Effcee itself depends on [RE2][re2].
|
Effcee itself depends on [RE2][re2], and RE2 depends on [Abseil][abseil-cpp].
|
||||||
|
|
||||||
* If SPIRV-Tools is configured as part of a larger project that already uses
|
* If SPIRV-Tools is configured as part of a larger project that already uses
|
||||||
Effcee, then that project should include Effcee before SPIRV-Tools.
|
Effcee, then that project should include Effcee before SPIRV-Tools.
|
||||||
* Otherwise, SPIRV-Tools expects Effcee sources to appear in `external/effcee`
|
* Otherwise, SPIRV-Tools expects Effcee sources to appear in `external/effcee`,
|
||||||
and RE2 sources to appear in `external/re2`.
|
RE2 sources to appear in `external/re2`, and Abseil sources to appear in
|
||||||
|
`external/abseil_cpp`.
|
||||||
|
|
||||||
### Source code organization
|
### Source code organization
|
||||||
|
|
||||||
@@ -311,6 +320,9 @@ Effcee itself depends on [RE2][re2].
|
|||||||
* `external/re2`: Location of [RE2][re2] sources, if the `re2` library is not already
|
* `external/re2`: Location of [RE2][re2] sources, if the `re2` library is not already
|
||||||
configured by an enclosing project.
|
configured by an enclosing project.
|
||||||
(The Effcee project already requires RE2.)
|
(The Effcee project already requires RE2.)
|
||||||
|
* `external/abseil_cpp`: Location of [Abseil][abseil-cpp] sources, if Abseil is
|
||||||
|
not already configured by an enclosing project.
|
||||||
|
(The RE2 project already requires Abseil.)
|
||||||
* `include/`: API clients should add this directory to the include search path
|
* `include/`: API clients should add this directory to the include search path
|
||||||
* `external/spirv-headers`: Intended location for
|
* `external/spirv-headers`: Intended location for
|
||||||
[SPIR-V headers][spirv-headers], not provided
|
[SPIR-V headers][spirv-headers], not provided
|
||||||
@@ -378,10 +390,11 @@ fuzzer tests.
|
|||||||
|
|
||||||
### Build using Bazel
|
### Build using Bazel
|
||||||
You can also use [Bazel](https://bazel.build/) to build the project.
|
You can also use [Bazel](https://bazel.build/) to build the project.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd <spirv-dir>
|
|
||||||
bazel build :all
|
bazel build :all
|
||||||
```
|
```
|
||||||
|
|
||||||
### Build a node.js package using Emscripten
|
### Build a node.js package using Emscripten
|
||||||
|
|
||||||
The SPIRV-Tools core library can be built to a WebAssembly [node.js](https://nodejs.org)
|
The SPIRV-Tools core library can be built to a WebAssembly [node.js](https://nodejs.org)
|
||||||
@@ -417,7 +430,7 @@ targets, you need to install CMake Version 2.8.12 or later.
|
|||||||
- [Python 3](http://www.python.org/): for utility scripts and running the test
|
- [Python 3](http://www.python.org/): for utility scripts and running the test
|
||||||
suite.
|
suite.
|
||||||
- [Bazel](https://bazel.build/) (optional): if building the source with Bazel,
|
- [Bazel](https://bazel.build/) (optional): if building the source with Bazel,
|
||||||
you need to install Bazel Version 5.0.0 on your machine. Other versions may
|
you need to install Bazel Version 7.0.2 on your machine. Other versions may
|
||||||
also work, but are not verified.
|
also work, but are not verified.
|
||||||
- [Emscripten SDK](https://emscripten.org) (optional): if building the
|
- [Emscripten SDK](https://emscripten.org) (optional): if building the
|
||||||
WebAssembly module.
|
WebAssembly module.
|
||||||
@@ -432,10 +445,13 @@ On MacOS
|
|||||||
- AppleClang 11.0
|
- AppleClang 11.0
|
||||||
|
|
||||||
On Windows
|
On Windows
|
||||||
- Visual Studio 2015
|
|
||||||
- Visual Studio 2017
|
- Visual Studio 2017
|
||||||
|
- Visual Studio 2019
|
||||||
|
- Visual Studio 2022
|
||||||
|
|
||||||
Other compilers or later versions may work, but they are not tested.
|
Note: Visual Studio 2017 has incomplete c++17 support. We might stop
|
||||||
|
testing it soon. Other compilers or later versions may work, but they are not
|
||||||
|
tested.
|
||||||
|
|
||||||
### CMake options
|
### CMake options
|
||||||
|
|
||||||
@@ -467,12 +483,12 @@ iterator debugging.
|
|||||||
### Android ndk-build
|
### Android ndk-build
|
||||||
|
|
||||||
SPIR-V Tools supports building static libraries `libSPIRV-Tools.a` and
|
SPIR-V Tools supports building static libraries `libSPIRV-Tools.a` and
|
||||||
`libSPIRV-Tools-opt.a` for Android:
|
`libSPIRV-Tools-opt.a` for Android. Using the Android NDK r25c or later:
|
||||||
|
|
||||||
```
|
```
|
||||||
cd <spirv-dir>
|
cd <spirv-dir>
|
||||||
|
|
||||||
export ANDROID_NDK=/path/to/your/ndk
|
export ANDROID_NDK=/path/to/your/ndk # NDK r25c or later
|
||||||
|
|
||||||
mkdir build && cd build
|
mkdir build && cd build
|
||||||
mkdir libs
|
mkdir libs
|
||||||
@@ -496,7 +512,7 @@ The script requires Chromium's
|
|||||||
|
|
||||||
### Usage
|
### Usage
|
||||||
|
|
||||||
The internals of the library use C++11 features, and are exposed via both a C
|
The internals of the library use C++17 features, and are exposed via both a C
|
||||||
and C++ API.
|
and C++ API.
|
||||||
|
|
||||||
In order to use the library from an application, the include path should point
|
In order to use the library from an application, the include path should point
|
||||||
@@ -718,10 +734,16 @@ Use `bazel test :all` to run all tests. This will run tests in parallel by defau
|
|||||||
To run a single test target, specify `:my_test_target` instead of `:all`. Test target
|
To run a single test target, specify `:my_test_target` instead of `:all`. Test target
|
||||||
names get printed when you run `bazel test :all`. For example, you can run
|
names get printed when you run `bazel test :all`. For example, you can run
|
||||||
`opt_def_use_test` with:
|
`opt_def_use_test` with:
|
||||||
|
|
||||||
|
on linux:
|
||||||
```shell
|
```shell
|
||||||
bazel test :opt_def_use_test
|
bazel test --cxxopt=-std=c++17 :opt_def_use_test
|
||||||
```
|
```
|
||||||
|
|
||||||
|
on windows:
|
||||||
|
```shell
|
||||||
|
bazel test --cxxopt=/std:c++17 :opt_def_use_test
|
||||||
|
```
|
||||||
|
|
||||||
## Future Work
|
## Future Work
|
||||||
<a name="future"></a>
|
<a name="future"></a>
|
||||||
@@ -779,6 +801,7 @@ limitations under the License.
|
|||||||
[googletest-issue-610]: https://github.com/google/googletest/issues/610
|
[googletest-issue-610]: https://github.com/google/googletest/issues/610
|
||||||
[effcee]: https://github.com/google/effcee
|
[effcee]: https://github.com/google/effcee
|
||||||
[re2]: https://github.com/google/re2
|
[re2]: https://github.com/google/re2
|
||||||
|
[abseil-cpp]: https://github.com/abseil/abseil-cpp
|
||||||
[CMake]: https://cmake.org/
|
[CMake]: https://cmake.org/
|
||||||
[cpp-style-guide]: https://google.github.io/styleguide/cppguide.html
|
[cpp-style-guide]: https://google.github.io/styleguide/cppguide.html
|
||||||
[clang-sanitizers]: http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
|
[clang-sanitizers]: http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
|
||||||
|
|||||||
Vendored
+13
@@ -0,0 +1,13 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Supported Versions
|
||||||
|
|
||||||
|
Security updates are applied only to the latest release.
|
||||||
|
|
||||||
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
If you have discovered a security vulnerability in this project, please report it privately. **Do not disclose it as a public issue.** This gives us time to work with you to fix the issue before public exposure, reducing the chance that the exploit will be used before a patch is released.
|
||||||
|
|
||||||
|
Please disclose it at [security advisory](https://github.com/KhronosGroup/SPIRV-Tools/security/advisories/new).
|
||||||
|
|
||||||
|
This project is maintained by a team of volunteers on a reasonable-effort basis. As such, please give us at least 90 days to work on a fix before public exposure.
|
||||||
Vendored
+5
-5
@@ -3,11 +3,6 @@ local_repository(
|
|||||||
path = "external/spirv-headers",
|
path = "external/spirv-headers",
|
||||||
)
|
)
|
||||||
|
|
||||||
local_repository(
|
|
||||||
name = "com_google_googletest",
|
|
||||||
path = "external/googletest",
|
|
||||||
)
|
|
||||||
|
|
||||||
local_repository(
|
local_repository(
|
||||||
name = "com_googlesource_code_re2",
|
name = "com_googlesource_code_re2",
|
||||||
path = "external/re2",
|
path = "external/re2",
|
||||||
@@ -17,3 +12,8 @@ local_repository(
|
|||||||
name = "com_google_effcee",
|
name = "com_google_effcee",
|
||||||
path = "external/effcee",
|
path = "external/effcee",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
local_repository(
|
||||||
|
name = "abseil-cpp",
|
||||||
|
path = "external/abseil_cpp",
|
||||||
|
)
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ LOCAL_CPP_EXTENSION := .cc .cpp .cxx
|
|||||||
LOCAL_SRC_FILES:=test.cpp
|
LOCAL_SRC_FILES:=test.cpp
|
||||||
LOCAL_MODULE:=spirvtools_test
|
LOCAL_MODULE:=spirvtools_test
|
||||||
LOCAL_LDLIBS:=-landroid
|
LOCAL_LDLIBS:=-landroid
|
||||||
LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti -Werror
|
LOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti -Werror
|
||||||
LOCAL_STATIC_LIBRARIES=SPIRV-Tools SPIRV-Tools-opt
|
LOCAL_STATIC_LIBRARIES=SPIRV-Tools SPIRV-Tools-opt
|
||||||
include $(BUILD_SHARED_LIBRARY)
|
include $(BUILD_SHARED_LIBRARY)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
APP_ABI := all
|
APP_ABI := all
|
||||||
APP_BUILD_SCRIPT := Android.mk
|
APP_BUILD_SCRIPT := Android.mk
|
||||||
APP_STL := c++_static
|
APP_STL := c++_static
|
||||||
APP_PLATFORM := android-9
|
APP_PLATFORM := android-24
|
||||||
NDK_TOOLCHAIN_VERSION := 4.9
|
NDK_TOOLCHAIN_VERSION := 4.9
|
||||||
|
|||||||
+157
-275
@@ -1,20 +1,21 @@
|
|||||||
|
"""Constants and macros for spirv-tools BUILD."""
|
||||||
|
|
||||||
COMMON_COPTS = [
|
COMMON_COPTS = [
|
||||||
"-DSPIRV_CHECK_CONTEXT",
|
"-DSPIRV_CHECK_CONTEXT",
|
||||||
"-DSPIRV_COLOR_TERMINAL",
|
"-DSPIRV_COLOR_TERMINAL",
|
||||||
] + select({
|
] + select({
|
||||||
"@bazel_tools//src/conditions:windows": [""],
|
"@platforms//os:windows": [],
|
||||||
"//conditions:default": [
|
"//conditions:default": [
|
||||||
"-DSPIRV_LINUX",
|
"-DSPIRV_LINUX",
|
||||||
"-DSPIRV_TIMER_ENABLED",
|
"-DSPIRV_TIMER_ENABLED",
|
||||||
|
"-fvisibility=hidden",
|
||||||
|
"-fno-exceptions",
|
||||||
|
"-fno-rtti",
|
||||||
"-Wall",
|
"-Wall",
|
||||||
"-Wextra",
|
"-Wextra",
|
||||||
"-Wnon-virtual-dtor",
|
"-Wnon-virtual-dtor",
|
||||||
"-Wno-missing-field-initializers",
|
"-Wno-missing-field-initializers",
|
||||||
"-Werror",
|
"-Werror",
|
||||||
"-std=c++11",
|
|
||||||
"-fvisibility=hidden",
|
|
||||||
"-fno-exceptions",
|
|
||||||
"-fno-rtti",
|
|
||||||
"-Wno-long-long",
|
"-Wno-long-long",
|
||||||
"-Wshadow",
|
"-Wshadow",
|
||||||
"-Wundef",
|
"-Wundef",
|
||||||
@@ -23,330 +24,211 @@ COMMON_COPTS = [
|
|||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
|
||||||
TEST_COPTS = COMMON_COPTS + select({
|
TEST_COPTS = COMMON_COPTS + [
|
||||||
"@bazel_tools//src/conditions:windows": [
|
] + select({
|
||||||
|
"@platforms//os:windows": [
|
||||||
# Disable C4503 "decorated name length exceeded" warning,
|
# Disable C4503 "decorated name length exceeded" warning,
|
||||||
# triggered by some heavily templated types.
|
# triggered by some heavily templated types.
|
||||||
# We don't care much about that in test code.
|
# We don't care much about that in test code.
|
||||||
# Important to do since we have warnings-as-errors.
|
# Important to do since we have warnings-as-errors.
|
||||||
"/wd4503"
|
"/wd4503",
|
||||||
],
|
],
|
||||||
"//conditions:default": [
|
"//conditions:default": [
|
||||||
"-Wno-undef",
|
"-Wno-undef",
|
||||||
"-Wno-self-assign",
|
"-Wno-self-assign",
|
||||||
"-Wno-shadow",
|
"-Wno-shadow",
|
||||||
"-Wno-unused-parameter"
|
"-Wno-unused-parameter",
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def incompatible_with(incompatible_constraints):
|
||||||
|
return select(_merge_dicts([{"//conditions:default": []}, {
|
||||||
|
constraint: ["@platforms//:incompatible"]
|
||||||
|
for constraint in incompatible_constraints
|
||||||
|
}]))
|
||||||
|
|
||||||
DEBUGINFO_GRAMMAR_JSON_FILE = "@spirv_headers//:spirv_ext_inst_debuginfo_grammar_unified1"
|
DEBUGINFO_GRAMMAR_JSON_FILE = "@spirv_headers//:spirv_ext_inst_debuginfo_grammar_unified1"
|
||||||
CLDEBUGINFO100_GRAMMAR_JSON_FILE = "@spirv_headers//:spirv_ext_inst_opencl_debuginfo_100_grammar_unified1"
|
CLDEBUGINFO100_GRAMMAR_JSON_FILE = "@spirv_headers//:spirv_ext_inst_opencl_debuginfo_100_grammar_unified1"
|
||||||
SHDEBUGINFO100_GRAMMAR_JSON_FILE = "@spirv_headers//:spirv_ext_inst_nonsemantic_shader_debuginfo_100_grammar_unified1"
|
SHDEBUGINFO100_GRAMMAR_JSON_FILE = "@spirv_headers//:spirv_ext_inst_nonsemantic_shader_debuginfo_100_grammar_unified1"
|
||||||
|
|
||||||
def generate_core_tables(version = None):
|
def _merge_dicts(dicts):
|
||||||
|
merged = {}
|
||||||
|
for d in dicts:
|
||||||
|
merged.update(d)
|
||||||
|
return merged
|
||||||
|
|
||||||
|
def generate_core_tables(version):
|
||||||
if not version:
|
if not version:
|
||||||
fail("Must specify version", "version")
|
fail("Must specify version", "version")
|
||||||
grammars = [
|
|
||||||
"@spirv_headers//:spirv_core_grammar_" + version,
|
grammars = dict(
|
||||||
DEBUGINFO_GRAMMAR_JSON_FILE,
|
core_grammar = "@spirv_headers//:spirv_core_grammar_{}".format(version),
|
||||||
CLDEBUGINFO100_GRAMMAR_JSON_FILE,
|
debuginfo_grammar = DEBUGINFO_GRAMMAR_JSON_FILE,
|
||||||
]
|
cldebuginfo_grammar = CLDEBUGINFO100_GRAMMAR_JSON_FILE,
|
||||||
outs = [
|
)
|
||||||
"core.insts-{}.inc".format(version),
|
|
||||||
"operand.kinds-{}.inc".format(version),
|
outs = dict(
|
||||||
]
|
core_insts_output = "core.insts-{}.inc".format(version),
|
||||||
fmtargs = grammars + outs
|
operand_kinds_output = "operand.kinds-{}.inc".format(version),
|
||||||
|
)
|
||||||
|
|
||||||
|
cmd = (
|
||||||
|
"$(location :generate_grammar_tables)" +
|
||||||
|
" --spirv-core-grammar=$(location {core_grammar})" +
|
||||||
|
" --extinst-debuginfo-grammar=$(location {debuginfo_grammar})" +
|
||||||
|
" --extinst-cldebuginfo100-grammar=$(location {cldebuginfo_grammar})" +
|
||||||
|
" --core-insts-output=$(location {core_insts_output})" +
|
||||||
|
" --operand-kinds-output=$(location {operand_kinds_output})" +
|
||||||
|
" --output-language=c++"
|
||||||
|
).format(**_merge_dicts([grammars, outs]))
|
||||||
|
|
||||||
native.genrule(
|
native.genrule(
|
||||||
name = "gen_core_tables_" + version,
|
name = "gen_core_tables_" + version,
|
||||||
srcs = grammars,
|
srcs = grammars.values(),
|
||||||
outs = outs,
|
outs = outs.values(),
|
||||||
cmd = (
|
cmd = cmd,
|
||||||
"$(location :generate_grammar_tables) " +
|
cmd_bat = cmd,
|
||||||
"--spirv-core-grammar=$(location {0}) " +
|
tools = [":generate_grammar_tables"],
|
||||||
"--extinst-debuginfo-grammar=$(location {1}) " +
|
|
||||||
"--extinst-cldebuginfo100-grammar=$(location {2}) " +
|
|
||||||
"--core-insts-output=$(location {3}) " +
|
|
||||||
"--operand-kinds-output=$(location {4}) " +
|
|
||||||
"--output-language=c++"
|
|
||||||
).format(*fmtargs),
|
|
||||||
cmd_bat = (
|
|
||||||
"$(location :generate_grammar_tables) " +
|
|
||||||
"--spirv-core-grammar=$(location {0}) " +
|
|
||||||
"--extinst-debuginfo-grammar=$(location {1}) " +
|
|
||||||
"--extinst-cldebuginfo100-grammar=$(location {2}) " +
|
|
||||||
"--core-insts-output=$(location {3}) " +
|
|
||||||
"--operand-kinds-output=$(location {4}) " +
|
|
||||||
"--output-language=c++"
|
|
||||||
).format(*fmtargs),
|
|
||||||
exec_tools = [":generate_grammar_tables"],
|
|
||||||
visibility = ["//visibility:private"],
|
visibility = ["//visibility:private"],
|
||||||
)
|
)
|
||||||
|
|
||||||
def generate_enum_string_mapping(version = None):
|
def generate_enum_string_mapping(version):
|
||||||
if not version:
|
if not version:
|
||||||
fail("Must specify version", "version")
|
fail("Must specify version", "version")
|
||||||
grammars = [
|
|
||||||
"@spirv_headers//:spirv_core_grammar_" + version,
|
grammars = dict(
|
||||||
DEBUGINFO_GRAMMAR_JSON_FILE,
|
core_grammar = "@spirv_headers//:spirv_core_grammar_{}".format(version),
|
||||||
CLDEBUGINFO100_GRAMMAR_JSON_FILE,
|
debuginfo_grammar = DEBUGINFO_GRAMMAR_JSON_FILE,
|
||||||
]
|
cldebuginfo_grammar = CLDEBUGINFO100_GRAMMAR_JSON_FILE,
|
||||||
outs = [
|
)
|
||||||
"extension_enum.inc",
|
|
||||||
"enum_string_mapping.inc",
|
outs = dict(
|
||||||
]
|
extension_enum_ouput = "extension_enum.inc",
|
||||||
fmtargs = grammars + outs
|
enum_string_mapping_output = "enum_string_mapping.inc",
|
||||||
|
)
|
||||||
|
|
||||||
|
cmd = (
|
||||||
|
"$(location :generate_grammar_tables)" +
|
||||||
|
" --spirv-core-grammar=$(location {core_grammar})" +
|
||||||
|
" --extinst-debuginfo-grammar=$(location {debuginfo_grammar})" +
|
||||||
|
" --extinst-cldebuginfo100-grammar=$(location {cldebuginfo_grammar})" +
|
||||||
|
" --extension-enum-output=$(location {extension_enum_ouput})" +
|
||||||
|
" --enum-string-mapping-output=$(location {enum_string_mapping_output})" +
|
||||||
|
" --output-language=c++"
|
||||||
|
).format(**_merge_dicts([grammars, outs]))
|
||||||
|
|
||||||
native.genrule(
|
native.genrule(
|
||||||
name = "gen_enum_string_mapping",
|
name = "gen_enum_string_mapping",
|
||||||
srcs = grammars,
|
srcs = grammars.values(),
|
||||||
outs = outs,
|
outs = outs.values(),
|
||||||
cmd = (
|
cmd = cmd,
|
||||||
"$(location :generate_grammar_tables) " +
|
cmd_bat = cmd,
|
||||||
"--spirv-core-grammar=$(location {0}) " +
|
tools = [":generate_grammar_tables"],
|
||||||
"--extinst-debuginfo-grammar=$(location {1}) " +
|
|
||||||
"--extinst-cldebuginfo100-grammar=$(location {2}) " +
|
|
||||||
"--extension-enum-output=$(location {3}) " +
|
|
||||||
"--enum-string-mapping-output=$(location {4}) " +
|
|
||||||
"--output-language=c++"
|
|
||||||
).format(*fmtargs),
|
|
||||||
cmd_bat = (
|
|
||||||
"$(location :generate_grammar_tables) " +
|
|
||||||
"--spirv-core-grammar=$(location {0}) " +
|
|
||||||
"--extinst-debuginfo-grammar=$(location {1}) " +
|
|
||||||
"--extinst-cldebuginfo100-grammar=$(location {2}) " +
|
|
||||||
"--extension-enum-output=$(location {3}) " +
|
|
||||||
"--enum-string-mapping-output=$(location {4}) " +
|
|
||||||
"--output-language=c++"
|
|
||||||
).format(*fmtargs),
|
|
||||||
exec_tools = [":generate_grammar_tables"],
|
|
||||||
visibility = ["//visibility:private"],
|
visibility = ["//visibility:private"],
|
||||||
)
|
)
|
||||||
|
|
||||||
def generate_opencl_tables(version = None):
|
def generate_opencl_tables(version):
|
||||||
if not version:
|
if not version:
|
||||||
fail("Must specify version", "version")
|
fail("Must specify version", "version")
|
||||||
grammars = [
|
|
||||||
"@spirv_headers//:spirv_opencl_grammar_" + version,
|
grammars = dict(
|
||||||
]
|
opencl_grammar = "@spirv_headers//:spirv_opencl_grammar_{}".format(version),
|
||||||
outs = ["opencl.std.insts.inc"]
|
)
|
||||||
fmtargs = grammars + outs
|
|
||||||
|
outs = dict(
|
||||||
|
opencl_insts_output = "opencl.std.insts.inc",
|
||||||
|
)
|
||||||
|
|
||||||
|
cmd = (
|
||||||
|
"$(location :generate_grammar_tables)" +
|
||||||
|
" --extinst-opencl-grammar=$(location {opencl_grammar})" +
|
||||||
|
" --opencl-insts-output=$(location {opencl_insts_output})"
|
||||||
|
).format(**_merge_dicts([grammars, outs]))
|
||||||
|
|
||||||
native.genrule(
|
native.genrule(
|
||||||
name = "gen_opencl_tables_" + version,
|
name = "gen_opencl_tables_" + version,
|
||||||
srcs = grammars,
|
srcs = grammars.values(),
|
||||||
outs = outs,
|
outs = outs.values(),
|
||||||
cmd = (
|
cmd = cmd,
|
||||||
"$(location :generate_grammar_tables) " +
|
cmd_bat = cmd,
|
||||||
"--extinst-opencl-grammar=$(location {0}) " +
|
tools = [":generate_grammar_tables"],
|
||||||
"--opencl-insts-output=$(location {1})"
|
|
||||||
).format(*fmtargs),
|
|
||||||
cmd_bat = (
|
|
||||||
"$(location :generate_grammar_tables) " +
|
|
||||||
"--extinst-opencl-grammar=$(location {0}) " +
|
|
||||||
"--opencl-insts-output=$(location {1})"
|
|
||||||
).format(*fmtargs),
|
|
||||||
exec_tools = [":generate_grammar_tables"],
|
|
||||||
visibility = ["//visibility:private"],
|
visibility = ["//visibility:private"],
|
||||||
)
|
)
|
||||||
|
|
||||||
def generate_glsl_tables(version = None):
|
def generate_glsl_tables(version):
|
||||||
if not version:
|
if not version:
|
||||||
fail("Must specify version", "version")
|
fail("Must specify version", "version")
|
||||||
grammars = [
|
|
||||||
"@spirv_headers//:spirv_glsl_grammar_" + version,
|
grammars = dict(
|
||||||
]
|
gsls_grammar = "@spirv_headers//:spirv_glsl_grammar_{}".format(version),
|
||||||
outs = ["glsl.std.450.insts.inc"]
|
)
|
||||||
fmtargs = grammars + outs
|
outs = dict(
|
||||||
|
gsls_insts_outs = "glsl.std.450.insts.inc",
|
||||||
|
)
|
||||||
|
|
||||||
|
cmd = (
|
||||||
|
"$(location :generate_grammar_tables)" +
|
||||||
|
" --extinst-glsl-grammar=$(location {gsls_grammar})" +
|
||||||
|
" --glsl-insts-output=$(location {gsls_insts_outs})" +
|
||||||
|
" --output-language=c++"
|
||||||
|
).format(**_merge_dicts([grammars, outs]))
|
||||||
|
|
||||||
native.genrule(
|
native.genrule(
|
||||||
name = "gen_glsl_tables_" + version,
|
name = "gen_glsl_tables_" + version,
|
||||||
srcs = grammars,
|
srcs = grammars.values(),
|
||||||
outs = outs,
|
outs = outs.values(),
|
||||||
cmd = (
|
cmd = cmd,
|
||||||
"$(location :generate_grammar_tables) " +
|
cmd_bat = cmd,
|
||||||
"--extinst-glsl-grammar=$(location {0}) " +
|
tools = [":generate_grammar_tables"],
|
||||||
"--glsl-insts-output=$(location {1}) " +
|
|
||||||
"--output-language=c++"
|
|
||||||
).format(*fmtargs),
|
|
||||||
cmd_bat = (
|
|
||||||
"$(location :generate_grammar_tables) " +
|
|
||||||
"--extinst-glsl-grammar=$(location {0}) " +
|
|
||||||
"--glsl-insts-output=$(location {1}) " +
|
|
||||||
"--output-language=c++"
|
|
||||||
).format(*fmtargs),
|
|
||||||
exec_tools = [":generate_grammar_tables"],
|
|
||||||
visibility = ["//visibility:private"],
|
visibility = ["//visibility:private"],
|
||||||
)
|
)
|
||||||
|
|
||||||
def generate_vendor_tables(extension, operand_kind_prefix = ""):
|
def generate_vendor_tables(extension, operand_kind_prefix = ""):
|
||||||
if not extension:
|
if not extension:
|
||||||
fail("Must specify extension", "extension")
|
fail("Must specify extension", "extension")
|
||||||
|
|
||||||
extension_rule = extension.replace("-", "_").replace(".", "_")
|
extension_rule = extension.replace("-", "_").replace(".", "_")
|
||||||
grammars = ["@spirv_headers//:spirv_ext_inst_{}_grammar_unified1".format(extension_rule)]
|
grammars = dict(
|
||||||
outs = ["{}.insts.inc".format(extension)]
|
vendor_grammar = "@spirv_headers//:spirv_ext_inst_{}_grammar_unified1".format(extension_rule),
|
||||||
prefices = [operand_kind_prefix]
|
)
|
||||||
fmtargs = grammars + outs + prefices
|
outs = dict(
|
||||||
|
vendor_insts_output = "{}.insts.inc".format(extension),
|
||||||
|
)
|
||||||
|
cmd = (
|
||||||
|
"$(location :generate_grammar_tables)" +
|
||||||
|
" --extinst-vendor-grammar=$(location {vendor_grammar})" +
|
||||||
|
" --vendor-insts-output=$(location {vendor_insts_output})" +
|
||||||
|
" --vendor-operand-kind-prefix={operand_kind_prefix}"
|
||||||
|
).format(operand_kind_prefix = operand_kind_prefix, **_merge_dicts([grammars, outs]))
|
||||||
|
|
||||||
native.genrule(
|
native.genrule(
|
||||||
name = "gen_vendor_tables_" + extension_rule,
|
name = "gen_vendor_tables_" + extension_rule,
|
||||||
srcs = grammars,
|
srcs = grammars.values(),
|
||||||
outs = outs,
|
outs = outs.values(),
|
||||||
cmd = (
|
cmd = cmd,
|
||||||
"$(location :generate_grammar_tables) " +
|
cmd_bat = cmd,
|
||||||
"--extinst-vendor-grammar=$(location {0}) " +
|
tools = [":generate_grammar_tables"],
|
||||||
"--vendor-insts-output=$(location {1}) " +
|
|
||||||
"--vendor-operand-kind-prefix={2}"
|
|
||||||
).format(*fmtargs),
|
|
||||||
cmd_bat = (
|
|
||||||
"$(location :generate_grammar_tables) " +
|
|
||||||
"--extinst-vendor-grammar=$(location {0}) " +
|
|
||||||
"--vendor-insts-output=$(location {1}) " +
|
|
||||||
"--vendor-operand-kind-prefix={2}"
|
|
||||||
).format(*fmtargs),
|
|
||||||
exec_tools = [":generate_grammar_tables"],
|
|
||||||
visibility = ["//visibility:private"],
|
visibility = ["//visibility:private"],
|
||||||
)
|
)
|
||||||
|
|
||||||
def generate_extinst_lang_headers(name, grammar = None):
|
def generate_extinst_lang_headers(name, grammar = None):
|
||||||
if not grammar:
|
if not grammar:
|
||||||
fail("Must specify grammar", "grammar")
|
fail("Must specify grammar", "grammar")
|
||||||
outs = [name + ".h"]
|
outs = dict(
|
||||||
fmtargs = outs
|
extinst_output_path = name + ".h",
|
||||||
|
)
|
||||||
|
cmd = (
|
||||||
|
"$(location :generate_language_headers)" +
|
||||||
|
" --extinst-grammar=$<" +
|
||||||
|
" --extinst-output-path=$(location {extinst_output_path})"
|
||||||
|
).format(**outs)
|
||||||
|
|
||||||
native.genrule(
|
native.genrule(
|
||||||
name = "gen_extinst_lang_headers_" + name,
|
name = "gen_extinst_lang_headers_{}".format(name),
|
||||||
srcs = [grammar],
|
srcs = [grammar],
|
||||||
outs = outs,
|
outs = outs.values(),
|
||||||
cmd = (
|
cmd = cmd,
|
||||||
"$(location :generate_language_headers) " +
|
cmd_bat = cmd,
|
||||||
"--extinst-grammar=$< " +
|
tools = [":generate_language_headers"],
|
||||||
"--extinst-output-path=$(location {0})"
|
|
||||||
).format(*fmtargs),
|
|
||||||
cmd_bat = (
|
|
||||||
"$(location :generate_language_headers) " +
|
|
||||||
"--extinst-grammar=$< " +
|
|
||||||
"--extinst-output-path=$(location {0})"
|
|
||||||
).format(*fmtargs),
|
|
||||||
exec_tools = [":generate_language_headers"],
|
|
||||||
visibility = ["//visibility:private"],
|
visibility = ["//visibility:private"],
|
||||||
)
|
)
|
||||||
|
|
||||||
def base_test(name, srcs, deps = []):
|
|
||||||
if srcs == []:
|
|
||||||
return
|
|
||||||
if name[-5:] != "_test":
|
|
||||||
name = name + "_test"
|
|
||||||
native.cc_test(
|
|
||||||
name = "base_" + name,
|
|
||||||
srcs = srcs,
|
|
||||||
compatible_with = [],
|
|
||||||
copts = TEST_COPTS,
|
|
||||||
size = "large",
|
|
||||||
deps = [
|
|
||||||
":test_common",
|
|
||||||
"@com_google_googletest//:gtest_main",
|
|
||||||
"@com_google_googletest//:gtest",
|
|
||||||
"@com_google_effcee//:effcee",
|
|
||||||
] + deps,
|
|
||||||
)
|
|
||||||
|
|
||||||
def lint_test(name, srcs, deps = []):
|
|
||||||
if name[-5:] != "_test":
|
|
||||||
name = name + "_test"
|
|
||||||
native.cc_test(
|
|
||||||
name = "lint_" + name,
|
|
||||||
srcs = srcs,
|
|
||||||
compatible_with = [],
|
|
||||||
copts = TEST_COPTS,
|
|
||||||
size = "large",
|
|
||||||
deps = [
|
|
||||||
":spirv_tools_lint",
|
|
||||||
"@com_google_googletest//:gtest_main",
|
|
||||||
"@com_google_googletest//:gtest",
|
|
||||||
"@com_google_effcee//:effcee",
|
|
||||||
] + deps,
|
|
||||||
)
|
|
||||||
|
|
||||||
def link_test(name, srcs, deps = []):
|
|
||||||
if name[-5:] != "_test":
|
|
||||||
name = name + "_test"
|
|
||||||
native.cc_test(
|
|
||||||
name = "link_" + name,
|
|
||||||
srcs = srcs,
|
|
||||||
compatible_with = [],
|
|
||||||
copts = TEST_COPTS,
|
|
||||||
size = "large",
|
|
||||||
deps = [
|
|
||||||
":link_test_common",
|
|
||||||
"@com_google_googletest//:gtest_main",
|
|
||||||
"@com_google_googletest//:gtest",
|
|
||||||
"@com_google_effcee//:effcee",
|
|
||||||
] + deps,
|
|
||||||
)
|
|
||||||
|
|
||||||
def opt_test(name, srcs, deps = []):
|
|
||||||
if name[-5:] != "_test":
|
|
||||||
name = name + "_test"
|
|
||||||
native.cc_test(
|
|
||||||
name = "opt_" + name,
|
|
||||||
srcs = srcs,
|
|
||||||
compatible_with = [],
|
|
||||||
copts = TEST_COPTS,
|
|
||||||
size = "large",
|
|
||||||
deps = [
|
|
||||||
":opt_test_common",
|
|
||||||
"@com_google_googletest//:gtest_main",
|
|
||||||
"@com_google_googletest//:gtest",
|
|
||||||
"@com_google_effcee//:effcee",
|
|
||||||
] + deps,
|
|
||||||
)
|
|
||||||
|
|
||||||
def reduce_test(name, srcs, deps = []):
|
|
||||||
if name[-5:] != "_test":
|
|
||||||
name = name + "_test"
|
|
||||||
native.cc_test(
|
|
||||||
name = "reduce_" + name,
|
|
||||||
srcs = srcs,
|
|
||||||
compatible_with = [],
|
|
||||||
copts = TEST_COPTS,
|
|
||||||
size = "large",
|
|
||||||
deps = [
|
|
||||||
":reduce_test_common",
|
|
||||||
":spirv_tools_reduce",
|
|
||||||
"@com_google_googletest//:gtest_main",
|
|
||||||
"@com_google_googletest//:gtest",
|
|
||||||
"@com_google_effcee//:effcee",
|
|
||||||
] + deps,
|
|
||||||
)
|
|
||||||
|
|
||||||
def util_test(name, srcs, deps = []):
|
|
||||||
if name[-5:] != "_test":
|
|
||||||
name = name + "_test"
|
|
||||||
native.cc_test(
|
|
||||||
name = "util_" + name,
|
|
||||||
srcs = srcs,
|
|
||||||
compatible_with = [],
|
|
||||||
copts = TEST_COPTS,
|
|
||||||
size = "large",
|
|
||||||
deps = [
|
|
||||||
":opt_test_common",
|
|
||||||
"@com_google_googletest//:gtest_main",
|
|
||||||
"@com_google_googletest//:gtest",
|
|
||||||
"@com_google_effcee//:effcee",
|
|
||||||
] + deps,
|
|
||||||
)
|
|
||||||
|
|
||||||
def val_test(name, srcs = [], copts = [], deps = [], **kwargs):
|
|
||||||
if name[-5:] != "_test":
|
|
||||||
name = name + "_test"
|
|
||||||
if name[:4] != "val_":
|
|
||||||
name = "val_" + name
|
|
||||||
native.cc_test(
|
|
||||||
name = name,
|
|
||||||
srcs = srcs,
|
|
||||||
compatible_with = [],
|
|
||||||
copts = TEST_COPTS + copts,
|
|
||||||
size = "large",
|
|
||||||
deps = [
|
|
||||||
":val_test_common",
|
|
||||||
"@com_google_googletest//:gtest_main",
|
|
||||||
"@com_google_googletest//:gtest",
|
|
||||||
"@com_google_effcee//:effcee",
|
|
||||||
] + deps,
|
|
||||||
**kwargs
|
|
||||||
)
|
|
||||||
|
|||||||
+18
-13
@@ -1,8 +1,24 @@
|
|||||||
# Downloads
|
# Downloads
|
||||||
|
|
||||||
## Latest builds
|
## Vulkan SDK
|
||||||
|
|
||||||
Download the latest builds of the [master](https://github.com/KhronosGroup/SPIRV-Tools/tree/master) branch.
|
The official releases for SPIRV-Tools can be found on LunarG's
|
||||||
|
[SDK download page](https://vulkan.lunarg.com/sdk/home).
|
||||||
|
The Vulkan SDK is updated approximately every six weeks.
|
||||||
|
|
||||||
|
## Android NDK
|
||||||
|
|
||||||
|
SPIRV-Tools host executables, and library sources are published as
|
||||||
|
part of the [Android NDK](https://developer.android.com/ndk/downloads).
|
||||||
|
|
||||||
|
## Automated builds
|
||||||
|
|
||||||
|
For convenience, here are also links to the latest builds (HEAD).
|
||||||
|
Those are untested automated builds. Those are not official releases, nor
|
||||||
|
are guaranteed to work. Official releases builds are in the Android NDK or
|
||||||
|
Vulkan SDK.
|
||||||
|
|
||||||
|
Download the latest builds of the [main](https://github.com/KhronosGroup/SPIRV-Tools/tree/main) branch.
|
||||||
|
|
||||||
### Release build
|
### Release build
|
||||||
| Windows | Linux | MacOS |
|
| Windows | Linux | MacOS |
|
||||||
@@ -15,14 +31,3 @@ Download the latest builds of the [master](https://github.com/KhronosGroup/SPIRV
|
|||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| [MSVC 2017](https://storage.googleapis.com/spirv-tools/badges/build_link_windows_vs2017_debug.html) | [clang](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_clang_debug.html) | [clang](https://storage.googleapis.com/spirv-tools/badges/build_link_macos_clang_debug.html) |
|
| [MSVC 2017](https://storage.googleapis.com/spirv-tools/badges/build_link_windows_vs2017_debug.html) | [clang](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_clang_debug.html) | [clang](https://storage.googleapis.com/spirv-tools/badges/build_link_macos_clang_debug.html) |
|
||||||
| | [gcc](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_gcc_debug.html) | |
|
| | [gcc](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_gcc_debug.html) | |
|
||||||
|
|
||||||
|
|
||||||
## Vulkan SDK
|
|
||||||
|
|
||||||
SPIRV-Tools is published as part of the [LunarG Vulkan SDK](https://www.lunarg.com/vulkan-sdk/).
|
|
||||||
The Vulkan SDK is updated approximately every six weeks.
|
|
||||||
|
|
||||||
## Android NDK
|
|
||||||
|
|
||||||
SPIRV-Tools host executables, and library sources are published as
|
|
||||||
part of the [Android NDK](https://developer.android.com/ndk/downloads).
|
|
||||||
|
|||||||
+2
-2
@@ -34,7 +34,7 @@ through the project workflow:
|
|||||||
ones.
|
ones.
|
||||||
* They determine if the work for a card has been completed.
|
* They determine if the work for a card has been completed.
|
||||||
* Normally they are the person (or persons) who can approve and merge a pull
|
* Normally they are the person (or persons) who can approve and merge a pull
|
||||||
request into the `master` branch.
|
request into the `main` branch.
|
||||||
|
|
||||||
Our projects organize cards into the following columns:
|
Our projects organize cards into the following columns:
|
||||||
* `Ideas`: Work which could be done, captured either as Cards or Notes.
|
* `Ideas`: Work which could be done, captured either as Cards or Notes.
|
||||||
@@ -51,7 +51,7 @@ Our projects organize cards into the following columns:
|
|||||||
claimed by someone.
|
claimed by someone.
|
||||||
* `Done`: Issues which have been resolved, by completing their work.
|
* `Done`: Issues which have been resolved, by completing their work.
|
||||||
* The changes have been applied to the repository, typically by being pushed
|
* The changes have been applied to the repository, typically by being pushed
|
||||||
into the `master` branch.
|
into the `main` branch.
|
||||||
* Other kinds of work could update repository settings, for example.
|
* Other kinds of work could update repository settings, for example.
|
||||||
* `Rejected ideas`: Work which has been considered, but which we don't want
|
* `Rejected ideas`: Work which has been considered, but which we don't want
|
||||||
implemented.
|
implemented.
|
||||||
|
|||||||
+18
-10
@@ -30,11 +30,7 @@ if (DEFINED SPIRV-Headers_SOURCE_DIR)
|
|||||||
# This allows flexible position of the SPIRV-Headers repo.
|
# This allows flexible position of the SPIRV-Headers repo.
|
||||||
set(SPIRV_HEADER_DIR ${SPIRV-Headers_SOURCE_DIR})
|
set(SPIRV_HEADER_DIR ${SPIRV-Headers_SOURCE_DIR})
|
||||||
else()
|
else()
|
||||||
if (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Headers)
|
set(SPIRV_HEADER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/spirv-headers)
|
||||||
set(SPIRV_HEADER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Headers)
|
|
||||||
else()
|
|
||||||
set(SPIRV_HEADER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/spirv-headers)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (IS_DIRECTORY ${SPIRV_HEADER_DIR})
|
if (IS_DIRECTORY ${SPIRV_HEADER_DIR})
|
||||||
@@ -45,8 +41,6 @@ if (IS_DIRECTORY ${SPIRV_HEADER_DIR})
|
|||||||
# Do this so enclosing projects can use SPIRV-Headers_SOURCE_DIR to find
|
# Do this so enclosing projects can use SPIRV-Headers_SOURCE_DIR to find
|
||||||
# headers to include.
|
# headers to include.
|
||||||
if (NOT DEFINED SPIRV-Headers_SOURCE_DIR)
|
if (NOT DEFINED SPIRV-Headers_SOURCE_DIR)
|
||||||
set(SPIRV_HEADERS_SKIP_INSTALL ON)
|
|
||||||
set(SPIRV_HEADERS_SKIP_EXAMPLES ON)
|
|
||||||
add_subdirectory(${SPIRV_HEADER_DIR})
|
add_subdirectory(${SPIRV_HEADER_DIR})
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
@@ -60,7 +54,9 @@ if (NOT ${SPIRV_SKIP_TESTS})
|
|||||||
if (TARGET gmock)
|
if (TARGET gmock)
|
||||||
message(STATUS "Google Mock already configured")
|
message(STATUS "Google Mock already configured")
|
||||||
else()
|
else()
|
||||||
set(GMOCK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/googletest)
|
if (NOT GMOCK_DIR)
|
||||||
|
set(GMOCK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/googletest)
|
||||||
|
endif()
|
||||||
if(EXISTS ${GMOCK_DIR})
|
if(EXISTS ${GMOCK_DIR})
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
# Our tests use ::testing::Combine. Work around a compiler
|
# Our tests use ::testing::Combine. Work around a compiler
|
||||||
@@ -77,7 +73,7 @@ if (NOT ${SPIRV_SKIP_TESTS})
|
|||||||
# gtest requires special defines for building as a shared
|
# gtest requires special defines for building as a shared
|
||||||
# library, simply always build as static.
|
# library, simply always build as static.
|
||||||
push_variable(BUILD_SHARED_LIBS 0)
|
push_variable(BUILD_SHARED_LIBS 0)
|
||||||
add_subdirectory(${GMOCK_DIR} EXCLUDE_FROM_ALL)
|
add_subdirectory(${GMOCK_DIR} ${CMAKE_CURRENT_BINARY_DIR}/googletest EXCLUDE_FROM_ALL)
|
||||||
pop_variable(BUILD_SHARED_LIBS)
|
pop_variable(BUILD_SHARED_LIBS)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
@@ -95,10 +91,22 @@ if (NOT ${SPIRV_SKIP_TESTS})
|
|||||||
|
|
||||||
# Find Effcee and RE2, for testing.
|
# Find Effcee and RE2, for testing.
|
||||||
|
|
||||||
|
# RE2 depends on Abseil. We set absl_SOURCE_DIR if it is not already set, so
|
||||||
|
# that effcee can find abseil.
|
||||||
|
if(NOT TARGET absl::base)
|
||||||
|
if (NOT absl_SOURCE_DIR)
|
||||||
|
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/abseil_cpp)
|
||||||
|
set(absl_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/abseil_cpp" CACHE STRING "Abseil source dir" )
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# First find RE2, since Effcee depends on it.
|
# First find RE2, since Effcee depends on it.
|
||||||
# If already configured, then use that. Otherwise, prefer to find it under 're2'
|
# If already configured, then use that. Otherwise, prefer to find it under 're2'
|
||||||
# in this directory.
|
# in this directory.
|
||||||
if (NOT TARGET re2)
|
if (NOT TARGET re2)
|
||||||
|
|
||||||
|
|
||||||
# If we are configuring RE2, then turn off its testing. It takes a long time and
|
# If we are configuring RE2, then turn off its testing. It takes a long time and
|
||||||
# does not add much value for us. If an enclosing project configured RE2, then it
|
# does not add much value for us. If an enclosing project configured RE2, then it
|
||||||
# has already chosen whether to enable RE2 testing.
|
# has already chosen whether to enable RE2 testing.
|
||||||
@@ -156,7 +164,7 @@ if(SPIRV_BUILD_FUZZER)
|
|||||||
|
|
||||||
if(NOT TARGET protobuf::libprotobuf OR NOT TARGET protobuf::protoc)
|
if(NOT TARGET protobuf::libprotobuf OR NOT TARGET protobuf::protoc)
|
||||||
|
|
||||||
set(SPIRV_TOOLS_PROTOBUF_DIR ${CMAKE_CURRENT_SOURCE_DIR}/protobuf/cmake)
|
set(SPIRV_TOOLS_PROTOBUF_DIR ${CMAKE_CURRENT_SOURCE_DIR}/protobuf)
|
||||||
if (NOT IS_DIRECTORY ${SPIRV_TOOLS_PROTOBUF_DIR})
|
if (NOT IS_DIRECTORY ${SPIRV_TOOLS_PROTOBUF_DIR})
|
||||||
message(
|
message(
|
||||||
FATAL_ERROR
|
FATAL_ERROR
|
||||||
|
|||||||
@@ -73,196 +73,14 @@ static const int kInstCommonOutShaderId = 1;
|
|||||||
// which generated the validation error.
|
// which generated the validation error.
|
||||||
static const int kInstCommonOutInstructionIdx = 2;
|
static const int kInstCommonOutInstructionIdx = 2;
|
||||||
|
|
||||||
// This is the stage which generated the validation error. This word is used
|
|
||||||
// to determine the contents of the next two words in the record.
|
|
||||||
// 0:Vert, 1:TessCtrl, 2:TessEval, 3:Geom, 4:Frag, 5:Compute
|
|
||||||
static const int kInstCommonOutStageIdx = 3;
|
|
||||||
static const int kInstCommonOutCnt = 4;
|
|
||||||
|
|
||||||
// Stage-specific Stream Record Offsets
|
|
||||||
//
|
|
||||||
// Each stage will contain different values in the next set of words of the
|
|
||||||
// record used to identify which instantiation of the shader generated the
|
|
||||||
// validation error.
|
|
||||||
//
|
|
||||||
// Vertex Shader Output Record Offsets
|
|
||||||
static const int kInstVertOutVertexIndex = kInstCommonOutCnt;
|
|
||||||
static const int kInstVertOutInstanceIndex = kInstCommonOutCnt + 1;
|
|
||||||
static const int kInstVertOutUnused = kInstCommonOutCnt + 2;
|
|
||||||
|
|
||||||
// Frag Shader Output Record Offsets
|
|
||||||
static const int kInstFragOutFragCoordX = kInstCommonOutCnt;
|
|
||||||
static const int kInstFragOutFragCoordY = kInstCommonOutCnt + 1;
|
|
||||||
static const int kInstFragOutUnused = kInstCommonOutCnt + 2;
|
|
||||||
|
|
||||||
// Compute Shader Output Record Offsets
|
|
||||||
static const int kInstCompOutGlobalInvocationIdX = kInstCommonOutCnt;
|
|
||||||
static const int kInstCompOutGlobalInvocationIdY = kInstCommonOutCnt + 1;
|
|
||||||
static const int kInstCompOutGlobalInvocationIdZ = kInstCommonOutCnt + 2;
|
|
||||||
|
|
||||||
// Tessellation Control Shader Output Record Offsets
|
|
||||||
static const int kInstTessCtlOutInvocationId = kInstCommonOutCnt;
|
|
||||||
static const int kInstTessCtlOutPrimitiveId = kInstCommonOutCnt + 1;
|
|
||||||
static const int kInstTessCtlOutUnused = kInstCommonOutCnt + 2;
|
|
||||||
|
|
||||||
// Tessellation Eval Shader Output Record Offsets
|
|
||||||
static const int kInstTessEvalOutPrimitiveId = kInstCommonOutCnt;
|
|
||||||
static const int kInstTessEvalOutTessCoordU = kInstCommonOutCnt + 1;
|
|
||||||
static const int kInstTessEvalOutTessCoordV = kInstCommonOutCnt + 2;
|
|
||||||
|
|
||||||
// Geometry Shader Output Record Offsets
|
|
||||||
static const int kInstGeomOutPrimitiveId = kInstCommonOutCnt;
|
|
||||||
static const int kInstGeomOutInvocationId = kInstCommonOutCnt + 1;
|
|
||||||
static const int kInstGeomOutUnused = kInstCommonOutCnt + 2;
|
|
||||||
|
|
||||||
// Ray Tracing Shader Output Record Offsets
|
|
||||||
static const int kInstRayTracingOutLaunchIdX = kInstCommonOutCnt;
|
|
||||||
static const int kInstRayTracingOutLaunchIdY = kInstCommonOutCnt + 1;
|
|
||||||
static const int kInstRayTracingOutLaunchIdZ = kInstCommonOutCnt + 2;
|
|
||||||
|
|
||||||
// Mesh Shader Output Record Offsets
|
|
||||||
static const int kInstMeshOutGlobalInvocationIdX = kInstCommonOutCnt;
|
|
||||||
static const int kInstMeshOutGlobalInvocationIdY = kInstCommonOutCnt + 1;
|
|
||||||
static const int kInstMeshOutGlobalInvocationIdZ = kInstCommonOutCnt + 2;
|
|
||||||
|
|
||||||
// Task Shader Output Record Offsets
|
|
||||||
static const int kInstTaskOutGlobalInvocationIdX = kInstCommonOutCnt;
|
|
||||||
static const int kInstTaskOutGlobalInvocationIdY = kInstCommonOutCnt + 1;
|
|
||||||
static const int kInstTaskOutGlobalInvocationIdZ = kInstCommonOutCnt + 2;
|
|
||||||
|
|
||||||
// Size of Common and Stage-specific Members
|
|
||||||
static const int kInstStageOutCnt = kInstCommonOutCnt + 3;
|
|
||||||
|
|
||||||
// Validation Error Code Offset
|
|
||||||
//
|
|
||||||
// This identifies the validation error. It also helps to identify
|
|
||||||
// how many words follow in the record and their meaning.
|
|
||||||
static const int kInstValidationOutError = kInstStageOutCnt;
|
|
||||||
|
|
||||||
// Validation-specific Output Record Offsets
|
|
||||||
//
|
|
||||||
// Each different validation will generate a potentially different
|
|
||||||
// number of words at the end of the record giving more specifics
|
|
||||||
// about the validation error.
|
|
||||||
//
|
|
||||||
// A bindless bounds error will output the index and the bound.
|
|
||||||
static const int kInstBindlessBoundsOutDescIndex = kInstStageOutCnt + 1;
|
|
||||||
static const int kInstBindlessBoundsOutDescBound = kInstStageOutCnt + 2;
|
|
||||||
static const int kInstBindlessBoundsOutUnused = kInstStageOutCnt + 3;
|
|
||||||
static const int kInstBindlessBoundsOutCnt = kInstStageOutCnt + 4;
|
|
||||||
|
|
||||||
// A descriptor uninitialized error will output the index.
|
|
||||||
static const int kInstBindlessUninitOutDescIndex = kInstStageOutCnt + 1;
|
|
||||||
static const int kInstBindlessUninitOutUnused = kInstStageOutCnt + 2;
|
|
||||||
static const int kInstBindlessUninitOutUnused2 = kInstStageOutCnt + 3;
|
|
||||||
static const int kInstBindlessUninitOutCnt = kInstStageOutCnt + 4;
|
|
||||||
|
|
||||||
// A buffer out-of-bounds error will output the descriptor
|
|
||||||
// index, the buffer offset and the buffer size
|
|
||||||
static const int kInstBindlessBuffOOBOutDescIndex = kInstStageOutCnt + 1;
|
|
||||||
static const int kInstBindlessBuffOOBOutBuffOff = kInstStageOutCnt + 2;
|
|
||||||
static const int kInstBindlessBuffOOBOutBuffSize = kInstStageOutCnt + 3;
|
|
||||||
static const int kInstBindlessBuffOOBOutCnt = kInstStageOutCnt + 4;
|
|
||||||
|
|
||||||
// A buffer address unalloc error will output the 64-bit pointer in
|
|
||||||
// two 32-bit pieces, lower bits first.
|
|
||||||
static const int kInstBuffAddrUnallocOutDescPtrLo = kInstStageOutCnt + 1;
|
|
||||||
static const int kInstBuffAddrUnallocOutDescPtrHi = kInstStageOutCnt + 2;
|
|
||||||
static const int kInstBuffAddrUnallocOutCnt = kInstStageOutCnt + 3;
|
|
||||||
|
|
||||||
// Maximum Output Record Member Count
|
|
||||||
static const int kInstMaxOutCnt = kInstStageOutCnt + 4;
|
|
||||||
|
|
||||||
// Validation Error Codes
|
|
||||||
//
|
|
||||||
// These are the possible validation error codes.
|
|
||||||
static const int kInstErrorBindlessBounds = 0;
|
|
||||||
static const int kInstErrorBindlessUninit = 1;
|
|
||||||
static const int kInstErrorBuffAddrUnallocRef = 2;
|
|
||||||
// Deleted: static const int kInstErrorBindlessBuffOOB = 3;
|
|
||||||
// This comment will will remain for 2 releases to allow
|
|
||||||
// for the transition of all builds. Buffer OOB is
|
|
||||||
// generating the following four differentiated codes instead:
|
|
||||||
static const int kInstErrorBuffOOBUniform = 4;
|
|
||||||
static const int kInstErrorBuffOOBStorage = 5;
|
|
||||||
static const int kInstErrorBuffOOBUniformTexel = 6;
|
|
||||||
static const int kInstErrorBuffOOBStorageTexel = 7;
|
|
||||||
static const int kInstErrorMax = kInstErrorBuffOOBStorageTexel;
|
|
||||||
|
|
||||||
// Direct Input Buffer Offsets
|
|
||||||
//
|
|
||||||
// The following values provide member offsets into the input buffers
|
|
||||||
// consumed by InstrumentPass::GenDebugDirectRead(). This method is utilized
|
|
||||||
// by InstBindlessCheckPass.
|
|
||||||
//
|
|
||||||
// The only object in an input buffer is a runtime array of unsigned
|
|
||||||
// integers. Each validation will have its own formatting of this array.
|
|
||||||
static const int kDebugInputDataOffset = 0;
|
|
||||||
|
|
||||||
// Debug Buffer Bindings
|
// Debug Buffer Bindings
|
||||||
//
|
//
|
||||||
// These are the bindings for the different buffers which are
|
// These are the bindings for the different buffers which are
|
||||||
// read or written by the instrumentation passes.
|
// read or written by the instrumentation passes.
|
||||||
//
|
//
|
||||||
// This is the output buffer written by InstBindlessCheckPass,
|
|
||||||
// InstBuffAddrCheckPass, and possibly other future validations.
|
|
||||||
static const int kDebugOutputBindingStream = 0;
|
|
||||||
|
|
||||||
// The binding for the input buffer read by InstBindlessCheckPass.
|
|
||||||
static const int kDebugInputBindingBindless = 1;
|
|
||||||
|
|
||||||
// The binding for the input buffer read by InstBuffAddrCheckPass.
|
|
||||||
static const int kDebugInputBindingBuffAddr = 2;
|
|
||||||
|
|
||||||
// This is the output buffer written by InstDebugPrintfPass.
|
// This is the output buffer written by InstDebugPrintfPass.
|
||||||
static const int kDebugOutputPrintfStream = 3;
|
static const int kDebugOutputPrintfStream = 3;
|
||||||
|
|
||||||
// Bindless Validation Input Buffer Format
|
|
||||||
//
|
|
||||||
// An input buffer for bindless validation consists of a single array of
|
|
||||||
// unsigned integers we will call Data[]. This array is formatted as follows.
|
|
||||||
//
|
|
||||||
// At offset kDebugInputBindlessInitOffset in Data[] is a single uint which
|
|
||||||
// gives an offset to the start of the bindless initialization data. More
|
|
||||||
// specifically, if the following value is zero, we know that the descriptor at
|
|
||||||
// (set = s, binding = b, index = i) is not initialized; if the value is
|
|
||||||
// non-zero, and the descriptor points to a buffer, the value is the length of
|
|
||||||
// the buffer in bytes and can be used to check for out-of-bounds buffer
|
|
||||||
// references:
|
|
||||||
// Data[ i + Data[ b + Data[ s + Data[ kDebugInputBindlessInitOffset ] ] ] ]
|
|
||||||
static const int kDebugInputBindlessInitOffset = 0;
|
|
||||||
|
|
||||||
// At offset kDebugInputBindlessOffsetLengths is some number of uints which
|
|
||||||
// provide the bindless length data. More specifically, the number of
|
|
||||||
// descriptors at (set=s, binding=b) is:
|
|
||||||
// Data[ Data[ s + kDebugInputBindlessOffsetLengths ] + b ]
|
|
||||||
static const int kDebugInputBindlessOffsetLengths = 1;
|
|
||||||
|
|
||||||
// Buffer Device Address Input Buffer Format
|
|
||||||
//
|
|
||||||
// An input buffer for buffer device address validation consists of a single
|
|
||||||
// array of unsigned 64-bit integers we will call Data[]. This array is
|
|
||||||
// formatted as follows:
|
|
||||||
//
|
|
||||||
// At offset kDebugInputBuffAddrPtrOffset is a list of sorted valid buffer
|
|
||||||
// addresses. The list is terminated with the address 0xffffffffffffffff.
|
|
||||||
// If 0x0 is not a valid buffer address, this address is inserted at the
|
|
||||||
// start of the list.
|
|
||||||
//
|
|
||||||
static const int kDebugInputBuffAddrPtrOffset = 1;
|
|
||||||
//
|
|
||||||
// At offset kDebugInputBuffAddrLengthOffset in Data[] is a single uint64 which
|
|
||||||
// gives an offset to the start of the buffer length data. More
|
|
||||||
// specifically, for a buffer whose pointer is located at input buffer offset
|
|
||||||
// i, the length is located at:
|
|
||||||
//
|
|
||||||
// Data[ i - kDebugInputBuffAddrPtrOffset
|
|
||||||
// + Data[ kDebugInputBuffAddrLengthOffset ] ]
|
|
||||||
//
|
|
||||||
// The length associated with the 0xffffffffffffffff address is zero. If
|
|
||||||
// not a valid buffer, the length associated with the 0x0 address is zero.
|
|
||||||
static const int kDebugInputBuffAddrLengthOffset = 0;
|
|
||||||
|
|
||||||
} // namespace spvtools
|
} // namespace spvtools
|
||||||
|
|
||||||
#endif // INCLUDE_SPIRV_TOOLS_INSTRUMENT_HPP_
|
#endif // INCLUDE_SPIRV_TOOLS_INSTRUMENT_HPP_
|
||||||
|
|||||||
@@ -33,15 +33,19 @@ extern "C" {
|
|||||||
#else
|
#else
|
||||||
#define SPIRV_TOOLS_EXPORT __declspec(dllimport)
|
#define SPIRV_TOOLS_EXPORT __declspec(dllimport)
|
||||||
#endif
|
#endif
|
||||||
|
#define SPIRV_TOOLS_LOCAL
|
||||||
#else
|
#else
|
||||||
#if defined(SPIRV_TOOLS_IMPLEMENTATION)
|
#if defined(SPIRV_TOOLS_IMPLEMENTATION)
|
||||||
#define SPIRV_TOOLS_EXPORT __attribute__((visibility("default")))
|
#define SPIRV_TOOLS_EXPORT __attribute__((visibility("default")))
|
||||||
|
#define SPIRV_TOOLS_LOCAL __attribute__((visibility("hidden")))
|
||||||
#else
|
#else
|
||||||
#define SPIRV_TOOLS_EXPORT
|
#define SPIRV_TOOLS_EXPORT
|
||||||
|
#define SPIRV_TOOLS_LOCAL
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#define SPIRV_TOOLS_EXPORT
|
#define SPIRV_TOOLS_EXPORT
|
||||||
|
#define SPIRV_TOOLS_LOCAL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Helpers
|
// Helpers
|
||||||
@@ -143,6 +147,7 @@ typedef enum spv_operand_type_t {
|
|||||||
// may be larger than 32, which would require such a typed literal value to
|
// may be larger than 32, which would require such a typed literal value to
|
||||||
// occupy multiple SPIR-V words.
|
// occupy multiple SPIR-V words.
|
||||||
SPV_OPERAND_TYPE_TYPED_LITERAL_NUMBER,
|
SPV_OPERAND_TYPE_TYPED_LITERAL_NUMBER,
|
||||||
|
SPV_OPERAND_TYPE_LITERAL_FLOAT, // Always 32-bit float.
|
||||||
|
|
||||||
// Set 3: The literal string operand type.
|
// Set 3: The literal string operand type.
|
||||||
SPV_OPERAND_TYPE_LITERAL_STRING,
|
SPV_OPERAND_TYPE_LITERAL_STRING,
|
||||||
@@ -285,6 +290,28 @@ typedef enum spv_operand_type_t {
|
|||||||
// An optional packed vector format
|
// An optional packed vector format
|
||||||
SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT,
|
SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT,
|
||||||
|
|
||||||
|
// Concrete operand types for cooperative matrix.
|
||||||
|
SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS,
|
||||||
|
// An optional cooperative matrix operands
|
||||||
|
SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS,
|
||||||
|
SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT,
|
||||||
|
SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE,
|
||||||
|
|
||||||
|
// Enum type from SPV_INTEL_global_variable_fpga_decorations
|
||||||
|
SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER,
|
||||||
|
// Enum type from SPV_INTEL_global_variable_host_access
|
||||||
|
SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER,
|
||||||
|
// Enum type from SPV_INTEL_cache_controls
|
||||||
|
SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL,
|
||||||
|
// Enum type from SPV_INTEL_cache_controls
|
||||||
|
SPV_OPERAND_TYPE_STORE_CACHE_CONTROL,
|
||||||
|
// Enum type from SPV_INTEL_maximum_registers
|
||||||
|
SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS,
|
||||||
|
// Enum type from SPV_NV_raw_access_chains
|
||||||
|
SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS,
|
||||||
|
// Optional enum type from SPV_NV_raw_access_chains
|
||||||
|
SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS,
|
||||||
|
|
||||||
// This is a sentinel value, and does not represent an operand type.
|
// This is a sentinel value, and does not represent an operand type.
|
||||||
// It should come last.
|
// It should come last.
|
||||||
SPV_OPERAND_TYPE_NUM_OPERAND_TYPES,
|
SPV_OPERAND_TYPE_NUM_OPERAND_TYPES,
|
||||||
@@ -310,6 +337,7 @@ typedef enum spv_ext_inst_type_t {
|
|||||||
SPV_EXT_INST_TYPE_OPENCL_DEBUGINFO_100,
|
SPV_EXT_INST_TYPE_OPENCL_DEBUGINFO_100,
|
||||||
SPV_EXT_INST_TYPE_NONSEMANTIC_CLSPVREFLECTION,
|
SPV_EXT_INST_TYPE_NONSEMANTIC_CLSPVREFLECTION,
|
||||||
SPV_EXT_INST_TYPE_NONSEMANTIC_SHADER_DEBUGINFO_100,
|
SPV_EXT_INST_TYPE_NONSEMANTIC_SHADER_DEBUGINFO_100,
|
||||||
|
SPV_EXT_INST_TYPE_NONSEMANTIC_VKSPREFLECTION,
|
||||||
|
|
||||||
// Multiple distinct extended instruction set types could return this
|
// Multiple distinct extended instruction set types could return this
|
||||||
// value, if they are prefixed with NonSemantic. and are otherwise
|
// value, if they are prefixed with NonSemantic. and are otherwise
|
||||||
@@ -402,6 +430,19 @@ typedef struct spv_parsed_instruction_t {
|
|||||||
uint16_t num_operands;
|
uint16_t num_operands;
|
||||||
} spv_parsed_instruction_t;
|
} spv_parsed_instruction_t;
|
||||||
|
|
||||||
|
typedef struct spv_parsed_header_t {
|
||||||
|
// The magic number of the SPIR-V module.
|
||||||
|
uint32_t magic;
|
||||||
|
// Version number.
|
||||||
|
uint32_t version;
|
||||||
|
// Generator's magic number.
|
||||||
|
uint32_t generator;
|
||||||
|
// IDs bound for this module (0 < id < bound).
|
||||||
|
uint32_t bound;
|
||||||
|
// reserved.
|
||||||
|
uint32_t reserved;
|
||||||
|
} spv_parsed_header_t;
|
||||||
|
|
||||||
typedef struct spv_const_binary_t {
|
typedef struct spv_const_binary_t {
|
||||||
const uint32_t* code;
|
const uint32_t* code;
|
||||||
const size_t wordCount;
|
const size_t wordCount;
|
||||||
@@ -441,6 +482,8 @@ typedef struct spv_reducer_options_t spv_reducer_options_t;
|
|||||||
|
|
||||||
typedef struct spv_fuzzer_options_t spv_fuzzer_options_t;
|
typedef struct spv_fuzzer_options_t spv_fuzzer_options_t;
|
||||||
|
|
||||||
|
typedef struct spv_optimizer_t spv_optimizer_t;
|
||||||
|
|
||||||
// Type Definitions
|
// Type Definitions
|
||||||
|
|
||||||
typedef spv_const_binary_t* spv_const_binary;
|
typedef spv_const_binary_t* spv_const_binary;
|
||||||
@@ -900,6 +943,70 @@ SPIRV_TOOLS_EXPORT spv_result_t spvBinaryParse(
|
|||||||
const size_t num_words, spv_parsed_header_fn_t parse_header,
|
const size_t num_words, spv_parsed_header_fn_t parse_header,
|
||||||
spv_parsed_instruction_fn_t parse_instruction, spv_diagnostic* diagnostic);
|
spv_parsed_instruction_fn_t parse_instruction, spv_diagnostic* diagnostic);
|
||||||
|
|
||||||
|
// The optimizer interface.
|
||||||
|
|
||||||
|
// A pointer to a function that accepts a log message from an optimizer.
|
||||||
|
typedef void (*spv_message_consumer)(
|
||||||
|
spv_message_level_t, const char*, const spv_position_t*, const char*);
|
||||||
|
|
||||||
|
// Creates and returns an optimizer object. This object must be passed to
|
||||||
|
// optimizer APIs below and is valid until passed to spvOptimizerDestroy.
|
||||||
|
SPIRV_TOOLS_EXPORT spv_optimizer_t* spvOptimizerCreate(spv_target_env env);
|
||||||
|
|
||||||
|
// Destroys the given optimizer object.
|
||||||
|
SPIRV_TOOLS_EXPORT void spvOptimizerDestroy(spv_optimizer_t* optimizer);
|
||||||
|
|
||||||
|
// Sets an spv_message_consumer on an optimizer object.
|
||||||
|
SPIRV_TOOLS_EXPORT void spvOptimizerSetMessageConsumer(
|
||||||
|
spv_optimizer_t* optimizer, spv_message_consumer consumer);
|
||||||
|
|
||||||
|
// Registers passes that attempt to legalize the generated code.
|
||||||
|
SPIRV_TOOLS_EXPORT void spvOptimizerRegisterLegalizationPasses(
|
||||||
|
spv_optimizer_t* optimizer);
|
||||||
|
|
||||||
|
// Registers passes that attempt to improve performance of generated code.
|
||||||
|
SPIRV_TOOLS_EXPORT void spvOptimizerRegisterPerformancePasses(
|
||||||
|
spv_optimizer_t* optimizer);
|
||||||
|
|
||||||
|
// Registers passes that attempt to improve the size of generated code.
|
||||||
|
SPIRV_TOOLS_EXPORT void spvOptimizerRegisterSizePasses(
|
||||||
|
spv_optimizer_t* optimizer);
|
||||||
|
|
||||||
|
// Registers a pass specified by a flag in an optimizer object.
|
||||||
|
SPIRV_TOOLS_EXPORT bool spvOptimizerRegisterPassFromFlag(
|
||||||
|
spv_optimizer_t* optimizer, const char* flag);
|
||||||
|
|
||||||
|
// Registers passes specified by length number of flags in an optimizer object.
|
||||||
|
// Passes may remove interface variables that are unused.
|
||||||
|
SPIRV_TOOLS_EXPORT bool spvOptimizerRegisterPassesFromFlags(
|
||||||
|
spv_optimizer_t* optimizer, const char** flags, const size_t flag_count);
|
||||||
|
|
||||||
|
// Registers passes specified by length number of flags in an optimizer object.
|
||||||
|
// Passes will not remove interface variables.
|
||||||
|
SPIRV_TOOLS_EXPORT bool
|
||||||
|
spvOptimizerRegisterPassesFromFlagsWhilePreservingTheInterface(
|
||||||
|
spv_optimizer_t* optimizer, const char** flags, const size_t flag_count);
|
||||||
|
|
||||||
|
// Optimizes the SPIR-V code of size |word_count| pointed to by |binary| and
|
||||||
|
// returns an optimized spv_binary in |optimized_binary|.
|
||||||
|
//
|
||||||
|
// Returns SPV_SUCCESS on successful optimization, whether or not the module is
|
||||||
|
// modified. Returns an SPV_ERROR_* if the module fails to validate or if
|
||||||
|
// errors occur when processing using any of the registered passes. In that
|
||||||
|
// case, no further passes are executed and the |optimized_binary| contents may
|
||||||
|
// be invalid.
|
||||||
|
//
|
||||||
|
// By default, the binary is validated before any transforms are performed,
|
||||||
|
// and optionally after each transform. Validation uses SPIR-V spec rules
|
||||||
|
// for the SPIR-V version named in the binary's header (at word offset 1).
|
||||||
|
// Additionally, if the target environment is a client API (such as
|
||||||
|
// Vulkan 1.1), then validate for that client API version, to the extent
|
||||||
|
// that it is verifiable from data in the binary itself, or from the
|
||||||
|
// validator options set on the optimizer options.
|
||||||
|
SPIRV_TOOLS_EXPORT spv_result_t spvOptimizerRun(
|
||||||
|
spv_optimizer_t* optimizer, const uint32_t* binary, const size_t word_count,
|
||||||
|
spv_binary* optimized_binary, const spv_optimizer_options options);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+30
-7
@@ -31,8 +31,13 @@ using MessageConsumer = std::function<void(
|
|||||||
const spv_position_t& /* position */, const char* /* message */
|
const spv_position_t& /* position */, const char* /* message */
|
||||||
)>;
|
)>;
|
||||||
|
|
||||||
|
using HeaderParser = std::function<spv_result_t(
|
||||||
|
const spv_endianness_t endianess, const spv_parsed_header_t& instruction)>;
|
||||||
|
using InstructionParser =
|
||||||
|
std::function<spv_result_t(const spv_parsed_instruction_t& instruction)>;
|
||||||
|
|
||||||
// C++ RAII wrapper around the C context object spv_context.
|
// C++ RAII wrapper around the C context object spv_context.
|
||||||
class Context {
|
class SPIRV_TOOLS_EXPORT Context {
|
||||||
public:
|
public:
|
||||||
// Constructs a context targeting the given environment |env|.
|
// Constructs a context targeting the given environment |env|.
|
||||||
//
|
//
|
||||||
@@ -68,7 +73,7 @@ class Context {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// A RAII wrapper around a validator options object.
|
// A RAII wrapper around a validator options object.
|
||||||
class ValidatorOptions {
|
class SPIRV_TOOLS_EXPORT ValidatorOptions {
|
||||||
public:
|
public:
|
||||||
ValidatorOptions() : options_(spvValidatorOptionsCreate()) {}
|
ValidatorOptions() : options_(spvValidatorOptionsCreate()) {}
|
||||||
~ValidatorOptions() { spvValidatorOptionsDestroy(options_); }
|
~ValidatorOptions() { spvValidatorOptionsDestroy(options_); }
|
||||||
@@ -158,7 +163,7 @@ class ValidatorOptions {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// A C++ wrapper around an optimization options object.
|
// A C++ wrapper around an optimization options object.
|
||||||
class OptimizerOptions {
|
class SPIRV_TOOLS_EXPORT OptimizerOptions {
|
||||||
public:
|
public:
|
||||||
OptimizerOptions() : options_(spvOptimizerOptionsCreate()) {}
|
OptimizerOptions() : options_(spvOptimizerOptionsCreate()) {}
|
||||||
~OptimizerOptions() { spvOptimizerOptionsDestroy(options_); }
|
~OptimizerOptions() { spvOptimizerOptionsDestroy(options_); }
|
||||||
@@ -200,7 +205,7 @@ class OptimizerOptions {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// A C++ wrapper around a reducer options object.
|
// A C++ wrapper around a reducer options object.
|
||||||
class ReducerOptions {
|
class SPIRV_TOOLS_EXPORT ReducerOptions {
|
||||||
public:
|
public:
|
||||||
ReducerOptions() : options_(spvReducerOptionsCreate()) {}
|
ReducerOptions() : options_(spvReducerOptionsCreate()) {}
|
||||||
~ReducerOptions() { spvReducerOptionsDestroy(options_); }
|
~ReducerOptions() { spvReducerOptionsDestroy(options_); }
|
||||||
@@ -231,7 +236,7 @@ class ReducerOptions {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// A C++ wrapper around a fuzzer options object.
|
// A C++ wrapper around a fuzzer options object.
|
||||||
class FuzzerOptions {
|
class SPIRV_TOOLS_EXPORT FuzzerOptions {
|
||||||
public:
|
public:
|
||||||
FuzzerOptions() : options_(spvFuzzerOptionsCreate()) {}
|
FuzzerOptions() : options_(spvFuzzerOptionsCreate()) {}
|
||||||
~FuzzerOptions() { spvFuzzerOptionsDestroy(options_); }
|
~FuzzerOptions() { spvFuzzerOptionsDestroy(options_); }
|
||||||
@@ -278,7 +283,7 @@ class FuzzerOptions {
|
|||||||
// provides methods for assembling, disassembling, and validating.
|
// provides methods for assembling, disassembling, and validating.
|
||||||
//
|
//
|
||||||
// Instances of this class provide basic thread-safety guarantee.
|
// Instances of this class provide basic thread-safety guarantee.
|
||||||
class SpirvTools {
|
class SPIRV_TOOLS_EXPORT SpirvTools {
|
||||||
public:
|
public:
|
||||||
enum {
|
enum {
|
||||||
// Default assembling option used by assemble():
|
// Default assembling option used by assemble():
|
||||||
@@ -336,6 +341,23 @@ class SpirvTools {
|
|||||||
std::string* text,
|
std::string* text,
|
||||||
uint32_t options = kDefaultDisassembleOption) const;
|
uint32_t options = kDefaultDisassembleOption) const;
|
||||||
|
|
||||||
|
// Parses a SPIR-V binary, specified as counted sequence of 32-bit words.
|
||||||
|
// Parsing feedback is provided via two callbacks provided as std::function.
|
||||||
|
// In a valid parse the parsed-header callback is called once, and
|
||||||
|
// then the parsed-instruction callback is called once for each instruction
|
||||||
|
// in the stream.
|
||||||
|
// Returns true on successful parsing.
|
||||||
|
// If diagnostic is non-null, a diagnostic is emitted on failed parsing.
|
||||||
|
// If diagnostic is null the context's message consumer
|
||||||
|
// will be used to emit any errors. If a callback returns anything other than
|
||||||
|
// SPV_SUCCESS, then that status code is returned, no further callbacks are
|
||||||
|
// issued, and no additional diagnostics are emitted.
|
||||||
|
// This is a wrapper around the C API spvBinaryParse.
|
||||||
|
bool Parse(const std::vector<uint32_t>& binary,
|
||||||
|
const HeaderParser& header_parser,
|
||||||
|
const InstructionParser& instruction_parser,
|
||||||
|
spv_diagnostic* diagnostic = nullptr);
|
||||||
|
|
||||||
// Validates the given SPIR-V |binary|. Returns true if no issues are found.
|
// Validates the given SPIR-V |binary|. Returns true if no issues are found.
|
||||||
// Otherwise, returns false and communicates issues via the message consumer
|
// Otherwise, returns false and communicates issues via the message consumer
|
||||||
// registered.
|
// registered.
|
||||||
@@ -366,7 +388,8 @@ class SpirvTools {
|
|||||||
bool IsValid() const;
|
bool IsValid() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct Impl; // Opaque struct for holding the data fields used by this class.
|
struct SPIRV_TOOLS_LOCAL
|
||||||
|
Impl; // Opaque struct for holding the data fields used by this class.
|
||||||
std::unique_ptr<Impl> impl_; // Unique pointer to implementation data.
|
std::unique_ptr<Impl> impl_; // Unique pointer to implementation data.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+19
-17
@@ -24,13 +24,8 @@
|
|||||||
|
|
||||||
namespace spvtools {
|
namespace spvtools {
|
||||||
|
|
||||||
class LinkerOptions {
|
class SPIRV_TOOLS_EXPORT LinkerOptions {
|
||||||
public:
|
public:
|
||||||
LinkerOptions()
|
|
||||||
: create_library_(false),
|
|
||||||
verify_ids_(false),
|
|
||||||
allow_partial_linkage_(false) {}
|
|
||||||
|
|
||||||
// Returns whether a library or an executable should be produced by the
|
// Returns whether a library or an executable should be produced by the
|
||||||
// linking phase.
|
// linking phase.
|
||||||
//
|
//
|
||||||
@@ -63,10 +58,16 @@ class LinkerOptions {
|
|||||||
allow_partial_linkage_ = allow_partial_linkage;
|
allow_partial_linkage_ = allow_partial_linkage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GetUseHighestVersion() const { return use_highest_version_; }
|
||||||
|
void SetUseHighestVersion(bool use_highest_vers) {
|
||||||
|
use_highest_version_ = use_highest_vers;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool create_library_;
|
bool create_library_{false};
|
||||||
bool verify_ids_;
|
bool verify_ids_{false};
|
||||||
bool allow_partial_linkage_;
|
bool allow_partial_linkage_{false};
|
||||||
|
bool use_highest_version_{false};
|
||||||
};
|
};
|
||||||
|
|
||||||
// Links one or more SPIR-V modules into a new SPIR-V module. That is, combine
|
// Links one or more SPIR-V modules into a new SPIR-V module. That is, combine
|
||||||
@@ -83,14 +84,15 @@ class LinkerOptions {
|
|||||||
// * Some entry points were defined multiple times;
|
// * Some entry points were defined multiple times;
|
||||||
// * Some imported symbols did not have an exported counterpart;
|
// * Some imported symbols did not have an exported counterpart;
|
||||||
// * Possibly other reasons.
|
// * Possibly other reasons.
|
||||||
spv_result_t Link(const Context& context,
|
SPIRV_TOOLS_EXPORT spv_result_t
|
||||||
const std::vector<std::vector<uint32_t>>& binaries,
|
Link(const Context& context, const std::vector<std::vector<uint32_t>>& binaries,
|
||||||
std::vector<uint32_t>* linked_binary,
|
std::vector<uint32_t>* linked_binary,
|
||||||
const LinkerOptions& options = LinkerOptions());
|
const LinkerOptions& options = LinkerOptions());
|
||||||
spv_result_t Link(const Context& context, const uint32_t* const* binaries,
|
SPIRV_TOOLS_EXPORT spv_result_t
|
||||||
const size_t* binary_sizes, size_t num_binaries,
|
Link(const Context& context, const uint32_t* const* binaries,
|
||||||
std::vector<uint32_t>* linked_binary,
|
const size_t* binary_sizes, size_t num_binaries,
|
||||||
const LinkerOptions& options = LinkerOptions());
|
std::vector<uint32_t>* linked_binary,
|
||||||
|
const LinkerOptions& options = LinkerOptions());
|
||||||
|
|
||||||
} // namespace spvtools
|
} // namespace spvtools
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -24,7 +24,7 @@ namespace spvtools {
|
|||||||
// provides a method for linting.
|
// provides a method for linting.
|
||||||
//
|
//
|
||||||
// Instances of this class provides basic thread-safety guarantee.
|
// Instances of this class provides basic thread-safety guarantee.
|
||||||
class Linter {
|
class SPIRV_TOOLS_EXPORT Linter {
|
||||||
public:
|
public:
|
||||||
explicit Linter(spv_target_env env);
|
explicit Linter(spv_target_env env);
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ class Linter {
|
|||||||
bool Run(const uint32_t* binary, size_t binary_size);
|
bool Run(const uint32_t* binary, size_t binary_size);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct Impl;
|
struct SPIRV_TOOLS_LOCAL Impl;
|
||||||
std::unique_ptr<Impl> impl_;
|
std::unique_ptr<Impl> impl_;
|
||||||
};
|
};
|
||||||
} // namespace spvtools
|
} // namespace spvtools
|
||||||
|
|||||||
+57
-19
@@ -37,14 +37,14 @@ struct DescriptorSetAndBinding;
|
|||||||
// provides methods for registering optimization passes and optimizing.
|
// provides methods for registering optimization passes and optimizing.
|
||||||
//
|
//
|
||||||
// Instances of this class provides basic thread-safety guarantee.
|
// Instances of this class provides basic thread-safety guarantee.
|
||||||
class Optimizer {
|
class SPIRV_TOOLS_EXPORT Optimizer {
|
||||||
public:
|
public:
|
||||||
// The token for an optimization pass. It is returned via one of the
|
// The token for an optimization pass. It is returned via one of the
|
||||||
// Create*Pass() standalone functions at the end of this header file and
|
// Create*Pass() standalone functions at the end of this header file and
|
||||||
// consumed by the RegisterPass() method. Tokens are one-time objects that
|
// consumed by the RegisterPass() method. Tokens are one-time objects that
|
||||||
// only support move; copying is not allowed.
|
// only support move; copying is not allowed.
|
||||||
struct PassToken {
|
struct PassToken {
|
||||||
struct Impl; // Opaque struct for holding internal data.
|
struct SPIRV_TOOLS_LOCAL Impl; // Opaque struct for holding internal data.
|
||||||
|
|
||||||
PassToken(std::unique_ptr<Impl>);
|
PassToken(std::unique_ptr<Impl>);
|
||||||
|
|
||||||
@@ -97,12 +97,20 @@ class Optimizer {
|
|||||||
// Registers passes that attempt to improve performance of generated code.
|
// Registers passes that attempt to improve performance of generated code.
|
||||||
// This sequence of passes is subject to constant review and will change
|
// This sequence of passes is subject to constant review and will change
|
||||||
// from time to time.
|
// from time to time.
|
||||||
|
//
|
||||||
|
// If |preserve_interface| is true, all non-io variables in the entry point
|
||||||
|
// interface are considered live and are not eliminated.
|
||||||
Optimizer& RegisterPerformancePasses();
|
Optimizer& RegisterPerformancePasses();
|
||||||
|
Optimizer& RegisterPerformancePasses(bool preserve_interface);
|
||||||
|
|
||||||
// Registers passes that attempt to improve the size of generated code.
|
// Registers passes that attempt to improve the size of generated code.
|
||||||
// This sequence of passes is subject to constant review and will change
|
// This sequence of passes is subject to constant review and will change
|
||||||
// from time to time.
|
// from time to time.
|
||||||
|
//
|
||||||
|
// If |preserve_interface| is true, all non-io variables in the entry point
|
||||||
|
// interface are considered live and are not eliminated.
|
||||||
Optimizer& RegisterSizePasses();
|
Optimizer& RegisterSizePasses();
|
||||||
|
Optimizer& RegisterSizePasses(bool preserve_interface);
|
||||||
|
|
||||||
// Registers passes that attempt to legalize the generated code.
|
// Registers passes that attempt to legalize the generated code.
|
||||||
//
|
//
|
||||||
@@ -112,7 +120,11 @@ class Optimizer {
|
|||||||
//
|
//
|
||||||
// This sequence of passes is subject to constant review and will change
|
// This sequence of passes is subject to constant review and will change
|
||||||
// from time to time.
|
// from time to time.
|
||||||
|
//
|
||||||
|
// If |preserve_interface| is true, all non-io variables in the entry point
|
||||||
|
// interface are considered live and are not eliminated.
|
||||||
Optimizer& RegisterLegalizationPasses();
|
Optimizer& RegisterLegalizationPasses();
|
||||||
|
Optimizer& RegisterLegalizationPasses(bool preserve_interface);
|
||||||
|
|
||||||
// Register passes specified in the list of |flags|. Each flag must be a
|
// Register passes specified in the list of |flags|. Each flag must be a
|
||||||
// string of a form accepted by Optimizer::FlagHasValidForm().
|
// string of a form accepted by Optimizer::FlagHasValidForm().
|
||||||
@@ -121,8 +133,13 @@ class Optimizer {
|
|||||||
// error message is emitted to the MessageConsumer object (use
|
// error message is emitted to the MessageConsumer object (use
|
||||||
// Optimizer::SetMessageConsumer to define a message consumer, if needed).
|
// Optimizer::SetMessageConsumer to define a message consumer, if needed).
|
||||||
//
|
//
|
||||||
|
// If |preserve_interface| is true, all non-io variables in the entry point
|
||||||
|
// interface are considered live and are not eliminated.
|
||||||
|
//
|
||||||
// If all the passes are registered successfully, it returns true.
|
// If all the passes are registered successfully, it returns true.
|
||||||
bool RegisterPassesFromFlags(const std::vector<std::string>& flags);
|
bool RegisterPassesFromFlags(const std::vector<std::string>& flags);
|
||||||
|
bool RegisterPassesFromFlags(const std::vector<std::string>& flags,
|
||||||
|
bool preserve_interface);
|
||||||
|
|
||||||
// Registers the optimization pass associated with |flag|. This only accepts
|
// Registers the optimization pass associated with |flag|. This only accepts
|
||||||
// |flag| values of the form "--pass_name[=pass_args]". If no such pass
|
// |flag| values of the form "--pass_name[=pass_args]". If no such pass
|
||||||
@@ -139,7 +156,11 @@ class Optimizer {
|
|||||||
//
|
//
|
||||||
// --legalize-hlsl: Registers all passes that legalize SPIR-V generated by an
|
// --legalize-hlsl: Registers all passes that legalize SPIR-V generated by an
|
||||||
// HLSL front-end.
|
// HLSL front-end.
|
||||||
|
//
|
||||||
|
// If |preserve_interface| is true, all non-io variables in the entry point
|
||||||
|
// interface are considered live and are not eliminated.
|
||||||
bool RegisterPassFromFlag(const std::string& flag);
|
bool RegisterPassFromFlag(const std::string& flag);
|
||||||
|
bool RegisterPassFromFlag(const std::string& flag, bool preserve_interface);
|
||||||
|
|
||||||
// Validates that |flag| has a valid format. Strings accepted:
|
// Validates that |flag| has a valid format. Strings accepted:
|
||||||
//
|
//
|
||||||
@@ -218,7 +239,7 @@ class Optimizer {
|
|||||||
Optimizer& SetValidateAfterAll(bool validate);
|
Optimizer& SetValidateAfterAll(bool validate);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct Impl; // Opaque struct for holding internal data.
|
struct SPIRV_TOOLS_LOCAL Impl; // Opaque struct for holding internal data.
|
||||||
std::unique_ptr<Impl> impl_; // Unique pointer to internal data.
|
std::unique_ptr<Impl> impl_; // Unique pointer to internal data.
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -525,8 +546,10 @@ Optimizer::PassToken CreateDeadInsertElimPass();
|
|||||||
// If |remove_outputs| is true, allow outputs to be removed from the interface.
|
// If |remove_outputs| is true, allow outputs to be removed from the interface.
|
||||||
// This is only safe if the caller knows that there is no corresponding input
|
// This is only safe if the caller knows that there is no corresponding input
|
||||||
// variable in the following shader. It is false by default.
|
// variable in the following shader. It is false by default.
|
||||||
Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface = false,
|
Optimizer::PassToken CreateAggressiveDCEPass();
|
||||||
bool remove_outputs = false);
|
Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface);
|
||||||
|
Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface,
|
||||||
|
bool remove_outputs);
|
||||||
|
|
||||||
// Creates a remove-unused-interface-variables pass.
|
// Creates a remove-unused-interface-variables pass.
|
||||||
// Removes variables referenced on the |OpEntryPoint| instruction that are not
|
// Removes variables referenced on the |OpEntryPoint| instruction that are not
|
||||||
@@ -746,19 +769,9 @@ Optimizer::PassToken CreateCombineAccessChainsPass();
|
|||||||
// potentially de-optimizing the instrument code, for example, inlining
|
// potentially de-optimizing the instrument code, for example, inlining
|
||||||
// the debug record output function throughout the module.
|
// the debug record output function throughout the module.
|
||||||
//
|
//
|
||||||
// The instrumentation will read and write buffers in debug
|
// The instrumentation will write |shader_id| in each output record
|
||||||
// descriptor set |desc_set|. It will write |shader_id| in each output record
|
|
||||||
// to identify the shader module which generated the record.
|
// to identify the shader module which generated the record.
|
||||||
// |desc_length_enable| controls instrumentation of runtime descriptor array
|
Optimizer::PassToken CreateInstBindlessCheckPass(uint32_t shader_id);
|
||||||
// references, |desc_init_enable| controls instrumentation of descriptor
|
|
||||||
// initialization checking, and |buff_oob_enable| controls instrumentation
|
|
||||||
// of storage and uniform buffer bounds checking, all of which require input
|
|
||||||
// buffer support. |texbuff_oob_enable| controls instrumentation of texel
|
|
||||||
// buffers, which does not require input buffer support.
|
|
||||||
Optimizer::PassToken CreateInstBindlessCheckPass(
|
|
||||||
uint32_t desc_set, uint32_t shader_id, bool desc_length_enable = false,
|
|
||||||
bool desc_init_enable = false, bool buff_oob_enable = false,
|
|
||||||
bool texbuff_oob_enable = false);
|
|
||||||
|
|
||||||
// Create a pass to instrument physical buffer address checking
|
// Create a pass to instrument physical buffer address checking
|
||||||
// This pass instruments all physical buffer address references to check that
|
// This pass instruments all physical buffer address references to check that
|
||||||
@@ -779,8 +792,7 @@ Optimizer::PassToken CreateInstBindlessCheckPass(
|
|||||||
// The instrumentation will read and write buffers in debug
|
// The instrumentation will read and write buffers in debug
|
||||||
// descriptor set |desc_set|. It will write |shader_id| in each output record
|
// descriptor set |desc_set|. It will write |shader_id| in each output record
|
||||||
// to identify the shader module which generated the record.
|
// to identify the shader module which generated the record.
|
||||||
Optimizer::PassToken CreateInstBuffAddrCheckPass(uint32_t desc_set,
|
Optimizer::PassToken CreateInstBuffAddrCheckPass(uint32_t shader_id);
|
||||||
uint32_t shader_id);
|
|
||||||
|
|
||||||
// Create a pass to instrument OpDebugPrintf instructions.
|
// Create a pass to instrument OpDebugPrintf instructions.
|
||||||
// This pass replaces all OpDebugPrintf instructions with instructions to write
|
// This pass replaces all OpDebugPrintf instructions with instructions to write
|
||||||
@@ -969,6 +981,32 @@ Optimizer::PassToken CreateRemoveDontInlinePass();
|
|||||||
// object, currently the pass would remove accesschain pointer argument passed
|
// object, currently the pass would remove accesschain pointer argument passed
|
||||||
// to the function
|
// to the function
|
||||||
Optimizer::PassToken CreateFixFuncCallArgumentsPass();
|
Optimizer::PassToken CreateFixFuncCallArgumentsPass();
|
||||||
|
|
||||||
|
// Creates a trim-capabilities pass.
|
||||||
|
// This pass removes unused capabilities for a given module, and if possible,
|
||||||
|
// associated extensions.
|
||||||
|
// See `trim_capabilities.h` for the list of supported capabilities.
|
||||||
|
//
|
||||||
|
// If the module contains unsupported capabilities, this pass will ignore them.
|
||||||
|
// This should be fine in most cases, but could yield to incorrect results if
|
||||||
|
// the unknown capability interacts with one of the trimmed capabilities.
|
||||||
|
Optimizer::PassToken CreateTrimCapabilitiesPass();
|
||||||
|
|
||||||
|
// Creates a switch-descriptorset pass.
|
||||||
|
// This pass changes any DescriptorSet decorations with the value |ds_from| to
|
||||||
|
// use the new value |ds_to|.
|
||||||
|
Optimizer::PassToken CreateSwitchDescriptorSetPass(uint32_t ds_from,
|
||||||
|
uint32_t ds_to);
|
||||||
|
|
||||||
|
// Creates an invocation interlock placement pass.
|
||||||
|
// This pass ensures that an entry point will have at most one
|
||||||
|
// OpBeginInterlockInvocationEXT and one OpEndInterlockInvocationEXT, in that
|
||||||
|
// order.
|
||||||
|
Optimizer::PassToken CreateInvocationInterlockPlacementPass();
|
||||||
|
|
||||||
|
// Creates a pass to add/remove maximal reconvergence execution mode.
|
||||||
|
// This pass either adds or removes maximal reconvergence from all entry points.
|
||||||
|
Optimizer::PassToken CreateModifyMaximalReconvergencePass(bool add);
|
||||||
} // namespace spvtools
|
} // namespace spvtools
|
||||||
|
|
||||||
#endif // INCLUDE_SPIRV_TOOLS_OPTIMIZER_HPP_
|
#endif // INCLUDE_SPIRV_TOOLS_OPTIMIZER_HPP_
|
||||||
|
|||||||
@@ -23,6 +23,11 @@ set -x
|
|||||||
BUILD_ROOT=$PWD
|
BUILD_ROOT=$PWD
|
||||||
SRC=$PWD/github/SPIRV-Tools
|
SRC=$PWD/github/SPIRV-Tools
|
||||||
|
|
||||||
|
# This is required to run any git command in the docker since owner will
|
||||||
|
# have changed between the clone environment, and the docker container.
|
||||||
|
# Marking the root of the repo as safe for ownership changes.
|
||||||
|
git config --global --add safe.directory $SRC
|
||||||
|
|
||||||
# Get clang-format-5.0.0.
|
# Get clang-format-5.0.0.
|
||||||
# Once kokoro upgrades the Ubuntu VMs, we can use 'apt-get install clang-format'
|
# Once kokoro upgrades the Ubuntu VMs, we can use 'apt-get install clang-format'
|
||||||
curl -L http://releases.llvm.org/5.0.0/clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz -o clang-llvm.tar.xz
|
curl -L http://releases.llvm.org/5.0.0/clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz -o clang-llvm.tar.xz
|
||||||
|
|||||||
@@ -22,4 +22,3 @@ set -x
|
|||||||
|
|
||||||
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
|
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
|
||||||
source $SCRIPT_DIR/../scripts/macos/build.sh Debug
|
source $SCRIPT_DIR/../scripts/macos/build.sh Debug
|
||||||
|
|
||||||
|
|||||||
@@ -24,21 +24,22 @@ CC=clang
|
|||||||
CXX=clang++
|
CXX=clang++
|
||||||
SRC=$PWD/github/SPIRV-Tools
|
SRC=$PWD/github/SPIRV-Tools
|
||||||
|
|
||||||
cd $SRC
|
# This is required to run any git command in the docker since owner will
|
||||||
git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers
|
# have changed between the clone environment, and the docker container.
|
||||||
git clone https://github.com/google/googletest external/googletest
|
# Marking the root of the repo as safe for ownership changes.
|
||||||
cd external && cd googletest && git reset --hard 1fb1bb23bb8418dc73a5a9a82bbed31dc610fec7 && cd .. && cd ..
|
git config --global --add safe.directory $SRC
|
||||||
git clone --depth=1 https://github.com/google/effcee external/effcee
|
|
||||||
git clone --depth=1 https://github.com/google/re2 external/re2
|
|
||||||
|
|
||||||
# Get bazel 5.0.0
|
cd $SRC
|
||||||
gsutil cp gs://bazel/5.0.0/release/bazel-5.0.0-darwin-x86_64 .
|
/usr/bin/python3 utils/git-sync-deps --treeless
|
||||||
chmod +x bazel-5.0.0-darwin-x86_64
|
|
||||||
|
# Get bazel 7.0.2
|
||||||
|
gsutil cp gs://bazel/7.0.2/release/bazel-7.0.2-darwin-x86_64 .
|
||||||
|
chmod +x bazel-7.0.2-darwin-x86_64
|
||||||
|
|
||||||
echo $(date): Build everything...
|
echo $(date): Build everything...
|
||||||
./bazel-5.0.0-darwin-x86_64 build :all
|
./bazel-7.0.2-darwin-x86_64 build --cxxopt=-std=c++17 :all
|
||||||
echo $(date): Build completed.
|
echo $(date): Build completed.
|
||||||
|
|
||||||
echo $(date): Starting bazel test...
|
echo $(date): Starting bazel test...
|
||||||
./bazel-5.0.0-darwin-x86_64 test :all
|
./bazel-7.0.2-darwin-x86_64 test --cxxopt=-std=c++17 :all
|
||||||
echo $(date): Bazel test completed.
|
echo $(date): Bazel test completed.
|
||||||
|
|||||||
@@ -22,4 +22,3 @@ set -x
|
|||||||
|
|
||||||
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
|
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
|
||||||
source $SCRIPT_DIR/../scripts/macos/build.sh RelWithDebInfo
|
source $SCRIPT_DIR/../scripts/macos/build.sh RelWithDebInfo
|
||||||
|
|
||||||
|
|||||||
+17
-21
@@ -20,6 +20,11 @@ set -e
|
|||||||
# Display commands being run.
|
# Display commands being run.
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
|
# This is required to run any git command in the docker since owner will
|
||||||
|
# have changed between the clone environment, and the docker container.
|
||||||
|
# Marking the root of the repo as safe for ownership changes.
|
||||||
|
git config --global --add safe.directory $ROOT_DIR
|
||||||
|
|
||||||
. /bin/using.sh # Declare the bash `using` function for configuring toolchains.
|
. /bin/using.sh # Declare the bash `using` function for configuring toolchains.
|
||||||
|
|
||||||
if [ $COMPILER = "clang" ]; then
|
if [ $COMPILER = "clang" ]; then
|
||||||
@@ -30,14 +35,6 @@ fi
|
|||||||
|
|
||||||
cd $ROOT_DIR
|
cd $ROOT_DIR
|
||||||
|
|
||||||
function clone_if_missing() {
|
|
||||||
url=$1
|
|
||||||
dir=$2
|
|
||||||
if [[ ! -d "$dir" ]]; then
|
|
||||||
git clone ${@:3} "$url" "$dir"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function clean_dir() {
|
function clean_dir() {
|
||||||
dir=$1
|
dir=$1
|
||||||
if [[ -d "$dir" ]]; then
|
if [[ -d "$dir" ]]; then
|
||||||
@@ -46,12 +43,10 @@ function clean_dir() {
|
|||||||
mkdir "$dir"
|
mkdir "$dir"
|
||||||
}
|
}
|
||||||
|
|
||||||
clone_if_missing https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers --depth=1
|
if [ $TOOL != "cmake-smoketest" ]; then
|
||||||
clone_if_missing https://github.com/google/googletest external/googletest
|
# Get source for dependencies, as specified in the DEPS file
|
||||||
pushd external/googletest; git reset --hard 1fb1bb23bb8418dc73a5a9a82bbed31dc610fec7; popd
|
/usr/bin/python3 utils/git-sync-deps --treeless
|
||||||
clone_if_missing https://github.com/google/effcee external/effcee --depth=1
|
fi
|
||||||
clone_if_missing https://github.com/google/re2 external/re2 --depth=1
|
|
||||||
clone_if_missing https://github.com/protocolbuffers/protobuf external/protobuf --branch v3.13.0.1
|
|
||||||
|
|
||||||
if [ $TOOL = "cmake" ]; then
|
if [ $TOOL = "cmake" ]; then
|
||||||
using cmake-3.17.2
|
using cmake-3.17.2
|
||||||
@@ -136,6 +131,7 @@ elif [ $TOOL = "cmake-smoketest" ]; then
|
|||||||
git clone https://github.com/KhronosGroup/SPIRV-Headers.git spirv-headers
|
git clone https://github.com/KhronosGroup/SPIRV-Headers.git spirv-headers
|
||||||
git clone https://github.com/google/re2
|
git clone https://github.com/google/re2
|
||||||
git clone https://github.com/google/effcee
|
git clone https://github.com/google/effcee
|
||||||
|
git clone https://github.com/abseil/abseil-cpp abseil_cpp
|
||||||
|
|
||||||
cd $SHADERC_DIR
|
cd $SHADERC_DIR
|
||||||
mkdir build
|
mkdir build
|
||||||
@@ -146,7 +142,7 @@ elif [ $TOOL = "cmake-smoketest" ]; then
|
|||||||
cmake -GNinja -DRE2_BUILD_TESTING=OFF -DCMAKE_BUILD_TYPE="Release" ..
|
cmake -GNinja -DRE2_BUILD_TESTING=OFF -DCMAKE_BUILD_TYPE="Release" ..
|
||||||
|
|
||||||
echo $(date): Build glslang...
|
echo $(date): Build glslang...
|
||||||
ninja glslangValidator
|
ninja glslang-standalone
|
||||||
|
|
||||||
echo $(date): Build everything...
|
echo $(date): Build everything...
|
||||||
ninja
|
ninja
|
||||||
@@ -160,7 +156,7 @@ elif [ $TOOL = "cmake-smoketest" ]; then
|
|||||||
echo $(date): ctest completed.
|
echo $(date): ctest completed.
|
||||||
elif [ $TOOL = "cmake-android-ndk" ]; then
|
elif [ $TOOL = "cmake-android-ndk" ]; then
|
||||||
using cmake-3.17.2
|
using cmake-3.17.2
|
||||||
using ndk-r21d
|
using ndk-r25c
|
||||||
using ninja-1.10.0
|
using ninja-1.10.0
|
||||||
|
|
||||||
clean_dir "$ROOT_DIR/build"
|
clean_dir "$ROOT_DIR/build"
|
||||||
@@ -168,7 +164,7 @@ elif [ $TOOL = "cmake-android-ndk" ]; then
|
|||||||
|
|
||||||
echo $(date): Starting build...
|
echo $(date): Starting build...
|
||||||
cmake -DCMAKE_BUILD_TYPE=Release \
|
cmake -DCMAKE_BUILD_TYPE=Release \
|
||||||
-DANDROID_NATIVE_API_LEVEL=android-16 \
|
-DANDROID_NATIVE_API_LEVEL=android-24 \
|
||||||
-DANDROID_ABI="armeabi-v7a with NEON" \
|
-DANDROID_ABI="armeabi-v7a with NEON" \
|
||||||
-DSPIRV_SKIP_TESTS=ON \
|
-DSPIRV_SKIP_TESTS=ON \
|
||||||
-DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake" \
|
-DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake" \
|
||||||
@@ -180,7 +176,7 @@ elif [ $TOOL = "cmake-android-ndk" ]; then
|
|||||||
ninja
|
ninja
|
||||||
echo $(date): Build completed.
|
echo $(date): Build completed.
|
||||||
elif [ $TOOL = "android-ndk-build" ]; then
|
elif [ $TOOL = "android-ndk-build" ]; then
|
||||||
using ndk-r21d
|
using ndk-r25c
|
||||||
|
|
||||||
clean_dir "$ROOT_DIR/build"
|
clean_dir "$ROOT_DIR/build"
|
||||||
cd "$ROOT_DIR/build"
|
cd "$ROOT_DIR/build"
|
||||||
@@ -195,13 +191,13 @@ elif [ $TOOL = "android-ndk-build" ]; then
|
|||||||
|
|
||||||
echo $(date): ndk-build completed.
|
echo $(date): ndk-build completed.
|
||||||
elif [ $TOOL = "bazel" ]; then
|
elif [ $TOOL = "bazel" ]; then
|
||||||
using bazel-5.0.0
|
using bazel-7.0.2
|
||||||
|
|
||||||
echo $(date): Build everything...
|
echo $(date): Build everything...
|
||||||
bazel build :all
|
bazel build --cxxopt=-std=c++17 :all
|
||||||
echo $(date): Build completed.
|
echo $(date): Build completed.
|
||||||
|
|
||||||
echo $(date): Starting bazel test...
|
echo $(date): Starting bazel test...
|
||||||
bazel test :all
|
bazel test --cxxopt=-std=c++17 :all
|
||||||
echo $(date): Bazel test completed.
|
echo $(date): Bazel test completed.
|
||||||
fi
|
fi
|
||||||
|
|||||||
+17
-10
@@ -26,6 +26,18 @@ COMPILER=$2
|
|||||||
TOOL=$3
|
TOOL=$3
|
||||||
BUILD_SHA=${KOKORO_GITHUB_COMMIT:-$KOKORO_GITHUB_PULL_REQUEST_COMMIT}
|
BUILD_SHA=${KOKORO_GITHUB_COMMIT:-$KOKORO_GITHUB_PULL_REQUEST_COMMIT}
|
||||||
|
|
||||||
|
# chown the given directory to the current user, if it exists.
|
||||||
|
# Docker creates files with the root user - this can upset the Kokoro artifact copier.
|
||||||
|
function chown_dir() {
|
||||||
|
dir=$1
|
||||||
|
if [[ -d "$dir" ]]; then
|
||||||
|
sudo chown -R "$(id -u):$(id -g)" "$dir"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
set +e
|
||||||
|
# Allow build failures
|
||||||
|
|
||||||
# "--privileged" is required to run ptrace in the asan builds.
|
# "--privileged" is required to run ptrace in the asan builds.
|
||||||
docker run --rm -i \
|
docker run --rm -i \
|
||||||
--privileged \
|
--privileged \
|
||||||
@@ -41,16 +53,11 @@ docker run --rm -i \
|
|||||||
--env BUILD_SHA="${BUILD_SHA}" \
|
--env BUILD_SHA="${BUILD_SHA}" \
|
||||||
--entrypoint "${SCRIPT_DIR}/build-docker.sh" \
|
--entrypoint "${SCRIPT_DIR}/build-docker.sh" \
|
||||||
"gcr.io/shaderc-build/radial-build:latest"
|
"gcr.io/shaderc-build/radial-build:latest"
|
||||||
|
RESULT=$?
|
||||||
|
|
||||||
|
# This is important. If the permissions are not fixed, kokoro will fail
|
||||||
# chown the given directory to the current user, if it exists.
|
# to pull build artifacts, and put the build in tool-failure state, which
|
||||||
# Docker creates files with the root user - this can upset the Kokoro artifact copier.
|
# blocks the logs.
|
||||||
function chown_dir() {
|
|
||||||
dir=$1
|
|
||||||
if [[ -d "$dir" ]]; then
|
|
||||||
sudo chown -R "$(id -u):$(id -g)" "$dir"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
chown_dir "${ROOT_DIR}/build"
|
chown_dir "${ROOT_DIR}/build"
|
||||||
chown_dir "${ROOT_DIR}/external"
|
chown_dir "${ROOT_DIR}/external"
|
||||||
|
exit $RESULT
|
||||||
|
|||||||
+6
-6
@@ -24,6 +24,11 @@ BUILD_ROOT=$PWD
|
|||||||
SRC=$PWD/github/SPIRV-Tools
|
SRC=$PWD/github/SPIRV-Tools
|
||||||
BUILD_TYPE=$1
|
BUILD_TYPE=$1
|
||||||
|
|
||||||
|
# This is required to run any git command in the docker since owner will
|
||||||
|
# have changed between the clone environment, and the docker container.
|
||||||
|
# Marking the root of the repo as safe for ownership changes.
|
||||||
|
git config --global --add safe.directory $SRC
|
||||||
|
|
||||||
# Get NINJA.
|
# Get NINJA.
|
||||||
wget -q https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-mac.zip
|
wget -q https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-mac.zip
|
||||||
unzip -q ninja-mac.zip
|
unzip -q ninja-mac.zip
|
||||||
@@ -31,12 +36,7 @@ chmod +x ninja
|
|||||||
export PATH="$PWD:$PATH"
|
export PATH="$PWD:$PATH"
|
||||||
|
|
||||||
cd $SRC
|
cd $SRC
|
||||||
git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers
|
python3 utils/git-sync-deps --treeless
|
||||||
git clone https://github.com/google/googletest external/googletest
|
|
||||||
cd external && cd googletest && git reset --hard 1fb1bb23bb8418dc73a5a9a82bbed31dc610fec7 && cd .. && cd ..
|
|
||||||
git clone --depth=1 https://github.com/google/effcee external/effcee
|
|
||||||
git clone --depth=1 https://github.com/google/re2 external/re2
|
|
||||||
git clone --depth=1 --branch v3.13.0.1 https://github.com/protocolbuffers/protobuf external/protobuf
|
|
||||||
|
|
||||||
mkdir build && cd $SRC/build
|
mkdir build && cd $SRC/build
|
||||||
|
|
||||||
|
|||||||
+18
-15
@@ -24,26 +24,23 @@ set VS_VERSION=%2
|
|||||||
:: Force usage of python 3.6
|
:: Force usage of python 3.6
|
||||||
set PATH=C:\python36;"C:\Program Files\cmake-3.23.1-windows-x86_64\bin";%PATH%
|
set PATH=C:\python36;"C:\Program Files\cmake-3.23.1-windows-x86_64\bin";%PATH%
|
||||||
|
|
||||||
cd %SRC%
|
|
||||||
git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers
|
|
||||||
git clone https://github.com/google/googletest external/googletest
|
|
||||||
cd external && cd googletest && git reset --hard 1fb1bb23bb8418dc73a5a9a82bbed31dc610fec7 && cd .. && cd ..
|
|
||||||
git clone --depth=1 https://github.com/google/effcee external/effcee
|
|
||||||
git clone --depth=1 https://github.com/google/re2 external/re2
|
|
||||||
git clone --depth=1 --branch v3.13.0.1 https://github.com/protocolbuffers/protobuf external/protobuf
|
|
||||||
|
|
||||||
:: #########################################
|
:: #########################################
|
||||||
:: set up msvc build env
|
:: set up msvc build env
|
||||||
:: #########################################
|
:: #########################################
|
||||||
if %VS_VERSION% == 2017 (
|
if %VS_VERSION% == 2017 (
|
||||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
|
||||||
echo "Using VS 2017..."
|
echo "Using VS 2017..."
|
||||||
) else if %VS_VERSION% == 2015 (
|
|
||||||
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
|
:: RE2 does not support VS2017, we we must disable tests.
|
||||||
echo "Using VS 2015..."
|
set BUILD_TESTS=NO
|
||||||
|
) else if %VS_VERSION% == 2019 (
|
||||||
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
|
||||||
|
echo "Using VS 2019..."
|
||||||
)
|
)
|
||||||
|
|
||||||
cd %SRC%
|
cd %SRC%
|
||||||
|
python utils/git-sync-deps --treeless
|
||||||
|
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
@@ -62,6 +59,10 @@ set CMAKE_FLAGS=-DCMAKE_INSTALL_PREFIX=%KOKORO_ARTIFACTS_DIR%\install -GNinja -D
|
|||||||
:: Build spirv-fuzz
|
:: Build spirv-fuzz
|
||||||
set CMAKE_FLAGS=%CMAKE_FLAGS% -DSPIRV_BUILD_FUZZER=ON
|
set CMAKE_FLAGS=%CMAKE_FLAGS% -DSPIRV_BUILD_FUZZER=ON
|
||||||
|
|
||||||
|
if "%BUILD_TESTS%" == "NO" (
|
||||||
|
set CMAKE_FLAGS=-DSPIRV_SKIP_TESTS=ON %CMAKE_FLAGS%
|
||||||
|
)
|
||||||
|
|
||||||
cmake %CMAKE_FLAGS% ..
|
cmake %CMAKE_FLAGS% ..
|
||||||
|
|
||||||
if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
|
if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
|
||||||
@@ -77,10 +78,12 @@ setlocal ENABLEDELAYEDEXPANSION
|
|||||||
:: ################################################
|
:: ################################################
|
||||||
:: Run the tests
|
:: Run the tests
|
||||||
:: ################################################
|
:: ################################################
|
||||||
echo "Running Tests... %DATE% %TIME%"
|
if "%BUILD_TESTS%" NEQ "NO" (
|
||||||
ctest -C %BUILD_TYPE% --output-on-failure --timeout 300
|
echo "Running Tests... %DATE% %TIME%"
|
||||||
if !ERRORLEVEL! NEQ 0 exit /b !ERRORLEVEL!
|
ctest -C %BUILD_TYPE% --output-on-failure --timeout 300
|
||||||
echo "Tests Completed %DATE% %TIME%"
|
if !ERRORLEVEL! NEQ 0 exit /b !ERRORLEVEL!
|
||||||
|
echo "Tests Completed %DATE% %TIME%"
|
||||||
|
)
|
||||||
|
|
||||||
:: ################################################
|
:: ################################################
|
||||||
:: Install and package.
|
:: Install and package.
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
:: Copyright (c) 2018 Google LLC.
|
|
||||||
::
|
|
||||||
:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
:: you may not use this file except in compliance with the License.
|
|
||||||
:: You may obtain a copy of the License at
|
|
||||||
::
|
|
||||||
:: http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
::
|
|
||||||
:: Unless required by applicable law or agreed to in writing, software
|
|
||||||
:: distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
:: See the License for the specific language governing permissions and
|
|
||||||
:: limitations under the License.
|
|
||||||
::
|
|
||||||
:: Windows Build Script.
|
|
||||||
|
|
||||||
@echo on
|
|
||||||
|
|
||||||
:: Find out the directory of the common build script.
|
|
||||||
set SCRIPT_DIR=%~dp0
|
|
||||||
|
|
||||||
:: Call with correct parameter
|
|
||||||
call %SCRIPT_DIR%\..\scripts\windows\build.bat RelWithDebInfo 2013
|
|
||||||
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
:: Copyright (c) 2019 Google LLC.
|
|
||||||
::
|
|
||||||
:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
:: you may not use this file except in compliance with the License.
|
|
||||||
:: You may obtain a copy of the License at
|
|
||||||
::
|
|
||||||
:: http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
::
|
|
||||||
:: Unless required by applicable law or agreed to in writing, software
|
|
||||||
:: distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
:: See the License for the specific language governing permissions and
|
|
||||||
:: limitations under the License.
|
|
||||||
::
|
|
||||||
:: Windows Build Script.
|
|
||||||
|
|
||||||
@echo on
|
|
||||||
|
|
||||||
set SRC=%cd%\github\SPIRV-Tools
|
|
||||||
|
|
||||||
:: Force usage of python 3.6
|
|
||||||
set PATH=C:\python36;%PATH%
|
|
||||||
|
|
||||||
:: Get dependencies
|
|
||||||
cd %SRC%
|
|
||||||
git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers
|
|
||||||
git clone https://github.com/google/googletest external/googletest
|
|
||||||
cd external && cd googletest && git reset --hard 1fb1bb23bb8418dc73a5a9a82bbed31dc610fec7 && cd .. && cd ..
|
|
||||||
git clone --depth=1 https://github.com/google/effcee external/effcee
|
|
||||||
git clone --depth=1 https://github.com/google/re2 external/re2
|
|
||||||
|
|
||||||
:: REM Install Bazel.
|
|
||||||
wget -q https://github.com/bazelbuild/bazel/releases/download/5.0.0/bazel-5.0.0-windows-x86_64.zip
|
|
||||||
unzip -q bazel-5.0.0-windows-x86_64.zip
|
|
||||||
|
|
||||||
:: Set up MSVC
|
|
||||||
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
|
|
||||||
set BAZEL_VS=C:\Program Files (x86)\Microsoft Visual Studio 14.0
|
|
||||||
set BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
|
|
||||||
set BAZEL_PYTHON=c:\tools\python2\python.exe
|
|
||||||
|
|
||||||
:: #########################################
|
|
||||||
:: Start building.
|
|
||||||
:: #########################################
|
|
||||||
echo "Build everything... %DATE% %TIME%"
|
|
||||||
bazel.exe build :all
|
|
||||||
if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
|
|
||||||
echo "Build Completed %DATE% %TIME%"
|
|
||||||
|
|
||||||
:: ##############
|
|
||||||
:: Run the tests
|
|
||||||
:: ##############
|
|
||||||
echo "Running Tests... %DATE% %TIME%"
|
|
||||||
bazel.exe test :all
|
|
||||||
if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
|
|
||||||
echo "Tests Completed %DATE% %TIME%"
|
|
||||||
|
|
||||||
exit /b 0
|
|
||||||
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
# Copyright (c) 2019 Google LLC.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# Presubmit build configuration.
|
|
||||||
build_file: "SPIRV-Tools/kokoro/windows-msvc-2015-release-bazel/build.bat"
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
# Copyright (c) 2018 Google LLC.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# Presubmit build configuration.
|
|
||||||
build_file: "SPIRV-Tools/kokoro/windows-msvc-2015-release/build.bat"
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
:: Copyright (c) 2019 Google LLC.
|
|
||||||
::
|
|
||||||
:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
:: you may not use this file except in compliance with the License.
|
|
||||||
:: You may obtain a copy of the License at
|
|
||||||
::
|
|
||||||
:: http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
::
|
|
||||||
:: Unless required by applicable law or agreed to in writing, software
|
|
||||||
:: distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
:: See the License for the specific language governing permissions and
|
|
||||||
:: limitations under the License.
|
|
||||||
::
|
|
||||||
:: Windows Build Script.
|
|
||||||
|
|
||||||
@echo on
|
|
||||||
|
|
||||||
set SRC=%cd%\github\SPIRV-Tools
|
|
||||||
|
|
||||||
:: Force usage of python 3.6
|
|
||||||
set PATH=C:\python36;%PATH%
|
|
||||||
|
|
||||||
:: Get dependencies
|
|
||||||
cd %SRC%
|
|
||||||
git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers
|
|
||||||
git clone https://github.com/google/googletest external/googletest
|
|
||||||
cd external && cd googletest && git reset --hard 1fb1bb23bb8418dc73a5a9a82bbed31dc610fec7 && cd .. && cd ..
|
|
||||||
git clone --depth=1 https://github.com/google/effcee external/effcee
|
|
||||||
git clone --depth=1 https://github.com/google/re2 external/re2
|
|
||||||
|
|
||||||
:: REM Install Bazel.
|
|
||||||
wget -q https://github.com/bazelbuild/bazel/releases/download/5.0.0/bazel-5.0.0-windows-x86_64.zip
|
|
||||||
unzip -q bazel-5.0.0-windows-x86_64.zip
|
|
||||||
|
|
||||||
:: Set up MSVC
|
|
||||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
|
|
||||||
set BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC
|
|
||||||
|
|
||||||
:: #########################################
|
|
||||||
:: Start building.
|
|
||||||
:: #########################################
|
|
||||||
echo "Build everything... %DATE% %TIME%"
|
|
||||||
bazel.exe build :all
|
|
||||||
if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
|
|
||||||
echo "Build Completed %DATE% %TIME%"
|
|
||||||
|
|
||||||
:: ##############
|
|
||||||
:: Run the tests
|
|
||||||
:: ##############
|
|
||||||
echo "Running Tests... %DATE% %TIME%"
|
|
||||||
bazel.exe test :all
|
|
||||||
if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
|
|
||||||
echo "Tests Completed %DATE% %TIME%"
|
|
||||||
|
|
||||||
exit /b 0
|
|
||||||
|
|
||||||
-16
@@ -1,16 +0,0 @@
|
|||||||
# Copyright (c) 2019 Google LLC.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# Continuous build configuration.
|
|
||||||
build_file: "SPIRV-Tools/kokoro/windows-msvc-2017-release-bazel/build.bat"
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
# Copyright (c) 2019 Google LLC.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# Presubmit build configuration.
|
|
||||||
build_file: "SPIRV-Tools/kokoro/windows-msvc-2017-release-bazel/build.bat"
|
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
:: Copyright (c) 2018 Google LLC.
|
:: Copyright (c) 2023 Google LLC
|
||||||
::
|
::
|
||||||
:: Licensed under the Apache License, Version 2.0 (the "License");
|
:: Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
:: you may not use this file except in compliance with the License.
|
:: you may not use this file except in compliance with the License.
|
||||||
@@ -20,4 +20,4 @@
|
|||||||
set SCRIPT_DIR=%~dp0
|
set SCRIPT_DIR=%~dp0
|
||||||
|
|
||||||
:: Call with correct parameter
|
:: Call with correct parameter
|
||||||
call %SCRIPT_DIR%\..\scripts\windows\build.bat Debug 2017
|
call %SCRIPT_DIR%\..\scripts\windows\build.bat Debug 2019
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2018 Google LLC.
|
# Copyright (c) 2023 Google LLC
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
# Continuous build configuration.
|
# Continuous build configuration.
|
||||||
build_file: "SPIRV-Tools/kokoro/windows-msvc-2017-debug/build.bat"
|
build_file: "SPIRV-Tools/kokoro/windows-msvc-2019-debug/build.bat"
|
||||||
|
|
||||||
action {
|
action {
|
||||||
define_artifacts {
|
define_artifacts {
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2018 Google LLC.
|
# Copyright (c) 2023 Google LLC
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@@ -13,4 +13,4 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
# Presubmit build configuration.
|
# Presubmit build configuration.
|
||||||
build_file: "SPIRV-Tools/kokoro/windows-msvc-2017-debug/build.bat"
|
build_file: "SPIRV-Tools/kokoro/windows-msvc-2019-debug/build.bat"
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
:: Copyright (c) 2018 Google LLC.
|
:: Copyright (c) 2023 Google LLC
|
||||||
::
|
::
|
||||||
:: Licensed under the Apache License, Version 2.0 (the "License");
|
:: Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
:: you may not use this file except in compliance with the License.
|
:: you may not use this file except in compliance with the License.
|
||||||
@@ -20,5 +20,5 @@
|
|||||||
set SCRIPT_DIR=%~dp0
|
set SCRIPT_DIR=%~dp0
|
||||||
|
|
||||||
:: Call with correct parameter
|
:: Call with correct parameter
|
||||||
call %SCRIPT_DIR%\..\scripts\windows\build.bat RelWithDebInfo 2015
|
call %SCRIPT_DIR%\..\scripts\windows\build.bat RelWithDebInfo 2019
|
||||||
|
|
||||||
+8
-2
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2018 Google LLC.
|
# Copyright (c) 2023 Google LLC.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@@ -13,4 +13,10 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
# Continuous build configuration.
|
# Continuous build configuration.
|
||||||
build_file: "SPIRV-Tools/kokoro/windows-msvc-2015-release/build.bat"
|
build_file: "SPIRV-Tools/kokoro/windows-msvc-2019-release/build.bat"
|
||||||
|
|
||||||
|
action {
|
||||||
|
define_artifacts {
|
||||||
|
regex: "install.zip"
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2018 Google LLC.
|
# Copyright (c) 2023 Google LLC.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@@ -13,4 +13,4 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
# Presubmit build configuration.
|
# Presubmit build configuration.
|
||||||
build_file: "SPIRV-Tools/kokoro/windows-msvc-2013-release/build.bat"
|
build_file: "SPIRV-Tools/kokoro/windows-msvc-2019-release/build.bat"
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user