summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2020-02-24 10:29:46 +1000
committerDylan Baker <dylan@pnwbakers.com>2020-02-25 08:54:33 -0800
commit555bf5f99118cf15504ca3c81c12d0a05f36caa9 (patch)
tree34c8e337cd79a99b3d66f886ce836aebffc6b815
parentc2dac5a508c140562df40f9c50d546cf0a5558d8 (diff)
glx/drisw: fix shm put image fallback
The fallback to the non-shm put path used the wrong width here as the pixmap is still allocated in a shared segment, so the width needs to reflect that. Fixes: 02c3dad0f3b4 ("Call shmget() with permission 0600 instead of 0777") Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3823> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3823> (cherry picked from commit 84395190ec8cae6158737777c8def7cc3304eb3f)
-rw-r--r--.pick_status.json2
-rw-r--r--src/glx/drisw_glx.c7
2 files changed, 4 insertions, 5 deletions
diff --git a/.pick_status.json b/.pick_status.json
index de8f1c62a51..ea1da78c412 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -49,7 +49,7 @@
"description": "glx/drisw: fix shm put image fallback",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": "02c3dad0f3b4d26e0faa5cc51d06bc50d693dcdc"
},
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
index dfa3218d759..985e258663e 100644
--- a/src/glx/drisw_glx.c
+++ b/src/glx/drisw_glx.c
@@ -193,14 +193,13 @@ swrastXPutImage(__DRIdrawable * draw, int op,
ximage->bytes_per_line = stride ? stride : bytes_per_line(w * ximage->bits_per_pixel, 32);
ximage->data = data;
+ ximage->width = ximage->bytes_per_line / ((ximage->bits_per_pixel + 7)/ 8);
+ ximage->height = h;
+
if (pdp->shminfo.shmid >= 0) {
- ximage->width = ximage->bytes_per_line / ((ximage->bits_per_pixel + 7)/ 8);
- ximage->height = h;
XShmPutImage(dpy, drawable, gc, ximage, srcx, srcy, x, y, w, h, False);
XSync(dpy, False);
} else {
- ximage->width = w;
- ximage->height = h;
XPutImage(dpy, drawable, gc, ximage, srcx, srcy, x, y, w, h);
}
ximage->data = NULL;