Module: Mesa Branch: master Commit: 5a0556f061d9db00dd7637433d393beead3b3d85 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5a0556f061d9db00dd7637433d393beead3b3d85
Author: Richard Sandiford <rsand...@linux.vnet.ibm.com> Date: Tue Jun 18 16:41:43 2013 +0100 st/dri/sw: Fix pitch calculation in drisw_update_tex_buffer swrastGetImage rounds the pitch up to 4 bytes for compatibility reasons that are explained in drisw_glx.c:bytes_per_line, so drisw_update_tex_buffer must do the same. Fixes window skew seen while running firefox over vnc on a 16-bit screen. NOTE: This is a candidate for the stable branches. [ajax: fixed typo in comment] Reviewed-by: Stéphane Marchesin <marc...@chromium.org> Signed-off-by: Richard Sandiford <rsand...@linux.vnet.ibm.com> --- src/gallium/state_trackers/dri/sw/drisw.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/state_trackers/dri/sw/drisw.c b/src/gallium/state_trackers/dri/sw/drisw.c index 7a5f797..41f66d5 100644 --- a/src/gallium/state_trackers/dri/sw/drisw.c +++ b/src/gallium/state_trackers/dri/sw/drisw.c @@ -265,8 +265,9 @@ drisw_update_tex_buffer(struct dri_drawable *drawable, /* Copy the Drawable content to the mapped texture buffer */ get_image(dPriv, x, y, w, h, map); - /* The pipe transfer has a pitch rounded up to the nearest 64 pixels. */ - ximage_stride = w * cpp; + /* The pipe transfer has a pitch rounded up to the nearest 64 pixels. + get_image() has a pitch rounded up to 4 bytes. */ + ximage_stride = ((w * cpp) + 3) & -4; for (line = h-1; line; --line) { memmove(&map[line * transfer->stride], &map[line * ximage_stride], _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit