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 18:26:49 +0200
committerStephane Marchesin <marchesin@icps.u-strasbg.fr>2008-04-02 18:26:49 +0200
commitfb19b3393fbee26f7bb88b572b3d0cc2943f2edc (patch)
treeed06e7b25c05cc131590acde1190725bb210c135 /src/gallium/drivers/nv10/nv10_prim_vbuf.c
parent8f26e975ca6341cb3366a18beb352b5cdcaee2bc (diff)
nv10: fix some more state, work on the vertex emission code.
Diffstat (limited to 'src/gallium/drivers/nv10/nv10_prim_vbuf.c')
-rw-r--r--src/gallium/drivers/nv10/nv10_prim_vbuf.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/nv10/nv10_prim_vbuf.c b/src/gallium/drivers/nv10/nv10_prim_vbuf.c
index bbcfe1a2fd..412ee9a23f 100644
--- a/src/gallium/drivers/nv10/nv10_prim_vbuf.c
+++ b/src/gallium/drivers/nv10/nv10_prim_vbuf.c
@@ -94,6 +94,9 @@ nv10_vbuf_render_get_vertex_info( struct vbuf_render *render )
{
struct nv10_vbuf_render *nv10_render = nv10_vbuf_render(render);
struct nv10_context *nv10 = nv10_render->nv10;
+
+ nv10_emit_hw_state(nv10);
+
return &nv10->vertex_info;
}
@@ -111,7 +114,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_ARRAYS;
+ nv10->dirty |= NV10_NEW_VTXARRAYS;
return winsys->buffer_map(winsys,
nv10_render->buffer,
@@ -137,6 +140,8 @@ nv10_vbuf_render_draw( struct vbuf_render *render,
struct nv10_context *nv10 = nv10_render->nv10;
int push, i;
+ nv10_emit_hw_state(nv10);
+
BEGIN_RING(celsius, NV10TCL_VERTEX_ARRAY_OFFSET_POS, 1);
OUT_RELOCl(nv10_render->buffer, 0, NOUVEAU_BO_VRAM | NOUVEAU_BO_GART | NOUVEAU_BO_RD);