X Strike Force XFree86 SVN commit: r1503 - in trunk/debian: . patches
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 <branden@debian.org> 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 <branden@debian.org> 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
Reply to: