diff options
author | Vladimir Dergachev <volodya@mindspring.com> | 2004-12-12 20:42:29 +0000 |
---|---|---|
committer | Vladimir Dergachev <volodya@mindspring.com> | 2004-12-12 20:42:29 +0000 |
commit | 8c1969f22fba2e1c9ed34d5ca77bee3a9f577640 (patch) | |
tree | 277a2dff6797e115007ee7993200049563f343ef /src/radeon_render.c | |
parent | 8a9077bc70fd800983f138a224b95301992a2296 (diff) |
Modified:
programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c
programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c
Make DMA blitting code more robust.
Diffstat (limited to 'src/radeon_render.c')
-rw-r--r-- | src/radeon_render.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/radeon_render.c b/src/radeon_render.c index 29ef966..e5715fb 100644 --- a/src/radeon_render.c +++ b/src/radeon_render.c @@ -425,6 +425,7 @@ static Bool FUNC_NAME(R100SetupTexture)( #ifdef ACCEL_CP CARD32 buf_pitch; unsigned int hpass; + CARD8 *tmp_dst; #endif ACCEL_PREAMBLE(); @@ -469,10 +470,10 @@ static Bool FUNC_NAME(R100SetupTexture)( while ( height ) { - RADEONHostDataBlitCopyPass( RADEONHostDataBlit( pScrn, tex_bytepp, width, + tmp_dst = RADEONHostDataBlit( pScrn, tex_bytepp, width, dst_pitch, &buf_pitch, - &dst, &height, &hpass ), - src, hpass, buf_pitch, src_pitch ); + &dst, &height, &hpass ); + RADEONHostDataBlitCopyPass( tmp_dst, src, hpass, buf_pitch, src_pitch ); src += hpass * src_pitch; } @@ -743,6 +744,7 @@ static Bool FUNC_NAME(R200SetupTexture)( #ifdef ACCEL_CP CARD32 buf_pitch; unsigned int hpass; + CARD8 *tmp_dst; #endif ACCEL_PREAMBLE(); @@ -787,10 +789,10 @@ static Bool FUNC_NAME(R200SetupTexture)( while ( height ) { - RADEONHostDataBlitCopyPass( RADEONHostDataBlit( pScrn, tex_bytepp, width, + tmp_dst = RADEONHostDataBlit( pScrn, tex_bytepp, width, dst_pitch, &buf_pitch, - &dst, &height, &hpass ), - src, hpass, buf_pitch, src_pitch ); + &dst, &height, &hpass ); + RADEONHostDataBlitCopyPass( tmp_dst, src, hpass, buf_pitch, src_pitch ); src += hpass * src_pitch; } |