From 02c0106aa4946b81bf60117d39fe67d322a74670 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 27 Sep 2023 14:13:41 +0000 Subject: [PATCH] import CS spirv-tools-2023.1-3.el8 --- .gitignore | 2 +- .spirv-tools.metadata | 2 +- ...001-opt-fix-spirv-ABI-on-Linux-again.patch | 52 ------------------- SOURCES/rhel8-workaround.patch | 13 +++++ SPECS/spirv-tools.spec | 10 ++-- 5 files changed, 22 insertions(+), 57 deletions(-) delete mode 100644 SOURCES/0001-opt-fix-spirv-ABI-on-Linux-again.patch create mode 100644 SOURCES/rhel8-workaround.patch diff --git a/.gitignore b/.gitignore index eb95771..9e0cd66 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/SPIRV-Tools-sdk-1.3.239.0.tar.gz +SOURCES/SPIRV-Tools-sdk-1.3.250.1.tar.gz diff --git a/.spirv-tools.metadata b/.spirv-tools.metadata index f8ed14b..6989d2f 100644 --- a/.spirv-tools.metadata +++ b/.spirv-tools.metadata @@ -1 +1 @@ -86216f8f5c49ab1625f71b5b5f758602334bf45d SOURCES/SPIRV-Tools-sdk-1.3.239.0.tar.gz +439077bbca3bbe1e4129b75a1650509620d04ed5 SOURCES/SPIRV-Tools-sdk-1.3.250.1.tar.gz diff --git a/SOURCES/0001-opt-fix-spirv-ABI-on-Linux-again.patch b/SOURCES/0001-opt-fix-spirv-ABI-on-Linux-again.patch deleted file mode 100644 index 055b7be..0000000 --- a/SOURCES/0001-opt-fix-spirv-ABI-on-Linux-again.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 743578474de0736850286c2c6d2b796a923b1a7c Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Wed, 15 Feb 2023 16:50:24 +1000 -Subject: [PATCH] opt: fix spirv ABI on Linux again. - -Breaking the ABI for this API isn't worth it when the fix is so simple. ---- - include/spirv-tools/optimizer.hpp | 6 ++++-- - source/opt/optimizer.cpp | 10 ++++++++++ - 2 files changed, 14 insertions(+), 2 deletions(-) - -diff --git a/include/spirv-tools/optimizer.hpp b/include/spirv-tools/optimizer.hpp -index aa6a614e..8bdd4e82 100644 ---- a/include/spirv-tools/optimizer.hpp -+++ b/include/spirv-tools/optimizer.hpp -@@ -525,8 +525,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 -diff --git a/source/opt/optimizer.cpp b/source/opt/optimizer.cpp -index cbc4b82f..46a92dd9 100644 ---- a/source/opt/optimizer.cpp -+++ b/source/opt/optimizer.cpp -@@ -785,6 +785,16 @@ Optimizer::PassToken CreateLocalMultiStoreElimPass() { - MakeUnique()); - } - -+Optimizer::PassToken CreateAggressiveDCEPass() { -+ return MakeUnique( -+ MakeUnique(false, false)); -+} -+ -+Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface) { -+ return MakeUnique( -+ MakeUnique(preserve_interface, false)); -+} -+ - Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface, - bool remove_outputs) { - return MakeUnique( --- -2.39.1 - diff --git a/SOURCES/rhel8-workaround.patch b/SOURCES/rhel8-workaround.patch new file mode 100644 index 0000000..ba8415e --- /dev/null +++ b/SOURCES/rhel8-workaround.patch @@ -0,0 +1,13 @@ +diff -up SPIRV-Tools-sdk-1.3.250.1/CMakeLists.txt.dma SPIRV-Tools-sdk-1.3.250.1/CMakeLists.txt +diff -up SPIRV-Tools-sdk-1.3.250.1/tools/CMakeLists.txt.dma SPIRV-Tools-sdk-1.3.250.1/tools/CMakeLists.txt +--- SPIRV-Tools-sdk-1.3.250.1/tools/CMakeLists.txt.dma 2023-07-12 15:03:54.303896734 +1000 ++++ SPIRV-Tools-sdk-1.3.250.1/tools/CMakeLists.txt 2023-07-12 15:05:46.480030301 +1000 +@@ -74,7 +74,7 @@ if (NOT ${SPIRV_SKIP_EXECUTABLES}) + objdump/extract_source.cpp + util/cli_consumer.cpp + ${COMMON_TOOLS_SRCS} +- LIBS ${SPIRV_TOOLS_FULL_VISIBILITY}) ++ LIBS ${SPIRV_TOOLS_FULL_VISIBILITY} stdc++fs) + target_include_directories(spirv-objdump PRIVATE ${spirv-tools_SOURCE_DIR} + ${SPIRV_HEADER_INCLUDE_DIR}) + set(SPIRV_INSTALL_TARGETS ${SPIRV_INSTALL_TARGETS} spirv-objdump) diff --git a/SPECS/spirv-tools.spec b/SPECS/spirv-tools.spec index 1b1b10b..f34ea32 100644 --- a/SPECS/spirv-tools.spec +++ b/SPECS/spirv-tools.spec @@ -1,15 +1,15 @@ -%global sdkver 1.3.239.0 +%global sdkver 1.3.250.1 Name: spirv-tools Version: 2023.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: API and commands for processing SPIR-V modules License: ASL 2.0 URL: https://github.com/KhronosGroup/SPIRV-Tools Source0: %url/archive/sdk-%{sdkver}.tar.gz#/SPIRV-Tools-sdk-%{sdkver}.tar.gz -Patch0: 0001-opt-fix-spirv-ABI-on-Linux-again.patch +Patch0: rhel8-workaround.patch BuildRequires: cmake BuildRequires: gcc-c++ @@ -70,6 +70,7 @@ popd %{_bindir}/spirv-lesspipe.sh %{_bindir}/spirv-link %{_bindir}/spirv-lint +%{_bindir}/spirv-objdump %{_bindir}/spirv-opt %{_bindir}/spirv-reduce %{_bindir}/spirv-val @@ -90,6 +91,9 @@ popd %{_libdir}/pkgconfig/SPIRV-Tools.pc %changelog +* Wed Jul 12 2023 Dave Airlie - 2023.1-3 +- Update to 1.3.250.1 SDK version + * Wed Feb 15 2023 Dave Airlie - 2023.1-2 - fix spirv-tools ABI break