Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package Mesa for openSUSE:Factory checked in at 2023-09-28 00:24:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/Mesa (Old) and /work/SRC/openSUSE:Factory/.Mesa.new.23327 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "Mesa" Thu Sep 28 00:24:18 2023 rev:486 rq:1112897 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/Mesa/Mesa.changes 2023-09-10 13:10:02.214139946 +0200 +++ /work/SRC/openSUSE:Factory/.Mesa.new.23327/Mesa.changes 2023-09-28 00:29:37.229606802 +0200 @@ -1,0 +2,22 @@ +Thu Sep 21 15:13:11 UTC 2023 - Aaron Puchert <aaronpuch...@alice-dsl.net> + +- Backport upstream patches for compatibility with LLVM 17: + * U_llvmpipe-only-include-old-Transform-includes-when-ne.patch + removes unneeded includes of header files that no longer exist. + * U_clover-llvm-move-to-modern-pass-manager.patch migrates Clover + to the new pass manager, since the old PM has been removed. + +------------------------------------------------------------------- +Thu Sep 21 10:26:36 UTC 2023 - Stefan Dirsch <sndir...@suse.com> + +- disable nine on arm/aarch64 in the hope to fix build on this + platform; there is no need for Direct3D/Wine for arm/aarch64 + anyway ... + +------------------------------------------------------------------- +Thu Sep 21 08:05:24 UTC 2023 - Stefan Dirsch <sndir...@suse.com> + +- Update to bugfix release 23.1.8: + --> https://docs.mesa3d.org/relnotes/23.1.8.html + +------------------------------------------------------------------- Old: ---- mesa-23.1.7.tar.xz mesa-23.1.7.tar.xz.sig New: ---- U_clover-llvm-move-to-modern-pass-manager.patch U_llvmpipe-only-include-old-Transform-includes-when-ne.patch mesa-23.1.8.tar.xz mesa-23.1.8.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ Mesa.spec ++++++ --- /var/tmp/diff_new_pack.dDF1OD/_old 2023-09-28 00:29:39.685695456 +0200 +++ /var/tmp/diff_new_pack.dDF1OD/_new 2023-09-28 00:29:39.685695456 +0200 @@ -42,7 +42,7 @@ %define glamor 1 %define _name_archive mesa -%define _version 23.1.7 +%define _version 23.1.8 %define with_opencl 0 %define with_rusticl 0 %define with_vulkan 0 @@ -64,7 +64,7 @@ %define vdpau_virtio_gpu 1 %endif -%ifarch %{ix86} x86_64 %{arm} aarch64 +%ifarch %{ix86} x86_64 %define with_nine 1 %endif @@ -123,7 +123,7 @@ %endif Name: Mesa%{psuffix} -Version: 23.1.7 +Version: 23.1.8 Release: 0 Summary: System for rendering 3-D graphics License: MIT @@ -138,6 +138,9 @@ Source6: Mesa-rpmlintrc Source7: Mesa.keyring Patch2: n_add-Mesa-headers-again.patch +# Patches for LLVM 17, should all be in 23.2. +Patch3: U_llvmpipe-only-include-old-Transform-includes-when-ne.patch +Patch4: U_clover-llvm-move-to-modern-pass-manager.patch # never to be upstreamed Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch @@ -770,6 +773,8 @@ rm -rf docs/README.{VMS,WIN32,OS2} %patch2 -p1 +%patch3 -p1 +%patch4 -p1 # no longer needed since gstreamer-plugins-vaapi 1.18.4 %if 0%{?suse_version} < 1550 %patch54 -p1 ++++++ U_clover-llvm-move-to-modern-pass-manager.patch ++++++ >From 2d4fe5f229791fde52846b3f583c12508b5109d6 Mon Sep 17 00:00:00 2001 From: Dave Airlie <airl...@redhat.com> Date: Fri, 25 Aug 2023 12:43:44 +1000 Subject: [PATCH] clover/llvm: move to modern pass manager. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This seems like it should work, but I haven't tested it yet. Tested-by: Dieter Nützel <die...@nuetzel-hh.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24879> --- .../frontends/clover/llvm/invocation.cpp | 64 +++++++++++++++---- 1 file changed, 51 insertions(+), 13 deletions(-) diff --git a/src/gallium/frontends/clover/llvm/invocation.cpp b/src/gallium/frontends/clover/llvm/invocation.cpp index 7a50fea3323..43d26fe1abb 100644 --- a/src/gallium/frontends/clover/llvm/invocation.cpp +++ b/src/gallium/frontends/clover/llvm/invocation.cpp @@ -27,13 +27,17 @@ #include <llvm/IR/DiagnosticPrinter.h> #include <llvm/IR/DiagnosticInfo.h> #include <llvm/IR/LLVMContext.h> +#include <llvm/IR/Module.h> #include <llvm/Support/raw_ostream.h> -#include <llvm/Transforms/IPO/PassManagerBuilder.h> +#include <llvm/Transforms/IPO/Internalize.h> #include <llvm-c/Target.h> #ifdef HAVE_CLOVER_SPIRV #include <LLVMSPIRVLib/LLVMSPIRVLib.h> #endif +#include <llvm-c/TargetMachine.h> +#include <llvm-c/Transforms/PassBuilder.h> +#include <llvm/Support/CBindingWrapping.h> #include <clang/CodeGen/CodeGenAction.h> #include <clang/Lex/PreprocessorOptions.h> #include <clang/Frontend/TextDiagnosticBuffer.h> @@ -439,10 +443,10 @@ clover::llvm::compile_program(const std::string &source, namespace { void - optimize(Module &mod, unsigned optimization_level, + optimize(Module &mod, + const std::string& ir_target, + unsigned optimization_level, bool internalize_symbols) { - ::llvm::legacy::PassManager pm; - // By default, the function internalizer pass will look for a function // called "main" and then mark all other functions as internal. Marking // functions as internal enables the optimizer to perform optimizations @@ -458,19 +462,53 @@ namespace { if (internalize_symbols) { std::vector<std::string> names = map(std::mem_fn(&Function::getName), get_kernels(mod)); - pm.add(::llvm::createInternalizePass( + internalizeModule(mod, [=](const ::llvm::GlobalValue &gv) { return std::find(names.begin(), names.end(), gv.getName()) != names.end(); - })); + }); } - ::llvm::PassManagerBuilder pmb; - pmb.OptLevel = optimization_level; - pmb.LibraryInfo = new ::llvm::TargetLibraryInfoImpl( - ::llvm::Triple(mod.getTargetTriple())); - pmb.populateModulePassManager(pm); - pm.run(mod); + + const char *opt_str = NULL; + LLVMCodeGenOptLevel level; + switch (optimization_level) { + case 0: + default: + opt_str = "default<O0>"; + level = LLVMCodeGenLevelNone; + break; + case 1: + opt_str = "default<O1>"; + level = LLVMCodeGenLevelLess; + break; + case 2: + opt_str = "default<O2>"; + level = LLVMCodeGenLevelDefault; + break; + case 3: + opt_str = "default<O3>"; + level = LLVMCodeGenLevelAggressive; + break; + } + + const target &target = ir_target; + LLVMTargetRef targ; + char *err_message; + + if (LLVMGetTargetFromTriple(target.triple.c_str(), &targ, &err_message)) + return; + LLVMTargetMachineRef tm = + LLVMCreateTargetMachine(targ, target.triple.c_str(), + target.cpu.c_str(), "", level, + LLVMRelocDefault, LLVMCodeModelDefault); + + if (!tm) + return; + LLVMPassBuilderOptionsRef opts = LLVMCreatePassBuilderOptions(); + LLVMRunPasses(wrap(&mod), opt_str, tm, opts); + + LLVMDisposeTargetMachine(tm); } std::unique_ptr<Module> @@ -500,7 +538,7 @@ clover::llvm::link_program(const std::vector<binary> &binaries, auto c = create_compiler_instance(dev, dev.ir_target(), options, r_log); auto mod = link(*ctx, *c, binaries, r_log); - optimize(*mod, c->getCodeGenOpts().OptimizationLevel, !create_library); + optimize(*mod, dev.ir_target(), c->getCodeGenOpts().OptimizationLevel, !create_library); static std::atomic_uint seq(0); const std::string id = "." + mod->getModuleIdentifier() + "-" + -- 2.42.0 ++++++ U_llvmpipe-only-include-old-Transform-includes-when-ne.patch ++++++ >From 9ba416cdc67073cdda9a73fe9d37304b82bdd526 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-pra...@amd.com> Date: Fri, 12 May 2023 09:58:26 +0200 Subject: [PATCH] llvmpipe: only include old Transform includes when needed This fixes building with recent LLVM where these 2 .h files were removed. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8671 Acked-By: Mike Blumenkrantz <michael.blumenkra...@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22980> --- src/gallium/auxiliary/gallivm/lp_bld_init.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c index 24d082398e9..9e0d6a5f643 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_init.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c @@ -42,14 +42,14 @@ #include <llvm/Config/llvm-config.h> #include <llvm-c/Analysis.h> -#include <llvm-c/Transforms/Scalar.h> -#if LLVM_VERSION_MAJOR >= 7 -#include <llvm-c/Transforms/Utils.h> -#endif #include <llvm-c/BitWriter.h> #if GALLIVM_USE_NEW_PASS == 1 #include <llvm-c/Transforms/PassBuilder.h> #elif GALLIVM_HAVE_CORO == 1 +#include <llvm-c/Transforms/Scalar.h> +#if LLVM_VERSION_MAJOR >= 7 +#include <llvm-c/Transforms/Utils.h> +#endif #if LLVM_VERSION_MAJOR <= 8 && (DETECT_ARCH_AARCH64 || DETECT_ARCH_ARM || DETECT_ARCH_S390 || DETECT_ARCH_MIPS64) #include <llvm-c/Transforms/IPO.h> #endif -- 2.42.0 ++++++ mesa-23.1.7.tar.xz -> mesa-23.1.8.tar.xz ++++++ /work/SRC/openSUSE:Factory/Mesa/mesa-23.1.7.tar.xz /work/SRC/openSUSE:Factory/.Mesa.new.23327/mesa-23.1.8.tar.xz differ: char 26, line 1