diff --git a/Mesa.changes b/Mesa.changes index 280bfbc..6a8d71a 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -5,6 +5,12 @@ Tue Mar 12 20:13:17 UTC 2024 - Stefan Dirsch * zink: don't print error messages when failing an implicit driver load (Mesa gitlab issue #10802) +------------------------------------------------------------------- +Sat Mar 9 22:17:33 UTC 2024 - Aaron Puchert + +- Add U_fix-ac-llvm-LLVM-18-remove-useless-passes.patch to fix + build with LLVM 18. + ------------------------------------------------------------------- Tue Mar 5 04:33:37 UTC 2024 - Jianhua Lu diff --git a/Mesa.spec b/Mesa.spec index 8557f4c..051581b 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -142,6 +142,7 @@ Patch11: u_0001-intel-genxml-Drop-from-__future__-import-annotations.patc Patch12: u_0002-intel-genxml-Add-a-untyped-OrderedDict-fallback-for-.patch Patch13: python36-buildfix1.patch Patch14: python36-buildfix2.patch +Patch15: U_fix-ac-llvm-LLVM-18-remove-useless-passes.patch # never to be upstreamed Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch @@ -763,6 +764,7 @@ rm -rf docs/README.{VMS,WIN32,OS2} %if 0%{?suse_version} < 1550 %patch -P 14 -p1 %endif +%patch -P 15 -p1 # no longer needed since gstreamer-plugins-vaapi 1.18.4 %if 0%{?suse_version} < 1550 %patch -P 54 -p1 diff --git a/U_fix-ac-llvm-LLVM-18-remove-useless-passes.patch b/U_fix-ac-llvm-LLVM-18-remove-useless-passes.patch new file mode 100644 index 0000000..d098739 --- /dev/null +++ b/U_fix-ac-llvm-LLVM-18-remove-useless-passes.patch @@ -0,0 +1,58 @@ +From bc7e363f8e1a26342e6fd7241c1f0ebb722338d6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= +Date: Wed, 22 Nov 2023 20:21:11 +0100 +Subject: [PATCH] fix: ac/llvm: LLVM 18: remove useless passes, partially + removed upstream +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream removed llvm::createLoopSinkPass() in commit + +and there is no useful alternative except moving to the new pass +manager. + +On top of that, the usage of this optimisation pass and +PromoteMemoryToRegisterPass were just useless, according to the +upstream developer of the commit named above. Therefore the easiest +solution is, as him, Marek and Dave suggested, to just remove these two +passes from the pipeline for now. + +Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10192 +Reference: https://github.com/llvm/llvm-project/pull/72811 +Reference: https://github.com/llvm/llvm-project/commit/b9975cec0ea0a2f10d65b7bd1197d9e1706cbd3d +Suggested-by: Dave Airlie +Suggested-by: Aiden Grossman +Suggested-by: Marek Olšák +Signed-off-by: Kai Wasserbäch +Reviewed-by: Marek Olšák +Part-of: +--- + src/amd/llvm/ac_llvm_helper.cpp | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/src/amd/llvm/ac_llvm_helper.cpp b/src/amd/llvm/ac_llvm_helper.cpp +index 40a4399e705..5d065279ad1 100644 +--- a/src/amd/llvm/ac_llvm_helper.cpp ++++ b/src/amd/llvm/ac_llvm_helper.cpp +@@ -299,17 +299,12 @@ LLVMPassManagerRef ac_create_passmgr(LLVMTargetLibraryInfoRef target_library_inf + */ + unwrap(passmgr)->add(createBarrierNoopPass()); + +- /* This pass eliminates all loads and stores on alloca'd pointers. */ +- unwrap(passmgr)->add(createPromoteMemoryToRegisterPass()); + #if LLVM_VERSION_MAJOR >= 16 + unwrap(passmgr)->add(createSROAPass(true)); + #else + unwrap(passmgr)->add(createSROAPass()); + #endif + /* TODO: restore IPSCCP */ +- if (LLVM_VERSION_MAJOR >= 16) +- unwrap(passmgr)->add(createLoopSinkPass()); +- /* TODO: restore IPSCCP */ + unwrap(passmgr)->add(createLICMPass()); + unwrap(passmgr)->add(createCFGSimplificationPass()); + /* This is recommended by the instruction combining pass. */ +-- +2.44.0 +