import spirv-tools-2021.4-2.20211110.git21e3f68.el8_5

This commit is contained in:
CentOS Sources 2021-12-10 04:22:32 +00:00 committed by Stepan Oksanichenko
parent 2b783c218c
commit 115f1c10b6
4 changed files with 98 additions and 6 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/spirv-tools-1fbed83c8aab8517d821fcb4164c08567951938f.tar.gz
SOURCES/spirv-tools-21e3f681e2004590c7865bc8c0195a4ab8e66c88.tar.gz

View File

@ -1 +1 @@
bdb75c83663ab3dc120137ca8858fcdb41f1ed57 SOURCES/spirv-tools-1fbed83c8aab8517d821fcb4164c08567951938f.tar.gz
0ab8feda8d1e26ad379255c7d51ca38c28abfe6c SOURCES/spirv-tools-21e3f681e2004590c7865bc8c0195a4ab8e66c88.tar.gz

View File

@ -0,0 +1,85 @@
From 76e9ab018c24eaed0bc83c83cf72bc4542e5f1ad Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
Date: Mon, 6 Dec 2021 13:49:10 +1000
Subject: [PATCH] optimizer: restore previous ABI.
The change in
commit 4ac8e5e541ea992dc6f44a4d4eb065a8fe0888ec
Author: Greg Fischer <greg@lunarg.com>
Date: Wed Sep 15 12:38:34 2021 -0600
Add preserve_interface mode to aggressive_dead_code_elim (#4520)
Broke the C++ ABI for spirv-tools shared libraries on Linux, for not a great reason.
Restore the previous ABI.
---
include/spirv-tools/optimizer.hpp | 3 ++-
source/opt/optimizer.cpp | 17 +++++++++++------
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/include/spirv-tools/optimizer.hpp b/include/spirv-tools/optimizer.hpp
index 21059cbe..a0314b5f 100644
--- a/include/spirv-tools/optimizer.hpp
+++ b/include/spirv-tools/optimizer.hpp
@@ -519,7 +519,8 @@ Optimizer::PassToken CreateDeadInsertElimPass();
// interface are considered live and are not eliminated. This mode is needed
// by GPU-Assisted validation instrumentation, where a change in the interface
// is not allowed.
-Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface = false);
+Optimizer::PassToken CreateAggressiveDCEPass();
+Optimizer::PassToken CreateAggressiveDCEPassPreserveInterface();
// 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 e74db26f..d5534d08 100644
--- a/source/opt/optimizer.cpp
+++ b/source/opt/optimizer.cpp
@@ -419,22 +419,22 @@ bool Optimizer::RegisterPassFromFlag(const std::string& flag) {
RegisterPass(CreateSimplificationPass());
RegisterPass(CreateDeadBranchElimPass());
RegisterPass(CreateBlockMergePass());
- RegisterPass(CreateAggressiveDCEPass(true));
+ RegisterPass(CreateAggressiveDCEPassPreserveInterface());
} else if (pass_name == "inst-desc-idx-check") {
RegisterPass(CreateInstBindlessCheckPass(7, 23, true, true));
RegisterPass(CreateSimplificationPass());
RegisterPass(CreateDeadBranchElimPass());
RegisterPass(CreateBlockMergePass());
- RegisterPass(CreateAggressiveDCEPass(true));
+ RegisterPass(CreateAggressiveDCEPassPreserveInterface());
} else if (pass_name == "inst-buff-oob-check") {
RegisterPass(CreateInstBindlessCheckPass(7, 23, false, false, true, true));
RegisterPass(CreateSimplificationPass());
RegisterPass(CreateDeadBranchElimPass());
RegisterPass(CreateBlockMergePass());
- RegisterPass(CreateAggressiveDCEPass(true));
+ RegisterPass(CreateAggressiveDCEPassPreserveInterface());
} else if (pass_name == "inst-buff-addr-check") {
RegisterPass(CreateInstBuffAddrCheckPass(7, 23));
- RegisterPass(CreateAggressiveDCEPass(true));
+ RegisterPass(CreateAggressiveDCEPassPreserveInterface());
} else if (pass_name == "convert-relaxed-to-half") {
RegisterPass(CreateConvertRelaxedToHalfPass());
} else if (pass_name == "relax-float-ops") {
@@ -764,9 +764,14 @@ Optimizer::PassToken CreateLocalMultiStoreElimPass() {
MakeUnique<opt::SSARewritePass>());
}
-Optimizer::PassToken CreateAggressiveDCEPass(bool preserve_interface) {
+Optimizer::PassToken CreateAggressiveDCEPass() {
return MakeUnique<Optimizer::PassToken::Impl>(
- MakeUnique<opt::AggressiveDCEPass>(preserve_interface));
+ MakeUnique<opt::AggressiveDCEPass>(false));
+}
+
+Optimizer::PassToken CreateAggressiveDCEPassPreserveInterface() {
+ return MakeUnique<Optimizer::PassToken::Impl>(
+ MakeUnique<opt::AggressiveDCEPass>(true));
}
Optimizer::PassToken CreateRemoveUnusedInterfaceVariablesPass() {
--
2.33.1

View File

@ -1,17 +1,18 @@
%global commit 1fbed83c8aab8517d821fcb4164c08567951938f
%global commit 21e3f681e2004590c7865bc8c0195a4ab8e66c88
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20210825
%global commit_date 20211110
%global gitrel .%{commit_date}.git%{shortcommit}
Name: spirv-tools
Version: 2021.3
Release: 1%{?gitrel}%{?dist}
Version: 2021.4
Release: 2%{?gitrel}%{?dist}
Summary: API and commands for processing SPIR-V modules
License: ASL 2.0
URL: https://github.com/KhronosGroup/SPIRV-Tools
Source0: %url/archive/%{commit}.tar.gz#/%{name}-%{commit}.tar.gz
Patch0: 0001-optimizer-restore-previous-ABI.patch
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: ninja-build
@ -90,6 +91,12 @@ popd
%{_libdir}/pkgconfig/SPIRV-Tools.pc
%changelog
* Thu Dec 09 2021 Dave Airlie <airlied@redhat.com> - 2021.4-2.20211110.git21e3f68
- Restore upstream ABI
* Thu Nov 25 2021 Dave Airlie <airlied@redhat.com> - 2021.4-1.20211110.git21e3f68
- Update to 1.2.198.0 SDK Version
* Wed Sep 08 2021 Dave Airlie <airlied@redhat.com> - 2021.3-1
- Update to 1.2.189.0 SDK version