summaryrefslogtreecommitdiff
path: root/src/mesa/vbo/vbo_exec_api.c
diff options
context:
space:
mode:
authorKeith Whitwell <keithw@vmware.com>2009-03-09 14:40:34 +0000
committerKeith Whitwell <keithw@vmware.com>2009-03-09 14:40:34 +0000
commitef5fd0b66a0ddfa1df5c39a8711dd542107c61c3 (patch)
tree91ea4012a6b919aafbaea239e7e07cf875314fa4 /src/mesa/vbo/vbo_exec_api.c
parentfb8a9875f6af28964a56e8307dd90a0b5fe97a4b (diff)
vbo: yet tighter still usage of FLUSH_NEED_CURRENT
Previous change broke redbook/polys and probably others. I'm fairly sure that drivers like r300 don't need to touch ctx->Driver.NeedVertices, but this code is incredibly fragile and I'm not confident about removing it from there. Hopefully this gets things working again.
Diffstat (limited to 'src/mesa/vbo/vbo_exec_api.c')
-rw-r--r--src/mesa/vbo/vbo_exec_api.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mesa/vbo/vbo_exec_api.c b/src/mesa/vbo/vbo_exec_api.c
index 6402745ab6..5d35ec9c11 100644
--- a/src/mesa/vbo/vbo_exec_api.c
+++ b/src/mesa/vbo/vbo_exec_api.c
@@ -749,7 +749,7 @@ void vbo_exec_BeginVertices( GLcontext *ctx )
vbo_exec_vtx_map( exec );
assert((exec->ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT) == 0);
- exec->ctx->Driver.NeedFlush = FLUSH_UPDATE_CURRENT;
+ exec->ctx->Driver.NeedFlush |= FLUSH_UPDATE_CURRENT;
}
void vbo_exec_FlushVertices_internal( GLcontext *ctx, GLboolean unmap )
@@ -783,9 +783,9 @@ void vbo_exec_FlushVertices( GLcontext *ctx, GLuint flags )
/* Need to do this to ensure BeginVertices gets called again:
*/
- if (flags & FLUSH_UPDATE_CURRENT) {
- assert(exec->ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT);
+ if (exec->ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT) {
_mesa_restore_exec_vtxfmt( ctx );
+ exec->ctx->Driver.NeedFlush &= ~FLUSH_UPDATE_CURRENT;
}
exec->ctx->Driver.NeedFlush &= ~flags;