summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/state.c
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2017-06-07 12:19:13 +1000
committerTimothy Arceri <[email protected]>2017-06-09 09:13:46 +1000
commitf77740f14b9057de09e61e1abf086f08a68c5a1b (patch)
tree5ceb8833e435180d8f6850b98879c0ca0b370f1d /src/mesa/main/state.c
parentf627ac6e355a5eeb9618a0e4fff0ec26bd3c63ba (diff)
mesa: stop passing state bitfield to UpdateState()
The code comment which seems to have been added in cab974cf6c2db (from year 2000) says: "Set ctx->NewState to zero to avoid recursion if Driver.UpdateState() has to call FLUSH_VERTICES(). (fixed?)" As far as I can tell nothing in any of the UpdateState() calls should cause it to be called recursively. V2: add a wrapper around the osmesa update function so it can still be used internally. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/mesa/main/state.c')
-rw-r--r--src/mesa/main/state.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c
index d534f554bad..04dafa983c5 100644
--- a/src/mesa/main/state.c
+++ b/src/mesa/main/state.c
@@ -415,13 +415,10 @@ _mesa_update_state_locked( struct gl_context *ctx )
* The driver might plug in different span functions, for example.
* Also, this is where the driver can invalidate the state of any
* active modules (such as swrast_setup, swrast, tnl, etc).
- *
- * Set ctx->NewState to zero to avoid recursion if
- * Driver.UpdateState() has to call FLUSH_VERTICES(). (fixed?)
*/
- new_state = ctx->NewState | new_prog_state;
+ ctx->NewState |= new_prog_state;
+ ctx->Driver.UpdateState(ctx);
ctx->NewState = 0;
- ctx->Driver.UpdateState(ctx, new_state);
ctx->Array.VAO->NewArrays = 0x0;
}