summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2007-12-17 00:46:30 +1100
committerBen Skeggs <skeggsb@gmail.com>2007-12-17 00:46:30 +1100
commit7dcef36f4c5209bdd472b7f30cf9314344d2708e (patch)
treea2c670be25c3a7e8169b8009b3d8985ea9660637 /src
parent66013a252f556447ca02a257bf15909817022433 (diff)
nouveau: bump pushbuf size a little, so a "full" packet can fit
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/nouveau_winsys/nouveau_pushbuf.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/nouveau_winsys/nouveau_pushbuf.c b/src/mesa/drivers/dri/nouveau_winsys/nouveau_pushbuf.c
index a922300ff5..36f201712a 100644
--- a/src/mesa/drivers/dri/nouveau_winsys/nouveau_pushbuf.c
+++ b/src/mesa/drivers/dri/nouveau_winsys/nouveau_pushbuf.c
@@ -27,6 +27,8 @@
#include "nouveau_drmif.h"
#include "nouveau_dma.h"
+#define PB_RSVD_DWORDS 2
+
int
nouveau_pushbuf_init(struct nouveau_channel *chan)
{
@@ -72,7 +74,7 @@ nouveau_pushbuf_flush(struct nouveau_channel *chan)
if (!nvpb)
goto out_realloc;
- if (nvpb->base.remaining == nvpb->res->size / 4)
+ if (nvpb->base.remaining == (nvpb->res->size / 4) - PB_RSVD_DWORDS)
return 0;
nvchan->pb_tail = NULL;
@@ -154,13 +156,13 @@ out_realloc:
if (!nvpb)
return -ENOMEM;
- while (nouveau_resource_alloc(nvchan->pb_heap, 0x2000, NULL,
+ while (nouveau_resource_alloc(nvchan->pb_heap, 0x2100, NULL,
&nvpb->res)) {
nouveau_fence_flush(chan);
}
nvpb->base.channel = chan;
- nvpb->base.remaining = nvpb->res->size / 4;
+ nvpb->base.remaining = (nvpb->res->size / 4) - PB_RSVD_DWORDS;
nvpb->base.cur = &nvchan->pushbuf[nvpb->res->start/4];
nvchan->pb_tail = &nvpb->base;