summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/nouveau/nouveau_fifo.h
diff options
context:
space:
mode:
authorBen Skeggs <darktama@iinet.net.au>2006-11-19 15:45:36 +0000
committerBen Skeggs <darktama@iinet.net.au>2006-11-19 15:45:36 +0000
commitb3fd1556f9e94d6d6f6d3933c404fc37aec7b1a3 (patch)
treec403110a86e41e185fb5112f89eb886eb52760d2 /src/mesa/drivers/dri/nouveau/nouveau_fifo.h
parent08a0946fcc51a0980d1d7a06e11d72ef71efafcf (diff)
More FIFO fixes.
Diffstat (limited to 'src/mesa/drivers/dri/nouveau/nouveau_fifo.h')
-rw-r--r--src/mesa/drivers/dri/nouveau/nouveau_fifo.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_fifo.h b/src/mesa/drivers/dri/nouveau/nouveau_fifo.h
index 58fb378c39..c5e5d6934f 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_fifo.h
+++ b/src/mesa/drivers/dri/nouveau/nouveau_fifo.h
@@ -100,9 +100,10 @@ extern void WAIT_RING(nouveauContextPtr nmesa,u_int32_t size);
}while(0)
#define BEGIN_RING_SIZE(subchannel,tag,size) do { \
- if (nmesa->fifo.free<size) \
+ if (nmesa->fifo.free <= (size)) \
WAIT_RING(nmesa,(size)); \
- OUT_RING( (size<<18) | ((subchannel) << 13) | (tag)); \
+ OUT_RING( ((size)<<18) | ((subchannel) << 13) | (tag)); \
+ nmesa->fifo.free -= ((size) + 1); \
}while(0)
#define RING_AVAILABLE() (nmesa->fifo.free-1)