mesa/readpixels: check strides are equal before skipping conversion
authorDave Airlie <airlied@redhat.com>
Tue, 1 Sep 2015 05:57:02 +0000 (15:57 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 1 Sep 2015 23:34:21 +0000 (09:34 +1000)
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@lists.freedesktop.org>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/mesa/main/readpix.c

index 03a484c438c321dd594b1d0269d005a32473bbf1..76ef8ee9487a0b9ac29d1dfa318e1c6c7d883ce6 100644 (file)
@@ -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 {