From: Pierre-Eric Pelloux-Prayer Date: Thu, 25 Jun 2020 15:12:57 +0000 (+0200) Subject: st/mesa: do not clear NewDriverState for inactive states X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5f1a16d06d8b2cf6942b1e4b250842ec0be2c8a4;p=mesa.git st/mesa: do not clear NewDriverState for inactive states Fixes: 085aa7f91e8 ("st/mesa: don't update atomic, SSBO, UBO and TBO states that have no effect") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2951 Reviewed-by: Marek Olšák Part-of: --- diff --git a/src/mesa/state_tracker/st_atom.c b/src/mesa/state_tracker/st_atom.c index 11b0ce6ec55..181134a2207 100644 --- a/src/mesa/state_tracker/st_atom.c +++ b/src/mesa/state_tracker/st_atom.c @@ -181,7 +181,7 @@ void st_validate_state( struct st_context *st, enum st_pipeline pipeline ) * Inactive states are shader states not used by shaders at the moment. */ st->dirty |= ctx->NewDriverState & st->active_states & ST_ALL_STATES_MASK; - ctx->NewDriverState = 0; + ctx->NewDriverState &= ~st->dirty; /* Get pipeline state. */ switch (pipeline) {