summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2005-07-28 01:44:17 +0000
committerEric Anholt <anholt@freebsd.org>2005-07-28 01:44:17 +0000
commit1cc1f49825e7fc157f8cfecfb4c5168056f5f738 (patch)
tree0132b52d0edb9f55f55c439c3583c1eb094bbce5
parent942545721f9bf14941f7e2ed81c79c4f0709749a (diff)
Fix issues with buffer aging when more than one dma buffer is discarded in
a cmdbuf, which could lead to hangs. Submitted by: Aapo Tahkola
-rw-r--r--shared-core/r300_cmdbuf.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/shared-core/r300_cmdbuf.c b/shared-core/r300_cmdbuf.c
index af5b77f0..623f1f46 100644
--- a/shared-core/r300_cmdbuf.c
+++ b/shared-core/r300_cmdbuf.c
@@ -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);