Stefan Dirsch
3480334669
the code in the function saw further fixes later on in the 24.2 branch. - integrated changes by Andreas Schwab <schwab@suse.de> * enable glamor also for driver build * update rust crates + syn 2.0.39 + proc_macro2 1.0.86 * enable valgrind also on riscv64 * added libvdpau_gallium package for generic VDPAU state tracker * switch from "swrast" to "softpipe,llvmpipe" drivers * use "-Dllvm-orcjit=true" for riscv64 build * added libgallium to Mesa-dri package - re-disable llvm for non-driver build by switching from "swrast" to "softpipe" for gallium drivers in that case - make previous changelog a bit nicer - Update to release 24.2.2 --> https://docs.mesa3d.org/relnotes/24.2.2 --> https://docs.mesa3d.org/relnotes/24.2.1 --> https://docs.mesa3d.org/relnotes/24.2.0 - refreshed the following patches with quilt: * U_fix-mpeg1_2-decode-mesa-20.2.patch * n_add-Mesa-headers-again.patch * n_stop-iris-flicker.patch * u_dep_xcb.patch * u_fix_rust_bindgen.patch - dropped U_radeonsi-vcn-Add-decode-DPB-buffers-as-CS-dependency.patch OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=1328
53 lines
1.8 KiB
Diff
53 lines
1.8 KiB
Diff
From 5903c215ab5b4c5d3bb1c952c0c784b78a0412fc Mon Sep 17 00:00:00 2001
|
|
From: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
|
|
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 <ajax@redhat.com>
|
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29910>
|
|
(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
|
|
|