From 9b3ffb40bdb90b6979789bd03b6a170c7a1d8dae Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Thu, 30 Nov 2023 02:19:27 +0100 Subject: [PATCH] up to 23.3.0 --- Mesa.spec | 15 +++-- llvm17.patch | 169 --------------------------------------------------- 2 files changed, 7 insertions(+), 177 deletions(-) delete mode 100644 llvm17.patch diff --git a/Mesa.spec b/Mesa.spec index 578bf36..cade5f3 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -77,14 +77,13 @@ Summary: Free OpenGL implementation Summary(pl.UTF-8): Wolnodostępna implementacja standardu OpenGL Name: Mesa -Version: 23.2.1 +Version: 23.3.0 Release: 1 License: MIT (core) and others - see license.html file Group: X11/Libraries Source0: https://archive.mesa3d.org/mesa-%{version}.tar.xz -# Source0-md5: 0d89ec154ac9f06a1e876214114ed9af -Patch0: llvm17.patch -Patch1: no-rust-proc-macro-link.patch +# Source0-md5: 30e60f8c466fee52034f303f1afeece2 +Patch0: no-rust-proc-macro-link.patch URL: https://www.mesa3d.org/ %if %{with opencl_spirv} || %{with gallium_rusticl} BuildRequires: SPIRV-LLVM-Translator-devel >= 8.0.1.3 @@ -117,7 +116,7 @@ BuildRequires: libxcb-devel >= 1.13 BuildRequires: llvm-libclc %endif %{?with_omx:BuildRequires: libomxil-bellagio-devel} -BuildRequires: meson >= 1.0.0 +BuildRequires: meson >= 1.2.0 BuildRequires: ninja >= 1.5 BuildRequires: pkgconfig BuildRequires: pkgconfig(talloc) >= 2.0.1 @@ -139,7 +138,7 @@ BuildRequires: tar >= 1:1.22 BuildRequires: udev-devel # wayland-{client,server} %{?with_wayland:BuildRequires: wayland-devel >= %{wayland_ver}} -%{?with_wayland:BuildRequires: wayland-protocols >= 1.24} +%{?with_wayland:BuildRequires: wayland-protocols >= 1.30} %{?with_wayland:BuildRequires: wayland-egl-devel >= %{wayland_ver}} BuildRequires: xcb-util-keysyms-devel BuildRequires: xorg-lib-libX11-devel @@ -1564,7 +1563,6 @@ radv - eksperymentalny sterownik Vulkan dla GPU firmy AMD. %prep %setup -q -n mesa-%{version} %patch0 -p1 -%patch1 -p1 %build %if %{with opencl} @@ -1752,7 +1750,7 @@ rm -rf $RPM_BUILD_ROOT %files libGL-devel %defattr(644,root,root,755) -%doc docs/_extra/specs/* +%doc docs/_static/specs/* %if %{without glvnd} %dir %{_includedir}/GL %{_includedir}/GL/gl.h @@ -1951,6 +1949,7 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/xorg/modules/dri/armada-drm_dri.so %attr(755,root,root) %{_libdir}/xorg/modules/dri/exynos_dri.so +%attr(755,root,root) %{_libdir}/xorg/modules/dri/hdlcd_dri.so %attr(755,root,root) %{_libdir}/xorg/modules/dri/hx8357d_dri.so %attr(755,root,root) %{_libdir}/xorg/modules/dri/ili9225_dri.so %attr(755,root,root) %{_libdir}/xorg/modules/dri/ili9341_dri.so diff --git a/llvm17.patch b/llvm17.patch deleted file mode 100644 index e3d2878..0000000 --- a/llvm17.patch +++ /dev/null @@ -1,169 +0,0 @@ -From cda32e18a08fa2f2289a7409f37f44d5643e6aea Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 23 Jun 2023 01:20:38 -0700 -Subject: [PATCH] gallium: Fix build with llvm 17 - -These headers are not available for C files in llvm 17+ -and they seem to be not needed to compile after all with llvm 17 -so add conditions to exclude them for llvm >= 17 - -Signed-off-by: Khem Raj ---- - src/gallium/auxiliary/gallivm/lp_bld_init.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c -index cd2108f3a088d..b1a4d0388a6a0 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.c -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c -@@ -46,15 +46,19 @@ - #if GALLIVM_USE_NEW_PASS == 1 - #include - #elif GALLIVM_HAVE_CORO == 1 -+#if LLVM_VERSION_MAJOR < 17 - #include --#if LLVM_VERSION_MAJOR >= 7 -+#endif -+#if LLVM_VERSION_MAJOR >= 7 && LLVM_VERSION_MAJOR < 17 - #include - #endif - #if LLVM_VERSION_MAJOR <= 8 && (DETECT_ARCH_AARCH64 || DETECT_ARCH_ARM || DETECT_ARCH_S390 || DETECT_ARCH_MIPS64) - #include - #endif -+#if LLVM_VERSION_MAJOR < 17 - #include - #endif -+#endif - - unsigned gallivm_perf = 0; - --- -GitLab - -From 2d4fe5f229791fde52846b3f583c12508b5109d6 Mon Sep 17 00:00:00 2001 -From: Dave Airlie -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 -Part-of: ---- - .../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 7a50fea332395..43d26fe1abbce 100644 ---- a/src/gallium/frontends/clover/llvm/invocation.cpp -+++ b/src/gallium/frontends/clover/llvm/invocation.cpp -@@ -27,13 +27,17 @@ - #include - #include - #include -+#include - #include --#include -+#include - #include - #ifdef HAVE_CLOVER_SPIRV - #include - #endif - -+#include -+#include -+#include - #include - #include - #include -@@ -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 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"; -+ level = LLVMCodeGenLevelNone; -+ break; -+ case 1: -+ opt_str = "default"; -+ level = LLVMCodeGenLevelLess; -+ break; -+ case 2: -+ opt_str = "default"; -+ level = LLVMCodeGenLevelDefault; -+ break; -+ case 3: -+ opt_str = "default"; -+ 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 -@@ -500,7 +538,7 @@ clover::llvm::link_program(const std::vector &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() + "-" + --- -GitLab - -- 2.44.0