diff options
author | anholt <anholt@FreeBSD.org> | 2005-08-01 17:50:19 +0000 |
---|---|---|
committer | anholt <anholt@FreeBSD.org> | 2005-08-01 17:50:19 +0000 |
commit | ef7c6d9a808a36b9b16699fca1db857a58d8b449 (patch) | |
tree | 1ffc12f8b788ac4d37c4165efd9c8fdd0ba1faf0 /sys/dev/drm/r300_cmdbuf.c | |
parent | c3270af7f090baae5e80725dabac00b3f0fde901 (diff) | |
download | FreeBSD-src-ef7c6d9a808a36b9b16699fca1db857a58d8b449.zip FreeBSD-src-ef7c6d9a808a36b9b16699fca1db857a58d8b449.tar.gz |
Fix a buffer aging problem in new r300 code that could lead to hangs with some
apps.
Obtained from: DRM CVS
Diffstat (limited to 'sys/dev/drm/r300_cmdbuf.c')
-rw-r--r-- | sys/dev/drm/r300_cmdbuf.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/dev/drm/r300_cmdbuf.c b/sys/dev/drm/r300_cmdbuf.c index 67c7b9f..131d7f8 100644 --- a/sys/dev/drm/r300_cmdbuf.c +++ b/sys/dev/drm/r300_cmdbuf.c @@ -625,7 +625,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; } @@ -790,8 +790,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); |