Mesa (master): radeong: do not emit a zero-sized command stream

Corbin Simpson csimpson at kemper.freedesktop.org
Mon Jan 25 07:04:13 UTC 2010


Module: Mesa
Branch: master
Commit: 85059964307c3f10e4a328d82af2bb791a5a4927
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=85059964307c3f10e4a328d82af2bb791a5a4927

Author: Marek Olšák <maraeo at gmail.com>
Date:   Sat Jan 23 17:19:44 2010 +0100

radeong: do not emit a zero-sized command stream

Fixing a hardlock introduced in fcbd285e421903ee0a65f19f5d633b25b5923c24 and
reproducible with piglit/bugs/fdo23489.

---

 src/gallium/winsys/drm/radeon/core/radeon_r300.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/gallium/winsys/drm/radeon/core/radeon_r300.c b/src/gallium/winsys/drm/radeon/core/radeon_r300.c
index 0875ee4..0253bc2 100644
--- a/src/gallium/winsys/drm/radeon/core/radeon_r300.c
+++ b/src/gallium/winsys/drm/radeon/core/radeon_r300.c
@@ -108,6 +108,11 @@ static void radeon_flush_cs(struct radeon_winsys* winsys)
 {
     int retval;
 
+    /* Don't flush a zero-sized CS. */
+    if (!winsys->priv->cs->cdw) {
+        return;
+    }
+
     /* Emit the CS. */
     retval = radeon_cs_emit(winsys->priv->cs);
     if (retval) {




More information about the mesa-commit mailing list