On Fri, 2002-04-12 at 02:23, Andrew P. Lentvorski wrote:
> Okay, after tracking this, it turns out to be a pixmap cache bug. At
> least, I can stop the problem from occurring by adding the "Option
> "XaaNoPixmapCache"" line to my XF86Config file.
That's coincidence, the same is true for "XaaNoScreenToScreenCopy".
The problem is that RADEONCPSetClippingRectangle() is called between
RADEONSetupForScreenToScreenCopy() and
RADEONSubsequentScreenToScreenCopy() and messes up the
DP_GUI_MASTER_CNTL register.
I don't see a proper solution to this problem so the attached patch just
disables hardware clipping for screen to screen copies. I wonder what
impact on performance this has, if any - Mark?
--
Earthling Michel D�nzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
XFree86 and DRI project member / CS student, Free Software enthusiast
Index: radeon_accel.c
===================================================================
RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c,v
retrieving revision 1.14
diff -u -r1.14 radeon_accel.c
--- radeon_accel.c 9 Apr 2002 21:54:52 -0000 1.14
+++ radeon_accel.c 20 Apr 2002 15:22:19 -0000
@@ -1654,8 +1937,8 @@
a->ClippingFlags = HARDWARE_CLIP_SOLID_LINE |
HARDWARE_CLIP_DASHED_LINE |
/*HARDWARE_CLIP_SOLID_FILL |*/ /* seems very slow with this on ???*/
- HARDWARE_CLIP_MONO_8x8_FILL |
- HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY;
+ HARDWARE_CLIP_MONO_8x8_FILL;
+ /*HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY breaks with transparency (at least) */
if(!info->IsSecondary && xf86IsEntityShared(pScrn->entityList[0]))
a->RestoreAccelState = RADEONRestoreCPAccelState;
@@ -1740,8 +2014,8 @@
a->ClippingFlags = HARDWARE_CLIP_SOLID_LINE |
HARDWARE_CLIP_DASHED_LINE |
/*HARDWARE_CLIP_SOLID_FILL |*/ /* seems very slow with this on ???*/
- HARDWARE_CLIP_MONO_8x8_FILL |
- HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY;
+ HARDWARE_CLIP_MONO_8x8_FILL;
+ /* HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY breaks with transparency (at least) */
if(xf86IsEntityShared(pScrn->entityList[0]))