Compare commits
1 Commits
ebridgewat
...
bjd/spirv-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5aded33477 |
6
third_party/spirv-headers/BUILD.bazel
vendored
6
third_party/spirv-headers/BUILD.bazel
vendored
@@ -81,6 +81,11 @@ filegroup(
|
||||
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(
|
||||
name = "spirv_ext_inst_nonsemantic_debugprintf_grammar_unified1",
|
||||
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/NonSemanticClspvReflection.h",
|
||||
"include/spirv/unified1/NonSemanticDebugPrintf.h",
|
||||
"include/spirv/unified1/NonSemanticVkspReflection.h",
|
||||
"include/spirv/unified1/OpenCL.std.h",
|
||||
],
|
||||
includes = ["include"],
|
||||
|
||||
3
third_party/spirv-headers/BUILD.gn
vendored
3
third_party/spirv-headers/BUILD.gn
vendored
@@ -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
|
||||
# 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/NonSemanticClspvReflection.h",
|
||||
"include/spirv/unified1/NonSemanticDebugPrintf.h",
|
||||
"include/spirv/unified1/NonSemanticVkspReflection.h",
|
||||
"include/spirv/unified1/OpenCL.std.h",
|
||||
"include/spirv/unified1/spirv.h",
|
||||
"include/spirv/unified1/spirv.hpp",
|
||||
|
||||
134
third_party/spirv-headers/CMakeLists.txt
vendored
134
third_party/spirv-headers/CMakeLists.txt
vendored
@@ -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
|
||||
# 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,
|
||||
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
|
||||
#
|
||||
# The SPIR-V headers from the SPIR-V Registry
|
||||
# https://www.khronos.org/registry/spir-v/
|
||||
#
|
||||
cmake_minimum_required(VERSION 3.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.
|
||||
#
|
||||
# Using this source tree directly from a CMake-based project:
|
||||
# 1. Add an add_subdirectory directive to include this sub directory.
|
||||
# 2. Use ${SPIRV-Headers_SOURCE_DIR}/include} in a target_include_directories
|
||||
# command.
|
||||
#
|
||||
# Installing the headers first, then using them with an implicit include
|
||||
# directory. To install the headers:
|
||||
# 1. mkdir build ; cd build
|
||||
# 2. cmake ..
|
||||
# 3. cmake --build . --target install
|
||||
|
||||
option(SPIRV_HEADERS_SKIP_EXAMPLES "Skip building examples" ON)
|
||||
|
||||
option(SPIRV_HEADERS_SKIP_INSTALL "Skip install" ON)
|
||||
|
||||
if(NOT ${SPIRV_HEADERS_SKIP_EXAMPLES})
|
||||
set(SPIRV_HEADERS_ENABLE_EXAMPLES ON)
|
||||
if (CMAKE_VERSION VERSION_LESS "3.21")
|
||||
# https://cmake.org/cmake/help/latest/variable/PROJECT_IS_TOP_LEVEL.html
|
||||
string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL)
|
||||
endif()
|
||||
|
||||
if(NOT ${SPIRV_HEADERS_SKIP_INSTALL})
|
||||
set(SPIRV_HEADERS_ENABLE_INSTALL ON)
|
||||
# legacy
|
||||
add_custom_target(install-headers
|
||||
COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv
|
||||
$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/include/spirv)
|
||||
add_library(SPIRV-Headers INTERFACE)
|
||||
add_library(SPIRV-Headers::SPIRV-Headers ALIAS SPIRV-Headers)
|
||||
target_include_directories(SPIRV-Headers INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
|
||||
|
||||
option(SPIRV_HEADERS_ENABLE_TESTS "Test SPIRV-Headers" OFF)
|
||||
option(SPIRV_HEADERS_ENABLE_INSTALL "Install SPIRV-Headers" OFF)
|
||||
|
||||
if(SPIRV_HEADERS_ENABLE_TESTS)
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
if (SPIRV_HEADERS_ENABLE_EXAMPLES)
|
||||
message(STATUS "Building SPIRV-Header examples")
|
||||
add_subdirectory(example)
|
||||
endif()
|
||||
|
||||
include(GNUInstallDirs)
|
||||
add_library(${PROJECT_NAME} INTERFACE)
|
||||
target_include_directories(${PROJECT_NAME} INTERFACE
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
)
|
||||
|
||||
# Installation
|
||||
|
||||
if (SPIRV_HEADERS_ENABLE_INSTALL)
|
||||
message(STATUS "Installing SPIRV-Header")
|
||||
|
||||
set(config_install_dir "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}")
|
||||
|
||||
set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
|
||||
|
||||
set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
|
||||
set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
|
||||
set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
|
||||
set(namespace "${PROJECT_NAME}::")
|
||||
|
||||
if(SPIRV_HEADERS_ENABLE_INSTALL)
|
||||
include(GNUInstallDirs)
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
if (NOT CMAKE_VERSION VERSION_LESS 3.14)
|
||||
set(arch_independent_str ARCH_INDEPENDENT)
|
||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
|
||||
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()
|
||||
write_basic_package_version_file(
|
||||
"${version_config}"
|
||||
COMPATIBILITY SameMajorVersion
|
||||
${arch_independent_str}
|
||||
)
|
||||
|
||||
configure_package_config_file(
|
||||
"cmake/Config.cmake.in"
|
||||
"${project_config}"
|
||||
INSTALL_DESTINATION "${config_install_dir}"
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS ${PROJECT_NAME}
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
)
|
||||
|
||||
install(
|
||||
DIRECTORY include/spirv
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
)
|
||||
|
||||
install(
|
||||
FILES "${project_config}" "${version_config}"
|
||||
DESTINATION "${config_install_dir}"
|
||||
)
|
||||
|
||||
install(
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
NAMESPACE "${namespace}"
|
||||
DESTINATION "${config_install_dir}"
|
||||
)
|
||||
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Headers.pc.in ${CMAKE_BINARY_DIR}/SPIRV-Headers.pc @ONLY)
|
||||
install(
|
||||
FILES "${CMAKE_BINARY_DIR}/SPIRV-Headers.pc"
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig
|
||||
)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Headers.pc.in ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Headers.pc @ONLY)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Headers.pc" DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig)
|
||||
endif()
|
||||
|
||||
80
third_party/spirv-headers/LICENSE
vendored
80
third_party/spirv-headers/LICENSE
vendored
@@ -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
|
||||
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,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
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.
|
||||
========================================================================
|
||||
|
||||
---
|
||||
|
||||
2
third_party/spirv-headers/README.md
vendored
2
third_party/spirv-headers/README.md
vendored
@@ -198,7 +198,7 @@ python3 bin/makeExtinstHeaders.py
|
||||
## License
|
||||
<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
|
||||
copy of this software and/or associated documentation files (the
|
||||
|
||||
13
third_party/spirv-headers/SECURITY.md
vendored
Normal file
13
third_party/spirv-headers/SECURITY.md
vendored
Normal file
@@ -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@")
|
||||
@@ -1,5 +1,4 @@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
|
||||
includedir=@SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR@
|
||||
|
||||
Name: SPIRV-Headers
|
||||
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)
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<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
|
||||
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="30" vendor="SpvGenTwo community" tool="SpvGenTwo SPIR-V IR Tools" comment="https://github.com/rAzoR8/SpvGenTwo"/>
|
||||
<id value="31" vendor="Google" tool="Skia SkSL" comment="Contact Ethan Nicholas, ethannicholas@google.com"/>
|
||||
<id value="32" vendor="TornadoVM" tool="SPIRV Beehive Toolkit" comment="https://github.com/beehive-lab/spirv-beehive-toolkit"/>
|
||||
<id value="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="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="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>
|
||||
|
||||
<!-- 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="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="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
|
||||
multiples of 64 starting at the lowest available point in this
|
||||
block and add a corresponding <ids> tag immediately above. Make
|
||||
sure to fill in the vendor attribute, and preferably add a contact
|
||||
person/address in a comment attribute. -->
|
||||
<!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
|
||||
<ids type="opcode" start="6464" end="65535" comment="Opcode range reservable for future use by vendors"/>
|
||||
<ids type="opcode" start="6656" end="65535" comment="Opcode range reservable for future use by vendors"/>
|
||||
<!-- 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="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="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
|
||||
multiples of 64 starting at the lowest available point in this
|
||||
block and add a corresponding <ids> tag immediately above. Make
|
||||
sure to fill in the vendor attribute, and preferably add a contact
|
||||
person/address in a comment attribute. -->
|
||||
<!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
|
||||
<ids type="enumerant" start="6528" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
|
||||
<ids type="enumerant" start="6656" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
|
||||
<!-- End reservations of enumerants -->
|
||||
|
||||
|
||||
@@ -196,8 +210,8 @@
|
||||
|
||||
<!-- Reserved loop control bits -->
|
||||
<ids type="LoopControl" start="0" end="15" vendor="Khronos" comment="Reserved LoopControl bits, not available to vendors - see the SPIR-V Specification"/>
|
||||
<ids type="LoopControl" start="16" end="25" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
|
||||
<ids type="LoopControl" start="26" end="30" comment="Unreserved bits reservable for use by vendors"/>
|
||||
<ids type="LoopControl" start="16" end="27" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
|
||||
<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"/>
|
||||
|
||||
|
||||
@@ -237,7 +251,8 @@
|
||||
<!-- Reserved FP fast math mode bits -->
|
||||
<ids type="FPFastMathMode" start="0" end="15" vendor="Khronos" comment="Reserved FPFastMathMode bits, not available to vendors - see the SPIR-V Specification"/>
|
||||
<ids type="FPFastMathMode" start="16" end="17" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
|
||||
<ids type="FPFastMathMode" start="18" end="31" comment="Unreserved bits reservable for use by vendors"/>
|
||||
<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 -->
|
||||
@@ -256,8 +271,8 @@
|
||||
|
||||
<!-- Reserved memory operand bits -->
|
||||
<ids type="MemoryOperand" start="0" end="15" vendor="Khronos" comment="Reserved MemoryOperand bits, not available to vendors - see the SPIR-V Specification"/>
|
||||
<ids type="MemoryOperand" start="16" end="17" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
|
||||
<ids type="MemoryOperand" start="18" end="30" comment="Unreserved bits reservable for use by vendors"/>
|
||||
<ids type="MemoryOperand" start="16" end="18" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
|
||||
<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"/>
|
||||
|
||||
<!-- 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
|
||||
// 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
|
||||
// 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
|
||||
// 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
|
||||
// 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
|
||||
// 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
|
||||
** of this software and/or associated documentation files (the "Materials"),
|
||||
|
||||
@@ -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
|
||||
// copy of this software and/or associated documentation files (the
|
||||
@@ -33,7 +33,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
enum {
|
||||
NonSemanticClspvReflectionRevision = 4,
|
||||
NonSemanticClspvReflectionRevision = 6,
|
||||
NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff
|
||||
};
|
||||
|
||||
@@ -73,10 +73,23 @@ enum NonSemanticClspvReflectionInstructions {
|
||||
NonSemanticClspvReflectionImageArgumentInfoChannelDataTypeUniform = 33,
|
||||
NonSemanticClspvReflectionArgumentStorageTexelBuffer = 34,
|
||||
NonSemanticClspvReflectionArgumentUniformTexelBuffer = 35,
|
||||
NonSemanticClspvReflectionConstantDataPointerPushConstant = 36,
|
||||
NonSemanticClspvReflectionProgramScopeVariablePointerPushConstant = 37,
|
||||
NonSemanticClspvReflectionPrintfInfo = 38,
|
||||
NonSemanticClspvReflectionPrintfBufferStorageBuffer = 39,
|
||||
NonSemanticClspvReflectionPrintfBufferPointerPushConstant = 40,
|
||||
NonSemanticClspvReflectionNormalizedSamplerMaskPushConstant = 41,
|
||||
NonSemanticClspvReflectionInstructionsMax = 0x7fffffff
|
||||
};
|
||||
|
||||
|
||||
enum NonSemanticClspvReflectionKernelPropertyFlags {
|
||||
NonSemanticClspvReflectionNone = 0x0,
|
||||
NonSemanticClspvReflectionMayUsePrintf = 0x1,
|
||||
NonSemanticClspvReflectionKernelPropertyFlagsMax = 0x7fffffff
|
||||
};
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
50
third_party/spirv-headers/include/spirv/unified1/NonSemanticDebugBreak.h
vendored
Normal file
50
third_party/spirv-headers/include/spirv/unified1/NonSemanticDebugBreak.h
vendored
Normal file
@@ -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
|
||||
// copy of this software and/or associated documentation files (the
|
||||
|
||||
@@ -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
|
||||
// of this software and/or associated documentation files (the "Materials"),
|
||||
|
||||
57
third_party/spirv-headers/include/spirv/unified1/NonSemanticVkspReflection.h
vendored
Normal file
57
third_party/spirv-headers/include/spirv/unified1/NonSemanticVkspReflection.h
vendored
Normal file
@@ -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
|
||||
** 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
|
||||
// of this software and/or associated documentation files (the "Materials"),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"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",
|
||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"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",
|
||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
{
|
||||
"revision" : 4,
|
||||
"revision" : 6,
|
||||
"instructions" : [
|
||||
{
|
||||
"opname" : "Kernel",
|
||||
"opcode" : 1,
|
||||
"operands" : [
|
||||
{ "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" : "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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
9
third_party/spirv-headers/include/spirv/unified1/extinst.nonsemantic.debugbreak.grammar.json
vendored
Normal file
9
third_party/spirv-headers/include/spirv/unified1/extinst.nonsemantic.debugbreak.grammar.json
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"revision" : 1,
|
||||
"instructions" : [
|
||||
{
|
||||
"opname" : "DebugBreak",
|
||||
"opcode" : 1
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"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",
|
||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||
|
||||
135
third_party/spirv-headers/include/spirv/unified1/extinst.nonsemantic.vkspreflection.grammar.json
vendored
Normal file
135
third_party/spirv-headers/include/spirv/unified1/extinst.nonsemantic.vkspreflection.grammar.json
vendored
Normal file
@@ -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,6 +1,6 @@
|
||||
{
|
||||
"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",
|
||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"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",
|
||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||
|
||||
@@ -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
|
||||
// of this software and/or associated documentation files (the "Materials"),
|
||||
@@ -66,6 +66,11 @@ namespace Spv
|
||||
HLSL = 5,
|
||||
CPP_for_OpenCL = 6,
|
||||
SYCL = 7,
|
||||
HERO_C = 8,
|
||||
NZSL = 9,
|
||||
WGSL = 10,
|
||||
Slang = 11,
|
||||
Zig = 12,
|
||||
}
|
||||
|
||||
[AllowDuplicates, CRepr] public enum ExecutionModel
|
||||
@@ -153,6 +158,9 @@ namespace Spv
|
||||
SubgroupsPerWorkgroupId = 37,
|
||||
LocalSizeId = 38,
|
||||
LocalSizeHintId = 39,
|
||||
NonCoherentColorAttachmentReadEXT = 4169,
|
||||
NonCoherentDepthAttachmentReadEXT = 4170,
|
||||
NonCoherentStencilAttachmentReadEXT = 4171,
|
||||
SubgroupUniformControlFlowKHR = 4421,
|
||||
PostDepthCoverage = 4446,
|
||||
DenormPreserve = 4459,
|
||||
@@ -162,12 +170,19 @@ namespace Spv
|
||||
RoundingModeRTZ = 4463,
|
||||
EarlyAndLateFragmentTestsAMD = 5017,
|
||||
StencilRefReplacingEXT = 5027,
|
||||
CoalescingAMDX = 5069,
|
||||
MaxNodeRecursionAMDX = 5071,
|
||||
StaticNumWorkgroupsAMDX = 5072,
|
||||
ShaderIndexAMDX = 5073,
|
||||
MaxNumWorkgroupsAMDX = 5077,
|
||||
StencilRefUnchangedFrontAMD = 5079,
|
||||
StencilRefGreaterFrontAMD = 5080,
|
||||
StencilRefLessFrontAMD = 5081,
|
||||
StencilRefUnchangedBackAMD = 5082,
|
||||
StencilRefGreaterBackAMD = 5083,
|
||||
StencilRefLessBackAMD = 5084,
|
||||
QuadDerivativesKHR = 5088,
|
||||
RequireFullQuadsKHR = 5089,
|
||||
OutputLinesEXT = 5269,
|
||||
OutputLinesNV = 5269,
|
||||
OutputPrimitivesEXT = 5270,
|
||||
@@ -192,8 +207,14 @@ namespace Spv
|
||||
NoGlobalOffsetINTEL = 5895,
|
||||
NumSIMDWorkitemsINTEL = 5896,
|
||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
||||
MaximallyReconvergesKHR = 6023,
|
||||
FPFastMathDefault = 6028,
|
||||
StreamingInterfaceINTEL = 6154,
|
||||
RegisterMapInterfaceINTEL = 6160,
|
||||
NamedBarrierCountINTEL = 6417,
|
||||
MaximumRegistersINTEL = 6461,
|
||||
MaximumRegistersIdINTEL = 6462,
|
||||
NamedMaximumRegistersINTEL = 6463,
|
||||
}
|
||||
|
||||
[AllowDuplicates, CRepr] public enum StorageClass
|
||||
@@ -211,6 +232,9 @@ namespace Spv
|
||||
AtomicCounter = 10,
|
||||
Image = 11,
|
||||
StorageBuffer = 12,
|
||||
TileImageEXT = 4172,
|
||||
NodePayloadAMDX = 5068,
|
||||
NodeOutputPayloadAMDX = 5076,
|
||||
CallableDataKHR = 5328,
|
||||
CallableDataNV = 5328,
|
||||
IncomingCallableDataKHR = 5329,
|
||||
@@ -241,6 +265,7 @@ namespace Spv
|
||||
Rect = 4,
|
||||
Buffer = 5,
|
||||
SubpassData = 6,
|
||||
TileImageDataEXT = 4173,
|
||||
}
|
||||
|
||||
[AllowDuplicates, CRepr] public enum SamplerAddressingMode
|
||||
@@ -347,6 +372,8 @@ namespace Spv
|
||||
Float = 14,
|
||||
UnormInt24 = 15,
|
||||
UnormInt101010_2 = 16,
|
||||
UnsignedIntRaw10EXT = 19,
|
||||
UnsignedIntRaw12EXT = 20,
|
||||
}
|
||||
|
||||
[AllowDuplicates, CRepr] public enum ImageOperandsShift
|
||||
@@ -405,8 +432,11 @@ namespace Spv
|
||||
NSZ = 2,
|
||||
AllowRecip = 3,
|
||||
Fast = 4,
|
||||
AllowContract = 16,
|
||||
AllowContractFastINTEL = 16,
|
||||
AllowReassoc = 17,
|
||||
AllowReassocINTEL = 17,
|
||||
AllowTransform = 18,
|
||||
}
|
||||
|
||||
[AllowDuplicates, CRepr] public enum FPFastMathModeMask
|
||||
@@ -417,8 +447,11 @@ namespace Spv
|
||||
NSZ = 0x00000004,
|
||||
AllowRecip = 0x00000008,
|
||||
Fast = 0x00000010,
|
||||
AllowContract = 0x00010000,
|
||||
AllowContractFastINTEL = 0x00010000,
|
||||
AllowReassoc = 0x00020000,
|
||||
AllowReassocINTEL = 0x00020000,
|
||||
AllowTransform = 0x00040000,
|
||||
}
|
||||
|
||||
[AllowDuplicates, CRepr] public enum FPRoundingMode
|
||||
@@ -507,7 +540,14 @@ namespace Spv
|
||||
MaxByteOffsetId = 47,
|
||||
NoSignedWrap = 4469,
|
||||
NoUnsignedWrap = 4470,
|
||||
WeightTextureQCOM = 4487,
|
||||
BlockMatchTextureQCOM = 4488,
|
||||
BlockMatchSamplerQCOM = 4499,
|
||||
ExplicitInterpAMD = 4999,
|
||||
NodeSharesPayloadLimitsWithAMDX = 5019,
|
||||
NodeMaxPayloadsAMDX = 5020,
|
||||
TrackFinishWritingAMDX = 5078,
|
||||
PayloadNodeNameAMDX = 5091,
|
||||
OverrideCoverageNV = 5248,
|
||||
PassthroughNV = 5250,
|
||||
ViewportRelativeNV = 5252,
|
||||
@@ -557,6 +597,9 @@ namespace Spv
|
||||
MergeINTEL = 5834,
|
||||
BankBitsINTEL = 5835,
|
||||
ForcePow2DepthINTEL = 5836,
|
||||
StridesizeINTEL = 5883,
|
||||
WordsizeINTEL = 5884,
|
||||
TrueDualPortINTEL = 5885,
|
||||
BurstCoalesceINTEL = 5899,
|
||||
CacheSizeINTEL = 5900,
|
||||
DontStaticallyCoalesceINTEL = 5901,
|
||||
@@ -575,6 +618,24 @@ namespace Spv
|
||||
SingleElementVectorINTEL = 6085,
|
||||
VectorComputeCallableFunctionINTEL = 6087,
|
||||
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
|
||||
@@ -650,6 +711,8 @@ namespace Spv
|
||||
BaryCoordSmoothSampleAMD = 4997,
|
||||
BaryCoordPullModelAMD = 4998,
|
||||
FragStencilRefEXT = 5014,
|
||||
CoalescedInputCountAMDX = 5021,
|
||||
ShaderIndexAMDX = 5073,
|
||||
ViewportMaskNV = 5253,
|
||||
SecondaryPositionNV = 5257,
|
||||
SecondaryViewportMaskNV = 5258,
|
||||
@@ -702,6 +765,9 @@ namespace Spv
|
||||
HitKindKHR = 5333,
|
||||
HitKindNV = 5333,
|
||||
CurrentRayTimeNV = 5334,
|
||||
HitTriangleVertexPositionsKHR = 5335,
|
||||
HitMicroTriangleVertexPositionsNV = 5337,
|
||||
HitMicroTriangleVertexBarycentricsNV = 5344,
|
||||
IncomingRayFlagsKHR = 5351,
|
||||
IncomingRayFlagsNV = 5351,
|
||||
RayGeometryIndexKHR = 5352,
|
||||
@@ -709,6 +775,8 @@ namespace Spv
|
||||
SMCountNV = 5375,
|
||||
WarpIDNV = 5376,
|
||||
SMIDNV = 5377,
|
||||
HitKindFrontFacingMicroTriangleNV = 5405,
|
||||
HitKindBackFacingMicroTriangleNV = 5406,
|
||||
CullMaskKHR = 6021,
|
||||
}
|
||||
|
||||
@@ -979,6 +1047,9 @@ namespace Spv
|
||||
ShaderViewportIndex = 70,
|
||||
UniformDecoration = 71,
|
||||
CoreBuiltinsARM = 4165,
|
||||
TileImageColorReadAccessEXT = 4166,
|
||||
TileImageDepthReadAccessEXT = 4167,
|
||||
TileImageStencilReadAccessEXT = 4168,
|
||||
FragmentShadingRateKHR = 4422,
|
||||
SubgroupBallotKHR = 4423,
|
||||
DrawParameters = 4427,
|
||||
@@ -1010,6 +1081,10 @@ namespace Spv
|
||||
RayQueryKHR = 4472,
|
||||
RayTraversalPrimitiveCullingKHR = 4478,
|
||||
RayTracingKHR = 4479,
|
||||
TextureSampleWeightedQCOM = 4484,
|
||||
TextureBoxFilterQCOM = 4485,
|
||||
TextureBlockMatchQCOM = 4486,
|
||||
TextureBlockMatch2QCOM = 4498,
|
||||
Float16ImageAMD = 5008,
|
||||
ImageGatherBiasLodAMD = 5009,
|
||||
FragmentMaskAMD = 5010,
|
||||
@@ -1017,6 +1092,8 @@ namespace Spv
|
||||
ImageReadWriteLodAMD = 5015,
|
||||
Int64ImageEXT = 5016,
|
||||
ShaderClockKHR = 5055,
|
||||
ShaderEnqueueAMDX = 5067,
|
||||
QuadControlKHR = 5087,
|
||||
SampleMaskOverrideCoverageNV = 5249,
|
||||
GeometryShaderPassthroughNV = 5251,
|
||||
ShaderViewportIndexLayerEXT = 5254,
|
||||
@@ -1058,6 +1135,7 @@ namespace Spv
|
||||
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||
RayTracingPositionFetchKHR = 5336,
|
||||
RayTracingNV = 5340,
|
||||
RayTracingMotionBlurNV = 5341,
|
||||
VulkanMemoryModel = 5345,
|
||||
@@ -1075,9 +1153,14 @@ namespace Spv
|
||||
FragmentShaderPixelInterlockEXT = 5378,
|
||||
DemoteToHelperInvocation = 5379,
|
||||
DemoteToHelperInvocationEXT = 5379,
|
||||
DisplacementMicromapNV = 5380,
|
||||
RayTracingOpacityMicromapEXT = 5381,
|
||||
ShaderInvocationReorderNV = 5383,
|
||||
BindlessTextureNV = 5390,
|
||||
RayQueryPositionFetchKHR = 5391,
|
||||
AtomicFloat16VectorNV = 5404,
|
||||
RayTracingDisplacementMicromapNV = 5409,
|
||||
RawAccessChainsNV = 5414,
|
||||
SubgroupShuffleINTEL = 5568,
|
||||
SubgroupBufferBlockIOINTEL = 5569,
|
||||
SubgroupImageBlockIOINTEL = 5570,
|
||||
@@ -1129,16 +1212,29 @@ namespace Spv
|
||||
DotProduct = 6019,
|
||||
DotProductKHR = 6019,
|
||||
RayCullMaskKHR = 6020,
|
||||
CooperativeMatrixKHR = 6022,
|
||||
BitInstructions = 6025,
|
||||
GroupNonUniformRotateKHR = 6026,
|
||||
FloatControls2 = 6029,
|
||||
AtomicFloat32AddEXT = 6033,
|
||||
AtomicFloat64AddEXT = 6034,
|
||||
LongConstantCompositeINTEL = 6089,
|
||||
LongCompositesINTEL = 6089,
|
||||
OptNoneINTEL = 6094,
|
||||
AtomicFloat16AddEXT = 6095,
|
||||
DebugInfoModuleINTEL = 6114,
|
||||
BFloat16ConversionINTEL = 6115,
|
||||
SplitBarrierINTEL = 6141,
|
||||
FPGAClusterAttributesV2INTEL = 6150,
|
||||
FPGAKernelAttributesv2INTEL = 6161,
|
||||
FPMaxErrorINTEL = 6169,
|
||||
FPGALatencyControlINTEL = 6171,
|
||||
FPGAArgumentInterfacesINTEL = 6174,
|
||||
GlobalVariableHostAccessINTEL = 6187,
|
||||
GlobalVariableFPGADecorationsINTEL = 6189,
|
||||
GroupUniformArithmeticKHR = 6400,
|
||||
MaskedGatherScatterINTEL = 6427,
|
||||
CacheControlsINTEL = 6441,
|
||||
RegisterLimitsINTEL = 6460,
|
||||
}
|
||||
|
||||
[AllowDuplicates, CRepr] public enum RayFlagsShift
|
||||
@@ -1246,6 +1342,87 @@ namespace Spv
|
||||
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
|
||||
{
|
||||
OpNop = 0,
|
||||
@@ -1592,6 +1769,9 @@ namespace Spv
|
||||
OpPtrEqual = 401,
|
||||
OpPtrNotEqual = 402,
|
||||
OpPtrDiff = 403,
|
||||
OpColorAttachmentReadEXT = 4160,
|
||||
OpDepthAttachmentReadEXT = 4161,
|
||||
OpStencilAttachmentReadEXT = 4162,
|
||||
OpTerminateInvocation = 4416,
|
||||
OpSubgroupBallotKHR = 4421,
|
||||
OpSubgroupFirstInvocationKHR = 4422,
|
||||
@@ -1617,6 +1797,11 @@ namespace Spv
|
||||
OpUDotAccSatKHR = 4454,
|
||||
OpSUDotAccSat = 4455,
|
||||
OpSUDotAccSatKHR = 4455,
|
||||
OpTypeCooperativeMatrixKHR = 4456,
|
||||
OpCooperativeMatrixLoadKHR = 4457,
|
||||
OpCooperativeMatrixStoreKHR = 4458,
|
||||
OpCooperativeMatrixMulAddKHR = 4459,
|
||||
OpCooperativeMatrixLengthKHR = 4460,
|
||||
OpTypeRayQueryKHR = 4472,
|
||||
OpRayQueryInitializeKHR = 4473,
|
||||
OpRayQueryTerminateKHR = 4474,
|
||||
@@ -1624,6 +1809,14 @@ namespace Spv
|
||||
OpRayQueryConfirmIntersectionKHR = 4476,
|
||||
OpRayQueryProceedKHR = 4477,
|
||||
OpRayQueryGetIntersectionTypeKHR = 4479,
|
||||
OpImageSampleWeightedQCOM = 4480,
|
||||
OpImageBoxFilterQCOM = 4481,
|
||||
OpImageBlockMatchSSDQCOM = 4482,
|
||||
OpImageBlockMatchSADQCOM = 4483,
|
||||
OpImageBlockMatchWindowSSDQCOM = 4500,
|
||||
OpImageBlockMatchWindowSADQCOM = 4501,
|
||||
OpImageBlockMatchGatherSSDQCOM = 4502,
|
||||
OpImageBlockMatchGatherSADQCOM = 4503,
|
||||
OpGroupIAddNonUniformAMD = 5000,
|
||||
OpGroupFAddNonUniformAMD = 5001,
|
||||
OpGroupFMinNonUniformAMD = 5002,
|
||||
@@ -1635,6 +1828,11 @@ namespace Spv
|
||||
OpFragmentMaskFetchAMD = 5011,
|
||||
OpFragmentFetchAMD = 5012,
|
||||
OpReadClockKHR = 5056,
|
||||
OpFinalizeNodePayloadsAMDX = 5075,
|
||||
OpFinishWritingNodePayloadAMDX = 5078,
|
||||
OpInitializeNodePayloadsAMDX = 5090,
|
||||
OpGroupNonUniformQuadAllKHR = 5110,
|
||||
OpGroupNonUniformQuadAnyKHR = 5111,
|
||||
OpHitObjectRecordHitMotionNV = 5249,
|
||||
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||
OpHitObjectRecordMissMotionNV = 5251,
|
||||
@@ -1673,6 +1871,8 @@ namespace Spv
|
||||
OpSetMeshOutputsEXT = 5295,
|
||||
OpGroupNonUniformPartitionNV = 5296,
|
||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||
OpFetchMicroTriangleVertexPositionNV = 5300,
|
||||
OpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||
OpReportIntersectionKHR = 5334,
|
||||
OpReportIntersectionNV = 5334,
|
||||
OpIgnoreIntersectionNV = 5335,
|
||||
@@ -1680,6 +1880,7 @@ namespace Spv
|
||||
OpTraceNV = 5337,
|
||||
OpTraceMotionNV = 5338,
|
||||
OpTraceRayMotionNV = 5339,
|
||||
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||
OpTypeAccelerationStructureKHR = 5341,
|
||||
OpTypeAccelerationStructureNV = 5341,
|
||||
OpExecuteCallableNV = 5344,
|
||||
@@ -1700,6 +1901,7 @@ namespace Spv
|
||||
OpConvertUToSampledImageNV = 5395,
|
||||
OpConvertSampledImageToUNV = 5396,
|
||||
OpSamplerImageAddressingModeNV = 5397,
|
||||
OpRawAccessChainNV = 5398,
|
||||
OpSubgroupShuffleINTEL = 5571,
|
||||
OpSubgroupShuffleDownINTEL = 5572,
|
||||
OpSubgroupShuffleUpINTEL = 5573,
|
||||
@@ -1941,6 +2143,9 @@ namespace Spv
|
||||
OpTypeStructContinuedINTEL = 6090,
|
||||
OpConstantCompositeContinuedINTEL = 6091,
|
||||
OpSpecConstantCompositeContinuedINTEL = 6092,
|
||||
OpCompositeConstructContinuedINTEL = 6096,
|
||||
OpConvertFToBF16INTEL = 6116,
|
||||
OpConvertBF16ToFINTEL = 6117,
|
||||
OpControlBarrierArriveINTEL = 6142,
|
||||
OpControlBarrierWaitINTEL = 6143,
|
||||
OpGroupIMulKHR = 6401,
|
||||
@@ -1951,6 +2156,8 @@ namespace Spv
|
||||
OpGroupLogicalAndKHR = 6406,
|
||||
OpGroupLogicalOrKHR = 6407,
|
||||
OpGroupLogicalXorKHR = 6408,
|
||||
OpMaskedGatherINTEL = 6428,
|
||||
OpMaskedScatterINTEL = 6429,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
// of this software and/or associated documentation files (the "Materials"),
|
||||
@@ -65,6 +65,11 @@ namespace Spv
|
||||
HLSL = 5,
|
||||
CPP_for_OpenCL = 6,
|
||||
SYCL = 7,
|
||||
HERO_C = 8,
|
||||
NZSL = 9,
|
||||
WGSL = 10,
|
||||
Slang = 11,
|
||||
Zig = 12,
|
||||
}
|
||||
|
||||
public enum ExecutionModel
|
||||
@@ -152,6 +157,9 @@ namespace Spv
|
||||
SubgroupsPerWorkgroupId = 37,
|
||||
LocalSizeId = 38,
|
||||
LocalSizeHintId = 39,
|
||||
NonCoherentColorAttachmentReadEXT = 4169,
|
||||
NonCoherentDepthAttachmentReadEXT = 4170,
|
||||
NonCoherentStencilAttachmentReadEXT = 4171,
|
||||
SubgroupUniformControlFlowKHR = 4421,
|
||||
PostDepthCoverage = 4446,
|
||||
DenormPreserve = 4459,
|
||||
@@ -161,12 +169,19 @@ namespace Spv
|
||||
RoundingModeRTZ = 4463,
|
||||
EarlyAndLateFragmentTestsAMD = 5017,
|
||||
StencilRefReplacingEXT = 5027,
|
||||
CoalescingAMDX = 5069,
|
||||
MaxNodeRecursionAMDX = 5071,
|
||||
StaticNumWorkgroupsAMDX = 5072,
|
||||
ShaderIndexAMDX = 5073,
|
||||
MaxNumWorkgroupsAMDX = 5077,
|
||||
StencilRefUnchangedFrontAMD = 5079,
|
||||
StencilRefGreaterFrontAMD = 5080,
|
||||
StencilRefLessFrontAMD = 5081,
|
||||
StencilRefUnchangedBackAMD = 5082,
|
||||
StencilRefGreaterBackAMD = 5083,
|
||||
StencilRefLessBackAMD = 5084,
|
||||
QuadDerivativesKHR = 5088,
|
||||
RequireFullQuadsKHR = 5089,
|
||||
OutputLinesEXT = 5269,
|
||||
OutputLinesNV = 5269,
|
||||
OutputPrimitivesEXT = 5270,
|
||||
@@ -191,8 +206,14 @@ namespace Spv
|
||||
NoGlobalOffsetINTEL = 5895,
|
||||
NumSIMDWorkitemsINTEL = 5896,
|
||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
||||
MaximallyReconvergesKHR = 6023,
|
||||
FPFastMathDefault = 6028,
|
||||
StreamingInterfaceINTEL = 6154,
|
||||
RegisterMapInterfaceINTEL = 6160,
|
||||
NamedBarrierCountINTEL = 6417,
|
||||
MaximumRegistersINTEL = 6461,
|
||||
MaximumRegistersIdINTEL = 6462,
|
||||
NamedMaximumRegistersINTEL = 6463,
|
||||
}
|
||||
|
||||
public enum StorageClass
|
||||
@@ -210,6 +231,9 @@ namespace Spv
|
||||
AtomicCounter = 10,
|
||||
Image = 11,
|
||||
StorageBuffer = 12,
|
||||
TileImageEXT = 4172,
|
||||
NodePayloadAMDX = 5068,
|
||||
NodeOutputPayloadAMDX = 5076,
|
||||
CallableDataKHR = 5328,
|
||||
CallableDataNV = 5328,
|
||||
IncomingCallableDataKHR = 5329,
|
||||
@@ -240,6 +264,7 @@ namespace Spv
|
||||
Rect = 4,
|
||||
Buffer = 5,
|
||||
SubpassData = 6,
|
||||
TileImageDataEXT = 4173,
|
||||
}
|
||||
|
||||
public enum SamplerAddressingMode
|
||||
@@ -346,6 +371,8 @@ namespace Spv
|
||||
Float = 14,
|
||||
UnormInt24 = 15,
|
||||
UnormInt101010_2 = 16,
|
||||
UnsignedIntRaw10EXT = 19,
|
||||
UnsignedIntRaw12EXT = 20,
|
||||
}
|
||||
|
||||
public enum ImageOperandsShift
|
||||
@@ -404,8 +431,11 @@ namespace Spv
|
||||
NSZ = 2,
|
||||
AllowRecip = 3,
|
||||
Fast = 4,
|
||||
AllowContract = 16,
|
||||
AllowContractFastINTEL = 16,
|
||||
AllowReassoc = 17,
|
||||
AllowReassocINTEL = 17,
|
||||
AllowTransform = 18,
|
||||
}
|
||||
|
||||
public enum FPFastMathModeMask
|
||||
@@ -416,8 +446,11 @@ namespace Spv
|
||||
NSZ = 0x00000004,
|
||||
AllowRecip = 0x00000008,
|
||||
Fast = 0x00000010,
|
||||
AllowContract = 0x00010000,
|
||||
AllowContractFastINTEL = 0x00010000,
|
||||
AllowReassoc = 0x00020000,
|
||||
AllowReassocINTEL = 0x00020000,
|
||||
AllowTransform = 0x00040000,
|
||||
}
|
||||
|
||||
public enum FPRoundingMode
|
||||
@@ -506,7 +539,14 @@ namespace Spv
|
||||
MaxByteOffsetId = 47,
|
||||
NoSignedWrap = 4469,
|
||||
NoUnsignedWrap = 4470,
|
||||
WeightTextureQCOM = 4487,
|
||||
BlockMatchTextureQCOM = 4488,
|
||||
BlockMatchSamplerQCOM = 4499,
|
||||
ExplicitInterpAMD = 4999,
|
||||
NodeSharesPayloadLimitsWithAMDX = 5019,
|
||||
NodeMaxPayloadsAMDX = 5020,
|
||||
TrackFinishWritingAMDX = 5078,
|
||||
PayloadNodeNameAMDX = 5091,
|
||||
OverrideCoverageNV = 5248,
|
||||
PassthroughNV = 5250,
|
||||
ViewportRelativeNV = 5252,
|
||||
@@ -556,6 +596,9 @@ namespace Spv
|
||||
MergeINTEL = 5834,
|
||||
BankBitsINTEL = 5835,
|
||||
ForcePow2DepthINTEL = 5836,
|
||||
StridesizeINTEL = 5883,
|
||||
WordsizeINTEL = 5884,
|
||||
TrueDualPortINTEL = 5885,
|
||||
BurstCoalesceINTEL = 5899,
|
||||
CacheSizeINTEL = 5900,
|
||||
DontStaticallyCoalesceINTEL = 5901,
|
||||
@@ -574,6 +617,24 @@ namespace Spv
|
||||
SingleElementVectorINTEL = 6085,
|
||||
VectorComputeCallableFunctionINTEL = 6087,
|
||||
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
|
||||
@@ -649,6 +710,8 @@ namespace Spv
|
||||
BaryCoordSmoothSampleAMD = 4997,
|
||||
BaryCoordPullModelAMD = 4998,
|
||||
FragStencilRefEXT = 5014,
|
||||
CoalescedInputCountAMDX = 5021,
|
||||
ShaderIndexAMDX = 5073,
|
||||
ViewportMaskNV = 5253,
|
||||
SecondaryPositionNV = 5257,
|
||||
SecondaryViewportMaskNV = 5258,
|
||||
@@ -701,6 +764,9 @@ namespace Spv
|
||||
HitKindKHR = 5333,
|
||||
HitKindNV = 5333,
|
||||
CurrentRayTimeNV = 5334,
|
||||
HitTriangleVertexPositionsKHR = 5335,
|
||||
HitMicroTriangleVertexPositionsNV = 5337,
|
||||
HitMicroTriangleVertexBarycentricsNV = 5344,
|
||||
IncomingRayFlagsKHR = 5351,
|
||||
IncomingRayFlagsNV = 5351,
|
||||
RayGeometryIndexKHR = 5352,
|
||||
@@ -708,6 +774,8 @@ namespace Spv
|
||||
SMCountNV = 5375,
|
||||
WarpIDNV = 5376,
|
||||
SMIDNV = 5377,
|
||||
HitKindFrontFacingMicroTriangleNV = 5405,
|
||||
HitKindBackFacingMicroTriangleNV = 5406,
|
||||
CullMaskKHR = 6021,
|
||||
}
|
||||
|
||||
@@ -978,6 +1046,9 @@ namespace Spv
|
||||
ShaderViewportIndex = 70,
|
||||
UniformDecoration = 71,
|
||||
CoreBuiltinsARM = 4165,
|
||||
TileImageColorReadAccessEXT = 4166,
|
||||
TileImageDepthReadAccessEXT = 4167,
|
||||
TileImageStencilReadAccessEXT = 4168,
|
||||
FragmentShadingRateKHR = 4422,
|
||||
SubgroupBallotKHR = 4423,
|
||||
DrawParameters = 4427,
|
||||
@@ -1009,6 +1080,10 @@ namespace Spv
|
||||
RayQueryKHR = 4472,
|
||||
RayTraversalPrimitiveCullingKHR = 4478,
|
||||
RayTracingKHR = 4479,
|
||||
TextureSampleWeightedQCOM = 4484,
|
||||
TextureBoxFilterQCOM = 4485,
|
||||
TextureBlockMatchQCOM = 4486,
|
||||
TextureBlockMatch2QCOM = 4498,
|
||||
Float16ImageAMD = 5008,
|
||||
ImageGatherBiasLodAMD = 5009,
|
||||
FragmentMaskAMD = 5010,
|
||||
@@ -1016,6 +1091,8 @@ namespace Spv
|
||||
ImageReadWriteLodAMD = 5015,
|
||||
Int64ImageEXT = 5016,
|
||||
ShaderClockKHR = 5055,
|
||||
ShaderEnqueueAMDX = 5067,
|
||||
QuadControlKHR = 5087,
|
||||
SampleMaskOverrideCoverageNV = 5249,
|
||||
GeometryShaderPassthroughNV = 5251,
|
||||
ShaderViewportIndexLayerEXT = 5254,
|
||||
@@ -1057,6 +1134,7 @@ namespace Spv
|
||||
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||
RayTracingPositionFetchKHR = 5336,
|
||||
RayTracingNV = 5340,
|
||||
RayTracingMotionBlurNV = 5341,
|
||||
VulkanMemoryModel = 5345,
|
||||
@@ -1074,9 +1152,14 @@ namespace Spv
|
||||
FragmentShaderPixelInterlockEXT = 5378,
|
||||
DemoteToHelperInvocation = 5379,
|
||||
DemoteToHelperInvocationEXT = 5379,
|
||||
DisplacementMicromapNV = 5380,
|
||||
RayTracingOpacityMicromapEXT = 5381,
|
||||
ShaderInvocationReorderNV = 5383,
|
||||
BindlessTextureNV = 5390,
|
||||
RayQueryPositionFetchKHR = 5391,
|
||||
AtomicFloat16VectorNV = 5404,
|
||||
RayTracingDisplacementMicromapNV = 5409,
|
||||
RawAccessChainsNV = 5414,
|
||||
SubgroupShuffleINTEL = 5568,
|
||||
SubgroupBufferBlockIOINTEL = 5569,
|
||||
SubgroupImageBlockIOINTEL = 5570,
|
||||
@@ -1128,16 +1211,29 @@ namespace Spv
|
||||
DotProduct = 6019,
|
||||
DotProductKHR = 6019,
|
||||
RayCullMaskKHR = 6020,
|
||||
CooperativeMatrixKHR = 6022,
|
||||
BitInstructions = 6025,
|
||||
GroupNonUniformRotateKHR = 6026,
|
||||
FloatControls2 = 6029,
|
||||
AtomicFloat32AddEXT = 6033,
|
||||
AtomicFloat64AddEXT = 6034,
|
||||
LongConstantCompositeINTEL = 6089,
|
||||
LongCompositesINTEL = 6089,
|
||||
OptNoneINTEL = 6094,
|
||||
AtomicFloat16AddEXT = 6095,
|
||||
DebugInfoModuleINTEL = 6114,
|
||||
BFloat16ConversionINTEL = 6115,
|
||||
SplitBarrierINTEL = 6141,
|
||||
FPGAClusterAttributesV2INTEL = 6150,
|
||||
FPGAKernelAttributesv2INTEL = 6161,
|
||||
FPMaxErrorINTEL = 6169,
|
||||
FPGALatencyControlINTEL = 6171,
|
||||
FPGAArgumentInterfacesINTEL = 6174,
|
||||
GlobalVariableHostAccessINTEL = 6187,
|
||||
GlobalVariableFPGADecorationsINTEL = 6189,
|
||||
GroupUniformArithmeticKHR = 6400,
|
||||
MaskedGatherScatterINTEL = 6427,
|
||||
CacheControlsINTEL = 6441,
|
||||
RegisterLimitsINTEL = 6460,
|
||||
}
|
||||
|
||||
public enum RayFlagsShift
|
||||
@@ -1245,6 +1341,87 @@ namespace Spv
|
||||
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
|
||||
{
|
||||
OpNop = 0,
|
||||
@@ -1591,6 +1768,9 @@ namespace Spv
|
||||
OpPtrEqual = 401,
|
||||
OpPtrNotEqual = 402,
|
||||
OpPtrDiff = 403,
|
||||
OpColorAttachmentReadEXT = 4160,
|
||||
OpDepthAttachmentReadEXT = 4161,
|
||||
OpStencilAttachmentReadEXT = 4162,
|
||||
OpTerminateInvocation = 4416,
|
||||
OpSubgroupBallotKHR = 4421,
|
||||
OpSubgroupFirstInvocationKHR = 4422,
|
||||
@@ -1616,6 +1796,11 @@ namespace Spv
|
||||
OpUDotAccSatKHR = 4454,
|
||||
OpSUDotAccSat = 4455,
|
||||
OpSUDotAccSatKHR = 4455,
|
||||
OpTypeCooperativeMatrixKHR = 4456,
|
||||
OpCooperativeMatrixLoadKHR = 4457,
|
||||
OpCooperativeMatrixStoreKHR = 4458,
|
||||
OpCooperativeMatrixMulAddKHR = 4459,
|
||||
OpCooperativeMatrixLengthKHR = 4460,
|
||||
OpTypeRayQueryKHR = 4472,
|
||||
OpRayQueryInitializeKHR = 4473,
|
||||
OpRayQueryTerminateKHR = 4474,
|
||||
@@ -1623,6 +1808,14 @@ namespace Spv
|
||||
OpRayQueryConfirmIntersectionKHR = 4476,
|
||||
OpRayQueryProceedKHR = 4477,
|
||||
OpRayQueryGetIntersectionTypeKHR = 4479,
|
||||
OpImageSampleWeightedQCOM = 4480,
|
||||
OpImageBoxFilterQCOM = 4481,
|
||||
OpImageBlockMatchSSDQCOM = 4482,
|
||||
OpImageBlockMatchSADQCOM = 4483,
|
||||
OpImageBlockMatchWindowSSDQCOM = 4500,
|
||||
OpImageBlockMatchWindowSADQCOM = 4501,
|
||||
OpImageBlockMatchGatherSSDQCOM = 4502,
|
||||
OpImageBlockMatchGatherSADQCOM = 4503,
|
||||
OpGroupIAddNonUniformAMD = 5000,
|
||||
OpGroupFAddNonUniformAMD = 5001,
|
||||
OpGroupFMinNonUniformAMD = 5002,
|
||||
@@ -1634,6 +1827,11 @@ namespace Spv
|
||||
OpFragmentMaskFetchAMD = 5011,
|
||||
OpFragmentFetchAMD = 5012,
|
||||
OpReadClockKHR = 5056,
|
||||
OpFinalizeNodePayloadsAMDX = 5075,
|
||||
OpFinishWritingNodePayloadAMDX = 5078,
|
||||
OpInitializeNodePayloadsAMDX = 5090,
|
||||
OpGroupNonUniformQuadAllKHR = 5110,
|
||||
OpGroupNonUniformQuadAnyKHR = 5111,
|
||||
OpHitObjectRecordHitMotionNV = 5249,
|
||||
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||
OpHitObjectRecordMissMotionNV = 5251,
|
||||
@@ -1672,6 +1870,8 @@ namespace Spv
|
||||
OpSetMeshOutputsEXT = 5295,
|
||||
OpGroupNonUniformPartitionNV = 5296,
|
||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||
OpFetchMicroTriangleVertexPositionNV = 5300,
|
||||
OpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||
OpReportIntersectionKHR = 5334,
|
||||
OpReportIntersectionNV = 5334,
|
||||
OpIgnoreIntersectionNV = 5335,
|
||||
@@ -1679,6 +1879,7 @@ namespace Spv
|
||||
OpTraceNV = 5337,
|
||||
OpTraceMotionNV = 5338,
|
||||
OpTraceRayMotionNV = 5339,
|
||||
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||
OpTypeAccelerationStructureKHR = 5341,
|
||||
OpTypeAccelerationStructureNV = 5341,
|
||||
OpExecuteCallableNV = 5344,
|
||||
@@ -1699,6 +1900,7 @@ namespace Spv
|
||||
OpConvertUToSampledImageNV = 5395,
|
||||
OpConvertSampledImageToUNV = 5396,
|
||||
OpSamplerImageAddressingModeNV = 5397,
|
||||
OpRawAccessChainNV = 5398,
|
||||
OpSubgroupShuffleINTEL = 5571,
|
||||
OpSubgroupShuffleDownINTEL = 5572,
|
||||
OpSubgroupShuffleUpINTEL = 5573,
|
||||
@@ -1940,6 +2142,9 @@ namespace Spv
|
||||
OpTypeStructContinuedINTEL = 6090,
|
||||
OpConstantCompositeContinuedINTEL = 6091,
|
||||
OpSpecConstantCompositeContinuedINTEL = 6092,
|
||||
OpCompositeConstructContinuedINTEL = 6096,
|
||||
OpConvertFToBF16INTEL = 6116,
|
||||
OpConvertBF16ToFINTEL = 6117,
|
||||
OpControlBarrierArriveINTEL = 6142,
|
||||
OpControlBarrierWaitINTEL = 6143,
|
||||
OpGroupIMulKHR = 6401,
|
||||
@@ -1950,6 +2155,8 @@ namespace Spv
|
||||
OpGroupLogicalAndKHR = 6406,
|
||||
OpGroupLogicalOrKHR = 6407,
|
||||
OpGroupLogicalXorKHR = 6408,
|
||||
OpMaskedGatherINTEL = 6428,
|
||||
OpMaskedScatterINTEL = 6429,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
** of this software and/or associated documentation files (the "Materials"),
|
||||
@@ -73,6 +73,11 @@ typedef enum SpvSourceLanguage_ {
|
||||
SpvSourceLanguageHLSL = 5,
|
||||
SpvSourceLanguageCPP_for_OpenCL = 6,
|
||||
SpvSourceLanguageSYCL = 7,
|
||||
SpvSourceLanguageHERO_C = 8,
|
||||
SpvSourceLanguageNZSL = 9,
|
||||
SpvSourceLanguageWGSL = 10,
|
||||
SpvSourceLanguageSlang = 11,
|
||||
SpvSourceLanguageZig = 12,
|
||||
SpvSourceLanguageMax = 0x7fffffff,
|
||||
} SpvSourceLanguage;
|
||||
|
||||
@@ -160,6 +165,9 @@ typedef enum SpvExecutionMode_ {
|
||||
SpvExecutionModeSubgroupsPerWorkgroupId = 37,
|
||||
SpvExecutionModeLocalSizeId = 38,
|
||||
SpvExecutionModeLocalSizeHintId = 39,
|
||||
SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
|
||||
SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
|
||||
SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
|
||||
SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
|
||||
SpvExecutionModePostDepthCoverage = 4446,
|
||||
SpvExecutionModeDenormPreserve = 4459,
|
||||
@@ -169,12 +177,19 @@ typedef enum SpvExecutionMode_ {
|
||||
SpvExecutionModeRoundingModeRTZ = 4463,
|
||||
SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
|
||||
SpvExecutionModeStencilRefReplacingEXT = 5027,
|
||||
SpvExecutionModeCoalescingAMDX = 5069,
|
||||
SpvExecutionModeMaxNodeRecursionAMDX = 5071,
|
||||
SpvExecutionModeStaticNumWorkgroupsAMDX = 5072,
|
||||
SpvExecutionModeShaderIndexAMDX = 5073,
|
||||
SpvExecutionModeMaxNumWorkgroupsAMDX = 5077,
|
||||
SpvExecutionModeStencilRefUnchangedFrontAMD = 5079,
|
||||
SpvExecutionModeStencilRefGreaterFrontAMD = 5080,
|
||||
SpvExecutionModeStencilRefLessFrontAMD = 5081,
|
||||
SpvExecutionModeStencilRefUnchangedBackAMD = 5082,
|
||||
SpvExecutionModeStencilRefGreaterBackAMD = 5083,
|
||||
SpvExecutionModeStencilRefLessBackAMD = 5084,
|
||||
SpvExecutionModeQuadDerivativesKHR = 5088,
|
||||
SpvExecutionModeRequireFullQuadsKHR = 5089,
|
||||
SpvExecutionModeOutputLinesEXT = 5269,
|
||||
SpvExecutionModeOutputLinesNV = 5269,
|
||||
SpvExecutionModeOutputPrimitivesEXT = 5270,
|
||||
@@ -199,8 +214,14 @@ typedef enum SpvExecutionMode_ {
|
||||
SpvExecutionModeNoGlobalOffsetINTEL = 5895,
|
||||
SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
|
||||
SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
|
||||
SpvExecutionModeMaximallyReconvergesKHR = 6023,
|
||||
SpvExecutionModeFPFastMathDefault = 6028,
|
||||
SpvExecutionModeStreamingInterfaceINTEL = 6154,
|
||||
SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
|
||||
SpvExecutionModeNamedBarrierCountINTEL = 6417,
|
||||
SpvExecutionModeMaximumRegistersINTEL = 6461,
|
||||
SpvExecutionModeMaximumRegistersIdINTEL = 6462,
|
||||
SpvExecutionModeNamedMaximumRegistersINTEL = 6463,
|
||||
SpvExecutionModeMax = 0x7fffffff,
|
||||
} SpvExecutionMode;
|
||||
|
||||
@@ -218,6 +239,9 @@ typedef enum SpvStorageClass_ {
|
||||
SpvStorageClassAtomicCounter = 10,
|
||||
SpvStorageClassImage = 11,
|
||||
SpvStorageClassStorageBuffer = 12,
|
||||
SpvStorageClassTileImageEXT = 4172,
|
||||
SpvStorageClassNodePayloadAMDX = 5068,
|
||||
SpvStorageClassNodeOutputPayloadAMDX = 5076,
|
||||
SpvStorageClassCallableDataKHR = 5328,
|
||||
SpvStorageClassCallableDataNV = 5328,
|
||||
SpvStorageClassIncomingCallableDataKHR = 5329,
|
||||
@@ -248,6 +272,7 @@ typedef enum SpvDim_ {
|
||||
SpvDimRect = 4,
|
||||
SpvDimBuffer = 5,
|
||||
SpvDimSubpassData = 6,
|
||||
SpvDimTileImageDataEXT = 4173,
|
||||
SpvDimMax = 0x7fffffff,
|
||||
} SpvDim;
|
||||
|
||||
@@ -354,6 +379,8 @@ typedef enum SpvImageChannelDataType_ {
|
||||
SpvImageChannelDataTypeFloat = 14,
|
||||
SpvImageChannelDataTypeUnormInt24 = 15,
|
||||
SpvImageChannelDataTypeUnormInt101010_2 = 16,
|
||||
SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19,
|
||||
SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20,
|
||||
SpvImageChannelDataTypeMax = 0x7fffffff,
|
||||
} SpvImageChannelDataType;
|
||||
|
||||
@@ -411,8 +438,11 @@ typedef enum SpvFPFastMathModeShift_ {
|
||||
SpvFPFastMathModeNSZShift = 2,
|
||||
SpvFPFastMathModeAllowRecipShift = 3,
|
||||
SpvFPFastMathModeFastShift = 4,
|
||||
SpvFPFastMathModeAllowContractShift = 16,
|
||||
SpvFPFastMathModeAllowContractFastINTELShift = 16,
|
||||
SpvFPFastMathModeAllowReassocShift = 17,
|
||||
SpvFPFastMathModeAllowReassocINTELShift = 17,
|
||||
SpvFPFastMathModeAllowTransformShift = 18,
|
||||
SpvFPFastMathModeMax = 0x7fffffff,
|
||||
} SpvFPFastMathModeShift;
|
||||
|
||||
@@ -423,8 +453,11 @@ typedef enum SpvFPFastMathModeMask_ {
|
||||
SpvFPFastMathModeNSZMask = 0x00000004,
|
||||
SpvFPFastMathModeAllowRecipMask = 0x00000008,
|
||||
SpvFPFastMathModeFastMask = 0x00000010,
|
||||
SpvFPFastMathModeAllowContractMask = 0x00010000,
|
||||
SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
|
||||
SpvFPFastMathModeAllowReassocMask = 0x00020000,
|
||||
SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
|
||||
SpvFPFastMathModeAllowTransformMask = 0x00040000,
|
||||
} SpvFPFastMathModeMask;
|
||||
|
||||
typedef enum SpvFPRoundingMode_ {
|
||||
@@ -512,7 +545,14 @@ typedef enum SpvDecoration_ {
|
||||
SpvDecorationMaxByteOffsetId = 47,
|
||||
SpvDecorationNoSignedWrap = 4469,
|
||||
SpvDecorationNoUnsignedWrap = 4470,
|
||||
SpvDecorationWeightTextureQCOM = 4487,
|
||||
SpvDecorationBlockMatchTextureQCOM = 4488,
|
||||
SpvDecorationBlockMatchSamplerQCOM = 4499,
|
||||
SpvDecorationExplicitInterpAMD = 4999,
|
||||
SpvDecorationNodeSharesPayloadLimitsWithAMDX = 5019,
|
||||
SpvDecorationNodeMaxPayloadsAMDX = 5020,
|
||||
SpvDecorationTrackFinishWritingAMDX = 5078,
|
||||
SpvDecorationPayloadNodeNameAMDX = 5091,
|
||||
SpvDecorationOverrideCoverageNV = 5248,
|
||||
SpvDecorationPassthroughNV = 5250,
|
||||
SpvDecorationViewportRelativeNV = 5252,
|
||||
@@ -562,6 +602,9 @@ typedef enum SpvDecoration_ {
|
||||
SpvDecorationMergeINTEL = 5834,
|
||||
SpvDecorationBankBitsINTEL = 5835,
|
||||
SpvDecorationForcePow2DepthINTEL = 5836,
|
||||
SpvDecorationStridesizeINTEL = 5883,
|
||||
SpvDecorationWordsizeINTEL = 5884,
|
||||
SpvDecorationTrueDualPortINTEL = 5885,
|
||||
SpvDecorationBurstCoalesceINTEL = 5899,
|
||||
SpvDecorationCacheSizeINTEL = 5900,
|
||||
SpvDecorationDontStaticallyCoalesceINTEL = 5901,
|
||||
@@ -580,6 +623,24 @@ typedef enum SpvDecoration_ {
|
||||
SpvDecorationSingleElementVectorINTEL = 6085,
|
||||
SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
|
||||
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,
|
||||
} SpvDecoration;
|
||||
|
||||
@@ -655,6 +716,8 @@ typedef enum SpvBuiltIn_ {
|
||||
SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
|
||||
SpvBuiltInBaryCoordPullModelAMD = 4998,
|
||||
SpvBuiltInFragStencilRefEXT = 5014,
|
||||
SpvBuiltInCoalescedInputCountAMDX = 5021,
|
||||
SpvBuiltInShaderIndexAMDX = 5073,
|
||||
SpvBuiltInViewportMaskNV = 5253,
|
||||
SpvBuiltInSecondaryPositionNV = 5257,
|
||||
SpvBuiltInSecondaryViewportMaskNV = 5258,
|
||||
@@ -707,6 +770,9 @@ typedef enum SpvBuiltIn_ {
|
||||
SpvBuiltInHitKindKHR = 5333,
|
||||
SpvBuiltInHitKindNV = 5333,
|
||||
SpvBuiltInCurrentRayTimeNV = 5334,
|
||||
SpvBuiltInHitTriangleVertexPositionsKHR = 5335,
|
||||
SpvBuiltInHitMicroTriangleVertexPositionsNV = 5337,
|
||||
SpvBuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
|
||||
SpvBuiltInIncomingRayFlagsKHR = 5351,
|
||||
SpvBuiltInIncomingRayFlagsNV = 5351,
|
||||
SpvBuiltInRayGeometryIndexKHR = 5352,
|
||||
@@ -714,6 +780,8 @@ typedef enum SpvBuiltIn_ {
|
||||
SpvBuiltInSMCountNV = 5375,
|
||||
SpvBuiltInWarpIDNV = 5376,
|
||||
SpvBuiltInSMIDNV = 5377,
|
||||
SpvBuiltInHitKindFrontFacingMicroTriangleNV = 5405,
|
||||
SpvBuiltInHitKindBackFacingMicroTriangleNV = 5406,
|
||||
SpvBuiltInCullMaskKHR = 6021,
|
||||
SpvBuiltInMax = 0x7fffffff,
|
||||
} SpvBuiltIn;
|
||||
@@ -978,6 +1046,9 @@ typedef enum SpvCapability_ {
|
||||
SpvCapabilityShaderViewportIndex = 70,
|
||||
SpvCapabilityUniformDecoration = 71,
|
||||
SpvCapabilityCoreBuiltinsARM = 4165,
|
||||
SpvCapabilityTileImageColorReadAccessEXT = 4166,
|
||||
SpvCapabilityTileImageDepthReadAccessEXT = 4167,
|
||||
SpvCapabilityTileImageStencilReadAccessEXT = 4168,
|
||||
SpvCapabilityFragmentShadingRateKHR = 4422,
|
||||
SpvCapabilitySubgroupBallotKHR = 4423,
|
||||
SpvCapabilityDrawParameters = 4427,
|
||||
@@ -1009,6 +1080,10 @@ typedef enum SpvCapability_ {
|
||||
SpvCapabilityRayQueryKHR = 4472,
|
||||
SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
|
||||
SpvCapabilityRayTracingKHR = 4479,
|
||||
SpvCapabilityTextureSampleWeightedQCOM = 4484,
|
||||
SpvCapabilityTextureBoxFilterQCOM = 4485,
|
||||
SpvCapabilityTextureBlockMatchQCOM = 4486,
|
||||
SpvCapabilityTextureBlockMatch2QCOM = 4498,
|
||||
SpvCapabilityFloat16ImageAMD = 5008,
|
||||
SpvCapabilityImageGatherBiasLodAMD = 5009,
|
||||
SpvCapabilityFragmentMaskAMD = 5010,
|
||||
@@ -1016,6 +1091,8 @@ typedef enum SpvCapability_ {
|
||||
SpvCapabilityImageReadWriteLodAMD = 5015,
|
||||
SpvCapabilityInt64ImageEXT = 5016,
|
||||
SpvCapabilityShaderClockKHR = 5055,
|
||||
SpvCapabilityShaderEnqueueAMDX = 5067,
|
||||
SpvCapabilityQuadControlKHR = 5087,
|
||||
SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
|
||||
SpvCapabilityGeometryShaderPassthroughNV = 5251,
|
||||
SpvCapabilityShaderViewportIndexLayerEXT = 5254,
|
||||
@@ -1057,6 +1134,7 @@ typedef enum SpvCapability_ {
|
||||
SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||
SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||
SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||
SpvCapabilityRayTracingPositionFetchKHR = 5336,
|
||||
SpvCapabilityRayTracingNV = 5340,
|
||||
SpvCapabilityRayTracingMotionBlurNV = 5341,
|
||||
SpvCapabilityVulkanMemoryModel = 5345,
|
||||
@@ -1074,9 +1152,14 @@ typedef enum SpvCapability_ {
|
||||
SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
|
||||
SpvCapabilityDemoteToHelperInvocation = 5379,
|
||||
SpvCapabilityDemoteToHelperInvocationEXT = 5379,
|
||||
SpvCapabilityDisplacementMicromapNV = 5380,
|
||||
SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
|
||||
SpvCapabilityShaderInvocationReorderNV = 5383,
|
||||
SpvCapabilityBindlessTextureNV = 5390,
|
||||
SpvCapabilityRayQueryPositionFetchKHR = 5391,
|
||||
SpvCapabilityAtomicFloat16VectorNV = 5404,
|
||||
SpvCapabilityRayTracingDisplacementMicromapNV = 5409,
|
||||
SpvCapabilityRawAccessChainsNV = 5414,
|
||||
SpvCapabilitySubgroupShuffleINTEL = 5568,
|
||||
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
|
||||
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
|
||||
@@ -1128,16 +1211,29 @@ typedef enum SpvCapability_ {
|
||||
SpvCapabilityDotProduct = 6019,
|
||||
SpvCapabilityDotProductKHR = 6019,
|
||||
SpvCapabilityRayCullMaskKHR = 6020,
|
||||
SpvCapabilityCooperativeMatrixKHR = 6022,
|
||||
SpvCapabilityBitInstructions = 6025,
|
||||
SpvCapabilityGroupNonUniformRotateKHR = 6026,
|
||||
SpvCapabilityFloatControls2 = 6029,
|
||||
SpvCapabilityAtomicFloat32AddEXT = 6033,
|
||||
SpvCapabilityAtomicFloat64AddEXT = 6034,
|
||||
SpvCapabilityLongConstantCompositeINTEL = 6089,
|
||||
SpvCapabilityLongCompositesINTEL = 6089,
|
||||
SpvCapabilityOptNoneINTEL = 6094,
|
||||
SpvCapabilityAtomicFloat16AddEXT = 6095,
|
||||
SpvCapabilityDebugInfoModuleINTEL = 6114,
|
||||
SpvCapabilityBFloat16ConversionINTEL = 6115,
|
||||
SpvCapabilitySplitBarrierINTEL = 6141,
|
||||
SpvCapabilityFPGAClusterAttributesV2INTEL = 6150,
|
||||
SpvCapabilityFPGAKernelAttributesv2INTEL = 6161,
|
||||
SpvCapabilityFPMaxErrorINTEL = 6169,
|
||||
SpvCapabilityFPGALatencyControlINTEL = 6171,
|
||||
SpvCapabilityFPGAArgumentInterfacesINTEL = 6174,
|
||||
SpvCapabilityGlobalVariableHostAccessINTEL = 6187,
|
||||
SpvCapabilityGlobalVariableFPGADecorationsINTEL = 6189,
|
||||
SpvCapabilityGroupUniformArithmeticKHR = 6400,
|
||||
SpvCapabilityMaskedGatherScatterINTEL = 6427,
|
||||
SpvCapabilityCacheControlsINTEL = 6441,
|
||||
SpvCapabilityRegisterLimitsINTEL = 6460,
|
||||
SpvCapabilityMax = 0x7fffffff,
|
||||
} SpvCapability;
|
||||
|
||||
@@ -1244,6 +1340,85 @@ typedef enum SpvPackedVectorFormat_ {
|
||||
SpvPackedVectorFormatMax = 0x7fffffff,
|
||||
} 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_ {
|
||||
SpvOpNop = 0,
|
||||
SpvOpUndef = 1,
|
||||
@@ -1589,6 +1764,9 @@ typedef enum SpvOp_ {
|
||||
SpvOpPtrEqual = 401,
|
||||
SpvOpPtrNotEqual = 402,
|
||||
SpvOpPtrDiff = 403,
|
||||
SpvOpColorAttachmentReadEXT = 4160,
|
||||
SpvOpDepthAttachmentReadEXT = 4161,
|
||||
SpvOpStencilAttachmentReadEXT = 4162,
|
||||
SpvOpTerminateInvocation = 4416,
|
||||
SpvOpSubgroupBallotKHR = 4421,
|
||||
SpvOpSubgroupFirstInvocationKHR = 4422,
|
||||
@@ -1614,6 +1792,11 @@ typedef enum SpvOp_ {
|
||||
SpvOpUDotAccSatKHR = 4454,
|
||||
SpvOpSUDotAccSat = 4455,
|
||||
SpvOpSUDotAccSatKHR = 4455,
|
||||
SpvOpTypeCooperativeMatrixKHR = 4456,
|
||||
SpvOpCooperativeMatrixLoadKHR = 4457,
|
||||
SpvOpCooperativeMatrixStoreKHR = 4458,
|
||||
SpvOpCooperativeMatrixMulAddKHR = 4459,
|
||||
SpvOpCooperativeMatrixLengthKHR = 4460,
|
||||
SpvOpTypeRayQueryKHR = 4472,
|
||||
SpvOpRayQueryInitializeKHR = 4473,
|
||||
SpvOpRayQueryTerminateKHR = 4474,
|
||||
@@ -1621,6 +1804,14 @@ typedef enum SpvOp_ {
|
||||
SpvOpRayQueryConfirmIntersectionKHR = 4476,
|
||||
SpvOpRayQueryProceedKHR = 4477,
|
||||
SpvOpRayQueryGetIntersectionTypeKHR = 4479,
|
||||
SpvOpImageSampleWeightedQCOM = 4480,
|
||||
SpvOpImageBoxFilterQCOM = 4481,
|
||||
SpvOpImageBlockMatchSSDQCOM = 4482,
|
||||
SpvOpImageBlockMatchSADQCOM = 4483,
|
||||
SpvOpImageBlockMatchWindowSSDQCOM = 4500,
|
||||
SpvOpImageBlockMatchWindowSADQCOM = 4501,
|
||||
SpvOpImageBlockMatchGatherSSDQCOM = 4502,
|
||||
SpvOpImageBlockMatchGatherSADQCOM = 4503,
|
||||
SpvOpGroupIAddNonUniformAMD = 5000,
|
||||
SpvOpGroupFAddNonUniformAMD = 5001,
|
||||
SpvOpGroupFMinNonUniformAMD = 5002,
|
||||
@@ -1632,6 +1823,11 @@ typedef enum SpvOp_ {
|
||||
SpvOpFragmentMaskFetchAMD = 5011,
|
||||
SpvOpFragmentFetchAMD = 5012,
|
||||
SpvOpReadClockKHR = 5056,
|
||||
SpvOpFinalizeNodePayloadsAMDX = 5075,
|
||||
SpvOpFinishWritingNodePayloadAMDX = 5078,
|
||||
SpvOpInitializeNodePayloadsAMDX = 5090,
|
||||
SpvOpGroupNonUniformQuadAllKHR = 5110,
|
||||
SpvOpGroupNonUniformQuadAnyKHR = 5111,
|
||||
SpvOpHitObjectRecordHitMotionNV = 5249,
|
||||
SpvOpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||
SpvOpHitObjectRecordMissMotionNV = 5251,
|
||||
@@ -1670,6 +1866,8 @@ typedef enum SpvOp_ {
|
||||
SpvOpSetMeshOutputsEXT = 5295,
|
||||
SpvOpGroupNonUniformPartitionNV = 5296,
|
||||
SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||
SpvOpFetchMicroTriangleVertexPositionNV = 5300,
|
||||
SpvOpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||
SpvOpReportIntersectionKHR = 5334,
|
||||
SpvOpReportIntersectionNV = 5334,
|
||||
SpvOpIgnoreIntersectionNV = 5335,
|
||||
@@ -1677,6 +1875,7 @@ typedef enum SpvOp_ {
|
||||
SpvOpTraceNV = 5337,
|
||||
SpvOpTraceMotionNV = 5338,
|
||||
SpvOpTraceRayMotionNV = 5339,
|
||||
SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||
SpvOpTypeAccelerationStructureKHR = 5341,
|
||||
SpvOpTypeAccelerationStructureNV = 5341,
|
||||
SpvOpExecuteCallableNV = 5344,
|
||||
@@ -1697,6 +1896,7 @@ typedef enum SpvOp_ {
|
||||
SpvOpConvertUToSampledImageNV = 5395,
|
||||
SpvOpConvertSampledImageToUNV = 5396,
|
||||
SpvOpSamplerImageAddressingModeNV = 5397,
|
||||
SpvOpRawAccessChainNV = 5398,
|
||||
SpvOpSubgroupShuffleINTEL = 5571,
|
||||
SpvOpSubgroupShuffleDownINTEL = 5572,
|
||||
SpvOpSubgroupShuffleUpINTEL = 5573,
|
||||
@@ -1938,6 +2138,9 @@ typedef enum SpvOp_ {
|
||||
SpvOpTypeStructContinuedINTEL = 6090,
|
||||
SpvOpConstantCompositeContinuedINTEL = 6091,
|
||||
SpvOpSpecConstantCompositeContinuedINTEL = 6092,
|
||||
SpvOpCompositeConstructContinuedINTEL = 6096,
|
||||
SpvOpConvertFToBF16INTEL = 6116,
|
||||
SpvOpConvertBF16ToFINTEL = 6117,
|
||||
SpvOpControlBarrierArriveINTEL = 6142,
|
||||
SpvOpControlBarrierWaitINTEL = 6143,
|
||||
SpvOpGroupIMulKHR = 6401,
|
||||
@@ -1948,6 +2151,8 @@ typedef enum SpvOp_ {
|
||||
SpvOpGroupLogicalAndKHR = 6406,
|
||||
SpvOpGroupLogicalOrKHR = 6407,
|
||||
SpvOpGroupLogicalXorKHR = 6408,
|
||||
SpvOpMaskedGatherINTEL = 6428,
|
||||
SpvOpMaskedScatterINTEL = 6429,
|
||||
SpvOpMax = 0x7fffffff,
|
||||
} SpvOp;
|
||||
|
||||
@@ -2303,6 +2508,9 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
||||
case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
|
||||
case 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 SpvOpSubgroupBallotKHR: *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 SpvOpUDotAccSat: *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 SpvOpRayQueryInitializeKHR: *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 SpvOpRayQueryProceedKHR: *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 SpvOpGroupFAddNonUniformAMD: *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 SpvOpFragmentFetchAMD: *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 SpvOpHitObjectRecordHitWithIndexMotionNV: *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 SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; 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 SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpExecuteCallableNV: *hasResult = false; *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 SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
@@ -2641,6 +2871,9 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
||||
case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpConstantCompositeContinuedINTEL: *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 SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; 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 SpvOpGroupLogicalOrKHR: *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 */
|
||||
|
||||
@@ -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
|
||||
// of this software and/or associated documentation files (the "Materials"),
|
||||
@@ -69,6 +69,11 @@ enum SourceLanguage {
|
||||
SourceLanguageHLSL = 5,
|
||||
SourceLanguageCPP_for_OpenCL = 6,
|
||||
SourceLanguageSYCL = 7,
|
||||
SourceLanguageHERO_C = 8,
|
||||
SourceLanguageNZSL = 9,
|
||||
SourceLanguageWGSL = 10,
|
||||
SourceLanguageSlang = 11,
|
||||
SourceLanguageZig = 12,
|
||||
SourceLanguageMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -156,6 +161,9 @@ enum ExecutionMode {
|
||||
ExecutionModeSubgroupsPerWorkgroupId = 37,
|
||||
ExecutionModeLocalSizeId = 38,
|
||||
ExecutionModeLocalSizeHintId = 39,
|
||||
ExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
|
||||
ExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
|
||||
ExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
|
||||
ExecutionModeSubgroupUniformControlFlowKHR = 4421,
|
||||
ExecutionModePostDepthCoverage = 4446,
|
||||
ExecutionModeDenormPreserve = 4459,
|
||||
@@ -165,12 +173,19 @@ enum ExecutionMode {
|
||||
ExecutionModeRoundingModeRTZ = 4463,
|
||||
ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
|
||||
ExecutionModeStencilRefReplacingEXT = 5027,
|
||||
ExecutionModeCoalescingAMDX = 5069,
|
||||
ExecutionModeMaxNodeRecursionAMDX = 5071,
|
||||
ExecutionModeStaticNumWorkgroupsAMDX = 5072,
|
||||
ExecutionModeShaderIndexAMDX = 5073,
|
||||
ExecutionModeMaxNumWorkgroupsAMDX = 5077,
|
||||
ExecutionModeStencilRefUnchangedFrontAMD = 5079,
|
||||
ExecutionModeStencilRefGreaterFrontAMD = 5080,
|
||||
ExecutionModeStencilRefLessFrontAMD = 5081,
|
||||
ExecutionModeStencilRefUnchangedBackAMD = 5082,
|
||||
ExecutionModeStencilRefGreaterBackAMD = 5083,
|
||||
ExecutionModeStencilRefLessBackAMD = 5084,
|
||||
ExecutionModeQuadDerivativesKHR = 5088,
|
||||
ExecutionModeRequireFullQuadsKHR = 5089,
|
||||
ExecutionModeOutputLinesEXT = 5269,
|
||||
ExecutionModeOutputLinesNV = 5269,
|
||||
ExecutionModeOutputPrimitivesEXT = 5270,
|
||||
@@ -195,8 +210,14 @@ enum ExecutionMode {
|
||||
ExecutionModeNoGlobalOffsetINTEL = 5895,
|
||||
ExecutionModeNumSIMDWorkitemsINTEL = 5896,
|
||||
ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
|
||||
ExecutionModeMaximallyReconvergesKHR = 6023,
|
||||
ExecutionModeFPFastMathDefault = 6028,
|
||||
ExecutionModeStreamingInterfaceINTEL = 6154,
|
||||
ExecutionModeRegisterMapInterfaceINTEL = 6160,
|
||||
ExecutionModeNamedBarrierCountINTEL = 6417,
|
||||
ExecutionModeMaximumRegistersINTEL = 6461,
|
||||
ExecutionModeMaximumRegistersIdINTEL = 6462,
|
||||
ExecutionModeNamedMaximumRegistersINTEL = 6463,
|
||||
ExecutionModeMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -214,6 +235,9 @@ enum StorageClass {
|
||||
StorageClassAtomicCounter = 10,
|
||||
StorageClassImage = 11,
|
||||
StorageClassStorageBuffer = 12,
|
||||
StorageClassTileImageEXT = 4172,
|
||||
StorageClassNodePayloadAMDX = 5068,
|
||||
StorageClassNodeOutputPayloadAMDX = 5076,
|
||||
StorageClassCallableDataKHR = 5328,
|
||||
StorageClassCallableDataNV = 5328,
|
||||
StorageClassIncomingCallableDataKHR = 5329,
|
||||
@@ -244,6 +268,7 @@ enum Dim {
|
||||
DimRect = 4,
|
||||
DimBuffer = 5,
|
||||
DimSubpassData = 6,
|
||||
DimTileImageDataEXT = 4173,
|
||||
DimMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -350,6 +375,8 @@ enum ImageChannelDataType {
|
||||
ImageChannelDataTypeFloat = 14,
|
||||
ImageChannelDataTypeUnormInt24 = 15,
|
||||
ImageChannelDataTypeUnormInt101010_2 = 16,
|
||||
ImageChannelDataTypeUnsignedIntRaw10EXT = 19,
|
||||
ImageChannelDataTypeUnsignedIntRaw12EXT = 20,
|
||||
ImageChannelDataTypeMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -407,8 +434,11 @@ enum FPFastMathModeShift {
|
||||
FPFastMathModeNSZShift = 2,
|
||||
FPFastMathModeAllowRecipShift = 3,
|
||||
FPFastMathModeFastShift = 4,
|
||||
FPFastMathModeAllowContractShift = 16,
|
||||
FPFastMathModeAllowContractFastINTELShift = 16,
|
||||
FPFastMathModeAllowReassocShift = 17,
|
||||
FPFastMathModeAllowReassocINTELShift = 17,
|
||||
FPFastMathModeAllowTransformShift = 18,
|
||||
FPFastMathModeMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -419,8 +449,11 @@ enum FPFastMathModeMask {
|
||||
FPFastMathModeNSZMask = 0x00000004,
|
||||
FPFastMathModeAllowRecipMask = 0x00000008,
|
||||
FPFastMathModeFastMask = 0x00000010,
|
||||
FPFastMathModeAllowContractMask = 0x00010000,
|
||||
FPFastMathModeAllowContractFastINTELMask = 0x00010000,
|
||||
FPFastMathModeAllowReassocMask = 0x00020000,
|
||||
FPFastMathModeAllowReassocINTELMask = 0x00020000,
|
||||
FPFastMathModeAllowTransformMask = 0x00040000,
|
||||
};
|
||||
|
||||
enum FPRoundingMode {
|
||||
@@ -508,7 +541,14 @@ enum Decoration {
|
||||
DecorationMaxByteOffsetId = 47,
|
||||
DecorationNoSignedWrap = 4469,
|
||||
DecorationNoUnsignedWrap = 4470,
|
||||
DecorationWeightTextureQCOM = 4487,
|
||||
DecorationBlockMatchTextureQCOM = 4488,
|
||||
DecorationBlockMatchSamplerQCOM = 4499,
|
||||
DecorationExplicitInterpAMD = 4999,
|
||||
DecorationNodeSharesPayloadLimitsWithAMDX = 5019,
|
||||
DecorationNodeMaxPayloadsAMDX = 5020,
|
||||
DecorationTrackFinishWritingAMDX = 5078,
|
||||
DecorationPayloadNodeNameAMDX = 5091,
|
||||
DecorationOverrideCoverageNV = 5248,
|
||||
DecorationPassthroughNV = 5250,
|
||||
DecorationViewportRelativeNV = 5252,
|
||||
@@ -558,6 +598,9 @@ enum Decoration {
|
||||
DecorationMergeINTEL = 5834,
|
||||
DecorationBankBitsINTEL = 5835,
|
||||
DecorationForcePow2DepthINTEL = 5836,
|
||||
DecorationStridesizeINTEL = 5883,
|
||||
DecorationWordsizeINTEL = 5884,
|
||||
DecorationTrueDualPortINTEL = 5885,
|
||||
DecorationBurstCoalesceINTEL = 5899,
|
||||
DecorationCacheSizeINTEL = 5900,
|
||||
DecorationDontStaticallyCoalesceINTEL = 5901,
|
||||
@@ -576,6 +619,24 @@ enum Decoration {
|
||||
DecorationSingleElementVectorINTEL = 6085,
|
||||
DecorationVectorComputeCallableFunctionINTEL = 6087,
|
||||
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,
|
||||
};
|
||||
|
||||
@@ -651,6 +712,8 @@ enum BuiltIn {
|
||||
BuiltInBaryCoordSmoothSampleAMD = 4997,
|
||||
BuiltInBaryCoordPullModelAMD = 4998,
|
||||
BuiltInFragStencilRefEXT = 5014,
|
||||
BuiltInCoalescedInputCountAMDX = 5021,
|
||||
BuiltInShaderIndexAMDX = 5073,
|
||||
BuiltInViewportMaskNV = 5253,
|
||||
BuiltInSecondaryPositionNV = 5257,
|
||||
BuiltInSecondaryViewportMaskNV = 5258,
|
||||
@@ -703,6 +766,9 @@ enum BuiltIn {
|
||||
BuiltInHitKindKHR = 5333,
|
||||
BuiltInHitKindNV = 5333,
|
||||
BuiltInCurrentRayTimeNV = 5334,
|
||||
BuiltInHitTriangleVertexPositionsKHR = 5335,
|
||||
BuiltInHitMicroTriangleVertexPositionsNV = 5337,
|
||||
BuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
|
||||
BuiltInIncomingRayFlagsKHR = 5351,
|
||||
BuiltInIncomingRayFlagsNV = 5351,
|
||||
BuiltInRayGeometryIndexKHR = 5352,
|
||||
@@ -710,6 +776,8 @@ enum BuiltIn {
|
||||
BuiltInSMCountNV = 5375,
|
||||
BuiltInWarpIDNV = 5376,
|
||||
BuiltInSMIDNV = 5377,
|
||||
BuiltInHitKindFrontFacingMicroTriangleNV = 5405,
|
||||
BuiltInHitKindBackFacingMicroTriangleNV = 5406,
|
||||
BuiltInCullMaskKHR = 6021,
|
||||
BuiltInMax = 0x7fffffff,
|
||||
};
|
||||
@@ -974,6 +1042,9 @@ enum Capability {
|
||||
CapabilityShaderViewportIndex = 70,
|
||||
CapabilityUniformDecoration = 71,
|
||||
CapabilityCoreBuiltinsARM = 4165,
|
||||
CapabilityTileImageColorReadAccessEXT = 4166,
|
||||
CapabilityTileImageDepthReadAccessEXT = 4167,
|
||||
CapabilityTileImageStencilReadAccessEXT = 4168,
|
||||
CapabilityFragmentShadingRateKHR = 4422,
|
||||
CapabilitySubgroupBallotKHR = 4423,
|
||||
CapabilityDrawParameters = 4427,
|
||||
@@ -1005,6 +1076,10 @@ enum Capability {
|
||||
CapabilityRayQueryKHR = 4472,
|
||||
CapabilityRayTraversalPrimitiveCullingKHR = 4478,
|
||||
CapabilityRayTracingKHR = 4479,
|
||||
CapabilityTextureSampleWeightedQCOM = 4484,
|
||||
CapabilityTextureBoxFilterQCOM = 4485,
|
||||
CapabilityTextureBlockMatchQCOM = 4486,
|
||||
CapabilityTextureBlockMatch2QCOM = 4498,
|
||||
CapabilityFloat16ImageAMD = 5008,
|
||||
CapabilityImageGatherBiasLodAMD = 5009,
|
||||
CapabilityFragmentMaskAMD = 5010,
|
||||
@@ -1012,6 +1087,8 @@ enum Capability {
|
||||
CapabilityImageReadWriteLodAMD = 5015,
|
||||
CapabilityInt64ImageEXT = 5016,
|
||||
CapabilityShaderClockKHR = 5055,
|
||||
CapabilityShaderEnqueueAMDX = 5067,
|
||||
CapabilityQuadControlKHR = 5087,
|
||||
CapabilitySampleMaskOverrideCoverageNV = 5249,
|
||||
CapabilityGeometryShaderPassthroughNV = 5251,
|
||||
CapabilityShaderViewportIndexLayerEXT = 5254,
|
||||
@@ -1053,6 +1130,7 @@ enum Capability {
|
||||
CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||
CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||
CapabilityRayTracingPositionFetchKHR = 5336,
|
||||
CapabilityRayTracingNV = 5340,
|
||||
CapabilityRayTracingMotionBlurNV = 5341,
|
||||
CapabilityVulkanMemoryModel = 5345,
|
||||
@@ -1070,9 +1148,14 @@ enum Capability {
|
||||
CapabilityFragmentShaderPixelInterlockEXT = 5378,
|
||||
CapabilityDemoteToHelperInvocation = 5379,
|
||||
CapabilityDemoteToHelperInvocationEXT = 5379,
|
||||
CapabilityDisplacementMicromapNV = 5380,
|
||||
CapabilityRayTracingOpacityMicromapEXT = 5381,
|
||||
CapabilityShaderInvocationReorderNV = 5383,
|
||||
CapabilityBindlessTextureNV = 5390,
|
||||
CapabilityRayQueryPositionFetchKHR = 5391,
|
||||
CapabilityAtomicFloat16VectorNV = 5404,
|
||||
CapabilityRayTracingDisplacementMicromapNV = 5409,
|
||||
CapabilityRawAccessChainsNV = 5414,
|
||||
CapabilitySubgroupShuffleINTEL = 5568,
|
||||
CapabilitySubgroupBufferBlockIOINTEL = 5569,
|
||||
CapabilitySubgroupImageBlockIOINTEL = 5570,
|
||||
@@ -1124,16 +1207,29 @@ enum Capability {
|
||||
CapabilityDotProduct = 6019,
|
||||
CapabilityDotProductKHR = 6019,
|
||||
CapabilityRayCullMaskKHR = 6020,
|
||||
CapabilityCooperativeMatrixKHR = 6022,
|
||||
CapabilityBitInstructions = 6025,
|
||||
CapabilityGroupNonUniformRotateKHR = 6026,
|
||||
CapabilityFloatControls2 = 6029,
|
||||
CapabilityAtomicFloat32AddEXT = 6033,
|
||||
CapabilityAtomicFloat64AddEXT = 6034,
|
||||
CapabilityLongConstantCompositeINTEL = 6089,
|
||||
CapabilityLongCompositesINTEL = 6089,
|
||||
CapabilityOptNoneINTEL = 6094,
|
||||
CapabilityAtomicFloat16AddEXT = 6095,
|
||||
CapabilityDebugInfoModuleINTEL = 6114,
|
||||
CapabilityBFloat16ConversionINTEL = 6115,
|
||||
CapabilitySplitBarrierINTEL = 6141,
|
||||
CapabilityFPGAClusterAttributesV2INTEL = 6150,
|
||||
CapabilityFPGAKernelAttributesv2INTEL = 6161,
|
||||
CapabilityFPMaxErrorINTEL = 6169,
|
||||
CapabilityFPGALatencyControlINTEL = 6171,
|
||||
CapabilityFPGAArgumentInterfacesINTEL = 6174,
|
||||
CapabilityGlobalVariableHostAccessINTEL = 6187,
|
||||
CapabilityGlobalVariableFPGADecorationsINTEL = 6189,
|
||||
CapabilityGroupUniformArithmeticKHR = 6400,
|
||||
CapabilityMaskedGatherScatterINTEL = 6427,
|
||||
CapabilityCacheControlsINTEL = 6441,
|
||||
CapabilityRegisterLimitsINTEL = 6460,
|
||||
CapabilityMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -1240,6 +1336,85 @@ enum PackedVectorFormat {
|
||||
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 {
|
||||
OpNop = 0,
|
||||
OpUndef = 1,
|
||||
@@ -1585,6 +1760,9 @@ enum Op {
|
||||
OpPtrEqual = 401,
|
||||
OpPtrNotEqual = 402,
|
||||
OpPtrDiff = 403,
|
||||
OpColorAttachmentReadEXT = 4160,
|
||||
OpDepthAttachmentReadEXT = 4161,
|
||||
OpStencilAttachmentReadEXT = 4162,
|
||||
OpTerminateInvocation = 4416,
|
||||
OpSubgroupBallotKHR = 4421,
|
||||
OpSubgroupFirstInvocationKHR = 4422,
|
||||
@@ -1610,6 +1788,11 @@ enum Op {
|
||||
OpUDotAccSatKHR = 4454,
|
||||
OpSUDotAccSat = 4455,
|
||||
OpSUDotAccSatKHR = 4455,
|
||||
OpTypeCooperativeMatrixKHR = 4456,
|
||||
OpCooperativeMatrixLoadKHR = 4457,
|
||||
OpCooperativeMatrixStoreKHR = 4458,
|
||||
OpCooperativeMatrixMulAddKHR = 4459,
|
||||
OpCooperativeMatrixLengthKHR = 4460,
|
||||
OpTypeRayQueryKHR = 4472,
|
||||
OpRayQueryInitializeKHR = 4473,
|
||||
OpRayQueryTerminateKHR = 4474,
|
||||
@@ -1617,6 +1800,14 @@ enum Op {
|
||||
OpRayQueryConfirmIntersectionKHR = 4476,
|
||||
OpRayQueryProceedKHR = 4477,
|
||||
OpRayQueryGetIntersectionTypeKHR = 4479,
|
||||
OpImageSampleWeightedQCOM = 4480,
|
||||
OpImageBoxFilterQCOM = 4481,
|
||||
OpImageBlockMatchSSDQCOM = 4482,
|
||||
OpImageBlockMatchSADQCOM = 4483,
|
||||
OpImageBlockMatchWindowSSDQCOM = 4500,
|
||||
OpImageBlockMatchWindowSADQCOM = 4501,
|
||||
OpImageBlockMatchGatherSSDQCOM = 4502,
|
||||
OpImageBlockMatchGatherSADQCOM = 4503,
|
||||
OpGroupIAddNonUniformAMD = 5000,
|
||||
OpGroupFAddNonUniformAMD = 5001,
|
||||
OpGroupFMinNonUniformAMD = 5002,
|
||||
@@ -1628,6 +1819,11 @@ enum Op {
|
||||
OpFragmentMaskFetchAMD = 5011,
|
||||
OpFragmentFetchAMD = 5012,
|
||||
OpReadClockKHR = 5056,
|
||||
OpFinalizeNodePayloadsAMDX = 5075,
|
||||
OpFinishWritingNodePayloadAMDX = 5078,
|
||||
OpInitializeNodePayloadsAMDX = 5090,
|
||||
OpGroupNonUniformQuadAllKHR = 5110,
|
||||
OpGroupNonUniformQuadAnyKHR = 5111,
|
||||
OpHitObjectRecordHitMotionNV = 5249,
|
||||
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||
OpHitObjectRecordMissMotionNV = 5251,
|
||||
@@ -1666,6 +1862,8 @@ enum Op {
|
||||
OpSetMeshOutputsEXT = 5295,
|
||||
OpGroupNonUniformPartitionNV = 5296,
|
||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||
OpFetchMicroTriangleVertexPositionNV = 5300,
|
||||
OpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||
OpReportIntersectionKHR = 5334,
|
||||
OpReportIntersectionNV = 5334,
|
||||
OpIgnoreIntersectionNV = 5335,
|
||||
@@ -1673,6 +1871,7 @@ enum Op {
|
||||
OpTraceNV = 5337,
|
||||
OpTraceMotionNV = 5338,
|
||||
OpTraceRayMotionNV = 5339,
|
||||
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||
OpTypeAccelerationStructureKHR = 5341,
|
||||
OpTypeAccelerationStructureNV = 5341,
|
||||
OpExecuteCallableNV = 5344,
|
||||
@@ -1693,6 +1892,7 @@ enum Op {
|
||||
OpConvertUToSampledImageNV = 5395,
|
||||
OpConvertSampledImageToUNV = 5396,
|
||||
OpSamplerImageAddressingModeNV = 5397,
|
||||
OpRawAccessChainNV = 5398,
|
||||
OpSubgroupShuffleINTEL = 5571,
|
||||
OpSubgroupShuffleDownINTEL = 5572,
|
||||
OpSubgroupShuffleUpINTEL = 5573,
|
||||
@@ -1934,6 +2134,9 @@ enum Op {
|
||||
OpTypeStructContinuedINTEL = 6090,
|
||||
OpConstantCompositeContinuedINTEL = 6091,
|
||||
OpSpecConstantCompositeContinuedINTEL = 6092,
|
||||
OpCompositeConstructContinuedINTEL = 6096,
|
||||
OpConvertFToBF16INTEL = 6116,
|
||||
OpConvertBF16ToFINTEL = 6117,
|
||||
OpControlBarrierArriveINTEL = 6142,
|
||||
OpControlBarrierWaitINTEL = 6143,
|
||||
OpGroupIMulKHR = 6401,
|
||||
@@ -1944,6 +2147,8 @@ enum Op {
|
||||
OpGroupLogicalAndKHR = 6406,
|
||||
OpGroupLogicalOrKHR = 6407,
|
||||
OpGroupLogicalXorKHR = 6408,
|
||||
OpMaskedGatherINTEL = 6428,
|
||||
OpMaskedScatterINTEL = 6429,
|
||||
OpMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -2299,6 +2504,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
||||
case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
|
||||
case 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 OpSubgroupBallotKHR: *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 OpUDotAccSat: *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 OpRayQueryInitializeKHR: *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 OpRayQueryProceedKHR: *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 OpGroupFAddNonUniformAMD: *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 OpFragmentFetchAMD: *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 OpHitObjectRecordHitWithIndexMotionNV: *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 OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; 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 OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
|
||||
case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
|
||||
case OpTraceNV: *hasResult = false; *hasResultType = false; break;
|
||||
case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||
case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||
case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
|
||||
case OpExecuteCallableNV: *hasResult = false; *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 OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
|
||||
case OpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
@@ -2637,6 +2867,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
||||
case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case OpConstantCompositeContinuedINTEL: *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 OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; 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 OpGroupLogicalOrKHR: *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 */
|
||||
@@ -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) { 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
|
||||
|
||||
|
||||
@@ -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
|
||||
// of this software and/or associated documentation files (the "Materials"),
|
||||
@@ -69,6 +69,11 @@ enum class SourceLanguage : unsigned {
|
||||
HLSL = 5,
|
||||
CPP_for_OpenCL = 6,
|
||||
SYCL = 7,
|
||||
HERO_C = 8,
|
||||
NZSL = 9,
|
||||
WGSL = 10,
|
||||
Slang = 11,
|
||||
Zig = 12,
|
||||
Max = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -156,6 +161,9 @@ enum class ExecutionMode : unsigned {
|
||||
SubgroupsPerWorkgroupId = 37,
|
||||
LocalSizeId = 38,
|
||||
LocalSizeHintId = 39,
|
||||
NonCoherentColorAttachmentReadEXT = 4169,
|
||||
NonCoherentDepthAttachmentReadEXT = 4170,
|
||||
NonCoherentStencilAttachmentReadEXT = 4171,
|
||||
SubgroupUniformControlFlowKHR = 4421,
|
||||
PostDepthCoverage = 4446,
|
||||
DenormPreserve = 4459,
|
||||
@@ -165,12 +173,19 @@ enum class ExecutionMode : unsigned {
|
||||
RoundingModeRTZ = 4463,
|
||||
EarlyAndLateFragmentTestsAMD = 5017,
|
||||
StencilRefReplacingEXT = 5027,
|
||||
CoalescingAMDX = 5069,
|
||||
MaxNodeRecursionAMDX = 5071,
|
||||
StaticNumWorkgroupsAMDX = 5072,
|
||||
ShaderIndexAMDX = 5073,
|
||||
MaxNumWorkgroupsAMDX = 5077,
|
||||
StencilRefUnchangedFrontAMD = 5079,
|
||||
StencilRefGreaterFrontAMD = 5080,
|
||||
StencilRefLessFrontAMD = 5081,
|
||||
StencilRefUnchangedBackAMD = 5082,
|
||||
StencilRefGreaterBackAMD = 5083,
|
||||
StencilRefLessBackAMD = 5084,
|
||||
QuadDerivativesKHR = 5088,
|
||||
RequireFullQuadsKHR = 5089,
|
||||
OutputLinesEXT = 5269,
|
||||
OutputLinesNV = 5269,
|
||||
OutputPrimitivesEXT = 5270,
|
||||
@@ -195,8 +210,14 @@ enum class ExecutionMode : unsigned {
|
||||
NoGlobalOffsetINTEL = 5895,
|
||||
NumSIMDWorkitemsINTEL = 5896,
|
||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
||||
MaximallyReconvergesKHR = 6023,
|
||||
FPFastMathDefault = 6028,
|
||||
StreamingInterfaceINTEL = 6154,
|
||||
RegisterMapInterfaceINTEL = 6160,
|
||||
NamedBarrierCountINTEL = 6417,
|
||||
MaximumRegistersINTEL = 6461,
|
||||
MaximumRegistersIdINTEL = 6462,
|
||||
NamedMaximumRegistersINTEL = 6463,
|
||||
Max = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -214,6 +235,9 @@ enum class StorageClass : unsigned {
|
||||
AtomicCounter = 10,
|
||||
Image = 11,
|
||||
StorageBuffer = 12,
|
||||
TileImageEXT = 4172,
|
||||
NodePayloadAMDX = 5068,
|
||||
NodeOutputPayloadAMDX = 5076,
|
||||
CallableDataKHR = 5328,
|
||||
CallableDataNV = 5328,
|
||||
IncomingCallableDataKHR = 5329,
|
||||
@@ -244,6 +268,7 @@ enum class Dim : unsigned {
|
||||
Rect = 4,
|
||||
Buffer = 5,
|
||||
SubpassData = 6,
|
||||
TileImageDataEXT = 4173,
|
||||
Max = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -350,6 +375,8 @@ enum class ImageChannelDataType : unsigned {
|
||||
Float = 14,
|
||||
UnormInt24 = 15,
|
||||
UnormInt101010_2 = 16,
|
||||
UnsignedIntRaw10EXT = 19,
|
||||
UnsignedIntRaw12EXT = 20,
|
||||
Max = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -407,8 +434,11 @@ enum class FPFastMathModeShift : unsigned {
|
||||
NSZ = 2,
|
||||
AllowRecip = 3,
|
||||
Fast = 4,
|
||||
AllowContract = 16,
|
||||
AllowContractFastINTEL = 16,
|
||||
AllowReassoc = 17,
|
||||
AllowReassocINTEL = 17,
|
||||
AllowTransform = 18,
|
||||
Max = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -419,8 +449,11 @@ enum class FPFastMathModeMask : unsigned {
|
||||
NSZ = 0x00000004,
|
||||
AllowRecip = 0x00000008,
|
||||
Fast = 0x00000010,
|
||||
AllowContract = 0x00010000,
|
||||
AllowContractFastINTEL = 0x00010000,
|
||||
AllowReassoc = 0x00020000,
|
||||
AllowReassocINTEL = 0x00020000,
|
||||
AllowTransform = 0x00040000,
|
||||
};
|
||||
|
||||
enum class FPRoundingMode : unsigned {
|
||||
@@ -508,7 +541,14 @@ enum class Decoration : unsigned {
|
||||
MaxByteOffsetId = 47,
|
||||
NoSignedWrap = 4469,
|
||||
NoUnsignedWrap = 4470,
|
||||
WeightTextureQCOM = 4487,
|
||||
BlockMatchTextureQCOM = 4488,
|
||||
BlockMatchSamplerQCOM = 4499,
|
||||
ExplicitInterpAMD = 4999,
|
||||
NodeSharesPayloadLimitsWithAMDX = 5019,
|
||||
NodeMaxPayloadsAMDX = 5020,
|
||||
TrackFinishWritingAMDX = 5078,
|
||||
PayloadNodeNameAMDX = 5091,
|
||||
OverrideCoverageNV = 5248,
|
||||
PassthroughNV = 5250,
|
||||
ViewportRelativeNV = 5252,
|
||||
@@ -558,6 +598,9 @@ enum class Decoration : unsigned {
|
||||
MergeINTEL = 5834,
|
||||
BankBitsINTEL = 5835,
|
||||
ForcePow2DepthINTEL = 5836,
|
||||
StridesizeINTEL = 5883,
|
||||
WordsizeINTEL = 5884,
|
||||
TrueDualPortINTEL = 5885,
|
||||
BurstCoalesceINTEL = 5899,
|
||||
CacheSizeINTEL = 5900,
|
||||
DontStaticallyCoalesceINTEL = 5901,
|
||||
@@ -576,6 +619,24 @@ enum class Decoration : unsigned {
|
||||
SingleElementVectorINTEL = 6085,
|
||||
VectorComputeCallableFunctionINTEL = 6087,
|
||||
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,
|
||||
};
|
||||
|
||||
@@ -651,6 +712,8 @@ enum class BuiltIn : unsigned {
|
||||
BaryCoordSmoothSampleAMD = 4997,
|
||||
BaryCoordPullModelAMD = 4998,
|
||||
FragStencilRefEXT = 5014,
|
||||
CoalescedInputCountAMDX = 5021,
|
||||
ShaderIndexAMDX = 5073,
|
||||
ViewportMaskNV = 5253,
|
||||
SecondaryPositionNV = 5257,
|
||||
SecondaryViewportMaskNV = 5258,
|
||||
@@ -703,6 +766,9 @@ enum class BuiltIn : unsigned {
|
||||
HitKindKHR = 5333,
|
||||
HitKindNV = 5333,
|
||||
CurrentRayTimeNV = 5334,
|
||||
HitTriangleVertexPositionsKHR = 5335,
|
||||
HitMicroTriangleVertexPositionsNV = 5337,
|
||||
HitMicroTriangleVertexBarycentricsNV = 5344,
|
||||
IncomingRayFlagsKHR = 5351,
|
||||
IncomingRayFlagsNV = 5351,
|
||||
RayGeometryIndexKHR = 5352,
|
||||
@@ -710,6 +776,8 @@ enum class BuiltIn : unsigned {
|
||||
SMCountNV = 5375,
|
||||
WarpIDNV = 5376,
|
||||
SMIDNV = 5377,
|
||||
HitKindFrontFacingMicroTriangleNV = 5405,
|
||||
HitKindBackFacingMicroTriangleNV = 5406,
|
||||
CullMaskKHR = 6021,
|
||||
Max = 0x7fffffff,
|
||||
};
|
||||
@@ -974,6 +1042,9 @@ enum class Capability : unsigned {
|
||||
ShaderViewportIndex = 70,
|
||||
UniformDecoration = 71,
|
||||
CoreBuiltinsARM = 4165,
|
||||
TileImageColorReadAccessEXT = 4166,
|
||||
TileImageDepthReadAccessEXT = 4167,
|
||||
TileImageStencilReadAccessEXT = 4168,
|
||||
FragmentShadingRateKHR = 4422,
|
||||
SubgroupBallotKHR = 4423,
|
||||
DrawParameters = 4427,
|
||||
@@ -1005,6 +1076,10 @@ enum class Capability : unsigned {
|
||||
RayQueryKHR = 4472,
|
||||
RayTraversalPrimitiveCullingKHR = 4478,
|
||||
RayTracingKHR = 4479,
|
||||
TextureSampleWeightedQCOM = 4484,
|
||||
TextureBoxFilterQCOM = 4485,
|
||||
TextureBlockMatchQCOM = 4486,
|
||||
TextureBlockMatch2QCOM = 4498,
|
||||
Float16ImageAMD = 5008,
|
||||
ImageGatherBiasLodAMD = 5009,
|
||||
FragmentMaskAMD = 5010,
|
||||
@@ -1012,6 +1087,8 @@ enum class Capability : unsigned {
|
||||
ImageReadWriteLodAMD = 5015,
|
||||
Int64ImageEXT = 5016,
|
||||
ShaderClockKHR = 5055,
|
||||
ShaderEnqueueAMDX = 5067,
|
||||
QuadControlKHR = 5087,
|
||||
SampleMaskOverrideCoverageNV = 5249,
|
||||
GeometryShaderPassthroughNV = 5251,
|
||||
ShaderViewportIndexLayerEXT = 5254,
|
||||
@@ -1053,6 +1130,7 @@ enum class Capability : unsigned {
|
||||
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||
RayTracingPositionFetchKHR = 5336,
|
||||
RayTracingNV = 5340,
|
||||
RayTracingMotionBlurNV = 5341,
|
||||
VulkanMemoryModel = 5345,
|
||||
@@ -1070,9 +1148,14 @@ enum class Capability : unsigned {
|
||||
FragmentShaderPixelInterlockEXT = 5378,
|
||||
DemoteToHelperInvocation = 5379,
|
||||
DemoteToHelperInvocationEXT = 5379,
|
||||
DisplacementMicromapNV = 5380,
|
||||
RayTracingOpacityMicromapEXT = 5381,
|
||||
ShaderInvocationReorderNV = 5383,
|
||||
BindlessTextureNV = 5390,
|
||||
RayQueryPositionFetchKHR = 5391,
|
||||
AtomicFloat16VectorNV = 5404,
|
||||
RayTracingDisplacementMicromapNV = 5409,
|
||||
RawAccessChainsNV = 5414,
|
||||
SubgroupShuffleINTEL = 5568,
|
||||
SubgroupBufferBlockIOINTEL = 5569,
|
||||
SubgroupImageBlockIOINTEL = 5570,
|
||||
@@ -1124,16 +1207,29 @@ enum class Capability : unsigned {
|
||||
DotProduct = 6019,
|
||||
DotProductKHR = 6019,
|
||||
RayCullMaskKHR = 6020,
|
||||
CooperativeMatrixKHR = 6022,
|
||||
BitInstructions = 6025,
|
||||
GroupNonUniformRotateKHR = 6026,
|
||||
FloatControls2 = 6029,
|
||||
AtomicFloat32AddEXT = 6033,
|
||||
AtomicFloat64AddEXT = 6034,
|
||||
LongConstantCompositeINTEL = 6089,
|
||||
LongCompositesINTEL = 6089,
|
||||
OptNoneINTEL = 6094,
|
||||
AtomicFloat16AddEXT = 6095,
|
||||
DebugInfoModuleINTEL = 6114,
|
||||
BFloat16ConversionINTEL = 6115,
|
||||
SplitBarrierINTEL = 6141,
|
||||
FPGAClusterAttributesV2INTEL = 6150,
|
||||
FPGAKernelAttributesv2INTEL = 6161,
|
||||
FPMaxErrorINTEL = 6169,
|
||||
FPGALatencyControlINTEL = 6171,
|
||||
FPGAArgumentInterfacesINTEL = 6174,
|
||||
GlobalVariableHostAccessINTEL = 6187,
|
||||
GlobalVariableFPGADecorationsINTEL = 6189,
|
||||
GroupUniformArithmeticKHR = 6400,
|
||||
MaskedGatherScatterINTEL = 6427,
|
||||
CacheControlsINTEL = 6441,
|
||||
RegisterLimitsINTEL = 6460,
|
||||
Max = 0x7fffffff,
|
||||
};
|
||||
|
||||
@@ -1240,6 +1336,85 @@ enum class PackedVectorFormat : unsigned {
|
||||
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 {
|
||||
OpNop = 0,
|
||||
OpUndef = 1,
|
||||
@@ -1585,6 +1760,9 @@ enum class Op : unsigned {
|
||||
OpPtrEqual = 401,
|
||||
OpPtrNotEqual = 402,
|
||||
OpPtrDiff = 403,
|
||||
OpColorAttachmentReadEXT = 4160,
|
||||
OpDepthAttachmentReadEXT = 4161,
|
||||
OpStencilAttachmentReadEXT = 4162,
|
||||
OpTerminateInvocation = 4416,
|
||||
OpSubgroupBallotKHR = 4421,
|
||||
OpSubgroupFirstInvocationKHR = 4422,
|
||||
@@ -1610,6 +1788,11 @@ enum class Op : unsigned {
|
||||
OpUDotAccSatKHR = 4454,
|
||||
OpSUDotAccSat = 4455,
|
||||
OpSUDotAccSatKHR = 4455,
|
||||
OpTypeCooperativeMatrixKHR = 4456,
|
||||
OpCooperativeMatrixLoadKHR = 4457,
|
||||
OpCooperativeMatrixStoreKHR = 4458,
|
||||
OpCooperativeMatrixMulAddKHR = 4459,
|
||||
OpCooperativeMatrixLengthKHR = 4460,
|
||||
OpTypeRayQueryKHR = 4472,
|
||||
OpRayQueryInitializeKHR = 4473,
|
||||
OpRayQueryTerminateKHR = 4474,
|
||||
@@ -1617,6 +1800,14 @@ enum class Op : unsigned {
|
||||
OpRayQueryConfirmIntersectionKHR = 4476,
|
||||
OpRayQueryProceedKHR = 4477,
|
||||
OpRayQueryGetIntersectionTypeKHR = 4479,
|
||||
OpImageSampleWeightedQCOM = 4480,
|
||||
OpImageBoxFilterQCOM = 4481,
|
||||
OpImageBlockMatchSSDQCOM = 4482,
|
||||
OpImageBlockMatchSADQCOM = 4483,
|
||||
OpImageBlockMatchWindowSSDQCOM = 4500,
|
||||
OpImageBlockMatchWindowSADQCOM = 4501,
|
||||
OpImageBlockMatchGatherSSDQCOM = 4502,
|
||||
OpImageBlockMatchGatherSADQCOM = 4503,
|
||||
OpGroupIAddNonUniformAMD = 5000,
|
||||
OpGroupFAddNonUniformAMD = 5001,
|
||||
OpGroupFMinNonUniformAMD = 5002,
|
||||
@@ -1628,6 +1819,11 @@ enum class Op : unsigned {
|
||||
OpFragmentMaskFetchAMD = 5011,
|
||||
OpFragmentFetchAMD = 5012,
|
||||
OpReadClockKHR = 5056,
|
||||
OpFinalizeNodePayloadsAMDX = 5075,
|
||||
OpFinishWritingNodePayloadAMDX = 5078,
|
||||
OpInitializeNodePayloadsAMDX = 5090,
|
||||
OpGroupNonUniformQuadAllKHR = 5110,
|
||||
OpGroupNonUniformQuadAnyKHR = 5111,
|
||||
OpHitObjectRecordHitMotionNV = 5249,
|
||||
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||
OpHitObjectRecordMissMotionNV = 5251,
|
||||
@@ -1666,6 +1862,8 @@ enum class Op : unsigned {
|
||||
OpSetMeshOutputsEXT = 5295,
|
||||
OpGroupNonUniformPartitionNV = 5296,
|
||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||
OpFetchMicroTriangleVertexPositionNV = 5300,
|
||||
OpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||
OpReportIntersectionKHR = 5334,
|
||||
OpReportIntersectionNV = 5334,
|
||||
OpIgnoreIntersectionNV = 5335,
|
||||
@@ -1673,6 +1871,7 @@ enum class Op : unsigned {
|
||||
OpTraceNV = 5337,
|
||||
OpTraceMotionNV = 5338,
|
||||
OpTraceRayMotionNV = 5339,
|
||||
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||
OpTypeAccelerationStructureKHR = 5341,
|
||||
OpTypeAccelerationStructureNV = 5341,
|
||||
OpExecuteCallableNV = 5344,
|
||||
@@ -1693,6 +1892,7 @@ enum class Op : unsigned {
|
||||
OpConvertUToSampledImageNV = 5395,
|
||||
OpConvertSampledImageToUNV = 5396,
|
||||
OpSamplerImageAddressingModeNV = 5397,
|
||||
OpRawAccessChainNV = 5398,
|
||||
OpSubgroupShuffleINTEL = 5571,
|
||||
OpSubgroupShuffleDownINTEL = 5572,
|
||||
OpSubgroupShuffleUpINTEL = 5573,
|
||||
@@ -1934,6 +2134,9 @@ enum class Op : unsigned {
|
||||
OpTypeStructContinuedINTEL = 6090,
|
||||
OpConstantCompositeContinuedINTEL = 6091,
|
||||
OpSpecConstantCompositeContinuedINTEL = 6092,
|
||||
OpCompositeConstructContinuedINTEL = 6096,
|
||||
OpConvertFToBF16INTEL = 6116,
|
||||
OpConvertBF16ToFINTEL = 6117,
|
||||
OpControlBarrierArriveINTEL = 6142,
|
||||
OpControlBarrierWaitINTEL = 6143,
|
||||
OpGroupIMulKHR = 6401,
|
||||
@@ -1944,6 +2147,8 @@ enum class Op : unsigned {
|
||||
OpGroupLogicalAndKHR = 6406,
|
||||
OpGroupLogicalOrKHR = 6407,
|
||||
OpGroupLogicalXorKHR = 6408,
|
||||
OpMaskedGatherINTEL = 6428,
|
||||
OpMaskedScatterINTEL = 6429,
|
||||
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::OpPtrNotEqual: *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::OpSubgroupBallotKHR: *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::OpUDotAccSat: *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::OpRayQueryInitializeKHR: *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::OpRayQueryProceedKHR: *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::OpGroupFAddNonUniformAMD: *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::OpFragmentFetchAMD: *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::OpHitObjectRecordHitWithIndexMotionNV: *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::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; 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::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
|
||||
case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
|
||||
case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break;
|
||||
case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||
case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
|
||||
case Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
|
||||
case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
|
||||
case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
|
||||
@@ -2398,6 +2627,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
||||
case Op::OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
|
||||
case Op::OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
|
||||
case Op::OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
|
||||
case Op::OpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
|
||||
case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
@@ -2637,6 +2867,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
||||
case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case Op::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::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; 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::OpGroupLogicalOrKHR: *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 */
|
||||
|
||||
// Overload bitwise operators for mask bit combining
|
||||
|
||||
inline 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)); }
|
||||
inline ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
|
||||
inline ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
|
||||
inline 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)); }
|
||||
inline FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
|
||||
inline FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
|
||||
inline 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)); }
|
||||
inline SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); }
|
||||
inline SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); }
|
||||
inline 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)); }
|
||||
inline LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); }
|
||||
inline LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); }
|
||||
inline 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)); }
|
||||
inline FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); }
|
||||
inline FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); }
|
||||
inline 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)); }
|
||||
inline MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); }
|
||||
inline MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); }
|
||||
inline 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)); }
|
||||
inline MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); }
|
||||
inline MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); }
|
||||
inline 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)); }
|
||||
inline KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); }
|
||||
inline KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); }
|
||||
inline 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)); }
|
||||
inline RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); }
|
||||
inline RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); }
|
||||
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)); }
|
||||
constexpr 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)); }
|
||||
constexpr ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
|
||||
constexpr ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
|
||||
constexpr 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)); }
|
||||
constexpr FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
|
||||
constexpr FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
|
||||
constexpr 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)); }
|
||||
constexpr SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); }
|
||||
constexpr SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); }
|
||||
constexpr 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)); }
|
||||
constexpr LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); }
|
||||
constexpr LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); }
|
||||
constexpr 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)); }
|
||||
constexpr FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); }
|
||||
constexpr FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); }
|
||||
constexpr 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)); }
|
||||
constexpr MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); }
|
||||
constexpr MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); }
|
||||
constexpr 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)); }
|
||||
constexpr MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); }
|
||||
constexpr MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); }
|
||||
constexpr 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)); }
|
||||
constexpr KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); }
|
||||
constexpr KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); }
|
||||
constexpr 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)); }
|
||||
constexpr RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); }
|
||||
constexpr RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); }
|
||||
constexpr 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)); }
|
||||
constexpr FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
|
||||
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
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"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",
|
||||
"of this software and/or associated documentation files (the \"Materials\"),",
|
||||
@@ -75,7 +75,12 @@
|
||||
"OpenCL_CPP": 4,
|
||||
"HLSL": 5,
|
||||
"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,
|
||||
"LocalSizeId": 38,
|
||||
"LocalSizeHintId": 39,
|
||||
"NonCoherentColorAttachmentReadEXT": 4169,
|
||||
"NonCoherentDepthAttachmentReadEXT": 4170,
|
||||
"NonCoherentStencilAttachmentReadEXT": 4171,
|
||||
"SubgroupUniformControlFlowKHR": 4421,
|
||||
"PostDepthCoverage": 4446,
|
||||
"DenormPreserve": 4459,
|
||||
@@ -184,12 +192,19 @@
|
||||
"RoundingModeRTZ": 4463,
|
||||
"EarlyAndLateFragmentTestsAMD": 5017,
|
||||
"StencilRefReplacingEXT": 5027,
|
||||
"CoalescingAMDX": 5069,
|
||||
"MaxNodeRecursionAMDX": 5071,
|
||||
"StaticNumWorkgroupsAMDX": 5072,
|
||||
"ShaderIndexAMDX": 5073,
|
||||
"MaxNumWorkgroupsAMDX": 5077,
|
||||
"StencilRefUnchangedFrontAMD": 5079,
|
||||
"StencilRefGreaterFrontAMD": 5080,
|
||||
"StencilRefLessFrontAMD": 5081,
|
||||
"StencilRefUnchangedBackAMD": 5082,
|
||||
"StencilRefGreaterBackAMD": 5083,
|
||||
"StencilRefLessBackAMD": 5084,
|
||||
"QuadDerivativesKHR": 5088,
|
||||
"RequireFullQuadsKHR": 5089,
|
||||
"OutputLinesEXT": 5269,
|
||||
"OutputLinesNV": 5269,
|
||||
"OutputPrimitivesEXT": 5270,
|
||||
@@ -214,8 +229,14 @@
|
||||
"NoGlobalOffsetINTEL": 5895,
|
||||
"NumSIMDWorkitemsINTEL": 5896,
|
||||
"SchedulerTargetFmaxMhzINTEL": 5903,
|
||||
"MaximallyReconvergesKHR": 6023,
|
||||
"FPFastMathDefault": 6028,
|
||||
"StreamingInterfaceINTEL": 6154,
|
||||
"NamedBarrierCountINTEL": 6417
|
||||
"RegisterMapInterfaceINTEL": 6160,
|
||||
"NamedBarrierCountINTEL": 6417,
|
||||
"MaximumRegistersINTEL": 6461,
|
||||
"MaximumRegistersIdINTEL": 6462,
|
||||
"NamedMaximumRegistersINTEL": 6463
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -236,6 +257,9 @@
|
||||
"AtomicCounter": 10,
|
||||
"Image": 11,
|
||||
"StorageBuffer": 12,
|
||||
"TileImageEXT": 4172,
|
||||
"NodePayloadAMDX": 5068,
|
||||
"NodeOutputPayloadAMDX": 5076,
|
||||
"CallableDataKHR": 5328,
|
||||
"CallableDataNV": 5328,
|
||||
"IncomingCallableDataKHR": 5329,
|
||||
@@ -268,7 +292,8 @@
|
||||
"Cube": 3,
|
||||
"Rect": 4,
|
||||
"Buffer": 5,
|
||||
"SubpassData": 6
|
||||
"SubpassData": 6,
|
||||
"TileImageDataEXT": 4173
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -389,7 +414,9 @@
|
||||
"HalfFloat": 13,
|
||||
"Float": 14,
|
||||
"UnormInt24": 15,
|
||||
"UnormInt101010_2": 16
|
||||
"UnormInt101010_2": 16,
|
||||
"UnsignedIntRaw10EXT": 19,
|
||||
"UnsignedIntRaw12EXT": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -429,8 +456,11 @@
|
||||
"NSZ": 2,
|
||||
"AllowRecip": 3,
|
||||
"Fast": 4,
|
||||
"AllowContract": 16,
|
||||
"AllowContractFastINTEL": 16,
|
||||
"AllowReassocINTEL": 17
|
||||
"AllowReassoc": 17,
|
||||
"AllowReassocINTEL": 17,
|
||||
"AllowTransform": 18
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -534,7 +564,14 @@
|
||||
"MaxByteOffsetId": 47,
|
||||
"NoSignedWrap": 4469,
|
||||
"NoUnsignedWrap": 4470,
|
||||
"WeightTextureQCOM": 4487,
|
||||
"BlockMatchTextureQCOM": 4488,
|
||||
"BlockMatchSamplerQCOM": 4499,
|
||||
"ExplicitInterpAMD": 4999,
|
||||
"NodeSharesPayloadLimitsWithAMDX": 5019,
|
||||
"NodeMaxPayloadsAMDX": 5020,
|
||||
"TrackFinishWritingAMDX": 5078,
|
||||
"PayloadNodeNameAMDX": 5091,
|
||||
"OverrideCoverageNV": 5248,
|
||||
"PassthroughNV": 5250,
|
||||
"ViewportRelativeNV": 5252,
|
||||
@@ -584,6 +621,9 @@
|
||||
"MergeINTEL": 5834,
|
||||
"BankBitsINTEL": 5835,
|
||||
"ForcePow2DepthINTEL": 5836,
|
||||
"StridesizeINTEL": 5883,
|
||||
"WordsizeINTEL": 5884,
|
||||
"TrueDualPortINTEL": 5885,
|
||||
"BurstCoalesceINTEL": 5899,
|
||||
"CacheSizeINTEL": 5900,
|
||||
"DontStaticallyCoalesceINTEL": 5901,
|
||||
@@ -601,7 +641,25 @@
|
||||
"FunctionFloatingPointModeINTEL": 6080,
|
||||
"SingleElementVectorINTEL": 6085,
|
||||
"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,
|
||||
"BaryCoordPullModelAMD": 4998,
|
||||
"FragStencilRefEXT": 5014,
|
||||
"CoalescedInputCountAMDX": 5021,
|
||||
"ShaderIndexAMDX": 5073,
|
||||
"ViewportMaskNV": 5253,
|
||||
"SecondaryPositionNV": 5257,
|
||||
"SecondaryViewportMaskNV": 5258,
|
||||
@@ -732,6 +792,9 @@
|
||||
"HitKindKHR": 5333,
|
||||
"HitKindNV": 5333,
|
||||
"CurrentRayTimeNV": 5334,
|
||||
"HitTriangleVertexPositionsKHR": 5335,
|
||||
"HitMicroTriangleVertexPositionsNV": 5337,
|
||||
"HitMicroTriangleVertexBarycentricsNV": 5344,
|
||||
"IncomingRayFlagsKHR": 5351,
|
||||
"IncomingRayFlagsNV": 5351,
|
||||
"RayGeometryIndexKHR": 5352,
|
||||
@@ -739,6 +802,8 @@
|
||||
"SMCountNV": 5375,
|
||||
"WarpIDNV": 5376,
|
||||
"SMIDNV": 5377,
|
||||
"HitKindFrontFacingMicroTriangleNV": 5405,
|
||||
"HitKindBackFacingMicroTriangleNV": 5406,
|
||||
"CullMaskKHR": 6021
|
||||
}
|
||||
},
|
||||
@@ -954,6 +1019,9 @@
|
||||
"ShaderViewportIndex": 70,
|
||||
"UniformDecoration": 71,
|
||||
"CoreBuiltinsARM": 4165,
|
||||
"TileImageColorReadAccessEXT": 4166,
|
||||
"TileImageDepthReadAccessEXT": 4167,
|
||||
"TileImageStencilReadAccessEXT": 4168,
|
||||
"FragmentShadingRateKHR": 4422,
|
||||
"SubgroupBallotKHR": 4423,
|
||||
"DrawParameters": 4427,
|
||||
@@ -985,6 +1053,10 @@
|
||||
"RayQueryKHR": 4472,
|
||||
"RayTraversalPrimitiveCullingKHR": 4478,
|
||||
"RayTracingKHR": 4479,
|
||||
"TextureSampleWeightedQCOM": 4484,
|
||||
"TextureBoxFilterQCOM": 4485,
|
||||
"TextureBlockMatchQCOM": 4486,
|
||||
"TextureBlockMatch2QCOM": 4498,
|
||||
"Float16ImageAMD": 5008,
|
||||
"ImageGatherBiasLodAMD": 5009,
|
||||
"FragmentMaskAMD": 5010,
|
||||
@@ -992,6 +1064,8 @@
|
||||
"ImageReadWriteLodAMD": 5015,
|
||||
"Int64ImageEXT": 5016,
|
||||
"ShaderClockKHR": 5055,
|
||||
"ShaderEnqueueAMDX": 5067,
|
||||
"QuadControlKHR": 5087,
|
||||
"SampleMaskOverrideCoverageNV": 5249,
|
||||
"GeometryShaderPassthroughNV": 5251,
|
||||
"ShaderViewportIndexLayerEXT": 5254,
|
||||
@@ -1033,6 +1107,7 @@
|
||||
"UniformTexelBufferArrayNonUniformIndexingEXT": 5311,
|
||||
"StorageTexelBufferArrayNonUniformIndexing": 5312,
|
||||
"StorageTexelBufferArrayNonUniformIndexingEXT": 5312,
|
||||
"RayTracingPositionFetchKHR": 5336,
|
||||
"RayTracingNV": 5340,
|
||||
"RayTracingMotionBlurNV": 5341,
|
||||
"VulkanMemoryModel": 5345,
|
||||
@@ -1050,9 +1125,14 @@
|
||||
"FragmentShaderPixelInterlockEXT": 5378,
|
||||
"DemoteToHelperInvocation": 5379,
|
||||
"DemoteToHelperInvocationEXT": 5379,
|
||||
"DisplacementMicromapNV": 5380,
|
||||
"RayTracingOpacityMicromapEXT": 5381,
|
||||
"ShaderInvocationReorderNV": 5383,
|
||||
"BindlessTextureNV": 5390,
|
||||
"RayQueryPositionFetchKHR": 5391,
|
||||
"AtomicFloat16VectorNV": 5404,
|
||||
"RayTracingDisplacementMicromapNV": 5409,
|
||||
"RawAccessChainsNV": 5414,
|
||||
"SubgroupShuffleINTEL": 5568,
|
||||
"SubgroupBufferBlockIOINTEL": 5569,
|
||||
"SubgroupImageBlockIOINTEL": 5570,
|
||||
@@ -1104,16 +1184,29 @@
|
||||
"DotProduct": 6019,
|
||||
"DotProductKHR": 6019,
|
||||
"RayCullMaskKHR": 6020,
|
||||
"CooperativeMatrixKHR": 6022,
|
||||
"BitInstructions": 6025,
|
||||
"GroupNonUniformRotateKHR": 6026,
|
||||
"FloatControls2": 6029,
|
||||
"AtomicFloat32AddEXT": 6033,
|
||||
"AtomicFloat64AddEXT": 6034,
|
||||
"LongConstantCompositeINTEL": 6089,
|
||||
"LongCompositesINTEL": 6089,
|
||||
"OptNoneINTEL": 6094,
|
||||
"AtomicFloat16AddEXT": 6095,
|
||||
"DebugInfoModuleINTEL": 6114,
|
||||
"BFloat16ConversionINTEL": 6115,
|
||||
"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
|
||||
}
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"Type": "Value",
|
||||
@@ -1575,6 +1759,9 @@
|
||||
"OpPtrEqual": 401,
|
||||
"OpPtrNotEqual": 402,
|
||||
"OpPtrDiff": 403,
|
||||
"OpColorAttachmentReadEXT": 4160,
|
||||
"OpDepthAttachmentReadEXT": 4161,
|
||||
"OpStencilAttachmentReadEXT": 4162,
|
||||
"OpTerminateInvocation": 4416,
|
||||
"OpSubgroupBallotKHR": 4421,
|
||||
"OpSubgroupFirstInvocationKHR": 4422,
|
||||
@@ -1600,6 +1787,11 @@
|
||||
"OpUDotAccSatKHR": 4454,
|
||||
"OpSUDotAccSat": 4455,
|
||||
"OpSUDotAccSatKHR": 4455,
|
||||
"OpTypeCooperativeMatrixKHR": 4456,
|
||||
"OpCooperativeMatrixLoadKHR": 4457,
|
||||
"OpCooperativeMatrixStoreKHR": 4458,
|
||||
"OpCooperativeMatrixMulAddKHR": 4459,
|
||||
"OpCooperativeMatrixLengthKHR": 4460,
|
||||
"OpTypeRayQueryKHR": 4472,
|
||||
"OpRayQueryInitializeKHR": 4473,
|
||||
"OpRayQueryTerminateKHR": 4474,
|
||||
@@ -1607,6 +1799,14 @@
|
||||
"OpRayQueryConfirmIntersectionKHR": 4476,
|
||||
"OpRayQueryProceedKHR": 4477,
|
||||
"OpRayQueryGetIntersectionTypeKHR": 4479,
|
||||
"OpImageSampleWeightedQCOM": 4480,
|
||||
"OpImageBoxFilterQCOM": 4481,
|
||||
"OpImageBlockMatchSSDQCOM": 4482,
|
||||
"OpImageBlockMatchSADQCOM": 4483,
|
||||
"OpImageBlockMatchWindowSSDQCOM": 4500,
|
||||
"OpImageBlockMatchWindowSADQCOM": 4501,
|
||||
"OpImageBlockMatchGatherSSDQCOM": 4502,
|
||||
"OpImageBlockMatchGatherSADQCOM": 4503,
|
||||
"OpGroupIAddNonUniformAMD": 5000,
|
||||
"OpGroupFAddNonUniformAMD": 5001,
|
||||
"OpGroupFMinNonUniformAMD": 5002,
|
||||
@@ -1618,6 +1818,11 @@
|
||||
"OpFragmentMaskFetchAMD": 5011,
|
||||
"OpFragmentFetchAMD": 5012,
|
||||
"OpReadClockKHR": 5056,
|
||||
"OpFinalizeNodePayloadsAMDX": 5075,
|
||||
"OpFinishWritingNodePayloadAMDX": 5078,
|
||||
"OpInitializeNodePayloadsAMDX": 5090,
|
||||
"OpGroupNonUniformQuadAllKHR": 5110,
|
||||
"OpGroupNonUniformQuadAnyKHR": 5111,
|
||||
"OpHitObjectRecordHitMotionNV": 5249,
|
||||
"OpHitObjectRecordHitWithIndexMotionNV": 5250,
|
||||
"OpHitObjectRecordMissMotionNV": 5251,
|
||||
@@ -1656,6 +1861,8 @@
|
||||
"OpSetMeshOutputsEXT": 5295,
|
||||
"OpGroupNonUniformPartitionNV": 5296,
|
||||
"OpWritePackedPrimitiveIndices4x8NV": 5299,
|
||||
"OpFetchMicroTriangleVertexPositionNV": 5300,
|
||||
"OpFetchMicroTriangleVertexBarycentricNV": 5301,
|
||||
"OpReportIntersectionKHR": 5334,
|
||||
"OpReportIntersectionNV": 5334,
|
||||
"OpIgnoreIntersectionNV": 5335,
|
||||
@@ -1663,6 +1870,7 @@
|
||||
"OpTraceNV": 5337,
|
||||
"OpTraceMotionNV": 5338,
|
||||
"OpTraceRayMotionNV": 5339,
|
||||
"OpRayQueryGetIntersectionTriangleVertexPositionsKHR": 5340,
|
||||
"OpTypeAccelerationStructureKHR": 5341,
|
||||
"OpTypeAccelerationStructureNV": 5341,
|
||||
"OpExecuteCallableNV": 5344,
|
||||
@@ -1683,6 +1891,7 @@
|
||||
"OpConvertUToSampledImageNV": 5395,
|
||||
"OpConvertSampledImageToUNV": 5396,
|
||||
"OpSamplerImageAddressingModeNV": 5397,
|
||||
"OpRawAccessChainNV": 5398,
|
||||
"OpSubgroupShuffleINTEL": 5571,
|
||||
"OpSubgroupShuffleDownINTEL": 5572,
|
||||
"OpSubgroupShuffleUpINTEL": 5573,
|
||||
@@ -1924,6 +2133,9 @@
|
||||
"OpTypeStructContinuedINTEL": 6090,
|
||||
"OpConstantCompositeContinuedINTEL": 6091,
|
||||
"OpSpecConstantCompositeContinuedINTEL": 6092,
|
||||
"OpCompositeConstructContinuedINTEL": 6096,
|
||||
"OpConvertFToBF16INTEL": 6116,
|
||||
"OpConvertBF16ToFINTEL": 6117,
|
||||
"OpControlBarrierArriveINTEL": 6142,
|
||||
"OpControlBarrierWaitINTEL": 6143,
|
||||
"OpGroupIMulKHR": 6401,
|
||||
@@ -1933,7 +2145,9 @@
|
||||
"OpGroupBitwiseXorKHR": 6405,
|
||||
"OpGroupLogicalAndKHR": 6406,
|
||||
"OpGroupLogicalOrKHR": 6407,
|
||||
"OpGroupLogicalXorKHR": 6408
|
||||
"OpGroupLogicalXorKHR": 6408,
|
||||
"OpMaskedGatherINTEL": 6428,
|
||||
"OpMaskedScatterINTEL": 6429
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -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
|
||||
-- of this software and/or associated documentation files (the "Materials"),
|
||||
@@ -60,6 +60,11 @@ spv = {
|
||||
HLSL = 5,
|
||||
CPP_for_OpenCL = 6,
|
||||
SYCL = 7,
|
||||
HERO_C = 8,
|
||||
NZSL = 9,
|
||||
WGSL = 10,
|
||||
Slang = 11,
|
||||
Zig = 12,
|
||||
},
|
||||
|
||||
ExecutionModel = {
|
||||
@@ -143,6 +148,9 @@ spv = {
|
||||
SubgroupsPerWorkgroupId = 37,
|
||||
LocalSizeId = 38,
|
||||
LocalSizeHintId = 39,
|
||||
NonCoherentColorAttachmentReadEXT = 4169,
|
||||
NonCoherentDepthAttachmentReadEXT = 4170,
|
||||
NonCoherentStencilAttachmentReadEXT = 4171,
|
||||
SubgroupUniformControlFlowKHR = 4421,
|
||||
PostDepthCoverage = 4446,
|
||||
DenormPreserve = 4459,
|
||||
@@ -152,12 +160,19 @@ spv = {
|
||||
RoundingModeRTZ = 4463,
|
||||
EarlyAndLateFragmentTestsAMD = 5017,
|
||||
StencilRefReplacingEXT = 5027,
|
||||
CoalescingAMDX = 5069,
|
||||
MaxNodeRecursionAMDX = 5071,
|
||||
StaticNumWorkgroupsAMDX = 5072,
|
||||
ShaderIndexAMDX = 5073,
|
||||
MaxNumWorkgroupsAMDX = 5077,
|
||||
StencilRefUnchangedFrontAMD = 5079,
|
||||
StencilRefGreaterFrontAMD = 5080,
|
||||
StencilRefLessFrontAMD = 5081,
|
||||
StencilRefUnchangedBackAMD = 5082,
|
||||
StencilRefGreaterBackAMD = 5083,
|
||||
StencilRefLessBackAMD = 5084,
|
||||
QuadDerivativesKHR = 5088,
|
||||
RequireFullQuadsKHR = 5089,
|
||||
OutputLinesEXT = 5269,
|
||||
OutputLinesNV = 5269,
|
||||
OutputPrimitivesEXT = 5270,
|
||||
@@ -182,8 +197,14 @@ spv = {
|
||||
NoGlobalOffsetINTEL = 5895,
|
||||
NumSIMDWorkitemsINTEL = 5896,
|
||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
||||
MaximallyReconvergesKHR = 6023,
|
||||
FPFastMathDefault = 6028,
|
||||
StreamingInterfaceINTEL = 6154,
|
||||
RegisterMapInterfaceINTEL = 6160,
|
||||
NamedBarrierCountINTEL = 6417,
|
||||
MaximumRegistersINTEL = 6461,
|
||||
MaximumRegistersIdINTEL = 6462,
|
||||
NamedMaximumRegistersINTEL = 6463,
|
||||
},
|
||||
|
||||
StorageClass = {
|
||||
@@ -200,6 +221,9 @@ spv = {
|
||||
AtomicCounter = 10,
|
||||
Image = 11,
|
||||
StorageBuffer = 12,
|
||||
TileImageEXT = 4172,
|
||||
NodePayloadAMDX = 5068,
|
||||
NodeOutputPayloadAMDX = 5076,
|
||||
CallableDataKHR = 5328,
|
||||
CallableDataNV = 5328,
|
||||
IncomingCallableDataKHR = 5329,
|
||||
@@ -229,6 +253,7 @@ spv = {
|
||||
Rect = 4,
|
||||
Buffer = 5,
|
||||
SubpassData = 6,
|
||||
TileImageDataEXT = 4173,
|
||||
},
|
||||
|
||||
SamplerAddressingMode = {
|
||||
@@ -330,6 +355,8 @@ spv = {
|
||||
Float = 14,
|
||||
UnormInt24 = 15,
|
||||
UnormInt101010_2 = 16,
|
||||
UnsignedIntRaw10EXT = 19,
|
||||
UnsignedIntRaw12EXT = 20,
|
||||
},
|
||||
|
||||
ImageOperandsShift = {
|
||||
@@ -385,8 +412,11 @@ spv = {
|
||||
NSZ = 2,
|
||||
AllowRecip = 3,
|
||||
Fast = 4,
|
||||
AllowContract = 16,
|
||||
AllowContractFastINTEL = 16,
|
||||
AllowReassoc = 17,
|
||||
AllowReassocINTEL = 17,
|
||||
AllowTransform = 18,
|
||||
},
|
||||
|
||||
FPFastMathModeMask = {
|
||||
@@ -396,8 +426,11 @@ spv = {
|
||||
NSZ = 0x00000004,
|
||||
AllowRecip = 0x00000008,
|
||||
Fast = 0x00000010,
|
||||
AllowContract = 0x00010000,
|
||||
AllowContractFastINTEL = 0x00010000,
|
||||
AllowReassoc = 0x00020000,
|
||||
AllowReassocINTEL = 0x00020000,
|
||||
AllowTransform = 0x00040000,
|
||||
},
|
||||
|
||||
FPRoundingMode = {
|
||||
@@ -481,7 +514,14 @@ spv = {
|
||||
MaxByteOffsetId = 47,
|
||||
NoSignedWrap = 4469,
|
||||
NoUnsignedWrap = 4470,
|
||||
WeightTextureQCOM = 4487,
|
||||
BlockMatchTextureQCOM = 4488,
|
||||
BlockMatchSamplerQCOM = 4499,
|
||||
ExplicitInterpAMD = 4999,
|
||||
NodeSharesPayloadLimitsWithAMDX = 5019,
|
||||
NodeMaxPayloadsAMDX = 5020,
|
||||
TrackFinishWritingAMDX = 5078,
|
||||
PayloadNodeNameAMDX = 5091,
|
||||
OverrideCoverageNV = 5248,
|
||||
PassthroughNV = 5250,
|
||||
ViewportRelativeNV = 5252,
|
||||
@@ -531,6 +571,9 @@ spv = {
|
||||
MergeINTEL = 5834,
|
||||
BankBitsINTEL = 5835,
|
||||
ForcePow2DepthINTEL = 5836,
|
||||
StridesizeINTEL = 5883,
|
||||
WordsizeINTEL = 5884,
|
||||
TrueDualPortINTEL = 5885,
|
||||
BurstCoalesceINTEL = 5899,
|
||||
CacheSizeINTEL = 5900,
|
||||
DontStaticallyCoalesceINTEL = 5901,
|
||||
@@ -549,6 +592,24 @@ spv = {
|
||||
SingleElementVectorINTEL = 6085,
|
||||
VectorComputeCallableFunctionINTEL = 6087,
|
||||
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 = {
|
||||
@@ -623,6 +684,8 @@ spv = {
|
||||
BaryCoordSmoothSampleAMD = 4997,
|
||||
BaryCoordPullModelAMD = 4998,
|
||||
FragStencilRefEXT = 5014,
|
||||
CoalescedInputCountAMDX = 5021,
|
||||
ShaderIndexAMDX = 5073,
|
||||
ViewportMaskNV = 5253,
|
||||
SecondaryPositionNV = 5257,
|
||||
SecondaryViewportMaskNV = 5258,
|
||||
@@ -675,6 +738,9 @@ spv = {
|
||||
HitKindKHR = 5333,
|
||||
HitKindNV = 5333,
|
||||
CurrentRayTimeNV = 5334,
|
||||
HitTriangleVertexPositionsKHR = 5335,
|
||||
HitMicroTriangleVertexPositionsNV = 5337,
|
||||
HitMicroTriangleVertexBarycentricsNV = 5344,
|
||||
IncomingRayFlagsKHR = 5351,
|
||||
IncomingRayFlagsNV = 5351,
|
||||
RayGeometryIndexKHR = 5352,
|
||||
@@ -682,6 +748,8 @@ spv = {
|
||||
SMCountNV = 5375,
|
||||
WarpIDNV = 5376,
|
||||
SMIDNV = 5377,
|
||||
HitKindFrontFacingMicroTriangleNV = 5405,
|
||||
HitKindBackFacingMicroTriangleNV = 5406,
|
||||
CullMaskKHR = 6021,
|
||||
},
|
||||
|
||||
@@ -936,6 +1004,9 @@ spv = {
|
||||
ShaderViewportIndex = 70,
|
||||
UniformDecoration = 71,
|
||||
CoreBuiltinsARM = 4165,
|
||||
TileImageColorReadAccessEXT = 4166,
|
||||
TileImageDepthReadAccessEXT = 4167,
|
||||
TileImageStencilReadAccessEXT = 4168,
|
||||
FragmentShadingRateKHR = 4422,
|
||||
SubgroupBallotKHR = 4423,
|
||||
DrawParameters = 4427,
|
||||
@@ -967,6 +1038,10 @@ spv = {
|
||||
RayQueryKHR = 4472,
|
||||
RayTraversalPrimitiveCullingKHR = 4478,
|
||||
RayTracingKHR = 4479,
|
||||
TextureSampleWeightedQCOM = 4484,
|
||||
TextureBoxFilterQCOM = 4485,
|
||||
TextureBlockMatchQCOM = 4486,
|
||||
TextureBlockMatch2QCOM = 4498,
|
||||
Float16ImageAMD = 5008,
|
||||
ImageGatherBiasLodAMD = 5009,
|
||||
FragmentMaskAMD = 5010,
|
||||
@@ -974,6 +1049,8 @@ spv = {
|
||||
ImageReadWriteLodAMD = 5015,
|
||||
Int64ImageEXT = 5016,
|
||||
ShaderClockKHR = 5055,
|
||||
ShaderEnqueueAMDX = 5067,
|
||||
QuadControlKHR = 5087,
|
||||
SampleMaskOverrideCoverageNV = 5249,
|
||||
GeometryShaderPassthroughNV = 5251,
|
||||
ShaderViewportIndexLayerEXT = 5254,
|
||||
@@ -1015,6 +1092,7 @@ spv = {
|
||||
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||
RayTracingPositionFetchKHR = 5336,
|
||||
RayTracingNV = 5340,
|
||||
RayTracingMotionBlurNV = 5341,
|
||||
VulkanMemoryModel = 5345,
|
||||
@@ -1032,9 +1110,14 @@ spv = {
|
||||
FragmentShaderPixelInterlockEXT = 5378,
|
||||
DemoteToHelperInvocation = 5379,
|
||||
DemoteToHelperInvocationEXT = 5379,
|
||||
DisplacementMicromapNV = 5380,
|
||||
RayTracingOpacityMicromapEXT = 5381,
|
||||
ShaderInvocationReorderNV = 5383,
|
||||
BindlessTextureNV = 5390,
|
||||
RayQueryPositionFetchKHR = 5391,
|
||||
AtomicFloat16VectorNV = 5404,
|
||||
RayTracingDisplacementMicromapNV = 5409,
|
||||
RawAccessChainsNV = 5414,
|
||||
SubgroupShuffleINTEL = 5568,
|
||||
SubgroupBufferBlockIOINTEL = 5569,
|
||||
SubgroupImageBlockIOINTEL = 5570,
|
||||
@@ -1086,16 +1169,29 @@ spv = {
|
||||
DotProduct = 6019,
|
||||
DotProductKHR = 6019,
|
||||
RayCullMaskKHR = 6020,
|
||||
CooperativeMatrixKHR = 6022,
|
||||
BitInstructions = 6025,
|
||||
GroupNonUniformRotateKHR = 6026,
|
||||
FloatControls2 = 6029,
|
||||
AtomicFloat32AddEXT = 6033,
|
||||
AtomicFloat64AddEXT = 6034,
|
||||
LongConstantCompositeINTEL = 6089,
|
||||
LongCompositesINTEL = 6089,
|
||||
OptNoneINTEL = 6094,
|
||||
AtomicFloat16AddEXT = 6095,
|
||||
DebugInfoModuleINTEL = 6114,
|
||||
BFloat16ConversionINTEL = 6115,
|
||||
SplitBarrierINTEL = 6141,
|
||||
FPGAClusterAttributesV2INTEL = 6150,
|
||||
FPGAKernelAttributesv2INTEL = 6161,
|
||||
FPMaxErrorINTEL = 6169,
|
||||
FPGALatencyControlINTEL = 6171,
|
||||
FPGAArgumentInterfacesINTEL = 6174,
|
||||
GlobalVariableHostAccessINTEL = 6187,
|
||||
GlobalVariableFPGADecorationsINTEL = 6189,
|
||||
GroupUniformArithmeticKHR = 6400,
|
||||
MaskedGatherScatterINTEL = 6427,
|
||||
CacheControlsINTEL = 6441,
|
||||
RegisterLimitsINTEL = 6460,
|
||||
},
|
||||
|
||||
RayFlagsShift = {
|
||||
@@ -1191,6 +1287,76 @@ spv = {
|
||||
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 = {
|
||||
OpNop = 0,
|
||||
OpUndef = 1,
|
||||
@@ -1536,6 +1702,9 @@ spv = {
|
||||
OpPtrEqual = 401,
|
||||
OpPtrNotEqual = 402,
|
||||
OpPtrDiff = 403,
|
||||
OpColorAttachmentReadEXT = 4160,
|
||||
OpDepthAttachmentReadEXT = 4161,
|
||||
OpStencilAttachmentReadEXT = 4162,
|
||||
OpTerminateInvocation = 4416,
|
||||
OpSubgroupBallotKHR = 4421,
|
||||
OpSubgroupFirstInvocationKHR = 4422,
|
||||
@@ -1561,6 +1730,11 @@ spv = {
|
||||
OpUDotAccSatKHR = 4454,
|
||||
OpSUDotAccSat = 4455,
|
||||
OpSUDotAccSatKHR = 4455,
|
||||
OpTypeCooperativeMatrixKHR = 4456,
|
||||
OpCooperativeMatrixLoadKHR = 4457,
|
||||
OpCooperativeMatrixStoreKHR = 4458,
|
||||
OpCooperativeMatrixMulAddKHR = 4459,
|
||||
OpCooperativeMatrixLengthKHR = 4460,
|
||||
OpTypeRayQueryKHR = 4472,
|
||||
OpRayQueryInitializeKHR = 4473,
|
||||
OpRayQueryTerminateKHR = 4474,
|
||||
@@ -1568,6 +1742,14 @@ spv = {
|
||||
OpRayQueryConfirmIntersectionKHR = 4476,
|
||||
OpRayQueryProceedKHR = 4477,
|
||||
OpRayQueryGetIntersectionTypeKHR = 4479,
|
||||
OpImageSampleWeightedQCOM = 4480,
|
||||
OpImageBoxFilterQCOM = 4481,
|
||||
OpImageBlockMatchSSDQCOM = 4482,
|
||||
OpImageBlockMatchSADQCOM = 4483,
|
||||
OpImageBlockMatchWindowSSDQCOM = 4500,
|
||||
OpImageBlockMatchWindowSADQCOM = 4501,
|
||||
OpImageBlockMatchGatherSSDQCOM = 4502,
|
||||
OpImageBlockMatchGatherSADQCOM = 4503,
|
||||
OpGroupIAddNonUniformAMD = 5000,
|
||||
OpGroupFAddNonUniformAMD = 5001,
|
||||
OpGroupFMinNonUniformAMD = 5002,
|
||||
@@ -1579,6 +1761,11 @@ spv = {
|
||||
OpFragmentMaskFetchAMD = 5011,
|
||||
OpFragmentFetchAMD = 5012,
|
||||
OpReadClockKHR = 5056,
|
||||
OpFinalizeNodePayloadsAMDX = 5075,
|
||||
OpFinishWritingNodePayloadAMDX = 5078,
|
||||
OpInitializeNodePayloadsAMDX = 5090,
|
||||
OpGroupNonUniformQuadAllKHR = 5110,
|
||||
OpGroupNonUniformQuadAnyKHR = 5111,
|
||||
OpHitObjectRecordHitMotionNV = 5249,
|
||||
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||
OpHitObjectRecordMissMotionNV = 5251,
|
||||
@@ -1617,6 +1804,8 @@ spv = {
|
||||
OpSetMeshOutputsEXT = 5295,
|
||||
OpGroupNonUniformPartitionNV = 5296,
|
||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||
OpFetchMicroTriangleVertexPositionNV = 5300,
|
||||
OpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||
OpReportIntersectionKHR = 5334,
|
||||
OpReportIntersectionNV = 5334,
|
||||
OpIgnoreIntersectionNV = 5335,
|
||||
@@ -1624,6 +1813,7 @@ spv = {
|
||||
OpTraceNV = 5337,
|
||||
OpTraceMotionNV = 5338,
|
||||
OpTraceRayMotionNV = 5339,
|
||||
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||
OpTypeAccelerationStructureKHR = 5341,
|
||||
OpTypeAccelerationStructureNV = 5341,
|
||||
OpExecuteCallableNV = 5344,
|
||||
@@ -1644,6 +1834,7 @@ spv = {
|
||||
OpConvertUToSampledImageNV = 5395,
|
||||
OpConvertSampledImageToUNV = 5396,
|
||||
OpSamplerImageAddressingModeNV = 5397,
|
||||
OpRawAccessChainNV = 5398,
|
||||
OpSubgroupShuffleINTEL = 5571,
|
||||
OpSubgroupShuffleDownINTEL = 5572,
|
||||
OpSubgroupShuffleUpINTEL = 5573,
|
||||
@@ -1885,6 +2076,9 @@ spv = {
|
||||
OpTypeStructContinuedINTEL = 6090,
|
||||
OpConstantCompositeContinuedINTEL = 6091,
|
||||
OpSpecConstantCompositeContinuedINTEL = 6092,
|
||||
OpCompositeConstructContinuedINTEL = 6096,
|
||||
OpConvertFToBF16INTEL = 6116,
|
||||
OpConvertBF16ToFINTEL = 6117,
|
||||
OpControlBarrierArriveINTEL = 6142,
|
||||
OpControlBarrierWaitINTEL = 6143,
|
||||
OpGroupIMulKHR = 6401,
|
||||
@@ -1895,6 +2089,8 @@ spv = {
|
||||
OpGroupLogicalAndKHR = 6406,
|
||||
OpGroupLogicalOrKHR = 6407,
|
||||
OpGroupLogicalXorKHR = 6408,
|
||||
OpMaskedGatherINTEL = 6428,
|
||||
OpMaskedScatterINTEL = 6429,
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
# of this software and/or associated documentation files (the "Materials"),
|
||||
@@ -60,6 +60,11 @@ spv = {
|
||||
'HLSL' : 5,
|
||||
'CPP_for_OpenCL' : 6,
|
||||
'SYCL' : 7,
|
||||
'HERO_C' : 8,
|
||||
'NZSL' : 9,
|
||||
'WGSL' : 10,
|
||||
'Slang' : 11,
|
||||
'Zig' : 12,
|
||||
},
|
||||
|
||||
'ExecutionModel' : {
|
||||
@@ -143,6 +148,9 @@ spv = {
|
||||
'SubgroupsPerWorkgroupId' : 37,
|
||||
'LocalSizeId' : 38,
|
||||
'LocalSizeHintId' : 39,
|
||||
'NonCoherentColorAttachmentReadEXT' : 4169,
|
||||
'NonCoherentDepthAttachmentReadEXT' : 4170,
|
||||
'NonCoherentStencilAttachmentReadEXT' : 4171,
|
||||
'SubgroupUniformControlFlowKHR' : 4421,
|
||||
'PostDepthCoverage' : 4446,
|
||||
'DenormPreserve' : 4459,
|
||||
@@ -152,12 +160,19 @@ spv = {
|
||||
'RoundingModeRTZ' : 4463,
|
||||
'EarlyAndLateFragmentTestsAMD' : 5017,
|
||||
'StencilRefReplacingEXT' : 5027,
|
||||
'CoalescingAMDX' : 5069,
|
||||
'MaxNodeRecursionAMDX' : 5071,
|
||||
'StaticNumWorkgroupsAMDX' : 5072,
|
||||
'ShaderIndexAMDX' : 5073,
|
||||
'MaxNumWorkgroupsAMDX' : 5077,
|
||||
'StencilRefUnchangedFrontAMD' : 5079,
|
||||
'StencilRefGreaterFrontAMD' : 5080,
|
||||
'StencilRefLessFrontAMD' : 5081,
|
||||
'StencilRefUnchangedBackAMD' : 5082,
|
||||
'StencilRefGreaterBackAMD' : 5083,
|
||||
'StencilRefLessBackAMD' : 5084,
|
||||
'QuadDerivativesKHR' : 5088,
|
||||
'RequireFullQuadsKHR' : 5089,
|
||||
'OutputLinesEXT' : 5269,
|
||||
'OutputLinesNV' : 5269,
|
||||
'OutputPrimitivesEXT' : 5270,
|
||||
@@ -182,8 +197,14 @@ spv = {
|
||||
'NoGlobalOffsetINTEL' : 5895,
|
||||
'NumSIMDWorkitemsINTEL' : 5896,
|
||||
'SchedulerTargetFmaxMhzINTEL' : 5903,
|
||||
'MaximallyReconvergesKHR' : 6023,
|
||||
'FPFastMathDefault' : 6028,
|
||||
'StreamingInterfaceINTEL' : 6154,
|
||||
'RegisterMapInterfaceINTEL' : 6160,
|
||||
'NamedBarrierCountINTEL' : 6417,
|
||||
'MaximumRegistersINTEL' : 6461,
|
||||
'MaximumRegistersIdINTEL' : 6462,
|
||||
'NamedMaximumRegistersINTEL' : 6463,
|
||||
},
|
||||
|
||||
'StorageClass' : {
|
||||
@@ -200,6 +221,9 @@ spv = {
|
||||
'AtomicCounter' : 10,
|
||||
'Image' : 11,
|
||||
'StorageBuffer' : 12,
|
||||
'TileImageEXT' : 4172,
|
||||
'NodePayloadAMDX' : 5068,
|
||||
'NodeOutputPayloadAMDX' : 5076,
|
||||
'CallableDataKHR' : 5328,
|
||||
'CallableDataNV' : 5328,
|
||||
'IncomingCallableDataKHR' : 5329,
|
||||
@@ -229,6 +253,7 @@ spv = {
|
||||
'Rect' : 4,
|
||||
'Buffer' : 5,
|
||||
'SubpassData' : 6,
|
||||
'TileImageDataEXT' : 4173,
|
||||
},
|
||||
|
||||
'SamplerAddressingMode' : {
|
||||
@@ -330,6 +355,8 @@ spv = {
|
||||
'Float' : 14,
|
||||
'UnormInt24' : 15,
|
||||
'UnormInt101010_2' : 16,
|
||||
'UnsignedIntRaw10EXT' : 19,
|
||||
'UnsignedIntRaw12EXT' : 20,
|
||||
},
|
||||
|
||||
'ImageOperandsShift' : {
|
||||
@@ -385,8 +412,11 @@ spv = {
|
||||
'NSZ' : 2,
|
||||
'AllowRecip' : 3,
|
||||
'Fast' : 4,
|
||||
'AllowContract' : 16,
|
||||
'AllowContractFastINTEL' : 16,
|
||||
'AllowReassoc' : 17,
|
||||
'AllowReassocINTEL' : 17,
|
||||
'AllowTransform' : 18,
|
||||
},
|
||||
|
||||
'FPFastMathModeMask' : {
|
||||
@@ -396,8 +426,11 @@ spv = {
|
||||
'NSZ' : 0x00000004,
|
||||
'AllowRecip' : 0x00000008,
|
||||
'Fast' : 0x00000010,
|
||||
'AllowContract' : 0x00010000,
|
||||
'AllowContractFastINTEL' : 0x00010000,
|
||||
'AllowReassoc' : 0x00020000,
|
||||
'AllowReassocINTEL' : 0x00020000,
|
||||
'AllowTransform' : 0x00040000,
|
||||
},
|
||||
|
||||
'FPRoundingMode' : {
|
||||
@@ -481,7 +514,14 @@ spv = {
|
||||
'MaxByteOffsetId' : 47,
|
||||
'NoSignedWrap' : 4469,
|
||||
'NoUnsignedWrap' : 4470,
|
||||
'WeightTextureQCOM' : 4487,
|
||||
'BlockMatchTextureQCOM' : 4488,
|
||||
'BlockMatchSamplerQCOM' : 4499,
|
||||
'ExplicitInterpAMD' : 4999,
|
||||
'NodeSharesPayloadLimitsWithAMDX' : 5019,
|
||||
'NodeMaxPayloadsAMDX' : 5020,
|
||||
'TrackFinishWritingAMDX' : 5078,
|
||||
'PayloadNodeNameAMDX' : 5091,
|
||||
'OverrideCoverageNV' : 5248,
|
||||
'PassthroughNV' : 5250,
|
||||
'ViewportRelativeNV' : 5252,
|
||||
@@ -531,6 +571,9 @@ spv = {
|
||||
'MergeINTEL' : 5834,
|
||||
'BankBitsINTEL' : 5835,
|
||||
'ForcePow2DepthINTEL' : 5836,
|
||||
'StridesizeINTEL' : 5883,
|
||||
'WordsizeINTEL' : 5884,
|
||||
'TrueDualPortINTEL' : 5885,
|
||||
'BurstCoalesceINTEL' : 5899,
|
||||
'CacheSizeINTEL' : 5900,
|
||||
'DontStaticallyCoalesceINTEL' : 5901,
|
||||
@@ -549,6 +592,24 @@ spv = {
|
||||
'SingleElementVectorINTEL' : 6085,
|
||||
'VectorComputeCallableFunctionINTEL' : 6087,
|
||||
'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' : {
|
||||
@@ -623,6 +684,8 @@ spv = {
|
||||
'BaryCoordSmoothSampleAMD' : 4997,
|
||||
'BaryCoordPullModelAMD' : 4998,
|
||||
'FragStencilRefEXT' : 5014,
|
||||
'CoalescedInputCountAMDX' : 5021,
|
||||
'ShaderIndexAMDX' : 5073,
|
||||
'ViewportMaskNV' : 5253,
|
||||
'SecondaryPositionNV' : 5257,
|
||||
'SecondaryViewportMaskNV' : 5258,
|
||||
@@ -675,6 +738,9 @@ spv = {
|
||||
'HitKindKHR' : 5333,
|
||||
'HitKindNV' : 5333,
|
||||
'CurrentRayTimeNV' : 5334,
|
||||
'HitTriangleVertexPositionsKHR' : 5335,
|
||||
'HitMicroTriangleVertexPositionsNV' : 5337,
|
||||
'HitMicroTriangleVertexBarycentricsNV' : 5344,
|
||||
'IncomingRayFlagsKHR' : 5351,
|
||||
'IncomingRayFlagsNV' : 5351,
|
||||
'RayGeometryIndexKHR' : 5352,
|
||||
@@ -682,6 +748,8 @@ spv = {
|
||||
'SMCountNV' : 5375,
|
||||
'WarpIDNV' : 5376,
|
||||
'SMIDNV' : 5377,
|
||||
'HitKindFrontFacingMicroTriangleNV' : 5405,
|
||||
'HitKindBackFacingMicroTriangleNV' : 5406,
|
||||
'CullMaskKHR' : 6021,
|
||||
},
|
||||
|
||||
@@ -936,6 +1004,9 @@ spv = {
|
||||
'ShaderViewportIndex' : 70,
|
||||
'UniformDecoration' : 71,
|
||||
'CoreBuiltinsARM' : 4165,
|
||||
'TileImageColorReadAccessEXT' : 4166,
|
||||
'TileImageDepthReadAccessEXT' : 4167,
|
||||
'TileImageStencilReadAccessEXT' : 4168,
|
||||
'FragmentShadingRateKHR' : 4422,
|
||||
'SubgroupBallotKHR' : 4423,
|
||||
'DrawParameters' : 4427,
|
||||
@@ -967,6 +1038,10 @@ spv = {
|
||||
'RayQueryKHR' : 4472,
|
||||
'RayTraversalPrimitiveCullingKHR' : 4478,
|
||||
'RayTracingKHR' : 4479,
|
||||
'TextureSampleWeightedQCOM' : 4484,
|
||||
'TextureBoxFilterQCOM' : 4485,
|
||||
'TextureBlockMatchQCOM' : 4486,
|
||||
'TextureBlockMatch2QCOM' : 4498,
|
||||
'Float16ImageAMD' : 5008,
|
||||
'ImageGatherBiasLodAMD' : 5009,
|
||||
'FragmentMaskAMD' : 5010,
|
||||
@@ -974,6 +1049,8 @@ spv = {
|
||||
'ImageReadWriteLodAMD' : 5015,
|
||||
'Int64ImageEXT' : 5016,
|
||||
'ShaderClockKHR' : 5055,
|
||||
'ShaderEnqueueAMDX' : 5067,
|
||||
'QuadControlKHR' : 5087,
|
||||
'SampleMaskOverrideCoverageNV' : 5249,
|
||||
'GeometryShaderPassthroughNV' : 5251,
|
||||
'ShaderViewportIndexLayerEXT' : 5254,
|
||||
@@ -1015,6 +1092,7 @@ spv = {
|
||||
'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311,
|
||||
'StorageTexelBufferArrayNonUniformIndexing' : 5312,
|
||||
'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312,
|
||||
'RayTracingPositionFetchKHR' : 5336,
|
||||
'RayTracingNV' : 5340,
|
||||
'RayTracingMotionBlurNV' : 5341,
|
||||
'VulkanMemoryModel' : 5345,
|
||||
@@ -1032,9 +1110,14 @@ spv = {
|
||||
'FragmentShaderPixelInterlockEXT' : 5378,
|
||||
'DemoteToHelperInvocation' : 5379,
|
||||
'DemoteToHelperInvocationEXT' : 5379,
|
||||
'DisplacementMicromapNV' : 5380,
|
||||
'RayTracingOpacityMicromapEXT' : 5381,
|
||||
'ShaderInvocationReorderNV' : 5383,
|
||||
'BindlessTextureNV' : 5390,
|
||||
'RayQueryPositionFetchKHR' : 5391,
|
||||
'AtomicFloat16VectorNV' : 5404,
|
||||
'RayTracingDisplacementMicromapNV' : 5409,
|
||||
'RawAccessChainsNV' : 5414,
|
||||
'SubgroupShuffleINTEL' : 5568,
|
||||
'SubgroupBufferBlockIOINTEL' : 5569,
|
||||
'SubgroupImageBlockIOINTEL' : 5570,
|
||||
@@ -1086,16 +1169,29 @@ spv = {
|
||||
'DotProduct' : 6019,
|
||||
'DotProductKHR' : 6019,
|
||||
'RayCullMaskKHR' : 6020,
|
||||
'CooperativeMatrixKHR' : 6022,
|
||||
'BitInstructions' : 6025,
|
||||
'GroupNonUniformRotateKHR' : 6026,
|
||||
'FloatControls2' : 6029,
|
||||
'AtomicFloat32AddEXT' : 6033,
|
||||
'AtomicFloat64AddEXT' : 6034,
|
||||
'LongConstantCompositeINTEL' : 6089,
|
||||
'LongCompositesINTEL' : 6089,
|
||||
'OptNoneINTEL' : 6094,
|
||||
'AtomicFloat16AddEXT' : 6095,
|
||||
'DebugInfoModuleINTEL' : 6114,
|
||||
'BFloat16ConversionINTEL' : 6115,
|
||||
'SplitBarrierINTEL' : 6141,
|
||||
'FPGAClusterAttributesV2INTEL' : 6150,
|
||||
'FPGAKernelAttributesv2INTEL' : 6161,
|
||||
'FPMaxErrorINTEL' : 6169,
|
||||
'FPGALatencyControlINTEL' : 6171,
|
||||
'FPGAArgumentInterfacesINTEL' : 6174,
|
||||
'GlobalVariableHostAccessINTEL' : 6187,
|
||||
'GlobalVariableFPGADecorationsINTEL' : 6189,
|
||||
'GroupUniformArithmeticKHR' : 6400,
|
||||
'MaskedGatherScatterINTEL' : 6427,
|
||||
'CacheControlsINTEL' : 6441,
|
||||
'RegisterLimitsINTEL' : 6460,
|
||||
},
|
||||
|
||||
'RayFlagsShift' : {
|
||||
@@ -1191,6 +1287,76 @@ spv = {
|
||||
'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' : {
|
||||
'OpNop' : 0,
|
||||
'OpUndef' : 1,
|
||||
@@ -1536,6 +1702,9 @@ spv = {
|
||||
'OpPtrEqual' : 401,
|
||||
'OpPtrNotEqual' : 402,
|
||||
'OpPtrDiff' : 403,
|
||||
'OpColorAttachmentReadEXT' : 4160,
|
||||
'OpDepthAttachmentReadEXT' : 4161,
|
||||
'OpStencilAttachmentReadEXT' : 4162,
|
||||
'OpTerminateInvocation' : 4416,
|
||||
'OpSubgroupBallotKHR' : 4421,
|
||||
'OpSubgroupFirstInvocationKHR' : 4422,
|
||||
@@ -1561,6 +1730,11 @@ spv = {
|
||||
'OpUDotAccSatKHR' : 4454,
|
||||
'OpSUDotAccSat' : 4455,
|
||||
'OpSUDotAccSatKHR' : 4455,
|
||||
'OpTypeCooperativeMatrixKHR' : 4456,
|
||||
'OpCooperativeMatrixLoadKHR' : 4457,
|
||||
'OpCooperativeMatrixStoreKHR' : 4458,
|
||||
'OpCooperativeMatrixMulAddKHR' : 4459,
|
||||
'OpCooperativeMatrixLengthKHR' : 4460,
|
||||
'OpTypeRayQueryKHR' : 4472,
|
||||
'OpRayQueryInitializeKHR' : 4473,
|
||||
'OpRayQueryTerminateKHR' : 4474,
|
||||
@@ -1568,6 +1742,14 @@ spv = {
|
||||
'OpRayQueryConfirmIntersectionKHR' : 4476,
|
||||
'OpRayQueryProceedKHR' : 4477,
|
||||
'OpRayQueryGetIntersectionTypeKHR' : 4479,
|
||||
'OpImageSampleWeightedQCOM' : 4480,
|
||||
'OpImageBoxFilterQCOM' : 4481,
|
||||
'OpImageBlockMatchSSDQCOM' : 4482,
|
||||
'OpImageBlockMatchSADQCOM' : 4483,
|
||||
'OpImageBlockMatchWindowSSDQCOM' : 4500,
|
||||
'OpImageBlockMatchWindowSADQCOM' : 4501,
|
||||
'OpImageBlockMatchGatherSSDQCOM' : 4502,
|
||||
'OpImageBlockMatchGatherSADQCOM' : 4503,
|
||||
'OpGroupIAddNonUniformAMD' : 5000,
|
||||
'OpGroupFAddNonUniformAMD' : 5001,
|
||||
'OpGroupFMinNonUniformAMD' : 5002,
|
||||
@@ -1579,6 +1761,11 @@ spv = {
|
||||
'OpFragmentMaskFetchAMD' : 5011,
|
||||
'OpFragmentFetchAMD' : 5012,
|
||||
'OpReadClockKHR' : 5056,
|
||||
'OpFinalizeNodePayloadsAMDX' : 5075,
|
||||
'OpFinishWritingNodePayloadAMDX' : 5078,
|
||||
'OpInitializeNodePayloadsAMDX' : 5090,
|
||||
'OpGroupNonUniformQuadAllKHR' : 5110,
|
||||
'OpGroupNonUniformQuadAnyKHR' : 5111,
|
||||
'OpHitObjectRecordHitMotionNV' : 5249,
|
||||
'OpHitObjectRecordHitWithIndexMotionNV' : 5250,
|
||||
'OpHitObjectRecordMissMotionNV' : 5251,
|
||||
@@ -1617,6 +1804,8 @@ spv = {
|
||||
'OpSetMeshOutputsEXT' : 5295,
|
||||
'OpGroupNonUniformPartitionNV' : 5296,
|
||||
'OpWritePackedPrimitiveIndices4x8NV' : 5299,
|
||||
'OpFetchMicroTriangleVertexPositionNV' : 5300,
|
||||
'OpFetchMicroTriangleVertexBarycentricNV' : 5301,
|
||||
'OpReportIntersectionKHR' : 5334,
|
||||
'OpReportIntersectionNV' : 5334,
|
||||
'OpIgnoreIntersectionNV' : 5335,
|
||||
@@ -1624,6 +1813,7 @@ spv = {
|
||||
'OpTraceNV' : 5337,
|
||||
'OpTraceMotionNV' : 5338,
|
||||
'OpTraceRayMotionNV' : 5339,
|
||||
'OpRayQueryGetIntersectionTriangleVertexPositionsKHR' : 5340,
|
||||
'OpTypeAccelerationStructureKHR' : 5341,
|
||||
'OpTypeAccelerationStructureNV' : 5341,
|
||||
'OpExecuteCallableNV' : 5344,
|
||||
@@ -1644,6 +1834,7 @@ spv = {
|
||||
'OpConvertUToSampledImageNV' : 5395,
|
||||
'OpConvertSampledImageToUNV' : 5396,
|
||||
'OpSamplerImageAddressingModeNV' : 5397,
|
||||
'OpRawAccessChainNV' : 5398,
|
||||
'OpSubgroupShuffleINTEL' : 5571,
|
||||
'OpSubgroupShuffleDownINTEL' : 5572,
|
||||
'OpSubgroupShuffleUpINTEL' : 5573,
|
||||
@@ -1885,6 +2076,9 @@ spv = {
|
||||
'OpTypeStructContinuedINTEL' : 6090,
|
||||
'OpConstantCompositeContinuedINTEL' : 6091,
|
||||
'OpSpecConstantCompositeContinuedINTEL' : 6092,
|
||||
'OpCompositeConstructContinuedINTEL' : 6096,
|
||||
'OpConvertFToBF16INTEL' : 6116,
|
||||
'OpConvertBF16ToFINTEL' : 6117,
|
||||
'OpControlBarrierArriveINTEL' : 6142,
|
||||
'OpControlBarrierWaitINTEL' : 6143,
|
||||
'OpGroupIMulKHR' : 6401,
|
||||
@@ -1895,6 +2089,8 @@ spv = {
|
||||
'OpGroupLogicalAndKHR' : 6406,
|
||||
'OpGroupLogicalOrKHR' : 6407,
|
||||
'OpGroupLogicalXorKHR' : 6408,
|
||||
'OpMaskedGatherINTEL' : 6428,
|
||||
'OpMaskedScatterINTEL' : 6429,
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
+ of this software and/or associated documentation files (the "Materials"),
|
||||
@@ -68,6 +68,11 @@ enum SourceLanguage : uint
|
||||
HLSL = 5,
|
||||
CPP_for_OpenCL = 6,
|
||||
SYCL = 7,
|
||||
HERO_C = 8,
|
||||
NZSL = 9,
|
||||
WGSL = 10,
|
||||
Slang = 11,
|
||||
Zig = 12,
|
||||
}
|
||||
|
||||
enum ExecutionModel : uint
|
||||
@@ -155,6 +160,9 @@ enum ExecutionMode : uint
|
||||
SubgroupsPerWorkgroupId = 37,
|
||||
LocalSizeId = 38,
|
||||
LocalSizeHintId = 39,
|
||||
NonCoherentColorAttachmentReadEXT = 4169,
|
||||
NonCoherentDepthAttachmentReadEXT = 4170,
|
||||
NonCoherentStencilAttachmentReadEXT = 4171,
|
||||
SubgroupUniformControlFlowKHR = 4421,
|
||||
PostDepthCoverage = 4446,
|
||||
DenormPreserve = 4459,
|
||||
@@ -164,12 +172,19 @@ enum ExecutionMode : uint
|
||||
RoundingModeRTZ = 4463,
|
||||
EarlyAndLateFragmentTestsAMD = 5017,
|
||||
StencilRefReplacingEXT = 5027,
|
||||
CoalescingAMDX = 5069,
|
||||
MaxNodeRecursionAMDX = 5071,
|
||||
StaticNumWorkgroupsAMDX = 5072,
|
||||
ShaderIndexAMDX = 5073,
|
||||
MaxNumWorkgroupsAMDX = 5077,
|
||||
StencilRefUnchangedFrontAMD = 5079,
|
||||
StencilRefGreaterFrontAMD = 5080,
|
||||
StencilRefLessFrontAMD = 5081,
|
||||
StencilRefUnchangedBackAMD = 5082,
|
||||
StencilRefGreaterBackAMD = 5083,
|
||||
StencilRefLessBackAMD = 5084,
|
||||
QuadDerivativesKHR = 5088,
|
||||
RequireFullQuadsKHR = 5089,
|
||||
OutputLinesEXT = 5269,
|
||||
OutputLinesNV = 5269,
|
||||
OutputPrimitivesEXT = 5270,
|
||||
@@ -194,8 +209,14 @@ enum ExecutionMode : uint
|
||||
NoGlobalOffsetINTEL = 5895,
|
||||
NumSIMDWorkitemsINTEL = 5896,
|
||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
||||
MaximallyReconvergesKHR = 6023,
|
||||
FPFastMathDefault = 6028,
|
||||
StreamingInterfaceINTEL = 6154,
|
||||
RegisterMapInterfaceINTEL = 6160,
|
||||
NamedBarrierCountINTEL = 6417,
|
||||
MaximumRegistersINTEL = 6461,
|
||||
MaximumRegistersIdINTEL = 6462,
|
||||
NamedMaximumRegistersINTEL = 6463,
|
||||
}
|
||||
|
||||
enum StorageClass : uint
|
||||
@@ -213,6 +234,9 @@ enum StorageClass : uint
|
||||
AtomicCounter = 10,
|
||||
Image = 11,
|
||||
StorageBuffer = 12,
|
||||
TileImageEXT = 4172,
|
||||
NodePayloadAMDX = 5068,
|
||||
NodeOutputPayloadAMDX = 5076,
|
||||
CallableDataKHR = 5328,
|
||||
CallableDataNV = 5328,
|
||||
IncomingCallableDataKHR = 5329,
|
||||
@@ -243,6 +267,7 @@ enum Dim : uint
|
||||
Rect = 4,
|
||||
Buffer = 5,
|
||||
SubpassData = 6,
|
||||
TileImageDataEXT = 4173,
|
||||
}
|
||||
|
||||
enum SamplerAddressingMode : uint
|
||||
@@ -349,6 +374,8 @@ enum ImageChannelDataType : uint
|
||||
Float = 14,
|
||||
UnormInt24 = 15,
|
||||
UnormInt101010_2 = 16,
|
||||
UnsignedIntRaw10EXT = 19,
|
||||
UnsignedIntRaw12EXT = 20,
|
||||
}
|
||||
|
||||
enum ImageOperandsShift : uint
|
||||
@@ -407,8 +434,11 @@ enum FPFastMathModeShift : uint
|
||||
NSZ = 2,
|
||||
AllowRecip = 3,
|
||||
Fast = 4,
|
||||
AllowContract = 16,
|
||||
AllowContractFastINTEL = 16,
|
||||
AllowReassoc = 17,
|
||||
AllowReassocINTEL = 17,
|
||||
AllowTransform = 18,
|
||||
}
|
||||
|
||||
enum FPFastMathModeMask : uint
|
||||
@@ -419,8 +449,11 @@ enum FPFastMathModeMask : uint
|
||||
NSZ = 0x00000004,
|
||||
AllowRecip = 0x00000008,
|
||||
Fast = 0x00000010,
|
||||
AllowContract = 0x00010000,
|
||||
AllowContractFastINTEL = 0x00010000,
|
||||
AllowReassoc = 0x00020000,
|
||||
AllowReassocINTEL = 0x00020000,
|
||||
AllowTransform = 0x00040000,
|
||||
}
|
||||
|
||||
enum FPRoundingMode : uint
|
||||
@@ -509,7 +542,14 @@ enum Decoration : uint
|
||||
MaxByteOffsetId = 47,
|
||||
NoSignedWrap = 4469,
|
||||
NoUnsignedWrap = 4470,
|
||||
WeightTextureQCOM = 4487,
|
||||
BlockMatchTextureQCOM = 4488,
|
||||
BlockMatchSamplerQCOM = 4499,
|
||||
ExplicitInterpAMD = 4999,
|
||||
NodeSharesPayloadLimitsWithAMDX = 5019,
|
||||
NodeMaxPayloadsAMDX = 5020,
|
||||
TrackFinishWritingAMDX = 5078,
|
||||
PayloadNodeNameAMDX = 5091,
|
||||
OverrideCoverageNV = 5248,
|
||||
PassthroughNV = 5250,
|
||||
ViewportRelativeNV = 5252,
|
||||
@@ -559,6 +599,9 @@ enum Decoration : uint
|
||||
MergeINTEL = 5834,
|
||||
BankBitsINTEL = 5835,
|
||||
ForcePow2DepthINTEL = 5836,
|
||||
StridesizeINTEL = 5883,
|
||||
WordsizeINTEL = 5884,
|
||||
TrueDualPortINTEL = 5885,
|
||||
BurstCoalesceINTEL = 5899,
|
||||
CacheSizeINTEL = 5900,
|
||||
DontStaticallyCoalesceINTEL = 5901,
|
||||
@@ -577,6 +620,24 @@ enum Decoration : uint
|
||||
SingleElementVectorINTEL = 6085,
|
||||
VectorComputeCallableFunctionINTEL = 6087,
|
||||
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
|
||||
@@ -652,6 +713,8 @@ enum BuiltIn : uint
|
||||
BaryCoordSmoothSampleAMD = 4997,
|
||||
BaryCoordPullModelAMD = 4998,
|
||||
FragStencilRefEXT = 5014,
|
||||
CoalescedInputCountAMDX = 5021,
|
||||
ShaderIndexAMDX = 5073,
|
||||
ViewportMaskNV = 5253,
|
||||
SecondaryPositionNV = 5257,
|
||||
SecondaryViewportMaskNV = 5258,
|
||||
@@ -704,6 +767,9 @@ enum BuiltIn : uint
|
||||
HitKindKHR = 5333,
|
||||
HitKindNV = 5333,
|
||||
CurrentRayTimeNV = 5334,
|
||||
HitTriangleVertexPositionsKHR = 5335,
|
||||
HitMicroTriangleVertexPositionsNV = 5337,
|
||||
HitMicroTriangleVertexBarycentricsNV = 5344,
|
||||
IncomingRayFlagsKHR = 5351,
|
||||
IncomingRayFlagsNV = 5351,
|
||||
RayGeometryIndexKHR = 5352,
|
||||
@@ -711,6 +777,8 @@ enum BuiltIn : uint
|
||||
SMCountNV = 5375,
|
||||
WarpIDNV = 5376,
|
||||
SMIDNV = 5377,
|
||||
HitKindFrontFacingMicroTriangleNV = 5405,
|
||||
HitKindBackFacingMicroTriangleNV = 5406,
|
||||
CullMaskKHR = 6021,
|
||||
}
|
||||
|
||||
@@ -981,6 +1049,9 @@ enum Capability : uint
|
||||
ShaderViewportIndex = 70,
|
||||
UniformDecoration = 71,
|
||||
CoreBuiltinsARM = 4165,
|
||||
TileImageColorReadAccessEXT = 4166,
|
||||
TileImageDepthReadAccessEXT = 4167,
|
||||
TileImageStencilReadAccessEXT = 4168,
|
||||
FragmentShadingRateKHR = 4422,
|
||||
SubgroupBallotKHR = 4423,
|
||||
DrawParameters = 4427,
|
||||
@@ -1012,6 +1083,10 @@ enum Capability : uint
|
||||
RayQueryKHR = 4472,
|
||||
RayTraversalPrimitiveCullingKHR = 4478,
|
||||
RayTracingKHR = 4479,
|
||||
TextureSampleWeightedQCOM = 4484,
|
||||
TextureBoxFilterQCOM = 4485,
|
||||
TextureBlockMatchQCOM = 4486,
|
||||
TextureBlockMatch2QCOM = 4498,
|
||||
Float16ImageAMD = 5008,
|
||||
ImageGatherBiasLodAMD = 5009,
|
||||
FragmentMaskAMD = 5010,
|
||||
@@ -1019,6 +1094,8 @@ enum Capability : uint
|
||||
ImageReadWriteLodAMD = 5015,
|
||||
Int64ImageEXT = 5016,
|
||||
ShaderClockKHR = 5055,
|
||||
ShaderEnqueueAMDX = 5067,
|
||||
QuadControlKHR = 5087,
|
||||
SampleMaskOverrideCoverageNV = 5249,
|
||||
GeometryShaderPassthroughNV = 5251,
|
||||
ShaderViewportIndexLayerEXT = 5254,
|
||||
@@ -1060,6 +1137,7 @@ enum Capability : uint
|
||||
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||||
StorageTexelBufferArrayNonUniformIndexing = 5312,
|
||||
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||||
RayTracingPositionFetchKHR = 5336,
|
||||
RayTracingNV = 5340,
|
||||
RayTracingMotionBlurNV = 5341,
|
||||
VulkanMemoryModel = 5345,
|
||||
@@ -1077,9 +1155,14 @@ enum Capability : uint
|
||||
FragmentShaderPixelInterlockEXT = 5378,
|
||||
DemoteToHelperInvocation = 5379,
|
||||
DemoteToHelperInvocationEXT = 5379,
|
||||
DisplacementMicromapNV = 5380,
|
||||
RayTracingOpacityMicromapEXT = 5381,
|
||||
ShaderInvocationReorderNV = 5383,
|
||||
BindlessTextureNV = 5390,
|
||||
RayQueryPositionFetchKHR = 5391,
|
||||
AtomicFloat16VectorNV = 5404,
|
||||
RayTracingDisplacementMicromapNV = 5409,
|
||||
RawAccessChainsNV = 5414,
|
||||
SubgroupShuffleINTEL = 5568,
|
||||
SubgroupBufferBlockIOINTEL = 5569,
|
||||
SubgroupImageBlockIOINTEL = 5570,
|
||||
@@ -1131,16 +1214,29 @@ enum Capability : uint
|
||||
DotProduct = 6019,
|
||||
DotProductKHR = 6019,
|
||||
RayCullMaskKHR = 6020,
|
||||
CooperativeMatrixKHR = 6022,
|
||||
BitInstructions = 6025,
|
||||
GroupNonUniformRotateKHR = 6026,
|
||||
FloatControls2 = 6029,
|
||||
AtomicFloat32AddEXT = 6033,
|
||||
AtomicFloat64AddEXT = 6034,
|
||||
LongConstantCompositeINTEL = 6089,
|
||||
LongCompositesINTEL = 6089,
|
||||
OptNoneINTEL = 6094,
|
||||
AtomicFloat16AddEXT = 6095,
|
||||
DebugInfoModuleINTEL = 6114,
|
||||
BFloat16ConversionINTEL = 6115,
|
||||
SplitBarrierINTEL = 6141,
|
||||
FPGAClusterAttributesV2INTEL = 6150,
|
||||
FPGAKernelAttributesv2INTEL = 6161,
|
||||
FPMaxErrorINTEL = 6169,
|
||||
FPGALatencyControlINTEL = 6171,
|
||||
FPGAArgumentInterfacesINTEL = 6174,
|
||||
GlobalVariableHostAccessINTEL = 6187,
|
||||
GlobalVariableFPGADecorationsINTEL = 6189,
|
||||
GroupUniformArithmeticKHR = 6400,
|
||||
MaskedGatherScatterINTEL = 6427,
|
||||
CacheControlsINTEL = 6441,
|
||||
RegisterLimitsINTEL = 6460,
|
||||
}
|
||||
|
||||
enum RayFlagsShift : uint
|
||||
@@ -1248,6 +1344,87 @@ enum PackedVectorFormat : uint
|
||||
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
|
||||
{
|
||||
OpNop = 0,
|
||||
@@ -1594,6 +1771,9 @@ enum Op : uint
|
||||
OpPtrEqual = 401,
|
||||
OpPtrNotEqual = 402,
|
||||
OpPtrDiff = 403,
|
||||
OpColorAttachmentReadEXT = 4160,
|
||||
OpDepthAttachmentReadEXT = 4161,
|
||||
OpStencilAttachmentReadEXT = 4162,
|
||||
OpTerminateInvocation = 4416,
|
||||
OpSubgroupBallotKHR = 4421,
|
||||
OpSubgroupFirstInvocationKHR = 4422,
|
||||
@@ -1619,6 +1799,11 @@ enum Op : uint
|
||||
OpUDotAccSatKHR = 4454,
|
||||
OpSUDotAccSat = 4455,
|
||||
OpSUDotAccSatKHR = 4455,
|
||||
OpTypeCooperativeMatrixKHR = 4456,
|
||||
OpCooperativeMatrixLoadKHR = 4457,
|
||||
OpCooperativeMatrixStoreKHR = 4458,
|
||||
OpCooperativeMatrixMulAddKHR = 4459,
|
||||
OpCooperativeMatrixLengthKHR = 4460,
|
||||
OpTypeRayQueryKHR = 4472,
|
||||
OpRayQueryInitializeKHR = 4473,
|
||||
OpRayQueryTerminateKHR = 4474,
|
||||
@@ -1626,6 +1811,14 @@ enum Op : uint
|
||||
OpRayQueryConfirmIntersectionKHR = 4476,
|
||||
OpRayQueryProceedKHR = 4477,
|
||||
OpRayQueryGetIntersectionTypeKHR = 4479,
|
||||
OpImageSampleWeightedQCOM = 4480,
|
||||
OpImageBoxFilterQCOM = 4481,
|
||||
OpImageBlockMatchSSDQCOM = 4482,
|
||||
OpImageBlockMatchSADQCOM = 4483,
|
||||
OpImageBlockMatchWindowSSDQCOM = 4500,
|
||||
OpImageBlockMatchWindowSADQCOM = 4501,
|
||||
OpImageBlockMatchGatherSSDQCOM = 4502,
|
||||
OpImageBlockMatchGatherSADQCOM = 4503,
|
||||
OpGroupIAddNonUniformAMD = 5000,
|
||||
OpGroupFAddNonUniformAMD = 5001,
|
||||
OpGroupFMinNonUniformAMD = 5002,
|
||||
@@ -1637,6 +1830,11 @@ enum Op : uint
|
||||
OpFragmentMaskFetchAMD = 5011,
|
||||
OpFragmentFetchAMD = 5012,
|
||||
OpReadClockKHR = 5056,
|
||||
OpFinalizeNodePayloadsAMDX = 5075,
|
||||
OpFinishWritingNodePayloadAMDX = 5078,
|
||||
OpInitializeNodePayloadsAMDX = 5090,
|
||||
OpGroupNonUniformQuadAllKHR = 5110,
|
||||
OpGroupNonUniformQuadAnyKHR = 5111,
|
||||
OpHitObjectRecordHitMotionNV = 5249,
|
||||
OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
||||
OpHitObjectRecordMissMotionNV = 5251,
|
||||
@@ -1675,6 +1873,8 @@ enum Op : uint
|
||||
OpSetMeshOutputsEXT = 5295,
|
||||
OpGroupNonUniformPartitionNV = 5296,
|
||||
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||
OpFetchMicroTriangleVertexPositionNV = 5300,
|
||||
OpFetchMicroTriangleVertexBarycentricNV = 5301,
|
||||
OpReportIntersectionKHR = 5334,
|
||||
OpReportIntersectionNV = 5334,
|
||||
OpIgnoreIntersectionNV = 5335,
|
||||
@@ -1682,6 +1882,7 @@ enum Op : uint
|
||||
OpTraceNV = 5337,
|
||||
OpTraceMotionNV = 5338,
|
||||
OpTraceRayMotionNV = 5339,
|
||||
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
|
||||
OpTypeAccelerationStructureKHR = 5341,
|
||||
OpTypeAccelerationStructureNV = 5341,
|
||||
OpExecuteCallableNV = 5344,
|
||||
@@ -1702,6 +1903,7 @@ enum Op : uint
|
||||
OpConvertUToSampledImageNV = 5395,
|
||||
OpConvertSampledImageToUNV = 5396,
|
||||
OpSamplerImageAddressingModeNV = 5397,
|
||||
OpRawAccessChainNV = 5398,
|
||||
OpSubgroupShuffleINTEL = 5571,
|
||||
OpSubgroupShuffleDownINTEL = 5572,
|
||||
OpSubgroupShuffleUpINTEL = 5573,
|
||||
@@ -1943,6 +2145,9 @@ enum Op : uint
|
||||
OpTypeStructContinuedINTEL = 6090,
|
||||
OpConstantCompositeContinuedINTEL = 6091,
|
||||
OpSpecConstantCompositeContinuedINTEL = 6092,
|
||||
OpCompositeConstructContinuedINTEL = 6096,
|
||||
OpConvertFToBF16INTEL = 6116,
|
||||
OpConvertBF16ToFINTEL = 6117,
|
||||
OpControlBarrierArriveINTEL = 6142,
|
||||
OpControlBarrierWaitINTEL = 6143,
|
||||
OpGroupIMulKHR = 6401,
|
||||
@@ -1953,6 +2158,8 @@ enum Op : uint
|
||||
OpGroupLogicalAndKHR = 6406,
|
||||
OpGroupLogicalOrKHR = 6407,
|
||||
OpGroupLogicalXorKHR = 6408,
|
||||
OpMaskedGatherINTEL = 6428,
|
||||
OpMaskedScatterINTEL = 6429,
|
||||
}
|
||||
|
||||
|
||||
|
||||
47
third_party/spirv-headers/tests/CMakeLists.txt
vendored
Normal file
47
third_party/spirv-headers/tests/CMakeLists.txt
vendored
Normal file
@@ -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()
|
||||
@@ -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
|
||||
// copy of this software and/or associated documentation files (the
|
||||
23
third_party/spirv-headers/tests/find_package/CMakeLists.txt
vendored
Normal file
23
third_party/spirv-headers/tests/find_package/CMakeLists.txt
vendored
Normal file
@@ -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}")
|
||||
23
third_party/spirv-headers/tests/pkg_config/CMakeLists.txt
vendored
Normal file
23
third_party/spirv-headers/tests/pkg_config/CMakeLists.txt
vendored
Normal file
@@ -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}")
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/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
|
||||
# copy of this software and/or associated documentation files (the
|
||||
@@ -32,7 +32,7 @@ import json
|
||||
import os.path
|
||||
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
|
||||
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('NonSemanticDebugPrintf', 'extinst.nonsemantic.debugprintf.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
|
||||
|
||||
set -ex
|
||||
|
||||
python3 bin/makeExtinstHeaders.py
|
||||
|
||||
cd ../../include/spirv/unified1
|
||||
|
||||
@@ -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
|
||||
// of this software and/or associated documentation files (the "Materials"),
|
||||
@@ -169,29 +169,30 @@ namespace {
|
||||
}
|
||||
|
||||
const std::string TPrinter::DocCopyright =
|
||||
"Copyright (c) 2014-2020 The Khronos Group Inc.\n"
|
||||
"\n"
|
||||
"Permission is hereby granted, free of charge, to any person obtaining a copy\n"
|
||||
"of this software and/or associated documentation files (the \"Materials\"),\n"
|
||||
"to deal in the Materials without restriction, including without limitation\n"
|
||||
"the rights to use, copy, modify, merge, publish, distribute, sublicense,\n"
|
||||
"and/or sell copies of the Materials, and to permit persons to whom the\n"
|
||||
"Materials are furnished to do so, subject to the following conditions:\n"
|
||||
"\n"
|
||||
"The above copyright notice and this permission notice shall be included in\n"
|
||||
"all copies or substantial portions of the Materials.\n"
|
||||
"\n"
|
||||
"MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS\n"
|
||||
"STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND\n"
|
||||
"HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ \n"
|
||||
"\n"
|
||||
"THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n"
|
||||
"OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
|
||||
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\n"
|
||||
"THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
|
||||
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n"
|
||||
"FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS\n"
|
||||
"IN THE MATERIALS.\n";
|
||||
R"(Copyright (c) 2014-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.
|
||||
)";
|
||||
|
||||
const std::string TPrinter::DocComment1 =
|
||||
"This header is automatically generated by the same tool that creates\n"
|
||||
@@ -574,13 +575,8 @@ namespace {
|
||||
|
||||
// C++ printer
|
||||
class TPrinterCPP : public TPrinterCBase {
|
||||
private:
|
||||
void printPrologue(std::ostream& out) const override {
|
||||
TPrinterCBase::printPrologue(out);
|
||||
out << "namespace spv {\n\n";
|
||||
}
|
||||
|
||||
void printEpilogue(std::ostream& out) const override {
|
||||
protected:
|
||||
void printMaskOperators(std::ostream& out, const std::string& specifiers) const {
|
||||
const Json::Value& enums = spvRoot["spv"]["enum"];
|
||||
|
||||
out << "// Overload bitwise operators for mask bit combining\n\n";
|
||||
@@ -593,20 +589,28 @@ namespace {
|
||||
const auto typeName = opName + styleStr(enumMask);
|
||||
|
||||
// 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";
|
||||
// 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";
|
||||
// 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";
|
||||
// Overload operator~
|
||||
out << "inline " << typeName << " operator~(" << typeName << " a) { return " <<
|
||||
out << specifiers << " " << typeName << " operator~(" << typeName << " a) { return " <<
|
||||
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 << "#endif // #ifndef spirv_" << headerGuardSuffix() << std::endl;
|
||||
}
|
||||
@@ -642,6 +646,11 @@ namespace {
|
||||
// C++11 printer (uses enum classes)
|
||||
class TPrinterCPP11 final : public TPrinterCPP {
|
||||
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 {
|
||||
return std::string("enum class ") + s + styleStr(style) + " : unsigned {\n";
|
||||
}
|
||||
|
||||
@@ -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
|
||||
// of this software and/or associated documentation files (the "Materials"),
|
||||
|
||||
@@ -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
|
||||
// of this software and/or associated documentation files (the "Materials"),
|
||||
@@ -36,8 +36,185 @@
|
||||
|
||||
#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 {
|
||||
|
||||
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
|
||||
// parameterization information.
|
||||
InstructionValues InstructionDesc;
|
||||
@@ -88,6 +265,15 @@ EnumValues RayQueryCommittedIntersectionTypeParams;
|
||||
EnumValues RayQueryCandidateIntersectionTypeParams;
|
||||
EnumValues FragmentShadingRateParams;
|
||||
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)
|
||||
{
|
||||
@@ -158,6 +344,8 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
|
||||
type = OperandLiteralNumber;
|
||||
} else if (operandKind == "LiteralContextDependentNumber") {
|
||||
type = OperandAnySizeLiteralNumber;
|
||||
} else if (operandKind == "LiteralFloat") {
|
||||
type = OperandLiteralNumber;
|
||||
} else if (operandKind == "SourceLanguage") {
|
||||
type = OperandSource;
|
||||
} else if (operandKind == "ExecutionModel") {
|
||||
@@ -234,6 +422,24 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
|
||||
type = OperandFragmentShadingRate;
|
||||
} else if (operandKind == "PackedVectorFormat") {
|
||||
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) {
|
||||
@@ -273,6 +479,8 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
|
||||
return;
|
||||
initialized = true;
|
||||
|
||||
size_t errorCount = 0;
|
||||
|
||||
// Read the JSON grammar file.
|
||||
bool fileReadOk = false;
|
||||
std::string content;
|
||||
@@ -326,8 +534,10 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
|
||||
for (const auto& printingClass : printingClasses) {
|
||||
if (printingClass["tag"].asString().size() > 0)
|
||||
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::exit(1);
|
||||
}
|
||||
if (buildingHeaders || printingClass["tag"].asString() != "@exclude") {
|
||||
InstructionPrintingClasses.push_back({printingClass["tag"].asString(),
|
||||
printingClass["heading"].asString()});
|
||||
@@ -343,6 +553,7 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
|
||||
if (printingClass.size() == 0) {
|
||||
std::cerr << "Error: " << inst["opname"].asString()
|
||||
<< " requires a non-empty printing \"class\" tag" << std::endl;
|
||||
std::exit(1);
|
||||
}
|
||||
if (!buildingHeaders && printingClass == "@exclude")
|
||||
continue;
|
||||
@@ -350,6 +561,7 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
|
||||
std::cerr << "Error: " << inst["opname"].asString()
|
||||
<< " requires a \"class\" declared as a \"tag\" in \"instruction printing_class\""
|
||||
<< std::endl;
|
||||
std::exit(1);
|
||||
}
|
||||
const auto opcode = inst["opcode"].asUInt();
|
||||
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(operands))),
|
||||
printingClass, defTypeId, defResultId);
|
||||
if (!InstructionDesc.back().IsValid(OperandOpcode, "instruction")) {
|
||||
errorCount++;
|
||||
}
|
||||
}
|
||||
|
||||
// Specific additional context-dependent operands
|
||||
|
||||
// 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
|
||||
// enumerant in JSON form, and whether that value is a 0 in a bitfield.
|
||||
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,
|
||||
spv::EnumValues* enumValues, const Json::Value& operandEnum, const std::string& category) {
|
||||
assert(category == "BitEnum" || category == "ValueEnum");
|
||||
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);
|
||||
const std::string errContext = "enum " + enumName;
|
||||
for (const auto& e: *enumValues) {
|
||||
if (!e.IsValid(operandClass, errContext)) {
|
||||
errorCount++;
|
||||
}
|
||||
}
|
||||
OperandClassParams[operandClass].set(enumName, enumValues, bitEnum);
|
||||
};
|
||||
|
||||
@@ -544,8 +769,30 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
|
||||
establishOperandClass(enumName, OperandFragmentShadingRate, &FragmentShadingRateParams, operandEnum, category);
|
||||
} else if (enumName == "PackedVectorFormat") {
|
||||
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
|
||||
|
||||
@@ -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
|
||||
// of this software and/or associated documentation files (the "Materials"),
|
||||
@@ -96,6 +96,15 @@ enum OperandClass {
|
||||
OperandQuantizationModes,
|
||||
OperandOverflowModes,
|
||||
OperandPackedVectorFormat,
|
||||
OperandCooperativeMatrixOperands,
|
||||
OperandCooperativeMatrixLayout,
|
||||
OperandCooperativeMatrixUse,
|
||||
OperandInitializationModeQualifier,
|
||||
OperandHostAccessQualifier,
|
||||
OperandLoadCacheControl,
|
||||
OperandStoreCacheControl,
|
||||
OperandNamedMaximumNumberOfRegisters,
|
||||
OperandRawAccessChainOperands,
|
||||
|
||||
OperandOpcode,
|
||||
|
||||
@@ -184,6 +193,7 @@ public:
|
||||
|
||||
iterator begin() { return values.begin(); }
|
||||
iterator end() { return values.end(); }
|
||||
EValue& back() { return values.back(); }
|
||||
|
||||
private:
|
||||
ContainerType values;
|
||||
@@ -216,6 +226,10 @@ public:
|
||||
Extensions extensions;
|
||||
OperandParameters operands;
|
||||
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>;
|
||||
|
||||
@@ -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
|
||||
// of this software and/or associated documentation files (the "Materials"),
|
||||
|
||||
7
third_party/spirv-tools/.bazelrc
vendored
Normal file
7
third_party/spirv-tools/.bazelrc
vendored
Normal file
@@ -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
third_party/spirv-tools/.bazelversion
vendored
Normal file
1
third_party/spirv-tools/.bazelversion
vendored
Normal file
@@ -0,0 +1 @@
|
||||
7.0.2
|
||||
2
third_party/spirv-tools/.gitignore
vendored
2
third_party/spirv-tools/.gitignore
vendored
@@ -4,6 +4,7 @@
|
||||
compile_commands.json
|
||||
/build*/
|
||||
/buildtools/
|
||||
/external/abseil_cpp/
|
||||
/external/googletest
|
||||
/external/SPIRV-Headers
|
||||
/external/spirv-headers
|
||||
@@ -22,6 +23,7 @@ bazel-out
|
||||
bazel-spirv-tools
|
||||
bazel-SPIRV-Tools
|
||||
bazel-testlogs
|
||||
MODULE.bazel.lock
|
||||
|
||||
# Vim
|
||||
[._]*.s[a-w][a-z]
|
||||
|
||||
9
third_party/spirv-tools/Android.mk
vendored
9
third_party/spirv-tools/Android.mk
vendored
@@ -136,6 +136,7 @@ SPVTOOLS_OPT_SRC_FILES := \
|
||||
source/opt/instrument_pass.cpp \
|
||||
source/opt/interface_var_sroa.cpp \
|
||||
source/opt/interp_fixup_pass.cpp \
|
||||
source/opt/invocation_interlock_placement_pass.cpp \
|
||||
source/opt/ir_context.cpp \
|
||||
source/opt/ir_loader.cpp \
|
||||
source/opt/licm_pass.cpp \
|
||||
@@ -156,6 +157,7 @@ SPVTOOLS_OPT_SRC_FILES := \
|
||||
source/opt/loop_utils.cpp \
|
||||
source/opt/mem_pass.cpp \
|
||||
source/opt/merge_return_pass.cpp \
|
||||
source/opt/modify_maximal_reconvergence.cpp \
|
||||
source/opt/module.cpp \
|
||||
source/opt/optimizer.cpp \
|
||||
source/opt/pass.cpp \
|
||||
@@ -182,6 +184,8 @@ SPVTOOLS_OPT_SRC_FILES := \
|
||||
source/opt/strip_debug_info_pass.cpp \
|
||||
source/opt/strip_nonsemantic_info_pass.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/types.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-trinary-minmax,""))
|
||||
$(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
|
||||
$(call generate-file-dir,$(1)/extension_enum.inc.inc)
|
||||
@@ -340,7 +345,7 @@ LOCAL_C_INCLUDES := \
|
||||
$(SPVTOOLS_OUT_PATH)
|
||||
LOCAL_EXPORT_C_INCLUDES := \
|
||||
$(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)
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
@@ -351,7 +356,7 @@ LOCAL_C_INCLUDES := \
|
||||
$(LOCAL_PATH)/source \
|
||||
$(SPVHEADERS_LOCAL_PATH)/include \
|
||||
$(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_SRC_FILES:= $(SPVTOOLS_OPT_SRC_FILES)
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
675
third_party/spirv-tools/BUILD.bazel
vendored
675
third_party/spirv-tools/BUILD.bazel
vendored
@@ -1,27 +1,24 @@
|
||||
load(
|
||||
":build_defs.bzl",
|
||||
"CLDEBUGINFO100_GRAMMAR_JSON_FILE",
|
||||
"COMMON_COPTS",
|
||||
"DEBUGINFO_GRAMMAR_JSON_FILE",
|
||||
"CLDEBUGINFO100_GRAMMAR_JSON_FILE",
|
||||
"SHDEBUGINFO100_GRAMMAR_JSON_FILE",
|
||||
"TEST_COPTS",
|
||||
"base_test",
|
||||
"generate_core_tables",
|
||||
"generate_enum_string_mapping",
|
||||
"generate_extinst_lang_headers",
|
||||
"generate_glsl_tables",
|
||||
"generate_opencl_tables",
|
||||
"generate_vendor_tables",
|
||||
"link_test",
|
||||
"lint_test",
|
||||
"opt_test",
|
||||
"reduce_test",
|
||||
"util_test",
|
||||
"val_test",
|
||||
"incompatible_with",
|
||||
)
|
||||
|
||||
package(
|
||||
default_visibility = ["//visibility:private"],
|
||||
features = [
|
||||
"layering_check",
|
||||
],
|
||||
)
|
||||
|
||||
licenses(["notice"])
|
||||
@@ -41,35 +38,52 @@ py_binary(
|
||||
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(
|
||||
name = "generate_registry_tables",
|
||||
@@ -77,12 +91,12 @@ py_binary(
|
||||
)
|
||||
|
||||
genrule(
|
||||
name = "gen_registry_tables",
|
||||
name = "generators_inc",
|
||||
srcs = ["@spirv_headers//:spirv_xml_registry"],
|
||||
outs = ["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)",
|
||||
exec_tools = [":generate_registry_tables"],
|
||||
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)",
|
||||
tools = [":generate_registry_tables"],
|
||||
)
|
||||
|
||||
py_binary(
|
||||
@@ -91,120 +105,104 @@ py_binary(
|
||||
)
|
||||
|
||||
genrule(
|
||||
name = "gen_build_version",
|
||||
name = "build_version_inc",
|
||||
srcs = ["CHANGES"],
|
||||
outs = ["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)",
|
||||
exec_tools = [":update_build_version"],
|
||||
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)",
|
||||
local = True,
|
||||
tools = [":update_build_version"],
|
||||
)
|
||||
|
||||
# Libraries
|
||||
|
||||
cc_library(
|
||||
name = "generated_headers",
|
||||
name = "spirv_tools",
|
||||
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_enum_string_mapping",
|
||||
":gen_extinst_lang_headers_DebugInfo",
|
||||
":gen_extinst_lang_headers_OpenCLDebugInfo100",
|
||||
":gen_extinst_lang_headers_NonSemanticShaderDebugInfo100",
|
||||
":gen_extinst_lang_headers_OpenCLDebugInfo100",
|
||||
":gen_glsl_tables_unified1",
|
||||
":gen_opencl_tables_unified1",
|
||||
":gen_registry_tables",
|
||||
":gen_vendor_tables_debuginfo",
|
||||
":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_opencl_debuginfo_100",
|
||||
":gen_vendor_tables_spv_amd_gcn_shader",
|
||||
":gen_vendor_tables_spv_amd_shader_ballot",
|
||||
":gen_vendor_tables_spv_amd_shader_explicit_vertex_parameter",
|
||||
":gen_vendor_tables_spv_amd_shader_trinary_minmax",
|
||||
":generators_inc",
|
||||
],
|
||||
copts = COMMON_COPTS,
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "spirv_tools_headers",
|
||||
hdrs = glob([
|
||||
hdrs = [
|
||||
"include/spirv-tools/libspirv.h",
|
||||
"include/spirv-tools/libspirv.hpp",
|
||||
":gen_extinst_lang_headers_DebugInfo",
|
||||
":gen_extinst_lang_headers_NonSemanticShaderDebugInfo100",
|
||||
":gen_extinst_lang_headers_OpenCLDebugInfo100",
|
||||
] + glob([
|
||||
"source/*.h",
|
||||
"source/util/*.h",
|
||||
"source/val/*.h",
|
||||
]),
|
||||
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"],
|
||||
linkstatic = 1,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":generated_headers",
|
||||
":spirv_tools_headers",
|
||||
"@spirv_headers//:spirv_common_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(
|
||||
name = "spirv_tools_opt",
|
||||
srcs = glob(["source/opt/*.cpp"]),
|
||||
hdrs = [
|
||||
"include/spirv-tools/instrument.hpp",
|
||||
"include/spirv-tools/optimizer.hpp",
|
||||
],
|
||||
copts = COMMON_COPTS,
|
||||
includes = ["include"],
|
||||
linkstatic = 1,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":spirv_tools",
|
||||
":spirv_tools_headers",
|
||||
":spirv_tools_opt_headers",
|
||||
":spirv_tools_opt_internal",
|
||||
],
|
||||
)
|
||||
|
||||
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",
|
||||
],
|
||||
)
|
||||
@@ -214,11 +212,9 @@ cc_library(
|
||||
srcs = glob(["source/reduce/*.cpp"]),
|
||||
hdrs = glob(["source/reduce/*.h"]),
|
||||
copts = COMMON_COPTS,
|
||||
linkstatic = 1,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":spirv_tools",
|
||||
":spirv_tools_opt",
|
||||
":spirv_tools_internal",
|
||||
":spirv_tools_opt_internal",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -230,21 +226,38 @@ cc_library(
|
||||
linkstatic = 1,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":spirv_tools",
|
||||
":spirv_tools_opt",
|
||||
":spirv_tools_internal",
|
||||
":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(
|
||||
name = "spirv_tools_lint",
|
||||
srcs = glob(["source/lint/*.cpp", "source/lint/*.h"]),
|
||||
hdrs = ["include/spirv-tools/linter.hpp"],
|
||||
copts = COMMON_COPTS,
|
||||
includes = ["include"],
|
||||
linkstatic = 1,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":spirv_tools",
|
||||
":spirv_tools_opt",
|
||||
":spirv_tools_lint_internal",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -253,23 +266,28 @@ cc_library(
|
||||
srcs = glob(["tools/util/*.cpp"]),
|
||||
hdrs = glob(["tools/util/*.h"]),
|
||||
copts = COMMON_COPTS,
|
||||
linkstatic = 1,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [":spirv_tools"],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "tools_io",
|
||||
hdrs = ["tools/io.h"],
|
||||
copts = COMMON_COPTS,
|
||||
)
|
||||
|
||||
# Tools
|
||||
|
||||
cc_binary(
|
||||
name = "spirv-as",
|
||||
srcs = [
|
||||
"tools/as/as.cpp",
|
||||
"tools/io.h",
|
||||
],
|
||||
copts = COMMON_COPTS,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":spirv_tools",
|
||||
":spirv_tools_internal",
|
||||
":tools_io",
|
||||
":tools_util",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -277,25 +295,44 @@ cc_binary(
|
||||
name = "spirv-dis",
|
||||
srcs = [
|
||||
"tools/dis/dis.cpp",
|
||||
"tools/io.h",
|
||||
],
|
||||
copts = COMMON_COPTS,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":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(
|
||||
name = "spirv-val",
|
||||
srcs = [
|
||||
"tools/io.h",
|
||||
"tools/val/val.cpp",
|
||||
],
|
||||
copts = COMMON_COPTS,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":spirv_tools",
|
||||
":spirv_tools_internal",
|
||||
":tools_io",
|
||||
":tools_util",
|
||||
],
|
||||
)
|
||||
@@ -303,14 +340,14 @@ cc_binary(
|
||||
cc_binary(
|
||||
name = "spirv-opt",
|
||||
srcs = [
|
||||
"tools/io.h",
|
||||
"tools/opt/opt.cpp",
|
||||
],
|
||||
copts = COMMON_COPTS,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":spirv_tools",
|
||||
":spirv_tools_opt",
|
||||
":spirv_tools_internal",
|
||||
":spirv_tools_opt_internal",
|
||||
":tools_io",
|
||||
":tools_util",
|
||||
],
|
||||
)
|
||||
@@ -318,15 +355,15 @@ cc_binary(
|
||||
cc_binary(
|
||||
name = "spirv-reduce",
|
||||
srcs = [
|
||||
"tools/io.h",
|
||||
"tools/reduce/reduce.cpp",
|
||||
],
|
||||
copts = COMMON_COPTS,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":spirv_tools",
|
||||
":spirv_tools_opt",
|
||||
":spirv_tools_internal",
|
||||
":spirv_tools_opt_internal",
|
||||
":spirv_tools_reduce",
|
||||
":tools_io",
|
||||
":tools_util",
|
||||
],
|
||||
)
|
||||
@@ -334,28 +371,29 @@ cc_binary(
|
||||
cc_binary(
|
||||
name = "spirv-link",
|
||||
srcs = [
|
||||
"tools/io.h",
|
||||
"tools/link/linker.cpp",
|
||||
],
|
||||
copts = COMMON_COPTS,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":spirv_tools",
|
||||
":spirv_tools_internal",
|
||||
":spirv_tools_link",
|
||||
":tools_io",
|
||||
":tools_util",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "spirv-lint",
|
||||
srcs = [
|
||||
"tools/io.h",
|
||||
"tools/lint/lint.cpp",
|
||||
],
|
||||
copts = COMMON_COPTS,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":spirv_tools",
|
||||
":spirv_tools_lint",
|
||||
":spirv_tools_opt_internal",
|
||||
":tools_io",
|
||||
":tools_util",
|
||||
],
|
||||
)
|
||||
@@ -366,50 +404,143 @@ cc_binary(
|
||||
"tools/cfg/bin_to_dot.cpp",
|
||||
"tools/cfg/bin_to_dot.h",
|
||||
"tools/cfg/cfg.cpp",
|
||||
"tools/io.h",
|
||||
],
|
||||
copts = COMMON_COPTS,
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [":spirv_tools"],
|
||||
deps = [
|
||||
":spirv_tools_internal",
|
||||
":tools_io",
|
||||
":tools_util",
|
||||
],
|
||||
)
|
||||
|
||||
# Unit tests
|
||||
|
||||
cc_library(
|
||||
name = "test_common",
|
||||
name = "test_lib",
|
||||
testonly = 1,
|
||||
srcs = [
|
||||
"test/test_fixture.h",
|
||||
"test/unit_spirv.cpp",
|
||||
],
|
||||
hdrs = [
|
||||
"test/test_fixture.h",
|
||||
"test/unit_spirv.h",
|
||||
],
|
||||
compatible_with = [],
|
||||
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,
|
||||
deps = [
|
||||
":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(
|
||||
name = "link_test_common",
|
||||
name = "opt_test_lib",
|
||||
testonly = 1,
|
||||
srcs = ["test/link/linker_fixture.h"],
|
||||
compatible_with = [],
|
||||
copts = TEST_COPTS,
|
||||
linkstatic = 1,
|
||||
deps = [
|
||||
":spirv_tools_link",
|
||||
":test_common",
|
||||
srcs = [
|
||||
"test/opt/pass_utils.cpp",
|
||||
],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "opt_test_common",
|
||||
testonly = 1,
|
||||
srcs = ["test/opt/pass_utils.cpp"],
|
||||
hdrs = [
|
||||
"test/opt/assembly_builder.h",
|
||||
"test/opt/function_utils.h",
|
||||
@@ -417,143 +548,181 @@ cc_library(
|
||||
"test/opt/pass_fixture.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,
|
||||
linkstatic = 1,
|
||||
deps = [
|
||||
":spirv_tools_opt",
|
||||
":test_common",
|
||||
":opt_test_lib",
|
||||
":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(
|
||||
name = "reduce_test_common",
|
||||
testonly = 1,
|
||||
srcs = [
|
||||
"test/reduce/reduce_test_util.cpp",
|
||||
"tools/io.h",
|
||||
],
|
||||
hdrs = ["test/reduce/reduce_test_util.h"],
|
||||
compatible_with = [],
|
||||
[cc_test(
|
||||
name = "opt_dom_tree_{testcase}_test".format(testcase = f[len("test/opt/dominator_tree/"):-len(".cpp")]),
|
||||
size = "small",
|
||||
srcs = [f],
|
||||
copts = TEST_COPTS,
|
||||
linkstatic = 1,
|
||||
deps = [
|
||||
":spirv_tools_reduce",
|
||||
":test_common",
|
||||
":opt_test_lib",
|
||||
":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(
|
||||
["test/opt/dominator_tree/*.cpp"],
|
||||
# pch tests are skipped.
|
||||
exclude = ["test/opt/dominator_tree/pch_test_opt_dom.cpp"],
|
||||
)]
|
||||
|
||||
[opt_test(
|
||||
name = "loop_" + f[28:-4], # strip test/opt/loop_optimizations/, .cpp
|
||||
[cc_test(
|
||||
name = "opt_loop_{testcase}_test".format(testcase = f[len("test/opt/loop_optimizations/"):-len(".cpp")]),
|
||||
size = "small",
|
||||
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(
|
||||
["test/opt/loop_optimizations/*.cpp"],
|
||||
# pch tests are skipped.
|
||||
exclude = ["test/opt/loop_optimizations/pch_test_opt_loop.cpp"],
|
||||
)]
|
||||
|
||||
[reduce_test(
|
||||
name = f[12:-4], # strip test/reduce/, .cpp
|
||||
srcs = [f],
|
||||
) for f in glob(["test/reduce/*.cpp"])]
|
||||
cc_library(
|
||||
name = "reduce_test_lib",
|
||||
testonly = 1,
|
||||
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(
|
||||
name = f[10:-4], # strip test/util/, .cpp
|
||||
[cc_test(
|
||||
name = "reduce_{testcase}_test".format(testcase = f[len("test/reduce/"):-len("_test.cpp")]),
|
||||
size = "small",
|
||||
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(
|
||||
name = f[9:-4], # strip test/val/, .cpp
|
||||
[cc_test(
|
||||
name = "util_{testcase}_test".format(testcase = f[len("test/util/"):-len("_test.cpp")]),
|
||||
size = "small",
|
||||
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(
|
||||
["test/val/*.cpp"],
|
||||
["test/val/val_*_test.cpp"],
|
||||
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",
|
||||
],
|
||||
)
|
||||
|
||||
52
third_party/spirv-tools/BUILD.gn
vendored
52
third_party/spirv-tools/BUILD.gn
vendored
@@ -327,6 +327,10 @@ spvtools_vendor_tables = [
|
||||
"nonsemantic.clspvreflection",
|
||||
"...nil...",
|
||||
],
|
||||
[
|
||||
"nonsemantic.vkspreflection",
|
||||
"...nil...",
|
||||
],
|
||||
[
|
||||
"nonsemantic.shader.debuginfo.100",
|
||||
"SHDEBUG100_",
|
||||
@@ -370,6 +374,15 @@ config("spvtools_internal_config") {
|
||||
} else if (!is_win) {
|
||||
# Work around a false-positive on a Skia GCC 10 builder.
|
||||
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/interp_fixup_pass.cpp",
|
||||
"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_context.cpp",
|
||||
"source/opt/ir_context.h",
|
||||
@@ -726,6 +741,8 @@ static_library("spvtools_opt") {
|
||||
"source/opt/mem_pass.h",
|
||||
"source/opt/merge_return_pass.cpp",
|
||||
"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.h",
|
||||
"source/opt/null_pass.h",
|
||||
@@ -780,7 +797,11 @@ static_library("spvtools_opt") {
|
||||
"source/opt/strip_nonsemantic_info_pass.h",
|
||||
"source/opt/struct_cfg_analysis.cpp",
|
||||
"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/trim_capabilities_pass.cpp",
|
||||
"source/opt/trim_capabilities_pass.h",
|
||||
"source/opt/type_manager.cpp",
|
||||
"source/opt/type_manager.h",
|
||||
"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") {
|
||||
sources = [ "source/software_version.cpp" ]
|
||||
deps = [
|
||||
@@ -1445,12 +1457,23 @@ source_set("spvtools_software_version") {
|
||||
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) {
|
||||
executable("spirv-as") {
|
||||
sources = [ "tools/as/as.cpp" ]
|
||||
deps = [
|
||||
":spvtools",
|
||||
":spvtools_software_version",
|
||||
":spvtools_tools_util",
|
||||
]
|
||||
configs += [ ":spvtools_internal_config" ]
|
||||
}
|
||||
@@ -1460,6 +1483,7 @@ if (spvtools_build_executables) {
|
||||
deps = [
|
||||
":spvtools",
|
||||
":spvtools_software_version",
|
||||
":spvtools_tools_util",
|
||||
]
|
||||
configs += [ ":spvtools_internal_config" ]
|
||||
}
|
||||
@@ -1469,7 +1493,7 @@ if (spvtools_build_executables) {
|
||||
deps = [
|
||||
":spvtools",
|
||||
":spvtools_software_version",
|
||||
":spvtools_util_cli_consumer",
|
||||
":spvtools_tools_util",
|
||||
":spvtools_val",
|
||||
]
|
||||
configs += [ ":spvtools_internal_config" ]
|
||||
@@ -1484,6 +1508,7 @@ if (spvtools_build_executables) {
|
||||
deps = [
|
||||
":spvtools",
|
||||
":spvtools_software_version",
|
||||
":spvtools_tools_util",
|
||||
]
|
||||
configs += [ ":spvtools_internal_config" ]
|
||||
}
|
||||
@@ -1494,7 +1519,7 @@ if (spvtools_build_executables) {
|
||||
":spvtools",
|
||||
":spvtools_opt",
|
||||
":spvtools_software_version",
|
||||
":spvtools_util_cli_consumer",
|
||||
":spvtools_tools_util",
|
||||
":spvtools_val",
|
||||
]
|
||||
configs += [ ":spvtools_internal_config" ]
|
||||
@@ -1507,6 +1532,7 @@ if (spvtools_build_executables) {
|
||||
":spvtools_link",
|
||||
":spvtools_opt",
|
||||
":spvtools_software_version",
|
||||
":spvtools_tools_util",
|
||||
":spvtools_val",
|
||||
]
|
||||
configs += [ ":spvtools_internal_config" ]
|
||||
@@ -1526,7 +1552,7 @@ if (!is_ios && !spirv_is_winuwp && build_with_chromium && spvtools_build_executa
|
||||
":spvtools_opt",
|
||||
":spvtools_reduce",
|
||||
":spvtools_software_version",
|
||||
":spvtools_util_cli_consumer",
|
||||
":spvtools_tools_util",
|
||||
":spvtools_val",
|
||||
"//third_party/protobuf:protobuf_full",
|
||||
]
|
||||
@@ -1545,7 +1571,7 @@ if (!is_ios && !spirv_is_winuwp && spvtools_build_executables) {
|
||||
":spvtools_opt",
|
||||
":spvtools_reduce",
|
||||
":spvtools_software_version",
|
||||
":spvtools_util_cli_consumer",
|
||||
":spvtools_tools_util",
|
||||
":spvtools_val",
|
||||
]
|
||||
configs += [ ":spvtools_internal_config" ]
|
||||
|
||||
193
third_party/spirv-tools/CHANGES
vendored
193
third_party/spirv-tools/CHANGES
vendored
@@ -1,7 +1,196 @@
|
||||
Revision history for SPIRV-Tools
|
||||
|
||||
v2022.5-dev 2022-10-12
|
||||
- Start v2022.5-dev
|
||||
v2024.2 2024-04-22
|
||||
- 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
|
||||
- General
|
||||
|
||||
64
third_party/spirv-tools/CMakeLists.txt
vendored
64
third_party/spirv-tools/CMakeLists.txt
vendored
@@ -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");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -13,15 +13,19 @@
|
||||
# limitations under the License.
|
||||
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
if (POLICY CMP0048)
|
||||
cmake_policy(SET CMP0048 NEW)
|
||||
endif()
|
||||
if (POLICY CMP0054)
|
||||
# Avoid dereferencing variables or interpret keywords that have been
|
||||
# quoted or bracketed.
|
||||
# https://cmake.org/cmake/help/v3.1/policy/CMP0054.html
|
||||
cmake_policy(SET CMP0054 NEW)
|
||||
|
||||
project(spirv-tools)
|
||||
|
||||
# Avoid a bug in CMake 3.22.1. By default it will set -std=c++11 for
|
||||
# targets in test/*, when those tests need -std=c++17.
|
||||
# https://github.com/KhronosGroup/SPIRV-Tools/issues/5340
|
||||
# The bug is fixed in CMake 3.22.2
|
||||
if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.22.1")
|
||||
if (${CMAKE_VERSION} VERSION_LESS "3.22.2")
|
||||
cmake_policy(SET CMP0128 NEW)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
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(SKIP_SPIRV_TOOLS_INSTALL ON)
|
||||
|
||||
project(spirv-tools)
|
||||
set(SPIRV_TOOLS "SPIRV-Tools")
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
# Require at least C++11
|
||||
# Require at least C++17
|
||||
if(NOT CMAKE_CXX_STANDARD)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
endif()
|
||||
if(${CMAKE_CXX_STANDARD} LESS 11)
|
||||
message(FATAL_ERROR "SPIRV-Tools requires C++11 or later, but is configured for C++${CMAKE_CXX_STANDARD})")
|
||||
if(${CMAKE_CXX_STANDARD} LESS 17)
|
||||
message(FATAL_ERROR "SPIRV-Tools requires C++17 or later, but is configured for C++${CMAKE_CXX_STANDARD})")
|
||||
endif()
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
|
||||
option(ENABLE_RTTI "Enables RTTI" OFF)
|
||||
@@ -67,6 +71,8 @@ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "iOS")
|
||||
add_definitions(-DSPIRV_IOS)
|
||||
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "tvOS")
|
||||
add_definitions(-DSPIRV_TVOS)
|
||||
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "visionOS")
|
||||
add_definitions(-DSPIRV_VISIONOS)
|
||||
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Android")
|
||||
add_definitions(-DSPIRV_ANDROID)
|
||||
set(SPIRV_TIMER_ENABLED ${SPIRV_ALLOW_TIMERS})
|
||||
@@ -78,6 +84,8 @@ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia")
|
||||
add_definitions(-DSPIRV_FUCHSIA)
|
||||
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "GNU")
|
||||
add_definitions(-DSPIRV_GNU)
|
||||
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "QNX")
|
||||
add_definitions(-DSPIRV_QNX)
|
||||
else()
|
||||
message(FATAL_ERROR "Your platform '${CMAKE_SYSTEM_NAME}' is not supported!")
|
||||
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)
|
||||
|
||||
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")))
|
||||
set(COMPILER_IS_LIKE_GNU TRUE)
|
||||
endif()
|
||||
@@ -204,10 +211,9 @@ function(spvtools_default_compile_options TARGET)
|
||||
target_compile_options(${TARGET} PRIVATE ${SPIRV_WARNINGS})
|
||||
|
||||
if (${COMPILER_IS_LIKE_GNU})
|
||||
target_compile_options(${TARGET} PRIVATE -std=c++11 -fno-exceptions)
|
||||
target_compile_options(${TARGET} PRIVATE
|
||||
-Wall -Wextra -Wno-long-long -Wshadow -Wundef -Wconversion
|
||||
-Wno-sign-conversion)
|
||||
-Wno-sign-conversion -fno-exceptions)
|
||||
|
||||
if(NOT ENABLE_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.
|
||||
# But it still depends on MSVCRT.dll.
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||
if (${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
|
||||
if (NOT MSVC)
|
||||
set_target_properties(${TARGET} PROPERTIES
|
||||
LINK_FLAGS -static -static-libgcc -static-libstdc++)
|
||||
endif()
|
||||
@@ -277,7 +283,7 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
||||
macro(spvtools_check_symbol_exports TARGET)
|
||||
if (NOT "${SPIRV_SKIP_TESTS}")
|
||||
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}>")
|
||||
endif()
|
||||
endmacro()
|
||||
@@ -290,7 +296,7 @@ else()
|
||||
endif()
|
||||
|
||||
if(ENABLE_SPIRV_TOOLS_INSTALL)
|
||||
if(WIN32)
|
||||
if(WIN32 AND NOT MINGW)
|
||||
macro(spvtools_config_package_dir TARGET PATH)
|
||||
set(${PATH} ${TARGET}/cmake)
|
||||
endmacro()
|
||||
@@ -310,15 +316,23 @@ if(ENABLE_SPIRV_TOOLS_INSTALL)
|
||||
endmacro()
|
||||
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
|
||||
"Skip building the executable and tests along with the library"
|
||||
${SPIRV_SKIP_EXECUTABLES_OPTION})
|
||||
option(SPIRV_SKIP_TESTS
|
||||
"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.
|
||||
# Turn off if they take too long.
|
||||
@@ -373,7 +387,7 @@ endif(ENABLE_SPIRV_TOOLS_INSTALL)
|
||||
|
||||
if (NOT "${SPIRV_SKIP_TESTS}")
|
||||
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})
|
||||
endif()
|
||||
|
||||
|
||||
126
third_party/spirv-tools/CONTRIBUTING.md
vendored
126
third_party/spirv-tools/CONTRIBUTING.md
vendored
@@ -2,9 +2,8 @@
|
||||
|
||||
## For users: Reporting bugs and requesting features
|
||||
|
||||
We organize known future work in GitHub projects. See [Tracking SPIRV-Tools work
|
||||
with GitHub
|
||||
projects](https://github.com/KhronosGroup/SPIRV-Tools/blob/master/docs/projects.md)
|
||||
We organize known future work in GitHub projects. See
|
||||
[Tracking SPIRV-Tools work with GitHub projects](https://github.com/KhronosGroup/SPIRV-Tools/blob/main/docs/projects.md)
|
||||
for more.
|
||||
|
||||
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
|
||||
|
||||
Before we can use your code, you must sign the [Khronos Open Source Contributor
|
||||
License Agreement](https://cla-assistant.io/KhronosGroup/SPIRV-Tools) (CLA),
|
||||
which you can do online. The CLA is necessary mainly because you own the
|
||||
Before we can use your code, you must sign the
|
||||
[Khronos Open Source Contributor License Agreement](https://cla-assistant.io/KhronosGroup/SPIRV-Tools)
|
||||
(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
|
||||
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
|
||||
@@ -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.
|
||||
|
||||
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
|
||||
your changes:
|
||||
|
||||
* Ensure the code follows the [Google C++ Style
|
||||
Guide](https://google.github.io/styleguide/cppguide.html). Running
|
||||
`clang-format -style=file -i [modified-files]` can help.
|
||||
* Ensure the code follows the
|
||||
[Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html).
|
||||
Running `clang-format -style=file -i [modified-files]` can help.
|
||||
* Create a pull request (PR) with your patch.
|
||||
* Make sure the PR description clearly identified the problem, explains the
|
||||
solution, and references the issue if applicable.
|
||||
* If your patch completely fixes bug 1234, the commit message should say
|
||||
`Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/1234`
|
||||
When you do this, the issue will be closed automatically when the commit
|
||||
goes into master. Also, this helps us update the [CHANGES](CHANGES) file.
|
||||
`Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/1234` When you do
|
||||
this, the issue will be closed automatically when the commit goes into
|
||||
main. Also, this helps us update the [CHANGES](CHANGES) file.
|
||||
* Watch the continuous builds to make sure they pass.
|
||||
* 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
|
||||
usual things:
|
||||
|
||||
* Coding style follows the [Google C++ Style
|
||||
Guide](https://google.github.io/styleguide/cppguide.html)
|
||||
* Coding style follows the
|
||||
[Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html)
|
||||
* Identify potential functional problems.
|
||||
* Identify code duplication.
|
||||
* 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
|
||||
not updated. Later on, it is possible that the def-use manager will be used,
|
||||
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
|
||||
|
||||
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
|
||||
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
|
||||
PR for the first time):
|
||||
1. All tests except for the smoke test pass. See
|
||||
[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
|
||||
[git@github.com](mailto:git@github.com):KhronosGroup/SPIRV-Tools.git or
|
||||
https://github.com/KhronosGroup/SPIRV-Tools.git.
|
||||
The squash-and-merge button will turn green when these requirements are met.
|
||||
Maintainers have the to power to merge even if the button is not green, but that
|
||||
is discouraged.
|
||||
|
||||
* Find out the local name for the main github repo in your git configuration.
|
||||
For example, in this configuration, it is labeled `upstream`.
|
||||
### Failing smoke test
|
||||
|
||||
```
|
||||
git remote -v
|
||||
[ ... ]
|
||||
upstream https://github.com/KhronosGroup/SPIRV-Tools.git (fetch)
|
||||
upstream https://github.com/KhronosGroup/SPIRV-Tools.git (push)
|
||||
```
|
||||
The purpose of the smoke test is to let us know if
|
||||
[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
|
||||
problem in the current PR or if another repository needs to be changed. Most of
|
||||
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`
|
||||
namespace:
|
||||
The PR can still be merged if the problem is not with that PR.
|
||||
|
||||
```
|
||||
git config --get-all remote.upstream.fetch
|
||||
+refs/heads/*:refs/remotes/upstream/*
|
||||
+refs/pull/*/head:refs/remotes/upstream/pr/*
|
||||
```
|
||||
## For maintainers: Running tests
|
||||
|
||||
* If the line `+refs/pull/*/head:refs/remotes/upstream/pr/*` is not present in
|
||||
your configuration, you can add it with the command:
|
||||
For security reasons, not all tests will run automatically. When they do not, a
|
||||
maintainer will have to start the tests.
|
||||
|
||||
```
|
||||
git config --local --add remote.upstream.fetch '+refs/pull/*/head:refs/remotes/upstream/pr/*'
|
||||
```
|
||||
If the Github actions tests do not run on a PR, they can be initiated by closing
|
||||
and reopening the PR.
|
||||
|
||||
### Merge workflow
|
||||
|
||||
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.
|
||||
If the kokoro tests are not run, they can be run by adding the label
|
||||
`kokoro:run` to the PR.
|
||||
|
||||
21
third_party/spirv-tools/DEPS
vendored
21
third_party/spirv-tools/DEPS
vendored
@@ -3,19 +3,32 @@ use_relative_paths = True
|
||||
vars = {
|
||||
'github': 'https://github.com',
|
||||
|
||||
'effcee_revision': '35912e1b7778ec2ddcff7e7188177761539e59e0',
|
||||
'googletest_revision': 'd9bb8412d60b993365abb53f00b6dad9b2c01b62',
|
||||
're2_revision': 'd2836d1b1c34c4e330a85a1006201db474bf2c8a',
|
||||
'spirv_headers_revision': '34d04647d384e0aed037e7a2662a655fc39841bb',
|
||||
'abseil_revision': '79ca5d7aad63973c83a4962a66ab07cd623131ea',
|
||||
|
||||
'effcee_revision': '19b4aa87af25cb4ee779a071409732f34bfc305c',
|
||||
|
||||
'googletest_revision': '5a37b517ad4ab6738556f0284c256cae1466c5b4',
|
||||
|
||||
# Use protobufs before they gained the dependency on abseil
|
||||
'protobuf_revision': 'v21.12',
|
||||
|
||||
're2_revision': '917047f3606d3ba9e2de0d383c3cd80c94ed732c',
|
||||
'spirv_headers_revision': '4f7b471f1a66b6d06462cd4ba57628cc0cd087d7',
|
||||
}
|
||||
|
||||
deps = {
|
||||
'external/abseil_cpp':
|
||||
Var('github') + '/abseil/abseil-cpp.git@' + Var('abseil_revision'),
|
||||
|
||||
'external/effcee':
|
||||
Var('github') + '/google/effcee.git@' + Var('effcee_revision'),
|
||||
|
||||
'external/googletest':
|
||||
Var('github') + '/google/googletest.git@' + Var('googletest_revision'),
|
||||
|
||||
'external/protobuf':
|
||||
Var('github') + '/protocolbuffers/protobuf.git@' + Var('protobuf_revision'),
|
||||
|
||||
'external/re2':
|
||||
Var('github') + '/google/re2.git@' + Var('re2_revision'),
|
||||
|
||||
|
||||
7
third_party/spirv-tools/MODULE.bazel
vendored
Normal file
7
third_party/spirv-tools/MODULE.bazel
vendored
Normal file
@@ -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",
|
||||
)
|
||||
71
third_party/spirv-tools/README.md
vendored
71
third_party/spirv-tools/README.md
vendored
@@ -1,4 +1,7 @@
|
||||
# SPIR-V Tools
|
||||
[](https://securityscorecards.dev/viewer/?uri=github.com/KhronosGroup/SPIRV-Tools)
|
||||
|
||||
NEWS 2023-01-11: Development occurs on the `main` branch.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -21,9 +24,16 @@ headers, and XML registry.
|
||||
|
||||
## 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="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)
|
||||
|
||||
@@ -46,17 +56,14 @@ version. An API call reports the software version as a C-style string.
|
||||
|
||||
## Releases
|
||||
|
||||
Some versions of SPIRV-Tools are tagged as stable releases (see
|
||||
[tags](https://github.com/KhronosGroup/SPIRV-Tools/tags) on github).
|
||||
These versions undergo extra testing.
|
||||
Releases are not directly related to releases (or versions) of
|
||||
[SPIRV-Headers][spirv-headers].
|
||||
Releases of SPIRV-Tools are tested against the version of SPIRV-Headers listed
|
||||
in the [DEPS](DEPS) file.
|
||||
The release generally uses the most recent compatible version of SPIRV-Headers
|
||||
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.
|
||||
The official releases for SPIRV-Tools can be found on LunarG's
|
||||
[SDK download page](https://vulkan.lunarg.com/sdk/home).
|
||||
|
||||
You can find either the prebuilt, and QA tested binaries, or download the
|
||||
SDK Config, which lists the commits to use to build the release from scratch.
|
||||
|
||||
GitHub releases are deprecated, and we will not publish new releases until
|
||||
further notice.
|
||||
|
||||
## 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
|
||||
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
|
||||
|
||||
@@ -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/effcee.git spirv-tools/external/effcee
|
||||
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
|
||||
|
||||
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
|
||||
Effcee, then that project should include Effcee before SPIRV-Tools.
|
||||
* Otherwise, SPIRV-Tools expects Effcee sources to appear in `external/effcee`
|
||||
and RE2 sources to appear in `external/re2`.
|
||||
* Otherwise, SPIRV-Tools expects Effcee sources to appear in `external/effcee`,
|
||||
RE2 sources to appear in `external/re2`, and Abseil sources to appear in
|
||||
`external/abseil_cpp`.
|
||||
|
||||
### 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
|
||||
configured by an enclosing project.
|
||||
(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
|
||||
* `external/spirv-headers`: Intended location for
|
||||
[SPIR-V headers][spirv-headers], not provided
|
||||
@@ -378,10 +390,11 @@ fuzzer tests.
|
||||
|
||||
### Build using Bazel
|
||||
You can also use [Bazel](https://bazel.build/) to build the project.
|
||||
|
||||
```sh
|
||||
cd <spirv-dir>
|
||||
bazel build :all
|
||||
```
|
||||
|
||||
### Build a node.js package using Emscripten
|
||||
|
||||
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
|
||||
suite.
|
||||
- [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.
|
||||
- [Emscripten SDK](https://emscripten.org) (optional): if building the
|
||||
WebAssembly module.
|
||||
@@ -432,10 +445,13 @@ On MacOS
|
||||
- AppleClang 11.0
|
||||
|
||||
On Windows
|
||||
- Visual Studio 2015
|
||||
- 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
|
||||
|
||||
@@ -467,12 +483,12 @@ iterator debugging.
|
||||
### Android ndk-build
|
||||
|
||||
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>
|
||||
|
||||
export ANDROID_NDK=/path/to/your/ndk
|
||||
export ANDROID_NDK=/path/to/your/ndk # NDK r25c or later
|
||||
|
||||
mkdir build && cd build
|
||||
mkdir libs
|
||||
@@ -496,7 +512,7 @@ The script requires Chromium's
|
||||
|
||||
### 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.
|
||||
|
||||
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
|
||||
names get printed when you run `bazel test :all`. For example, you can run
|
||||
`opt_def_use_test` with:
|
||||
|
||||
on linux:
|
||||
```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
|
||||
<a name="future"></a>
|
||||
@@ -779,6 +801,7 @@ limitations under the License.
|
||||
[googletest-issue-610]: https://github.com/google/googletest/issues/610
|
||||
[effcee]: https://github.com/google/effcee
|
||||
[re2]: https://github.com/google/re2
|
||||
[abseil-cpp]: https://github.com/abseil/abseil-cpp
|
||||
[CMake]: https://cmake.org/
|
||||
[cpp-style-guide]: https://google.github.io/styleguide/cppguide.html
|
||||
[clang-sanitizers]: http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
|
||||
|
||||
13
third_party/spirv-tools/SECURITY.md
vendored
Normal file
13
third_party/spirv-tools/SECURITY.md
vendored
Normal file
@@ -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.
|
||||
10
third_party/spirv-tools/WORKSPACE
vendored
10
third_party/spirv-tools/WORKSPACE
vendored
@@ -3,11 +3,6 @@ local_repository(
|
||||
path = "external/spirv-headers",
|
||||
)
|
||||
|
||||
local_repository(
|
||||
name = "com_google_googletest",
|
||||
path = "external/googletest",
|
||||
)
|
||||
|
||||
local_repository(
|
||||
name = "com_googlesource_code_re2",
|
||||
path = "external/re2",
|
||||
@@ -17,3 +12,8 @@ local_repository(
|
||||
name = "com_google_effcee",
|
||||
path = "external/effcee",
|
||||
)
|
||||
|
||||
local_repository(
|
||||
name = "abseil-cpp",
|
||||
path = "external/abseil_cpp",
|
||||
)
|
||||
|
||||
@@ -5,7 +5,7 @@ LOCAL_CPP_EXTENSION := .cc .cpp .cxx
|
||||
LOCAL_SRC_FILES:=test.cpp
|
||||
LOCAL_MODULE:=spirvtools_test
|
||||
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
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
APP_ABI := all
|
||||
APP_BUILD_SCRIPT := Android.mk
|
||||
APP_STL := c++_static
|
||||
APP_PLATFORM := android-9
|
||||
APP_PLATFORM := android-24
|
||||
NDK_TOOLCHAIN_VERSION := 4.9
|
||||
|
||||
432
third_party/spirv-tools/build_defs.bzl
vendored
432
third_party/spirv-tools/build_defs.bzl
vendored
@@ -1,20 +1,21 @@
|
||||
"""Constants and macros for spirv-tools BUILD."""
|
||||
|
||||
COMMON_COPTS = [
|
||||
"-DSPIRV_CHECK_CONTEXT",
|
||||
"-DSPIRV_COLOR_TERMINAL",
|
||||
] + select({
|
||||
"@bazel_tools//src/conditions:windows": [""],
|
||||
"-DSPIRV_CHECK_CONTEXT",
|
||||
"-DSPIRV_COLOR_TERMINAL",
|
||||
] + select({
|
||||
"@platforms//os:windows": [],
|
||||
"//conditions:default": [
|
||||
"-DSPIRV_LINUX",
|
||||
"-DSPIRV_TIMER_ENABLED",
|
||||
"-fvisibility=hidden",
|
||||
"-fno-exceptions",
|
||||
"-fno-rtti",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Wnon-virtual-dtor",
|
||||
"-Wno-missing-field-initializers",
|
||||
"-Werror",
|
||||
"-std=c++11",
|
||||
"-fvisibility=hidden",
|
||||
"-fno-exceptions",
|
||||
"-fno-rtti",
|
||||
"-Wno-long-long",
|
||||
"-Wshadow",
|
||||
"-Wundef",
|
||||
@@ -23,330 +24,211 @@ COMMON_COPTS = [
|
||||
],
|
||||
})
|
||||
|
||||
TEST_COPTS = COMMON_COPTS + select({
|
||||
"@bazel_tools//src/conditions:windows": [
|
||||
TEST_COPTS = COMMON_COPTS + [
|
||||
] + select({
|
||||
"@platforms//os:windows": [
|
||||
# Disable C4503 "decorated name length exceeded" warning,
|
||||
# triggered by some heavily templated types.
|
||||
# We don't care much about that in test code.
|
||||
# Important to do since we have warnings-as-errors.
|
||||
"/wd4503"
|
||||
"/wd4503",
|
||||
],
|
||||
"//conditions:default": [
|
||||
"-Wno-undef",
|
||||
"-Wno-self-assign",
|
||||
"-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"
|
||||
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"
|
||||
|
||||
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:
|
||||
fail("Must specify version", "version")
|
||||
grammars = [
|
||||
"@spirv_headers//:spirv_core_grammar_" + version,
|
||||
DEBUGINFO_GRAMMAR_JSON_FILE,
|
||||
CLDEBUGINFO100_GRAMMAR_JSON_FILE,
|
||||
]
|
||||
outs = [
|
||||
"core.insts-{}.inc".format(version),
|
||||
"operand.kinds-{}.inc".format(version),
|
||||
]
|
||||
fmtargs = grammars + outs
|
||||
|
||||
grammars = dict(
|
||||
core_grammar = "@spirv_headers//:spirv_core_grammar_{}".format(version),
|
||||
debuginfo_grammar = DEBUGINFO_GRAMMAR_JSON_FILE,
|
||||
cldebuginfo_grammar = CLDEBUGINFO100_GRAMMAR_JSON_FILE,
|
||||
)
|
||||
|
||||
outs = dict(
|
||||
core_insts_output = "core.insts-{}.inc".format(version),
|
||||
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(
|
||||
name = "gen_core_tables_" + version,
|
||||
srcs = grammars,
|
||||
outs = outs,
|
||||
cmd = (
|
||||
"$(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),
|
||||
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"],
|
||||
srcs = grammars.values(),
|
||||
outs = outs.values(),
|
||||
cmd = cmd,
|
||||
cmd_bat = cmd,
|
||||
tools = [":generate_grammar_tables"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
def generate_enum_string_mapping(version = None):
|
||||
def generate_enum_string_mapping(version):
|
||||
if not version:
|
||||
fail("Must specify version", "version")
|
||||
grammars = [
|
||||
"@spirv_headers//:spirv_core_grammar_" + version,
|
||||
DEBUGINFO_GRAMMAR_JSON_FILE,
|
||||
CLDEBUGINFO100_GRAMMAR_JSON_FILE,
|
||||
]
|
||||
outs = [
|
||||
"extension_enum.inc",
|
||||
"enum_string_mapping.inc",
|
||||
]
|
||||
fmtargs = grammars + outs
|
||||
|
||||
grammars = dict(
|
||||
core_grammar = "@spirv_headers//:spirv_core_grammar_{}".format(version),
|
||||
debuginfo_grammar = DEBUGINFO_GRAMMAR_JSON_FILE,
|
||||
cldebuginfo_grammar = CLDEBUGINFO100_GRAMMAR_JSON_FILE,
|
||||
)
|
||||
|
||||
outs = dict(
|
||||
extension_enum_ouput = "extension_enum.inc",
|
||||
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(
|
||||
name = "gen_enum_string_mapping",
|
||||
srcs = grammars,
|
||||
outs = outs,
|
||||
cmd = (
|
||||
"$(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),
|
||||
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"],
|
||||
srcs = grammars.values(),
|
||||
outs = outs.values(),
|
||||
cmd = cmd,
|
||||
cmd_bat = cmd,
|
||||
tools = [":generate_grammar_tables"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
def generate_opencl_tables(version = None):
|
||||
def generate_opencl_tables(version):
|
||||
if not version:
|
||||
fail("Must specify version", "version")
|
||||
grammars = [
|
||||
"@spirv_headers//:spirv_opencl_grammar_" + version,
|
||||
]
|
||||
outs = ["opencl.std.insts.inc"]
|
||||
fmtargs = grammars + outs
|
||||
|
||||
grammars = dict(
|
||||
opencl_grammar = "@spirv_headers//:spirv_opencl_grammar_{}".format(version),
|
||||
)
|
||||
|
||||
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(
|
||||
name = "gen_opencl_tables_" + version,
|
||||
srcs = grammars,
|
||||
outs = outs,
|
||||
cmd = (
|
||||
"$(location :generate_grammar_tables) " +
|
||||
"--extinst-opencl-grammar=$(location {0}) " +
|
||||
"--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"],
|
||||
srcs = grammars.values(),
|
||||
outs = outs.values(),
|
||||
cmd = cmd,
|
||||
cmd_bat = cmd,
|
||||
tools = [":generate_grammar_tables"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
def generate_glsl_tables(version = None):
|
||||
def generate_glsl_tables(version):
|
||||
if not version:
|
||||
fail("Must specify version", "version")
|
||||
grammars = [
|
||||
"@spirv_headers//:spirv_glsl_grammar_" + version,
|
||||
]
|
||||
outs = ["glsl.std.450.insts.inc"]
|
||||
fmtargs = grammars + outs
|
||||
|
||||
grammars = dict(
|
||||
gsls_grammar = "@spirv_headers//:spirv_glsl_grammar_{}".format(version),
|
||||
)
|
||||
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(
|
||||
name = "gen_glsl_tables_" + version,
|
||||
srcs = grammars,
|
||||
outs = outs,
|
||||
cmd = (
|
||||
"$(location :generate_grammar_tables) " +
|
||||
"--extinst-glsl-grammar=$(location {0}) " +
|
||||
"--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"],
|
||||
srcs = grammars.values(),
|
||||
outs = outs.values(),
|
||||
cmd = cmd,
|
||||
cmd_bat = cmd,
|
||||
tools = [":generate_grammar_tables"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
def generate_vendor_tables(extension, operand_kind_prefix = ""):
|
||||
if not extension:
|
||||
fail("Must specify extension", "extension")
|
||||
|
||||
extension_rule = extension.replace("-", "_").replace(".", "_")
|
||||
grammars = ["@spirv_headers//:spirv_ext_inst_{}_grammar_unified1".format(extension_rule)]
|
||||
outs = ["{}.insts.inc".format(extension)]
|
||||
prefices = [operand_kind_prefix]
|
||||
fmtargs = grammars + outs + prefices
|
||||
grammars = dict(
|
||||
vendor_grammar = "@spirv_headers//:spirv_ext_inst_{}_grammar_unified1".format(extension_rule),
|
||||
)
|
||||
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(
|
||||
name = "gen_vendor_tables_" + extension_rule,
|
||||
srcs = grammars,
|
||||
outs = outs,
|
||||
cmd = (
|
||||
"$(location :generate_grammar_tables) " +
|
||||
"--extinst-vendor-grammar=$(location {0}) " +
|
||||
"--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"],
|
||||
srcs = grammars.values(),
|
||||
outs = outs.values(),
|
||||
cmd = cmd,
|
||||
cmd_bat = cmd,
|
||||
tools = [":generate_grammar_tables"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
def generate_extinst_lang_headers(name, grammar = None):
|
||||
if not grammar:
|
||||
fail("Must specify grammar", "grammar")
|
||||
outs = [name + ".h"]
|
||||
fmtargs = outs
|
||||
outs = dict(
|
||||
extinst_output_path = name + ".h",
|
||||
)
|
||||
cmd = (
|
||||
"$(location :generate_language_headers)" +
|
||||
" --extinst-grammar=$<" +
|
||||
" --extinst-output-path=$(location {extinst_output_path})"
|
||||
).format(**outs)
|
||||
|
||||
native.genrule(
|
||||
name = "gen_extinst_lang_headers_" + name,
|
||||
name = "gen_extinst_lang_headers_{}".format(name),
|
||||
srcs = [grammar],
|
||||
outs = outs,
|
||||
cmd = (
|
||||
"$(location :generate_language_headers) " +
|
||||
"--extinst-grammar=$< " +
|
||||
"--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"],
|
||||
outs = outs.values(),
|
||||
cmd = cmd,
|
||||
cmd_bat = cmd,
|
||||
tools = [":generate_language_headers"],
|
||||
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
|
||||
)
|
||||
|
||||
31
third_party/spirv-tools/docs/downloads.md
vendored
31
third_party/spirv-tools/docs/downloads.md
vendored
@@ -1,8 +1,24 @@
|
||||
# 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
|
||||
| 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) |
|
||||
| | [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).
|
||||
|
||||
4
third_party/spirv-tools/docs/projects.md
vendored
4
third_party/spirv-tools/docs/projects.md
vendored
@@ -34,7 +34,7 @@ through the project workflow:
|
||||
ones.
|
||||
* 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
|
||||
request into the `master` branch.
|
||||
request into the `main` branch.
|
||||
|
||||
Our projects organize cards into the following columns:
|
||||
* `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.
|
||||
* `Done`: Issues which have been resolved, by completing their work.
|
||||
* 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.
|
||||
* `Rejected ideas`: Work which has been considered, but which we don't want
|
||||
implemented.
|
||||
|
||||
28
third_party/spirv-tools/external/CMakeLists.txt
vendored
28
third_party/spirv-tools/external/CMakeLists.txt
vendored
@@ -30,11 +30,7 @@ if (DEFINED SPIRV-Headers_SOURCE_DIR)
|
||||
# This allows flexible position of the SPIRV-Headers repo.
|
||||
set(SPIRV_HEADER_DIR ${SPIRV-Headers_SOURCE_DIR})
|
||||
else()
|
||||
if (IS_DIRECTORY ${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()
|
||||
set(SPIRV_HEADER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/spirv-headers)
|
||||
endif()
|
||||
|
||||
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
|
||||
# headers to include.
|
||||
if (NOT DEFINED SPIRV-Headers_SOURCE_DIR)
|
||||
set(SPIRV_HEADERS_SKIP_INSTALL ON)
|
||||
set(SPIRV_HEADERS_SKIP_EXAMPLES ON)
|
||||
add_subdirectory(${SPIRV_HEADER_DIR})
|
||||
endif()
|
||||
else()
|
||||
@@ -60,7 +54,9 @@ if (NOT ${SPIRV_SKIP_TESTS})
|
||||
if (TARGET gmock)
|
||||
message(STATUS "Google Mock already configured")
|
||||
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(MSVC)
|
||||
# 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
|
||||
# library, simply always build as static.
|
||||
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)
|
||||
endif()
|
||||
endif()
|
||||
@@ -95,10 +91,22 @@ if (NOT ${SPIRV_SKIP_TESTS})
|
||||
|
||||
# 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.
|
||||
# If already configured, then use that. Otherwise, prefer to find it under 're2'
|
||||
# in this directory.
|
||||
if (NOT TARGET re2)
|
||||
|
||||
|
||||
# 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
|
||||
# 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)
|
||||
|
||||
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})
|
||||
message(
|
||||
FATAL_ERROR
|
||||
|
||||
@@ -73,196 +73,14 @@ static const int kInstCommonOutShaderId = 1;
|
||||
// which generated the validation error.
|
||||
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
|
||||
//
|
||||
// These are the bindings for the different buffers which are
|
||||
// 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.
|
||||
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
|
||||
|
||||
#endif // INCLUDE_SPIRV_TOOLS_INSTRUMENT_HPP_
|
||||
|
||||
@@ -33,15 +33,19 @@ extern "C" {
|
||||
#else
|
||||
#define SPIRV_TOOLS_EXPORT __declspec(dllimport)
|
||||
#endif
|
||||
#define SPIRV_TOOLS_LOCAL
|
||||
#else
|
||||
#if defined(SPIRV_TOOLS_IMPLEMENTATION)
|
||||
#define SPIRV_TOOLS_EXPORT __attribute__((visibility("default")))
|
||||
#define SPIRV_TOOLS_LOCAL __attribute__((visibility("hidden")))
|
||||
#else
|
||||
#define SPIRV_TOOLS_EXPORT
|
||||
#define SPIRV_TOOLS_LOCAL
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
#define SPIRV_TOOLS_EXPORT
|
||||
#define SPIRV_TOOLS_LOCAL
|
||||
#endif
|
||||
|
||||
// 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
|
||||
// occupy multiple SPIR-V words.
|
||||
SPV_OPERAND_TYPE_TYPED_LITERAL_NUMBER,
|
||||
SPV_OPERAND_TYPE_LITERAL_FLOAT, // Always 32-bit float.
|
||||
|
||||
// Set 3: The literal string operand type.
|
||||
SPV_OPERAND_TYPE_LITERAL_STRING,
|
||||
@@ -285,6 +290,28 @@ typedef enum spv_operand_type_t {
|
||||
// An 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.
|
||||
// It should come last.
|
||||
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_NONSEMANTIC_CLSPVREFLECTION,
|
||||
SPV_EXT_INST_TYPE_NONSEMANTIC_SHADER_DEBUGINFO_100,
|
||||
SPV_EXT_INST_TYPE_NONSEMANTIC_VKSPREFLECTION,
|
||||
|
||||
// Multiple distinct extended instruction set types could return this
|
||||
// value, if they are prefixed with NonSemantic. and are otherwise
|
||||
@@ -402,6 +430,19 @@ typedef struct spv_parsed_instruction_t {
|
||||
uint16_t num_operands;
|
||||
} 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 {
|
||||
const uint32_t* code;
|
||||
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_optimizer_t spv_optimizer_t;
|
||||
|
||||
// Type Definitions
|
||||
|
||||
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,
|
||||
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
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -31,8 +31,13 @@ using MessageConsumer = std::function<void(
|
||||
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.
|
||||
class Context {
|
||||
class SPIRV_TOOLS_EXPORT Context {
|
||||
public:
|
||||
// Constructs a context targeting the given environment |env|.
|
||||
//
|
||||
@@ -68,7 +73,7 @@ class Context {
|
||||
};
|
||||
|
||||
// A RAII wrapper around a validator options object.
|
||||
class ValidatorOptions {
|
||||
class SPIRV_TOOLS_EXPORT ValidatorOptions {
|
||||
public:
|
||||
ValidatorOptions() : options_(spvValidatorOptionsCreate()) {}
|
||||
~ValidatorOptions() { spvValidatorOptionsDestroy(options_); }
|
||||
@@ -158,7 +163,7 @@ class ValidatorOptions {
|
||||
};
|
||||
|
||||
// A C++ wrapper around an optimization options object.
|
||||
class OptimizerOptions {
|
||||
class SPIRV_TOOLS_EXPORT OptimizerOptions {
|
||||
public:
|
||||
OptimizerOptions() : options_(spvOptimizerOptionsCreate()) {}
|
||||
~OptimizerOptions() { spvOptimizerOptionsDestroy(options_); }
|
||||
@@ -200,7 +205,7 @@ class OptimizerOptions {
|
||||
};
|
||||
|
||||
// A C++ wrapper around a reducer options object.
|
||||
class ReducerOptions {
|
||||
class SPIRV_TOOLS_EXPORT ReducerOptions {
|
||||
public:
|
||||
ReducerOptions() : options_(spvReducerOptionsCreate()) {}
|
||||
~ReducerOptions() { spvReducerOptionsDestroy(options_); }
|
||||
@@ -231,7 +236,7 @@ class ReducerOptions {
|
||||
};
|
||||
|
||||
// A C++ wrapper around a fuzzer options object.
|
||||
class FuzzerOptions {
|
||||
class SPIRV_TOOLS_EXPORT FuzzerOptions {
|
||||
public:
|
||||
FuzzerOptions() : options_(spvFuzzerOptionsCreate()) {}
|
||||
~FuzzerOptions() { spvFuzzerOptionsDestroy(options_); }
|
||||
@@ -278,7 +283,7 @@ class FuzzerOptions {
|
||||
// provides methods for assembling, disassembling, and validating.
|
||||
//
|
||||
// Instances of this class provide basic thread-safety guarantee.
|
||||
class SpirvTools {
|
||||
class SPIRV_TOOLS_EXPORT SpirvTools {
|
||||
public:
|
||||
enum {
|
||||
// Default assembling option used by assemble():
|
||||
@@ -336,6 +341,23 @@ class SpirvTools {
|
||||
std::string* text,
|
||||
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.
|
||||
// Otherwise, returns false and communicates issues via the message consumer
|
||||
// registered.
|
||||
@@ -366,7 +388,8 @@ class SpirvTools {
|
||||
bool IsValid() const;
|
||||
|
||||
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.
|
||||
};
|
||||
|
||||
|
||||
@@ -24,13 +24,8 @@
|
||||
|
||||
namespace spvtools {
|
||||
|
||||
class LinkerOptions {
|
||||
class SPIRV_TOOLS_EXPORT LinkerOptions {
|
||||
public:
|
||||
LinkerOptions()
|
||||
: create_library_(false),
|
||||
verify_ids_(false),
|
||||
allow_partial_linkage_(false) {}
|
||||
|
||||
// Returns whether a library or an executable should be produced by the
|
||||
// linking phase.
|
||||
//
|
||||
@@ -63,10 +58,16 @@ class LinkerOptions {
|
||||
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:
|
||||
bool create_library_;
|
||||
bool verify_ids_;
|
||||
bool allow_partial_linkage_;
|
||||
bool create_library_{false};
|
||||
bool verify_ids_{false};
|
||||
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
|
||||
@@ -83,14 +84,15 @@ class LinkerOptions {
|
||||
// * Some entry points were defined multiple times;
|
||||
// * Some imported symbols did not have an exported counterpart;
|
||||
// * Possibly other reasons.
|
||||
spv_result_t Link(const Context& context,
|
||||
const std::vector<std::vector<uint32_t>>& binaries,
|
||||
std::vector<uint32_t>* linked_binary,
|
||||
const LinkerOptions& options = LinkerOptions());
|
||||
spv_result_t Link(const Context& context, const uint32_t* const* binaries,
|
||||
const size_t* binary_sizes, size_t num_binaries,
|
||||
std::vector<uint32_t>* linked_binary,
|
||||
const LinkerOptions& options = LinkerOptions());
|
||||
SPIRV_TOOLS_EXPORT spv_result_t
|
||||
Link(const Context& context, const std::vector<std::vector<uint32_t>>& binaries,
|
||||
std::vector<uint32_t>* linked_binary,
|
||||
const LinkerOptions& options = LinkerOptions());
|
||||
SPIRV_TOOLS_EXPORT spv_result_t
|
||||
Link(const Context& context, const uint32_t* const* binaries,
|
||||
const size_t* binary_sizes, size_t num_binaries,
|
||||
std::vector<uint32_t>* linked_binary,
|
||||
const LinkerOptions& options = LinkerOptions());
|
||||
|
||||
} // namespace spvtools
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace spvtools {
|
||||
// provides a method for linting.
|
||||
//
|
||||
// Instances of this class provides basic thread-safety guarantee.
|
||||
class Linter {
|
||||
class SPIRV_TOOLS_EXPORT Linter {
|
||||
public:
|
||||
explicit Linter(spv_target_env env);
|
||||
|
||||
@@ -40,7 +40,7 @@ class Linter {
|
||||
bool Run(const uint32_t* binary, size_t binary_size);
|
||||
|
||||
private:
|
||||
struct Impl;
|
||||
struct SPIRV_TOOLS_LOCAL Impl;
|
||||
std::unique_ptr<Impl> impl_;
|
||||
};
|
||||
} // namespace spvtools
|
||||
|
||||
@@ -37,14 +37,14 @@ struct DescriptorSetAndBinding;
|
||||
// provides methods for registering optimization passes and optimizing.
|
||||
//
|
||||
// Instances of this class provides basic thread-safety guarantee.
|
||||
class Optimizer {
|
||||
class SPIRV_TOOLS_EXPORT Optimizer {
|
||||
public:
|
||||
// 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
|
||||
// consumed by the RegisterPass() method. Tokens are one-time objects that
|
||||
// only support move; copying is not allowed.
|
||||
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>);
|
||||
|
||||
@@ -97,12 +97,20 @@ class Optimizer {
|
||||
// Registers passes that attempt to improve performance of generated code.
|
||||
// This sequence of passes is subject to constant review and will change
|
||||
// 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(bool preserve_interface);
|
||||
|
||||
// Registers passes that attempt to improve the size of generated code.
|
||||
// This sequence of passes is subject to constant review and will change
|
||||
// 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(bool preserve_interface);
|
||||
|
||||
// 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
|
||||
// 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(bool preserve_interface);
|
||||
|
||||
// Register passes specified in the list of |flags|. Each flag must be a
|
||||
// string of a form accepted by Optimizer::FlagHasValidForm().
|
||||
@@ -121,8 +133,13 @@ class Optimizer {
|
||||
// error message is emitted to the MessageConsumer object (use
|
||||
// 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.
|
||||
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
|
||||
// |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
|
||||
// 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 preserve_interface);
|
||||
|
||||
// Validates that |flag| has a valid format. Strings accepted:
|
||||
//
|
||||
@@ -218,7 +239,7 @@ class Optimizer {
|
||||
Optimizer& SetValidateAfterAll(bool validate);
|
||||
|
||||
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.
|
||||
};
|
||||
|
||||
@@ -525,8 +546,10 @@ Optimizer::PassToken CreateDeadInsertElimPass();
|
||||
// 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
|
||||
// variable in the following shader. It is false by default.
|
||||
Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface = false,
|
||||
bool remove_outputs = false);
|
||||
Optimizer::PassToken CreateAggressiveDCEPass();
|
||||
Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface);
|
||||
Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface,
|
||||
bool remove_outputs);
|
||||
|
||||
// Creates a remove-unused-interface-variables pass.
|
||||
// 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
|
||||
// the debug record output function throughout the module.
|
||||
//
|
||||
// The instrumentation will read and write buffers in debug
|
||||
// descriptor set |desc_set|. It will write |shader_id| in each output record
|
||||
// The instrumentation will write |shader_id| in each output record
|
||||
// to identify the shader module which generated the record.
|
||||
// |desc_length_enable| controls instrumentation of runtime descriptor array
|
||||
// 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);
|
||||
Optimizer::PassToken CreateInstBindlessCheckPass(uint32_t shader_id);
|
||||
|
||||
// Create a pass to instrument physical buffer address checking
|
||||
// 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
|
||||
// descriptor set |desc_set|. It will write |shader_id| in each output record
|
||||
// to identify the shader module which generated the record.
|
||||
Optimizer::PassToken CreateInstBuffAddrCheckPass(uint32_t desc_set,
|
||||
uint32_t shader_id);
|
||||
Optimizer::PassToken CreateInstBuffAddrCheckPass(uint32_t shader_id);
|
||||
|
||||
// Create a pass to instrument OpDebugPrintf instructions.
|
||||
// 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
|
||||
// to the function
|
||||
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
|
||||
|
||||
#endif // INCLUDE_SPIRV_TOOLS_OPTIMIZER_HPP_
|
||||
|
||||
@@ -23,6 +23,11 @@ set -x
|
||||
BUILD_ROOT=$PWD
|
||||
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.
|
||||
# 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
|
||||
|
||||
@@ -22,4 +22,3 @@ set -x
|
||||
|
||||
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
|
||||
source $SCRIPT_DIR/../scripts/macos/build.sh Debug
|
||||
|
||||
|
||||
@@ -24,21 +24,22 @@ CC=clang
|
||||
CXX=clang++
|
||||
SRC=$PWD/github/SPIRV-Tools
|
||||
|
||||
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
|
||||
# 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 bazel 5.0.0
|
||||
gsutil cp gs://bazel/5.0.0/release/bazel-5.0.0-darwin-x86_64 .
|
||||
chmod +x bazel-5.0.0-darwin-x86_64
|
||||
cd $SRC
|
||||
/usr/bin/python3 utils/git-sync-deps --treeless
|
||||
|
||||
# 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...
|
||||
./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): 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.
|
||||
|
||||
@@ -22,4 +22,3 @@ set -x
|
||||
|
||||
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
|
||||
source $SCRIPT_DIR/../scripts/macos/build.sh RelWithDebInfo
|
||||
|
||||
|
||||
@@ -20,6 +20,11 @@ set -e
|
||||
# Display commands being run.
|
||||
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.
|
||||
|
||||
if [ $COMPILER = "clang" ]; then
|
||||
@@ -30,14 +35,6 @@ fi
|
||||
|
||||
cd $ROOT_DIR
|
||||
|
||||
function clone_if_missing() {
|
||||
url=$1
|
||||
dir=$2
|
||||
if [[ ! -d "$dir" ]]; then
|
||||
git clone ${@:3} "$url" "$dir"
|
||||
fi
|
||||
}
|
||||
|
||||
function clean_dir() {
|
||||
dir=$1
|
||||
if [[ -d "$dir" ]]; then
|
||||
@@ -46,12 +43,10 @@ function clean_dir() {
|
||||
mkdir "$dir"
|
||||
}
|
||||
|
||||
clone_if_missing https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers --depth=1
|
||||
clone_if_missing https://github.com/google/googletest external/googletest
|
||||
pushd external/googletest; git reset --hard 1fb1bb23bb8418dc73a5a9a82bbed31dc610fec7; popd
|
||||
clone_if_missing https://github.com/google/effcee external/effcee --depth=1
|
||||
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-smoketest" ]; then
|
||||
# Get source for dependencies, as specified in the DEPS file
|
||||
/usr/bin/python3 utils/git-sync-deps --treeless
|
||||
fi
|
||||
|
||||
if [ $TOOL = "cmake" ]; then
|
||||
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/google/re2
|
||||
git clone https://github.com/google/effcee
|
||||
git clone https://github.com/abseil/abseil-cpp abseil_cpp
|
||||
|
||||
cd $SHADERC_DIR
|
||||
mkdir build
|
||||
@@ -146,7 +142,7 @@ elif [ $TOOL = "cmake-smoketest" ]; then
|
||||
cmake -GNinja -DRE2_BUILD_TESTING=OFF -DCMAKE_BUILD_TYPE="Release" ..
|
||||
|
||||
echo $(date): Build glslang...
|
||||
ninja glslangValidator
|
||||
ninja glslang-standalone
|
||||
|
||||
echo $(date): Build everything...
|
||||
ninja
|
||||
@@ -160,7 +156,7 @@ elif [ $TOOL = "cmake-smoketest" ]; then
|
||||
echo $(date): ctest completed.
|
||||
elif [ $TOOL = "cmake-android-ndk" ]; then
|
||||
using cmake-3.17.2
|
||||
using ndk-r21d
|
||||
using ndk-r25c
|
||||
using ninja-1.10.0
|
||||
|
||||
clean_dir "$ROOT_DIR/build"
|
||||
@@ -168,7 +164,7 @@ elif [ $TOOL = "cmake-android-ndk" ]; then
|
||||
|
||||
echo $(date): Starting build...
|
||||
cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-DANDROID_NATIVE_API_LEVEL=android-16 \
|
||||
-DANDROID_NATIVE_API_LEVEL=android-24 \
|
||||
-DANDROID_ABI="armeabi-v7a with NEON" \
|
||||
-DSPIRV_SKIP_TESTS=ON \
|
||||
-DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake" \
|
||||
@@ -180,7 +176,7 @@ elif [ $TOOL = "cmake-android-ndk" ]; then
|
||||
ninja
|
||||
echo $(date): Build completed.
|
||||
elif [ $TOOL = "android-ndk-build" ]; then
|
||||
using ndk-r21d
|
||||
using ndk-r25c
|
||||
|
||||
clean_dir "$ROOT_DIR/build"
|
||||
cd "$ROOT_DIR/build"
|
||||
@@ -195,13 +191,13 @@ elif [ $TOOL = "android-ndk-build" ]; then
|
||||
|
||||
echo $(date): ndk-build completed.
|
||||
elif [ $TOOL = "bazel" ]; then
|
||||
using bazel-5.0.0
|
||||
using bazel-7.0.2
|
||||
|
||||
echo $(date): Build everything...
|
||||
bazel build :all
|
||||
bazel build --cxxopt=-std=c++17 :all
|
||||
echo $(date): Build completed.
|
||||
|
||||
echo $(date): Starting bazel test...
|
||||
bazel test :all
|
||||
bazel test --cxxopt=-std=c++17 :all
|
||||
echo $(date): Bazel test completed.
|
||||
fi
|
||||
|
||||
@@ -26,6 +26,18 @@ COMPILER=$2
|
||||
TOOL=$3
|
||||
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.
|
||||
docker run --rm -i \
|
||||
--privileged \
|
||||
@@ -41,16 +53,11 @@ docker run --rm -i \
|
||||
--env BUILD_SHA="${BUILD_SHA}" \
|
||||
--entrypoint "${SCRIPT_DIR}/build-docker.sh" \
|
||||
"gcr.io/shaderc-build/radial-build:latest"
|
||||
RESULT=$?
|
||||
|
||||
|
||||
# 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
|
||||
}
|
||||
|
||||
# This is important. If the permissions are not fixed, kokoro will fail
|
||||
# to pull build artifacts, and put the build in tool-failure state, which
|
||||
# blocks the logs.
|
||||
chown_dir "${ROOT_DIR}/build"
|
||||
chown_dir "${ROOT_DIR}/external"
|
||||
exit $RESULT
|
||||
|
||||
@@ -24,6 +24,11 @@ BUILD_ROOT=$PWD
|
||||
SRC=$PWD/github/SPIRV-Tools
|
||||
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.
|
||||
wget -q https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-mac.zip
|
||||
unzip -q ninja-mac.zip
|
||||
@@ -31,12 +36,7 @@ chmod +x ninja
|
||||
export PATH="$PWD:$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
|
||||
python3 utils/git-sync-deps --treeless
|
||||
|
||||
mkdir build && cd $SRC/build
|
||||
|
||||
|
||||
@@ -24,26 +24,23 @@ set VS_VERSION=%2
|
||||
:: Force usage of python 3.6
|
||||
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
|
||||
:: #########################################
|
||||
if %VS_VERSION% == 2017 (
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
|
||||
echo "Using VS 2017..."
|
||||
) else if %VS_VERSION% == 2015 (
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
|
||||
echo "Using VS 2015..."
|
||||
|
||||
:: RE2 does not support VS2017, we we must disable tests.
|
||||
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%
|
||||
python utils/git-sync-deps --treeless
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
@@ -62,6 +59,10 @@ set CMAKE_FLAGS=-DCMAKE_INSTALL_PREFIX=%KOKORO_ARTIFACTS_DIR%\install -GNinja -D
|
||||
:: Build spirv-fuzz
|
||||
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% ..
|
||||
|
||||
if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
|
||||
@@ -77,10 +78,12 @@ setlocal ENABLEDELAYEDEXPANSION
|
||||
:: ################################################
|
||||
:: Run the tests
|
||||
:: ################################################
|
||||
echo "Running Tests... %DATE% %TIME%"
|
||||
ctest -C %BUILD_TYPE% --output-on-failure --timeout 300
|
||||
if !ERRORLEVEL! NEQ 0 exit /b !ERRORLEVEL!
|
||||
echo "Tests Completed %DATE% %TIME%"
|
||||
if "%BUILD_TESTS%" NEQ "NO" (
|
||||
echo "Running Tests... %DATE% %TIME%"
|
||||
ctest -C %BUILD_TYPE% --output-on-failure --timeout 300
|
||||
if !ERRORLEVEL! NEQ 0 exit /b !ERRORLEVEL!
|
||||
echo "Tests Completed %DATE% %TIME%"
|
||||
)
|
||||
|
||||
:: ################################################
|
||||
:: 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
|
||||
|
||||
@@ -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"
|
||||
@@ -1,4 +1,4 @@
|
||||
:: Copyright (c) 2018 Google LLC.
|
||||
:: Copyright (c) 2023 Google LLC
|
||||
::
|
||||
:: Licensed under the Apache License, Version 2.0 (the "License");
|
||||
:: you may not use this file except in compliance with the License.
|
||||
@@ -20,4 +20,4 @@
|
||||
set SCRIPT_DIR=%~dp0
|
||||
|
||||
:: Call with correct parameter
|
||||
call %SCRIPT_DIR%\..\scripts\windows\build.bat Debug 2017
|
||||
call %SCRIPT_DIR%\..\scripts\windows\build.bat Debug 2019
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2018 Google LLC.
|
||||
# Copyright (c) 2023 Google LLC
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -13,7 +13,7 @@
|
||||
# limitations under the License.
|
||||
|
||||
# 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 {
|
||||
define_artifacts {
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2018 Google LLC.
|
||||
# Copyright (c) 2023 Google LLC
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -13,4 +13,4 @@
|
||||
# limitations under the License.
|
||||
|
||||
# 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"
|
||||
@@ -1,4 +1,4 @@
|
||||
:: Copyright (c) 2018 Google LLC.
|
||||
:: Copyright (c) 2023 Google LLC
|
||||
::
|
||||
:: Licensed under the Apache License, Version 2.0 (the "License");
|
||||
:: you may not use this file except in compliance with the License.
|
||||
@@ -20,5 +20,5 @@
|
||||
set SCRIPT_DIR=%~dp0
|
||||
|
||||
:: Call with correct parameter
|
||||
call %SCRIPT_DIR%\..\scripts\windows\build.bat RelWithDebInfo 2015
|
||||
call %SCRIPT_DIR%\..\scripts\windows\build.bat RelWithDebInfo 2019
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2018 Google LLC.
|
||||
# Copyright (c) 2023 Google LLC.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -13,4 +13,10 @@
|
||||
# limitations under the License.
|
||||
|
||||
# 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"
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2018 Google LLC.
|
||||
# Copyright (c) 2023 Google LLC.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -13,4 +13,4 @@
|
||||
# limitations under the License.
|
||||
|
||||
# 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