diff --git a/src/mesa/drivers/dri/unichrome/via_state.c b/src/mesa/drivers/dri/unichrome/via_state.c index 08056106140..62cdee24c8b 100644 --- a/src/mesa/drivers/dri/unichrome/via_state.c +++ b/src/mesa/drivers/dri/unichrome/via_state.c @@ -1555,10 +1555,8 @@ void viaValidateState( GLcontext *ctx ) if (vmesa->newState & _NEW_STENCIL) viaChooseStencilState(ctx); - if (!vmesa->Fallback) { - vmesa->newEmitState |= vmesa->newState; - vmesa->newState = 0; - } + vmesa->newEmitState |= vmesa->newState; + vmesa->newState = 0; if (VIA_DEBUG) fprintf(stderr, "%s - out\n", __FUNCTION__); } diff --git a/src/mesa/drivers/dri/unichrome/via_tris.c b/src/mesa/drivers/dri/unichrome/via_tris.c index 862c827300f..6dbbfe0343a 100644 --- a/src/mesa/drivers/dri/unichrome/via_tris.c +++ b/src/mesa/drivers/dri/unichrome/via_tris.c @@ -633,9 +633,11 @@ static void viaRunPipeline(GLcontext *ctx) viaContextPtr vmesa = VIA_CONTEXT(ctx); if (vmesa->newState) { - viaChooseVertexState(ctx); - viaChooseRenderState(ctx); viaValidateState( ctx ); + if (!vmesa->Fallback) { + viaChooseVertexState(ctx); + viaChooseRenderState(ctx); + } } _tnl_run_pipeline(ctx);