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]))