Author: branden Date: 2004-06-02 03:45:31 -0500 (Wed, 02 Jun 2004) New Revision: 1503
Added: trunk/debian/patches/009_ati_r128_retry_idle_until_timeout.diff Modified: trunk/debian/CHANGESETS trunk/debian/TODO trunk/debian/changelog Log: Attempt to mitigate serious DRI performance problems on Rage 128 chips by retrying CCE idle commands until the timeout is reached (thanks, Daniel Jacobowitz!). (Closes: #223089) Modified: trunk/debian/CHANGESETS =================================================================== --- trunk/debian/CHANGESETS 2004-06-02 08:02:25 UTC (rev 1502) +++ trunk/debian/CHANGESETS 2004-06-02 08:45:31 UTC (rev 1503) @@ -34,4 +34,9 @@ (Closes: #251681) 1487 +Attempt to mitigate serious DRI performance problems on Rage 128 chips by +retrying CCE idle commands until the timeout is reached (thanks, Daniel +Jacobowitz!). (Closes: #223089) + 1503 + vim:set ai et sts=4 sw=4 tw=80: Modified: trunk/debian/TODO =================================================================== --- trunk/debian/TODO 2004-06-02 08:02:25 UTC (rev 1502) +++ trunk/debian/TODO 2004-06-02 08:45:31 UTC (rev 1503) @@ -17,9 +17,6 @@ 4.3.0.dfsg.1-5 -------------- -* #236187: xserver-xfree86: [ati/r128] xscreensaver screenhacks lock system - ('(EE) R128(0): Idle timed out, resetting engine...') on Rage 128 RE/SG rev 0 - + Apply patch from Dan Jacobowitz. * #251307: xserver-xfree86: [ati/atimisc] XVideo apps crash X server; complaints of unresolved symbol xf86XVCopyYUV12ToPacked on 3D Rage IIC AGP rev 122 Michel Dänzer reports that this is due to failure to export that symbol Modified: trunk/debian/changelog =================================================================== --- trunk/debian/changelog 2004-06-02 08:02:25 UTC (rev 1502) +++ trunk/debian/changelog 2004-06-02 08:45:31 UTC (rev 1503) @@ -46,8 +46,12 @@ * Update Czech debconf template translations (thanks, Mirsoslav Kure). (Closes: #251681) - -- Branden Robinson <[EMAIL PROTECTED]> Mon, 31 May 2004 09:31:22 -0500 + * Attempt to mitigate serious DRI performance problems on Rage 128 chips by + retrying CCE idle commands until the timeout is reached (thanks, Daniel + Jacobowitz!). (Closes: #223089) + -- Branden Robinson <[EMAIL PROTECTED]> Wed, 2 Jun 2004 03:41:18 -0500 + xfree86 (4.3.0.dfsg.1-4) unstable; urgency=medium * The "thanks for the 'testing'" release. Added: trunk/debian/patches/009_ati_r128_retry_idle_until_timeout.diff =================================================================== --- trunk/debian/patches/009_ati_r128_retry_idle_until_timeout.diff 2004-06-02 08:02:25 UTC (rev 1502) +++ trunk/debian/patches/009_ati_r128_retry_idle_until_timeout.diff 2004-06-02 08:45:31 UTC (rev 1503) @@ -0,0 +1,52 @@ +$Id$ + +Attempt to mitigate serious DRI performance problems on Rage 128 chips by +retrying CCE idle commands until the timeout is reached. See Debian +#223089, #236187, #236373, #243436. + +This patch by Daniel Jacobowitz. + +Not submitted to XFree86 upstream. + +--- xc/programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c~ 2004-06-01 12:17:33.000000000 -0500 ++++ xc/programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c 2004-06-01 12:21:37.000000000 -0500 +@@ -228,25 +228,34 @@ + void R128CCEWaitForIdle(ScrnInfoPtr pScrn) + { + R128InfoPtr info = R128PTR(pScrn); +- int ret, i; ++ int ret, i, j; + + FLUSH_RING(); + + for (;;) { +- i = 0; +- do { +- ret = drmCommandNone(info->drmFD, DRM_R128_CCE_IDLE); +- } while ( ret && errno == EBUSY && i++ < R128_IDLE_RETRY ); ++ j = 0; ++ do { ++ i = 0; ++ do { ++ ret = drmCommandNone(info->drmFD, DRM_R128_CCE_IDLE); ++ } while ( ret && errno == EBUSY && i++ < R128_IDLE_RETRY ); ++ } while ( ret && errno == EBUSY && j++ < R128_TIMEOUT ); + + if (ret && ret != -EBUSY) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "%s: CCE idle %d\n", __FUNCTION__, ret); + } + ++ if (i != 0 || j != 0) { ++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, ++ "%s: (DEBUG) CCE idle took j = %d\n", __FUNCTION__, j); ++ } ++ + if (ret == 0) return; + + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Idle timed out, resetting engine...\n"); ++ R128CCE_STOP(pScrn, info); + R128EngineReset(pScrn); + + /* Always restart the engine when doing CCE 2D acceleration */ Property changes on: trunk/debian/patches/009_ati_r128_retry_idle_until_timeout.diff ___________________________________________________________________ Name: svn:keywords + Id