Mesa (master): swrast: fix incorrectly positioned putImage() in swrast driver
Brian Paul
brianp at kemper.freedesktop.org
Thu Aug 25 13:21:24 UTC 2016
Module: Mesa
Branch: master
Commit: 2a2dc416b6816ac8914c5f45ac80545d2c09246f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2a2dc416b6816ac8914c5f45ac80545d2c09246f
Author: Brian Paul <brianp at vmware.com>
Date: Wed Aug 24 08:52:29 2016 -0600
swrast: fix incorrectly positioned putImage() in swrast driver
Some front buffer rendering was in the wrong position. This included
scissored clears, glDrawPixels and glCopyPixels. The problem was the
y coordinate passed to putImage() didn't match the y coordinate passed
to getImage().
We fix this by setting xrb->map_y to the inverted coordinate in
swrast_map_renderbuffer() which is used later by the putImage() call.
Also pass xrb->map_y to getImage() to be symmetric.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97426
Cc: <mesa-stable at lists.freedesktop.org>
Reviewed-by: Eric Anholt <eric at anholt.net>
---
src/mesa/drivers/dri/swrast/swrast.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c
index 6d3b00b..0402232 100644
--- a/src/mesa/drivers/dri/swrast/swrast.c
+++ b/src/mesa/drivers/dri/swrast/swrast.c
@@ -484,14 +484,14 @@ swrast_map_renderbuffer(struct gl_context *ctx,
xrb->map_mode = mode;
xrb->map_x = x;
- xrb->map_y = y;
+ xrb->map_y = rb->Height - y - h;
xrb->map_w = w;
xrb->map_h = h;
stride = w * cpp;
xrb->Base.Buffer = malloc(h * stride);
- sPriv->swrast_loader->getImage(dPriv, x, rb->Height - y - h, w, h,
+ sPriv->swrast_loader->getImage(dPriv, x, xrb->map_y, w, h,
(char *) xrb->Base.Buffer,
dPriv->loaderPrivate);
More information about the mesa-commit
mailing list