From 199aa14a4831b0ab005bcdabb8fb5befc128d7b1834236a24a4b62f57d9965e6 Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Fri, 8 Dec 2023 17:49:35 +0000 Subject: [PATCH] Accepting request 1130356 from home:iznogood:factory New stable release. Not sure if more changes are needed to enable the new NVK experimental driver, please verify OBS-URL: https://build.opensuse.org/request/show/1130356 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=1248 --- Mesa.changes | 31 ++++- Mesa.spec | 21 ++- ...ver-llvm-move-to-modern-pass-manager.patch | 127 ------------------ U_fix-mpeg1_2-decode-mesa-20.2.patch | 9 +- ...function-with-si_-to-prevent-name-co.patch | 75 ----------- mesa-23.2.1.tar.xz | 3 - mesa-23.2.1.tar.xz.sig | Bin 119 -> 0 bytes mesa-23.3.0.tar.xz | 3 + mesa-23.3.0.tar.xz.sig | Bin 0 -> 310 bytes n_add-Mesa-headers-again.patch | 8 +- n_stop-iris-flicker.patch | 8 +- u_dep_xcb.patch | 16 +-- 12 files changed, 62 insertions(+), 239 deletions(-) delete mode 100644 U_clover-llvm-move-to-modern-pass-manager.patch delete mode 100644 U_radeonsi-prefix-function-with-si_-to-prevent-name-co.patch delete mode 100644 mesa-23.2.1.tar.xz delete mode 100644 mesa-23.2.1.tar.xz.sig create mode 100644 mesa-23.3.0.tar.xz create mode 100644 mesa-23.3.0.tar.xz.sig diff --git a/Mesa.changes b/Mesa.changes index 5762f21..7a125e1 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,32 @@ +------------------------------------------------------------------- +Fri Dec 1 20:10:26 UTC 2023 - Bjørn Lie + +- Update to version 23.3.0: + * It includes NVK, a new reverse-engineered Vulkan driver for + Nvidia hardware. This driver is still in experimental phase, + not quite ready for prime time yet, but adventurous users can + give it a go! + * New extensions & features (in no particular order): + - VK_EXT_pipeline_robustness on ANV + - VK_KHR_maintenance5 on RADV + - OpenGL ES 3.1 on Asahi + - GL_ARB_compute_shader on Asahi + - GL_ARB_shader_atomic_counters on Asahi + - GL_ARB_shader_image_load_store on Asahi + - GL_ARB_shader_image_size on Asahi + - GL_ARB_shader_storage_buffer_object on Asahi + - GL_ARB_sample_shading on Asahi + - GL_OES_sample_variables on Asahi + - GL_OES_shader_multisample_interpolation on Asahi + - GL_OES_gpu_shader5 on Asahi + - EGL_ANDROID_blob_cache works when disk caching is disabled + - VK_KHR_cooperative_matrix on RADV/GFX11+ +- Drop patches fixed upstream: + * U_clover-llvm-move-to-modern-pass-manager.patch + * U_radeonsi-prefix-function-with-si_-to-prevent-name-co.patch +- Refresh patches with quilt. +- Use %patch -p N instead of deprecated %patchN. + ------------------------------------------------------------------- Mon Nov 20 14:53:17 UTC 2023 - Stefan Dirsch @@ -14,7 +43,7 @@ Mon Nov 20 14:44:53 UTC 2023 - Stefan Dirsch ------------------------------------------------------------------- Mon Nov 20 14:40:06 UTC 2023 - Stefan Dirsch -- enable rusticl on sle15-sp6 +- enable rusticl on sle15-sp6 ------------------------------------------------------------------- Fri Nov 17 14:14:06 UTC 2023 - Stefan Dirsch diff --git a/Mesa.spec b/Mesa.spec index e142b31..cd15d6e 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -42,7 +42,7 @@ %define glamor 1 %define _name_archive mesa -%define _version 23.2.1 +%define _version 23.3.0 %define with_opencl 0 %define with_rusticl 0 %define with_vulkan 0 @@ -123,7 +123,7 @@ %endif Name: Mesa%{psuffix} -Version: 23.2.1 +Version: 23.3.0 Release: 0 Summary: System for rendering 3-D graphics License: MIT @@ -138,9 +138,6 @@ Source4: manual-pages.tar.bz2 Source6: Mesa-rpmlintrc Source7: Mesa.keyring Patch2: n_add-Mesa-headers-again.patch -# Patches for LLVM 17, should all be in 23.2. -Patch4: U_clover-llvm-move-to-modern-pass-manager.patch -Patch10: U_radeonsi-prefix-function-with-si_-to-prevent-name-co.patch # never to be upstreamed Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch @@ -752,17 +749,15 @@ programs against the XA state tracker. # remove some docs rm -rf docs/README.{VMS,WIN32,OS2} -%patch2 -p1 -%patch4 -p1 -%patch10 -p1 +%patch -P 2 -p1 # no longer needed since gstreamer-plugins-vaapi 1.18.4 %if 0%{?suse_version} < 1550 -%patch54 -p1 +%patch -P 54 -p1 %endif -%patch58 -p1 -%patch100 -p1 -#%patch200 -p1 -%patch400 -p1 +%patch -P 58 -p1 +%patch -P 100 -p1 +#%patch -P 200 -p1 +%patch -P 400 -p1 # Remove requires to vulkan libs from baselibs.conf on platforms # where vulkan build is disabled; ugly ... diff --git a/U_clover-llvm-move-to-modern-pass-manager.patch b/U_clover-llvm-move-to-modern-pass-manager.patch deleted file mode 100644 index a21a9ee..0000000 --- a/U_clover-llvm-move-to-modern-pass-manager.patch +++ /dev/null @@ -1,127 +0,0 @@ -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 7a50fea3323..43d26fe1abb 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() + "-" + --- -2.42.0 - diff --git a/U_fix-mpeg1_2-decode-mesa-20.2.patch b/U_fix-mpeg1_2-decode-mesa-20.2.patch index 501b751..fd9eaf9 100644 --- a/U_fix-mpeg1_2-decode-mesa-20.2.patch +++ b/U_fix-mpeg1_2-decode-mesa-20.2.patch @@ -3,9 +3,11 @@ src/gallium/drivers/r600/evergreen_state.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---- a/src/gallium/drivers/r600/evergreen_state.c -+++ b/src/gallium/drivers/r600/evergreen_state.c -@@ -580,7 +580,8 @@ static void *evergreen_create_sampler_st +Index: mesa-23.3.0/src/gallium/drivers/r600/evergreen_state.c +=================================================================== +--- mesa-23.3.0.orig/src/gallium/drivers/r600/evergreen_state.c ++++ mesa-23.3.0/src/gallium/drivers/r600/evergreen_state.c +@@ -598,7 +598,8 @@ static void *evergreen_create_sampler_st : state->max_anisotropy; unsigned max_aniso_ratio = r600_tex_aniso_filter(max_aniso); bool trunc_coord = state->min_img_filter == PIPE_TEX_FILTER_NEAREST && @@ -15,4 +17,3 @@ float max_lod = state->max_lod; if (!ss) { --- diff --git a/U_radeonsi-prefix-function-with-si_-to-prevent-name-co.patch b/U_radeonsi-prefix-function-with-si_-to-prevent-name-co.patch deleted file mode 100644 index c55cbf4..0000000 --- a/U_radeonsi-prefix-function-with-si_-to-prevent-name-co.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 9590bce3e249a34665b2c42b20bfdbdc7f32147f Mon Sep 17 00:00:00 2001 -From: WinLinux1028 -Date: Tue, 11 Jul 2023 18:16:01 +0900 -Subject: [PATCH] radeonsi: prefix function with si_ to prevent name collision - -Fixed a build error caused by multiple gfx11_init_query symbols when building with iris and radeonsi specified in gallium-drivers. - -Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9238 -Part-of: ---- - src/gallium/drivers/radeonsi/gfx11_query.c | 4 ++-- - src/gallium/drivers/radeonsi/si_pipe.c | 4 ++-- - src/gallium/drivers/radeonsi/si_pipe.h | 4 ++-- - 3 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/gallium/drivers/radeonsi/gfx11_query.c b/src/gallium/drivers/radeonsi/gfx11_query.c -index bfcd8e25110..2a331cc3bda 100644 ---- a/src/gallium/drivers/radeonsi/gfx11_query.c -+++ b/src/gallium/drivers/radeonsi/gfx11_query.c -@@ -422,13 +422,13 @@ struct pipe_query *gfx11_sh_query_create(struct si_screen *screen, enum pipe_que - return (struct pipe_query *)query; - } - --void gfx11_init_query(struct si_context *sctx) -+void si_gfx11_init_query(struct si_context *sctx) - { - list_inithead(&sctx->shader_query_buffers); - sctx->atoms.s.shader_query.emit = emit_shader_query; - } - --void gfx11_destroy_query(struct si_context *sctx) -+void si_gfx11_destroy_query(struct si_context *sctx) - { - if (!sctx->shader_query_buffers.next) - return; -diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c -index fb5c02c473b..2b4fceb89b1 100644 ---- a/src/gallium/drivers/radeonsi/si_pipe.c -+++ b/src/gallium/drivers/radeonsi/si_pipe.c -@@ -192,7 +192,7 @@ static void si_destroy_context(struct pipe_context *context) - si_release_all_descriptors(sctx); - - if (sctx->gfx_level >= GFX10 && sctx->has_graphics) -- gfx11_destroy_query(sctx); -+ si_gfx11_destroy_query(sctx); - - if (sctx->sqtt) { - struct si_screen *sscreen = sctx->screen; -@@ -637,7 +637,7 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, unsign - /* Initialize graphics-only context functions. */ - if (sctx->has_graphics) { - if (sctx->gfx_level >= GFX10) -- gfx11_init_query(sctx); -+ si_gfx11_init_query(sctx); - si_init_msaa_functions(sctx); - si_init_shader_functions(sctx); - si_init_state_functions(sctx); -diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h -index 55f1d1788f1..389716854f9 100644 ---- a/src/gallium/drivers/radeonsi/si_pipe.h -+++ b/src/gallium/drivers/radeonsi/si_pipe.h -@@ -1616,8 +1616,8 @@ void *si_create_query_result_cs(struct si_context *sctx); - void *gfx11_create_sh_query_result_cs(struct si_context *sctx); - - /* gfx11_query.c */ --void gfx11_init_query(struct si_context *sctx); --void gfx11_destroy_query(struct si_context *sctx); -+void si_gfx11_init_query(struct si_context *sctx); -+void si_gfx11_destroy_query(struct si_context *sctx); - - /* si_test_image_copy_region.c */ - void si_test_image_copy_region(struct si_screen *sscreen); --- -2.41.0 - diff --git a/mesa-23.2.1.tar.xz b/mesa-23.2.1.tar.xz deleted file mode 100644 index 6c78768..0000000 --- a/mesa-23.2.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:64de0616fc2d801f929ab1ac2a4f16b3e2783c4309a724c8a259b20df8bbc1cc -size 18855304 diff --git a/mesa-23.2.1.tar.xz.sig b/mesa-23.2.1.tar.xz.sig deleted file mode 100644 index f9710bed9c7b214028c3543fb86943848d5948fffb79172e3603fb54977cee5d..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119 zcmeAuWnmEGVvrS6WGOtdJxpOwX+gL5ZB?JCzgF9AD1O7rlq&ksn}Lf{04DOcfstXE z+3hv`vOKO2-dE&JJARF~W4-g8rk!rvx4hlxE4x{^nUP_ob^W4kp8Bj}CzP)J5?W|e V#^HTn-%GV+Gj6hYO+M+v2LN*vGpGOn diff --git a/mesa-23.3.0.tar.xz b/mesa-23.3.0.tar.xz new file mode 100644 index 0000000..0d32b38 --- /dev/null +++ b/mesa-23.3.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50f729dd60ed6335b989095baad81ef5edf7cfdd4b4b48b9b955917cb07d69c5 +size 19234688 diff --git a/mesa-23.3.0.tar.xz.sig b/mesa-23.3.0.tar.xz.sig new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..a813a3ec03f152a08e38e8f186c077ff5dfa1fb1afce03ddafd35a32be408772 GIT binary patch literal 310 zcmV-60m=S}0W$;u0SEvc79j*zRUP45mXBjW!btXwjxn#pBq*i@0%d2DCIAWv5RHy8 zufrrLrZ2w-`v(mt&PW<6-qe~RtN^jQ>I6VLB~B+8Y2ORo30XDFO?<@sg^v9~8G+TS z0QVv8`CnZnd7R0PBg&LR8kA7w+kL_)J?a_N3lYFU=u_95?kmrx=Nb57p53PmY+7_Z zGFnw+p_Hf4!vPNDo&2+nN4ha|_kjAznXIrD=#n65IIM=ejzlxtgv1_PKSQX9p(x38 zni^etyt@n}e`rg)2eJf^J8b_)QPI!U66}#ZgCE?#+93o!xifB+O{sV@5}1e0%);q9 zgem_handle, .offset = bo->address, diff --git a/u_dep_xcb.patch b/u_dep_xcb.patch index e92160f..759527d 100644 --- a/u_dep_xcb.patch +++ b/u_dep_xcb.patch @@ -1,8 +1,8 @@ -Index: mesa-23.1.1/meson.build +Index: mesa-23.3.0/meson.build =================================================================== ---- mesa-23.1.1.orig/meson.build -+++ mesa-23.1.1/meson.build -@@ -1966,9 +1966,11 @@ if with_platform_x11 +--- mesa-23.3.0.orig/meson.build ++++ mesa-23.3.0/meson.build +@@ -2022,9 +2022,11 @@ if with_platform_x11 endif endif if with_any_vk or with_egl or (with_glx == 'dri' and with_dri_platform == 'drm') @@ -14,11 +14,11 @@ Index: mesa-23.1.1/meson.build dep_xcb_dri3 = dependency('xcb-dri3') dep_xcb_present = dependency('xcb-present') # until xcb-dri3 has been around long enough to make a hard-dependency: -Index: mesa-23.1.1/src/loader/meson.build +Index: mesa-23.3.0/src/loader/meson.build =================================================================== ---- mesa-23.1.1.orig/src/loader/meson.build -+++ mesa-23.1.1/src/loader/meson.build -@@ -46,6 +46,6 @@ libloader = static_library( +--- mesa-23.3.0.orig/src/loader/meson.build ++++ mesa-23.3.0/src/loader/meson.build +@@ -47,6 +47,6 @@ libloader = static_library( c_args : loader_c_args, gnu_symbol_visibility : 'hidden', include_directories : [inc_include, inc_src, inc_util],