mesa: short-cut new_state == _NEW_LINE in _mesa_update_state_locked()
We can skip to the end of _mesa_update_state_locked() if only the _NEW_LINE flag is set since none of the derived state depends on it (just like _NEW_CURRENT_ATTRIB). Note that we still call the ctx->Driver.UpdateState() function, of course. v2: use bitmask-based test, per Eric. Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
@@ -391,8 +391,12 @@ _mesa_update_state_locked( struct gl_context *ctx )
|
||||
GLbitfield new_state = ctx->NewState;
|
||||
GLbitfield prog_flags = _NEW_PROGRAM;
|
||||
GLbitfield new_prog_state = 0x0;
|
||||
const GLbitfield computed_states = ~(_NEW_CURRENT_ATTRIB | _NEW_LINE);
|
||||
|
||||
if (new_state == _NEW_CURRENT_ATTRIB)
|
||||
/* we can skip a bunch of state validation checks if the dirty
|
||||
* state matches one or more bits in 'computed_states'.
|
||||
*/
|
||||
if ((new_state & computed_states) == 0)
|
||||
goto out;
|
||||
|
||||
if (MESA_VERBOSE & VERBOSE_STATE)
|
||||
|
||||
Reference in New Issue
Block a user