Mesa (master): mesa/readpixels: check strides are equal before skipping conversion

Dave Airlie airlied at kemper.freedesktop.org
Tue Sep 1 23:34:49 UTC 2015


Module: Mesa
Branch: master
Commit: 32769ac016dee4ce5767a922f91de47df4ce984d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=32769ac016dee4ce5767a922f91de47df4ce984d

Author: Dave Airlie <airlied at redhat.com>
Date:   Tue Sep  1 15:57:02 2015 +1000

mesa/readpixels: check strides are equal before skipping conversion

The CTS packed_pixels test checks that readpixels doesn't write
into the space between rows, however we fail that here unless
we check the format and stride match.

This fixes all the core mesa problems with CTS packed_pixels
tests.

Cc: "11.0" <mesa-stable at lists.freedesktop.org>
Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/mesa/main/readpix.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c
index 03a484c..76ef8ee 100644
--- a/src/mesa/main/readpix.c
+++ b/src/mesa/main/readpix.c
@@ -523,7 +523,8 @@ read_rgba_pixels( struct gl_context *ctx,
        * convert to, then we can convert directly into the dst buffer and avoid
        * the final conversion/copy from the rgba buffer to the dst buffer.
        */
-      if (dst_format == rgba_format) {
+      if (dst_format == rgba_format &&
+          dst_stride == rgba_stride) {
          need_convert = false;
          rgba = dst;
       } else {




More information about the mesa-commit mailing list