[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: