Fix issues with buffer aging when more than one dma buffer is discarded in
authorEric Anholt <anholt@freebsd.org>
Thu, 28 Jul 2005 01:44:17 +0000 (01:44 +0000)
committerEric Anholt <anholt@freebsd.org>
Thu, 28 Jul 2005 01:44:17 +0000 (01:44 +0000)
    a cmdbuf, which could lead to hangs.
Submitted by: Aapo Tahkola

shared-core/r300_cmdbuf.c

index af5b77f..623f1f4 100644 (file)
@@ -623,7 +623,7 @@ static void r300_discard_buffer(drm_device_t * dev, drm_buf_t * buf)
        drm_radeon_private_t *dev_priv = dev->dev_private;
        drm_radeon_buf_priv_t *buf_priv = buf->dev_private;
 
-       buf_priv->age = dev_priv->sarea_priv->last_dispatch+1;
+       buf_priv->age = ++dev_priv->sarea_priv->last_dispatch;
        buf->pending = 1;
        buf->used = 0;
 }
@@ -788,8 +788,6 @@ cleanup:
        if (emit_dispatch_age) {
                RING_LOCALS;
 
-               dev_priv->sarea_priv->last_dispatch++;
-
                /* Emit the vertex buffer age */
                BEGIN_RING(2);
                RADEON_DISPATCH_AGE(dev_priv->sarea_priv->last_dispatch);