diff --git a/0001-dri-don-t-fetch-X11-modifiers-if-we-don-t-support-th.patch b/0001-dri-don-t-fetch-X11-modifiers-if-we-don-t-support-th.patch deleted file mode 100644 index baa236a..0000000 --- a/0001-dri-don-t-fetch-X11-modifiers-if-we-don-t-support-th.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 35852799aef8efdb4516c51913f86cd7d795a8d7 Mon Sep 17 00:00:00 2001 -From: Simon Ser -Date: Sat, 7 Dec 2024 13:10:04 +0100 -Subject: [PATCH 1/3] dri: don't fetch X11 modifiers if we don't support them - -If we supply modifiers to dri_create_image_with_modifiers() and -the driver doesn't support them, the function will fail. The X11 -server always supports implicit modifiers so we can always fall -back to that. - -Signed-off-by: Simon Ser -Fixes: 4c065158927d ("dri: revert INVALID modifier special-casing") ---- - src/gallium/frontends/dri/loader_dri3_helper.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/gallium/frontends/dri/loader_dri3_helper.c b/src/gallium/frontends/dri/loader_dri3_helper.c -index 268ec3d86c8..e1f51619c5f 100644 ---- a/src/gallium/frontends/dri/loader_dri3_helper.c -+++ b/src/gallium/frontends/dri/loader_dri3_helper.c -@@ -36,9 +36,11 @@ - - #include "loader_dri_helper.h" - #include "loader_dri3_helper.h" -+#include "pipe/p_screen.h" - #include "util/macros.h" - #include "util/simple_mtx.h" - #include "drm-uapi/drm_fourcc.h" -+#include "dri_screen.h" - #include "dri_util.h" - - /** -@@ -1401,7 +1403,7 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable *draw, unsigned int fourcc, - - if (draw->dri_screen_render_gpu == draw->dri_screen_display_gpu) { - #ifdef HAVE_X11_DRM -- if (draw->multiplanes_available) { -+ if (draw->multiplanes_available && draw->dri_screen_render_gpu->base.screen->resource_create_with_modifiers) { - xcb_dri3_get_supported_modifiers_cookie_t mod_cookie; - xcb_dri3_get_supported_modifiers_reply_t *mod_reply; - xcb_generic_error_t *error = NULL; --- -2.43.0 - diff --git a/0002-egl-wayland-only-supply-LINEAR-modifier-when-support.patch b/0002-egl-wayland-only-supply-LINEAR-modifier-when-support.patch deleted file mode 100644 index 7a9b863..0000000 --- a/0002-egl-wayland-only-supply-LINEAR-modifier-when-support.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 3c78ff12864e87d5a293cea55ebd1ae9ca3e6df0 Mon Sep 17 00:00:00 2001 -From: Simon Ser -Date: Sat, 7 Dec 2024 13:12:40 +0100 -Subject: [PATCH 2/3] egl/wayland: only supply LINEAR modifier when supported - -If we supply modifiers to dri_create_image_with_modifiers() and -the driver doesn't support them, the function will fail. We pass -__DRI_IMAGE_USE_LINEAR anyways so stripping the modifier is fine. - -Signed-off-by: Simon Ser -Fixes: 4c065158927d ("dri: revert INVALID modifier special-casing") ---- - src/egl/drivers/dri2/platform_wayland.c | 17 +++++++++++++++-- - 1 file changed, 15 insertions(+), 2 deletions(-) - -diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c -index 513d2d0709b..472665a36b0 100644 ---- a/src/egl/drivers/dri2/platform_wayland.c -+++ b/src/egl/drivers/dri2/platform_wayland.c -@@ -45,11 +45,13 @@ - #include "util/u_vector.h" - #include "util/format/u_formats.h" - #include "main/glconfig.h" -+#include "pipe/p_screen.h" - #include "egl_dri2.h" - #include "eglglobals.h" - #include "kopper_interface.h" - #include "loader.h" - #include "loader_dri_helper.h" -+#include "dri_screen.h" - #include "dri_util.h" - #include - -@@ -1193,14 +1195,25 @@ get_back_bo(struct dri2_egl_surface *dri2_surf) - if (dri2_dpy->fd_render_gpu != dri2_dpy->fd_display_gpu && - dri2_surf->back->linear_copy == NULL) { - uint64_t linear_mod = DRM_FORMAT_MOD_LINEAR; -+ const uint64_t *render_modifiers = NULL, *display_modifiers = NULL; -+ unsigned int render_num_modifiers = 0, display_num_modifiers = 0; - struct dri_image *linear_copy_display_gpu_image = NULL; - -+ if (dri2_dpy->dri_screen_render_gpu->base.screen->resource_create_with_modifiers) { -+ render_modifiers = &linear_mod; -+ render_num_modifiers = 1; -+ } -+ if (dri2_dpy->dri_screen_display_gpu->base.screen->resource_create_with_modifiers) { -+ display_modifiers = &linear_mod; -+ display_num_modifiers = 1; -+ } -+ - if (dri2_dpy->dri_screen_display_gpu) { - linear_copy_display_gpu_image = dri_create_image_with_modifiers( - dri2_dpy->dri_screen_display_gpu, - dri2_surf->base.Width, dri2_surf->base.Height, - linear_pipe_format, use_flags | __DRI_IMAGE_USE_LINEAR, -- &linear_mod, 1, NULL); -+ display_modifiers, display_num_modifiers, NULL); - - if (linear_copy_display_gpu_image) { - int i, ret = 1; -@@ -1285,7 +1298,7 @@ get_back_bo(struct dri2_egl_surface *dri2_surf) - dri2_dpy->dri_screen_render_gpu, - dri2_surf->base.Width, dri2_surf->base.Height, - linear_pipe_format, use_flags | __DRI_IMAGE_USE_LINEAR, -- &linear_mod, 1, NULL); -+ render_modifiers, render_num_modifiers, NULL); - } - - if (dri2_surf->back->linear_copy == NULL) --- -2.43.0 - diff --git a/0003-egl-wayland-fallback-to-implicit-modifiers-if-advert.patch b/0003-egl-wayland-fallback-to-implicit-modifiers-if-advert.patch deleted file mode 100644 index 1a07673..0000000 --- a/0003-egl-wayland-fallback-to-implicit-modifiers-if-advert.patch +++ /dev/null @@ -1,63 +0,0 @@ -From bf278ee26628898b674d86d39198babe0174f8bf Mon Sep 17 00:00:00 2001 -From: Simon Ser -Date: Sat, 7 Dec 2024 13:15:57 +0100 -Subject: [PATCH 3/3] egl/wayland: fallback to implicit modifiers if advertised - by compositor - -The Wayland protocol defines INVALID as a special marker indicating -that implicit modifiers are supported. If the driver doesn't support -explicit modifiers and the compositor advertises support for implicit -modifiers, fallback to these. - -This effectively restores logic removed in 4c065158927d, but only -for the specific case of Wayland instead of affecting all APIs. -(Wayland is one of the few APIs defining a special meaning for -INVALID.) - -Signed-off-by: Simon Ser -Fixes: 4c065158927d ("dri: revert INVALID modifier special-casing") ---- - src/egl/drivers/dri2/platform_wayland.c | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - -diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c -index 472665a36b0..2406bc18b74 100644 ---- a/src/egl/drivers/dri2/platform_wayland.c -+++ b/src/egl/drivers/dri2/platform_wayland.c -@@ -1010,6 +1010,7 @@ create_dri_image(struct dri2_egl_surface *dri2_surf, - uint64_t *modifiers; - unsigned int num_modifiers; - struct u_vector *modifiers_present; -+ bool implicit_mod_supported; - - assert(visual_idx != -1); - -@@ -1049,6 +1050,25 @@ create_dri_image(struct dri2_egl_surface *dri2_surf, - num_modifiers = u_vector_length(modifiers_present); - } - -+ if (!dri2_dpy->dri_screen_render_gpu->base.screen->resource_create_with_modifiers) { -+ /* We don't support explicit modifiers, check if the compositor supports -+ * implicit modifiers. */ -+ implicit_mod_supported = false; -+ for (unsigned int i = 0; i < num_modifiers; i++) { -+ if (modifiers[i] == DRM_FORMAT_MOD_INVALID) { -+ implicit_mod_supported = true; -+ break; -+ } -+ } -+ -+ if (!implicit_mod_supported) { -+ return; -+ } -+ -+ num_modifiers = 0; -+ modifiers = NULL; -+ } -+ - /* For the purposes of this function, an INVALID modifier on - * its own means the modifiers aren't supported. */ - if (num_modifiers == 0 || --- -2.43.0 - diff --git a/Mesa.changes b/Mesa.changes index 763f84a..b773cf0 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Sat Jan 4 20:46:28 UTC 2025 - Stefan Dirsch + +- Update to release 24.3.3 + --> https://docs.mesa3d.org/relnotes/24.3.3 + +------------------------------------------------------------------- +Sat Jan 4 20:08:17 UTC 2025 - Stefan Dirsch + +- Update to release 24.3.2 + --> https://docs.mesa3d.org/relnotes/24.3.2 +- supersedes the following patches: + * 0001-dri-don-t-fetch-X11-modifiers-if-we-don-t-support-th.patch + * 0002-egl-wayland-only-supply-LINEAR-modifier-when-support.patch + * 0003-egl-wayland-fallback-to-implicit-modifiers-if-advert.patch + ------------------------------------------------------------------- Thu Dec 12 19:59:52 UTC 2024 - Stefan Dirsch diff --git a/Mesa.spec b/Mesa.spec index 56fb60c..44fdd9f 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -1,7 +1,7 @@ # -# spec file +# spec file for package Mesa # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -43,7 +43,7 @@ %define glamor 1 %define _name_archive mesa %ifnarch s390x -%define _version 24.3.1 +%define _version 24.3.3 %else %define _version 24.1.7 %endif @@ -150,7 +150,7 @@ Name: Mesa%{psuffix} %ifnarch s390x -Version: 24.3.1 +Version: 24.3.3 %else Version: 24.1.7 %endif @@ -181,8 +181,8 @@ Source9: manual-pages.tar.bz2 Source10: Mesa-rpmlintrc Source11: Mesa.keyring Source12: README-suse-maintenance.md -Source20: https://archive.mesa3d.org/%{_name_archive}-24.3.1.tar.xz -Source21: https://archive.mesa3d.org/%{_name_archive}-24.3.1.tar.xz.sig +Source20: https://archive.mesa3d.org/%{_name_archive}-24.3.3.tar.xz +Source21: https://archive.mesa3d.org/%{_name_archive}-24.3.3.tar.xz.sig Patch2: n_add-Mesa-headers-again.patch Patch11: u_0001-intel-genxml-Drop-from-__future__-import-annotations.patch Patch12: u_0002-intel-genxml-Add-a-untyped-OrderedDict-fallback-for-.patch @@ -202,9 +202,6 @@ Patch500: u_dep_xcb.patch %else Patch500: u_dep_xcb-s390x.patch %endif -Patch501: 0001-dri-don-t-fetch-X11-modifiers-if-we-don-t-support-th.patch -Patch502: 0002-egl-wayland-only-supply-LINEAR-modifier-when-support.patch -Patch503: 0003-egl-wayland-fallback-to-implicit-modifiers-if-advert.patch %ifnarch s390x Patch1222040: u_mesa-CVE-2023-45913.patch %else @@ -878,11 +875,6 @@ cp %{SOURCE6} subprojects/packagecache/ %patch -P 100 -p1 %patch -P 400 -p1 %patch -P 500 -p1 -%ifnarch s390x -%patch -P 501 -p1 -%patch -P 502 -p1 -%patch -P 503 -p1 -%endif %patch -P 1222040 -p1 %patch -P 1222041 -p1 %patch -P 1222042 -p1 diff --git a/mesa-24.3.1.tar.xz b/mesa-24.3.1.tar.xz deleted file mode 100644 index 1ded4f9..0000000 --- a/mesa-24.3.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9c795900449ce5bc7c526ba0ab3532a22c3c951cab7e0dd9de5fcac41b0843af -size 30611028 diff --git a/mesa-24.3.1.tar.xz.sig b/mesa-24.3.1.tar.xz.sig deleted file mode 100644 index 0b8e37a..0000000 Binary files a/mesa-24.3.1.tar.xz.sig and /dev/null differ diff --git a/mesa-24.3.3.tar.xz b/mesa-24.3.3.tar.xz new file mode 100644 index 0000000..f2ffaa7 --- /dev/null +++ b/mesa-24.3.3.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:105afc00a4496fa4d29da74e227085544919ec7c86bd92b0b6e7fcc32c7125f4 +size 30657916 diff --git a/mesa-24.3.3.tar.xz.sig b/mesa-24.3.3.tar.xz.sig new file mode 100644 index 0000000..2afbefd Binary files /dev/null and b/mesa-24.3.3.tar.xz.sig differ