From 0d62e8a727cfd3327e21fdda1a3e95a81e2c7f0b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 7 Jun 2017 23:06:09 +0200 Subject: [PATCH] st/mesa: call check_program_state only when needed MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Nicolai Hähnle --- src/mesa/state_tracker/st_atom.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mesa/state_tracker/st_atom.c b/src/mesa/state_tracker/st_atom.c index cbac7629e9c..bcfbcf878f0 100644 --- a/src/mesa/state_tracker/st_atom.c +++ b/src/mesa/state_tracker/st_atom.c @@ -116,7 +116,6 @@ static void check_program_state( struct st_context *st ) } st->dirty |= dirty; - st->gfx_shaders_may_be_dirty = false; } static void check_attrib_edgeflag(struct st_context *st) @@ -171,7 +170,11 @@ void st_validate_state( struct st_context *st, enum st_pipeline pipeline ) if (st->ctx->API == API_OPENGL_COMPAT) check_attrib_edgeflag(st); - check_program_state(st); + if (st->gfx_shaders_may_be_dirty) { + check_program_state(st); + st->gfx_shaders_may_be_dirty = false; + } + st_manager_validate_framebuffers(st); pipeline_mask = ST_PIPELINE_RENDER_STATE_MASK; -- 2.30.2