On Fri, Dec 10, 2010 at 12:58:41AM +0000, Ken Moffat wrote: > > Thanks, but I've bisected and locally reverted the commit it > highlighted. The change was to speed up html5 on a more modern > radeon, and is to do with letting EXA manage a system memory cache > instead of making 'costly CPU VRAM reads'. Bug raised, meanwhile I > can get back to photo manipulation and playing with ghostscript. > Turned out there are other bugs raised against that commit. I imagine few people here use old AGP radeons (the problem for me is with a radeon 7500, not sure if it also applies to my 9200se). Just in case anyone else is using xf86-video-ati-6.13.2 I'll attach a patch to effect the reversion. The use case is uncommon enough that I don't think this belongs in -patches.
ĸen -- das eine Mal als Tragödie, das andere Mal als Farce
This patch reverts: commit f8fb9312d791af1f77020e8c2d35bb30841ed9aa Author: Karl Tomlinson <kar...@karlt.net> Date: Sun Aug 22 22:46:33 2010 +1200 RADEONPrepareAccess_CS: fallback to DFS when pixmap is in VRAM This avoids costly CPU VRAM reads and lets EXA manage a system memory cache of the portions of pixmaps needed for unaccelerated operations. https://bugs.freedesktop.org/show_bug.cgi?id=27139 :040000 040000 94afde6673141f2976633cbba6a946e336856e5f d7184fa36bb29ec3fd00d564293c041efd132e18 M src which is blamed for radeon bugs 30679, 30785, 32282 (probably all on old AGP cards). diff -Naur xf86-video-ati-6.13.2.orig//src/radeon_exa.c xf86-video-ati-6.13.2/src/radeon_exa.c --- xf86-video-ati-6.13.2.orig//src/radeon_exa.c 2010-09-27 18:34:37.000000000 +0100 +++ xf86-video-ati-6.13.2/src/radeon_exa.c 2010-12-10 20:03:46.462288009 +0000 @@ -284,21 +284,12 @@ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; RADEONInfoPtr info = RADEONPTR(pScrn); struct radeon_exa_pixmap_priv *driver_priv; - uint32_t possible_domains = ~0U; - uint32_t current_domain = 0; -#ifdef EXA_MIXED_PIXMAPS - Bool can_fail = !(pPix->drawable.bitsPerPixel < 8) && - pPix != pScreen->GetScreenPixmap(pScreen) && - (info->accel_state->exa->flags & EXA_MIXED_PIXMAPS); -#else - Bool can_fail = FALSE; -#endif - Bool flush = FALSE; int ret; #if X_BYTE_ORDER == X_BIG_ENDIAN /* May need to handle byte swapping in DownloadFrom/UploadToScreen */ - if (can_fail && pPix->drawable.bitsPerPixel > 8) + if (pPix->drawable.bitsPerPixel > 8 && + pPix != pScreen->GetScreenPixmap(pScreen)) return FALSE; #endif @@ -307,28 +298,7 @@ return FALSE; /* if we have more refs than just the BO then flush */ - if (radeon_bo_is_referenced_by_cs(driver_priv->bo, info->cs)) { - flush = TRUE; - - if (can_fail) { - possible_domains = radeon_bo_get_src_domain(driver_priv->bo); - if (possible_domains == RADEON_GEM_DOMAIN_VRAM) - return FALSE; /* use DownloadFromScreen */ - } - } - - /* if the BO might end up in VRAM, prefer DownloadFromScreen */ - if (can_fail && (possible_domains & RADEON_GEM_DOMAIN_VRAM)) { - radeon_bo_is_busy(driver_priv->bo, ¤t_domain); - - if (current_domain & possible_domains) { - if (current_domain == RADEON_GEM_DOMAIN_VRAM) - return FALSE; - } else if (possible_domains & RADEON_GEM_DOMAIN_VRAM) - return FALSE; - } - - if (flush) + if (radeon_bo_is_referenced_by_cs(driver_priv->bo, info->cs)) radeon_cs_flush_indirect(pScrn); /* flush IB */
-- http://linuxfromscratch.org/mailman/listinfo/blfs-support FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page