diff --git a/Mesa.changes b/Mesa.changes index 7af25d2..8741012 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Sep 13 15:42:12 UTC 2024 - Stefan Dirsch + +- U_egl-x11-sw-fix-partial-image-uploads.patch + * culprit for the regression in 24.1.4; reverse apply this for + now (boo#1228164) + ------------------------------------------------------------------- Thu Sep 5 19:20:59 UTC 2024 - Bjørn Lie diff --git a/Mesa.spec b/Mesa.spec index 307a997..0192f09 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -1,5 +1,5 @@ # -# spec file for package Mesa +# spec file # # Copyright (c) 2024 SUSE LLC # @@ -184,6 +184,7 @@ Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch Patch100: U_fix-mpeg1_2-decode-mesa-20.2.patch Patch400: n_stop-iris-flicker.patch +Patch500: U_egl-x11-sw-fix-partial-image-uploads.patch %ifarch %{ix86} x86_64 BuildRequires: DirectX-Headers %endif @@ -839,6 +840,7 @@ cp %{SOURCE6} subprojects/packagecache/ %patch -P 58 -p1 %patch -P 100 -p1 %patch -P 400 -p1 +%patch -P 500 -p1 -R # Remove requires to vulkan libs from baselibs.conf on platforms # where vulkan build is disabled; ugly ... diff --git a/U_egl-x11-sw-fix-partial-image-uploads.patch b/U_egl-x11-sw-fix-partial-image-uploads.patch new file mode 100644 index 0000000..86ee546 --- /dev/null +++ b/U_egl-x11-sw-fix-partial-image-uploads.patch @@ -0,0 +1,52 @@ +From 5903c215ab5b4c5d3bb1c952c0c784b78a0412fc Mon Sep 17 00:00:00 2001 +From: Mike Blumenkrantz +Date: Tue, 13 Feb 2024 13:10:30 -0500 +Subject: [PATCH] egl/x11/sw: fix partial image uploads + +* swrast allocates images aligned to 64x64 tiles, which results in images + that are larger than the window. PutImage requests must be clamped on + the y-axis to avoid uploading/damaging out-of-bounds regions +* winsys coords are y-inverted + +cc: mesa-stable + +Reviewed-by: Adam Jackson +Part-of: +(cherry picked from commit 6088a0bf51dd6bdfe39d9160a748bdde016f2c96) +--- + .pick_status.json | 2 +- + src/egl/drivers/dri2/platform_x11.c | 5 +++++ + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/.pick_status.json b/.pick_status.json +index cc044e5e788..802f9799d23 100644 +--- a/.pick_status.json ++++ b/.pick_status.json +@@ -164,7 +164,7 @@ + "description": "egl/x11/sw: fix partial image uploads", + "nominated": true, + "nomination_type": 0, +- "resolution": 0, ++ "resolution": 1, + "main_sha": null, + "because_sha": null, + "notes": null +diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c +index 97436a0254b..e0d9ddb343e 100644 +--- a/src/egl/drivers/dri2/platform_x11.c ++++ b/src/egl/drivers/dri2/platform_x11.c +@@ -174,6 +174,11 @@ swrastPutImage(__DRIdrawable *draw, int op, int x, int y, int w, int h, + return; + } + ++ /* clamp to drawable size */ ++ if (y + h > dri2_surf->base.Height) ++ h = dri2_surf->base.Height - y; ++ /* y-invert */ ++ y = dri2_surf->base.Height - y - h; + if (size < max_req_len) { + cookie = xcb_put_image( + dri2_dpy->conn, XCB_IMAGE_FORMAT_Z_PIXMAP, dri2_surf->drawable, gc, w, +-- +2.43.0 +