From c132c2978b02da7140462a633605a0127dfcceb4 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 17 Jun 2013 12:13:25 -0400 Subject: [PATCH] st/xlib: Fix XImage stride calculation Fixes window skew seen while running gnome on a 16-bit screen over vnc. NOTE: This is a candidate for stable release branches. Reviewed-by: Brian Paul Signed-off-by: Richard Sandiford --- src/gallium/state_trackers/glx/xlib/xm_api.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c index 7ed401c..daf5ad4 100644 --- a/src/gallium/state_trackers/glx/xlib/xm_api.c +++ b/src/gallium/state_trackers/glx/xlib/xm_api.c @@ -1381,7 +1381,7 @@ XMesaBindTexImage(Display *dpy, XMesaBuffer drawable, int buffer, enum pipe_format internal_format = res->format; struct pipe_transfer *tex_xfer; char *map; - int line, ximage_stride; + int line, byte_width; XImage *img; internal_format = choose_pixel_format(drawable->xm_visual); @@ -1408,12 +1408,12 @@ XMesaBindTexImage(Display *dpy, XMesaBuffer drawable, int buffer, } /* The pipe transfer has a pitch rounded up to the nearest 64 pixels. */ - ximage_stride = w * ((img->bits_per_pixel + 7) / 8); + byte_width = w * ((img->bits_per_pixel + 7) / 8); for (line = 0; line < h; line++) memcpy(&map[line * tex_xfer->stride], - &img->data[line * ximage_stride], - ximage_stride); + &img->data[line * img->bytes_per_line], + byte_width); pipe_transfer_unmap(pipe, tex_xfer); -- 2.7.4