Mesa (master): nv50: set vertex buffer limits

Christoph Bumiller chrisbmr at kemper.freedesktop.org
Thu Aug 20 19:45:12 UTC 2009


Module: Mesa
Branch: master
Commit: 6d1f63f52029d8c3ba8849feb2cb0ca87427b8ac
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d1f63f52029d8c3ba8849feb2cb0ca87427b8ac

Author: Christoph Bumiller <e0425955 at student.tuwien.ac.at>
Date:   Thu Aug 20 21:30:49 2009 +0200

nv50: set vertex buffer limits

---

 src/gallium/drivers/nv50/nv50_vbo.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/nv50/nv50_vbo.c b/src/gallium/drivers/nv50/nv50_vbo.c
index d463c17..e9975f0 100644
--- a/src/gallium/drivers/nv50/nv50_vbo.c
+++ b/src/gallium/drivers/nv50/nv50_vbo.c
@@ -282,13 +282,13 @@ nv50_vbo_validate(struct nv50_context *nv50)
 {
 	struct nouveau_grobj *tesla = nv50->screen->tesla;
 	struct nouveau_stateobj *vtxbuf, *vtxfmt;
-	int i;
+	unsigned i;
 
 	/* don't validate if Gallium took away our buffers */
 	if (nv50->vtxbuf_nr == 0)
 		return;
 
-	vtxbuf = so_new(nv50->vtxelt_nr * 4, nv50->vtxelt_nr * 2);
+	vtxbuf = so_new(nv50->vtxelt_nr * 7, nv50->vtxelt_nr * 4);
 	vtxfmt = so_new(nv50->vtxelt_nr + 1, 0);
 	so_method(vtxfmt, tesla, NV50TCL_VERTEX_ARRAY_ATTRIB(0),
 		nv50->vtxelt_nr);
@@ -310,6 +310,15 @@ nv50_vbo_validate(struct nv50_context *nv50)
 		so_reloc (vtxbuf, bo, vb->buffer_offset +
 			  ve->src_offset, NOUVEAU_BO_VRAM | NOUVEAU_BO_GART |
 			  NOUVEAU_BO_RD | NOUVEAU_BO_LOW, 0, 0);
+
+		/* vertex array limits */
+		so_method(vtxbuf, tesla, 0x1080 + (i * 8), 2);
+		so_reloc (vtxbuf, bo, vb->buffer->size - 1,
+			  NOUVEAU_BO_VRAM | NOUVEAU_BO_GART | NOUVEAU_BO_RD |
+			  NOUVEAU_BO_HIGH, 0, 0);
+		so_reloc (vtxbuf, bo, vb->buffer->size - 1,
+			  NOUVEAU_BO_VRAM | NOUVEAU_BO_GART | NOUVEAU_BO_RD |
+			  NOUVEAU_BO_LOW, 0, 0);
 	}
 
 	so_ref (vtxfmt, &nv50->state.vtxfmt);




More information about the mesa-commit mailing list