Hi, The patch makes radeonWaitIrq() try again if -EBUSY is returned.
This fixes benchmark 3 & 4 in progs/demos/gltestperf Benchmark: 3 - ZSmooth Tex Blend Triangles Benchmark: 4 - ZSmooth Tex Blend TMesh Triangles Not an important app, but other apps might run in to this problem. Rune Petersen
Index: radeon_ioctl.c =================================================================== RCS file: /cvs/mesa/Mesa/src/mesa/drivers/dri/r300/radeon_ioctl.c,v retrieving revision 1.11 diff -u -r1.11 radeon_ioctl.c --- radeon_ioctl.c 31 Mar 2006 15:48:04 -0000 1.11 +++ radeon_ioctl.c 27 May 2006 10:59:12 -0000 @@ -118,11 +118,12 @@ static void radeonWaitIrq(radeonContextPtr radeon) { int ret; + int tries = 5; do { ret = drmCommandWrite(radeon->dri.fd, DRM_RADEON_IRQ_WAIT, &radeon->iw, sizeof(radeon->iw)); - } while (ret && (errno == EINTR || errno == EAGAIN)); + } while (ret && (errno == EINTR || errno == EAGAIN || (errno == EBUSY && --tries))); if (ret) { fprintf(stderr, "%s: drmRadeonIrqWait: %d\n", __FUNCTION__,