summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2017-06-07 12:43:27 +1000
committerTimothy Arceri <[email protected]>2017-06-09 09:13:46 +1000
commit99987fe92e5e109d7a0c114477cba52cdc6629b5 (patch)
tree7948f3be293617402f563115f53f3cb28e382368 /src
parentf77740f14b9057de09e61e1abf086f08a68c5a1b (diff)
mesa: rework vbo_exec_init()
Here we make some assumptions about the AEcontext and set the recalculate bools directly. Some formating fixes are also made while we are here. Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/main/api_arrayelt.c7
-rw-r--r--src/mesa/main/api_arrayelt.h1
-rw-r--r--src/mesa/vbo/vbo_exec.c18
3 files changed, 18 insertions, 8 deletions
diff --git a/src/mesa/main/api_arrayelt.c b/src/mesa/main/api_arrayelt.c
index 46175e4cc74..8eb523dd525 100644
--- a/src/mesa/main/api_arrayelt.c
+++ b/src/mesa/main/api_arrayelt.c
@@ -94,6 +94,13 @@ TYPE_IDX(GLenum t)
}
+bool
+_ae_is_state_dirty(struct gl_context *ctx)
+{
+ return AE_CONTEXT(ctx)->NewState;
+}
+
+
#define NUM_TYPES 8
diff --git a/src/mesa/main/api_arrayelt.h b/src/mesa/main/api_arrayelt.h
index 03cd9ecbd51..9ae79a94b74 100644
--- a/src/mesa/main/api_arrayelt.h
+++ b/src/mesa/main/api_arrayelt.h
@@ -34,6 +34,7 @@
extern GLboolean _ae_create_context( struct gl_context *ctx );
extern void _ae_destroy_context( struct gl_context *ctx );
extern void _ae_invalidate_state( struct gl_context *ctx, GLbitfield new_state );
+extern bool _ae_is_state_dirty(struct gl_context *ctx);
extern void GLAPIENTRY _ae_ArrayElement( GLint elt );
/* May optionally be called before a batch of element calls:
diff --git a/src/mesa/vbo/vbo_exec.c b/src/mesa/vbo/vbo_exec.c
index 4db4f4088b9..de8461f1fcc 100644
--- a/src/mesa/vbo/vbo_exec.c
+++ b/src/mesa/vbo/vbo_exec.c
@@ -34,24 +34,26 @@
-void vbo_exec_init( struct gl_context *ctx )
+void
+vbo_exec_init(struct gl_context *ctx)
{
struct vbo_exec_context *exec = &vbo_context(ctx)->exec;
exec->ctx = ctx;
- /* Initialize the arrayelt helper
- */
- if (!ctx->aelt_context &&
- !_ae_create_context( ctx ))
- return;
+ /* aelt_context should have been created by the caller */
+ assert(ctx->aelt_context);
- vbo_exec_vtx_init( exec );
+ vbo_exec_vtx_init(exec);
ctx->Driver.NeedFlush = 0;
ctx->Driver.CurrentExecPrimitive = PRIM_OUTSIDE_BEGIN_END;
- vbo_exec_invalidate_state( ctx, ~0 );
+ /* The aelt_context state should still be dirty from its creation */
+ assert(_ae_is_state_dirty(ctx));
+
+ exec->array.recalculate_inputs = GL_TRUE;
+ exec->eval.recalculate_maps = GL_TRUE;
}