From 9c5d75e592edd15b737294853fc247b66d74619e Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Fri, 22 Sep 2006 14:43:09 +0000 Subject: Explicit test for +ve pitches in intelEmitCopyBlit() --- src/mesa/drivers/dri/i965/intel_blit.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'src/mesa/drivers/dri/i965') diff --git a/src/mesa/drivers/dri/i965/intel_blit.c b/src/mesa/drivers/dri/i965/intel_blit.c index c0d6983bd1..b09b0a95e7 100644 --- a/src/mesa/drivers/dri/i965/intel_blit.c +++ b/src/mesa/drivers/dri/i965/intel_blit.c @@ -289,15 +289,11 @@ void intelEmitCopyBlit( struct intel_context *intel, /* Initial y values don't seem to work with negative pitches. If * we adjust the offsets manually (below), it seems to work fine. * - * However, on broadwater at least, only the top version works - * correctly with overlapping blits. Luckily we don't need - * negative pitches and overlapping blits at the same time, as far - * as I know anyhow. - * - * Further, the current i965 driver never requires negative - * pitches, so just use the old-style blits for now. + * On the other hand, if we always adjust, the hardware doesn't + * know which blit directions to use, so overlapping copypixels get + * the wrong result. */ - if (1) { + if (dst_pitch > 0 && src_pitch > 0) { BEGIN_BATCH(8, INTEL_BATCH_NO_CLIPRECTS); OUT_BATCH( CMD ); OUT_BATCH( dst_pitch | BR13 ); -- cgit v1.2.3