summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Bumiller <[email protected]>2011-10-14 22:22:04 +0200
committerChristoph Bumiller <[email protected]>2011-10-21 23:00:39 +0200
commit6994b57a509cff1a1d0d013c0b175ec4d83117a0 (patch)
tree23f538c006c4a37b9677191aba8fd3add299326c
parent8828004e674b2036c23dd6b4a26cf94b98327792 (diff)
nv50,nvc0: reset base element in draw_arrays
It affects VERTEX_BUFFER_FIRST,COUNT submission, too.
-rw-r--r--src/gallium/drivers/nv50/nv50_vbo.c6
-rw-r--r--src/gallium/drivers/nvc0/nvc0_vbo.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv50/nv50_vbo.c b/src/gallium/drivers/nv50/nv50_vbo.c
index 82ac35e84ea..0ce19bec4af 100644
--- a/src/gallium/drivers/nv50/nv50_vbo.c
+++ b/src/gallium/drivers/nv50/nv50_vbo.c
@@ -404,6 +404,12 @@ nv50_draw_arrays(struct nv50_context *nv50,
struct nouveau_channel *chan = nv50->screen->base.channel;
unsigned prim;
+ if (nv50->state.index_bias) {
+ BEGIN_RING(chan, RING_3D(VB_ELEMENT_BASE), 1);
+ OUT_RING (chan, 0);
+ nv50->state.index_bias = 0;
+ }
+
prim = nv50_prim_gl(mode);
while (instance_count--) {
diff --git a/src/gallium/drivers/nvc0/nvc0_vbo.c b/src/gallium/drivers/nvc0/nvc0_vbo.c
index 41b45521d8a..ac778a7491c 100644
--- a/src/gallium/drivers/nvc0/nvc0_vbo.c
+++ b/src/gallium/drivers/nvc0/nvc0_vbo.c
@@ -382,6 +382,11 @@ nvc0_draw_arrays(struct nvc0_context *nvc0,
struct nouveau_channel *chan = nvc0->screen->base.channel;
unsigned prim;
+ if (nvc0->state.index_bias) {
+ IMMED_RING(chan, RING_3D(VB_ELEMENT_BASE), 0);
+ nvc0->state.index_bias = 0;
+ }
+
prim = nvc0_prim_gl(mode);
while (instance_count--) {