summaryrefslogtreecommitdiffstats
path: root/sys/dev/drm/r300_cmdbuf.c
diff options
context:
space:
mode:
authoranholt <anholt@FreeBSD.org>2005-08-01 17:50:19 +0000
committeranholt <anholt@FreeBSD.org>2005-08-01 17:50:19 +0000
commitef7c6d9a808a36b9b16699fca1db857a58d8b449 (patch)
tree1ffc12f8b788ac4d37c4165efd9c8fdd0ba1faf0 /sys/dev/drm/r300_cmdbuf.c
parentc3270af7f090baae5e80725dabac00b3f0fde901 (diff)
downloadFreeBSD-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.c4
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);
OpenPOWER on IntegriCloud