Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:BdMdesigN:mesa-next
Mesa
U_egl-x11-sw-fix-partial-image-uploads.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File U_egl-x11-sw-fix-partial-image-uploads.patch of Package Mesa
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
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor