i915: Bug #14313: Fix accelerated (PBO) ReadPixels.
authorEric Anholt <eric@anholt.net>
Wed, 18 Jun 2008 20:50:13 +0000 (13:50 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 18 Jun 2008 20:50:49 +0000 (13:50 -0700)
Refactoring of mine in 02d5ba849197e19843dad164239b51f18fb16faf broke it
by failing to understand that the masking was about sign extension.

src/mesa/drivers/dri/intel/intel_blit.c

index 4890826a19528d5c1dd9c57d739039abcbec4771..414300c549784c8ba8be8fefaf65ccdfe3b656f3 100644 (file)
@@ -326,9 +326,6 @@ intelEmitCopyBlit(struct intel_context *intel,
       return;
    }
 
-   dst_pitch &= 0xffff;
-   src_pitch &= 0xffff;
-
    /* Initial y values don't seem to work with negative pitches.  If
     * we adjust the offsets manually (below), it seems to work fine.
     *
@@ -359,7 +356,7 @@ intelEmitCopyBlit(struct intel_context *intel,
 
       BEGIN_BATCH(8, NO_LOOP_CLIPRECTS);
       OUT_BATCH(CMD);
-      OUT_BATCH(BR13 | dst_pitch);
+      OUT_BATCH(BR13 | ((uint16_t)dst_pitch));
       OUT_BATCH((0 << 16) | dst_x);
       OUT_BATCH((h << 16) | dst_x2);
       OUT_RELOC(dst_buffer, DRM_BO_FLAG_MEM_TT | DRM_BO_FLAG_WRITE,