From: Keith Whitwell Date: Fri, 22 Sep 2006 14:43:09 +0000 (+0000) Subject: Explicit test for +ve pitches in intelEmitCopyBlit() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9c5d75e592edd15b737294853fc247b66d74619e;p=mesa.git Explicit test for +ve pitches in intelEmitCopyBlit() --- diff --git a/src/mesa/drivers/dri/i965/intel_blit.c b/src/mesa/drivers/dri/i965/intel_blit.c index c0d6983bd16..b09b0a95e73 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 );