summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv10/nv10_prim_vbuf.c
diff options
context:
space:
mode:
authorStephane Marchesin <marchesin@icps.u-strasbg.fr>2008-04-02 05:10:18 +0200
committerStephane Marchesin <marchesin@icps.u-strasbg.fr>2008-04-02 05:10:18 +0200
commitb1a361ba7a565063200c033e4939e6b28c006b13 (patch)
tree981084e003892c261a1be11680c9e3f0bbe90793 /src/gallium/drivers/nv10/nv10_prim_vbuf.c
parent6806519a0b2a8af0c950f71705b02e13876d460f (diff)
nv10: fix stuff and things.
Diffstat (limited to 'src/gallium/drivers/nv10/nv10_prim_vbuf.c')
-rw-r--r--src/gallium/drivers/nv10/nv10_prim_vbuf.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/gallium/drivers/nv10/nv10_prim_vbuf.c b/src/gallium/drivers/nv10/nv10_prim_vbuf.c
index 1526891223..bbcfe1a2fd 100644
--- a/src/gallium/drivers/nv10/nv10_prim_vbuf.c
+++ b/src/gallium/drivers/nv10/nv10_prim_vbuf.c
@@ -67,6 +67,17 @@ struct nv10_vbuf_render {
};
+void nv10_vtxbuf_bind( struct nv10_context* nv10 )
+{
+ int i;
+ for(i = 0; i < 8; i++) {
+ BEGIN_RING(celsius, NV10TCL_VERTEX_ARRAY_ATTRIB_OFFSET(i), 1);
+ OUT_RING(0/*nv10->vtxbuf*/);
+ BEGIN_RING(celsius, NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT(i) ,1);
+ OUT_RING(0/*XXX*/);
+ }
+}
+
/**
* Basically a cast wrapper.
*/
@@ -100,7 +111,7 @@ nv10_vbuf_render_allocate_vertices( struct vbuf_render *render,
assert(!nv10_render->buffer);
nv10_render->buffer = winsys->buffer_create(winsys, 64, PIPE_BUFFER_USAGE_VERTEX, size);
- nv10->dirty |= NV10_NEW_VBO;
+ nv10->dirty |= NV10_NEW_ARRAYS;
return winsys->buffer_map(winsys,
nv10_render->buffer,
@@ -139,8 +150,8 @@ nv10_vbuf_render_draw( struct vbuf_render *render,
}
while (nr_indices) {
- // XXX too big ?
- push = MIN2(nr_indices, 2047 * 2);
+ // XXX too big/small ? check the size
+ push = MIN2(nr_indices, 1200 * 2);
BEGIN_RING_NI(celsius, NV10TCL_VB_ELEMENT_U16, push >> 1);
for (i = 0; i < push; i+=2)