From: Marek Olšák <[email protected]>

---
 src/gallium/drivers/radeonsi/si_state_shaders.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c 
b/src/gallium/drivers/radeonsi/si_state_shaders.c
index 5a22add..55e881c 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -1431,20 +1431,23 @@ static inline void si_shader_selector_key(struct 
pipe_context *ctx,
                                        sel->info.uses_linear_sample > 1;
                        }
                }
 
                key->part.ps.epilog.alpha_func = si_get_alpha_test_func(sctx);
                break;
        }
        default:
                assert(0);
        }
+
+       if (unlikely(sctx->screen->b.debug_flags & DBG_NO_OPT_VARIANT))
+               memset(&key->opt, 0, sizeof(key->opt));
 }
 
 static void si_build_shader_variant(void *job, int thread_index)
 {
        struct si_shader *shader = (struct si_shader *)job;
        struct si_shader_selector *sel = shader->selector;
        struct si_screen *sscreen = sel->screen;
        LLVMTargetMachineRef tm;
        struct pipe_debug_callback *debug = &shader->compiler_ctx_state.debug;
        int r;
@@ -1526,24 +1529,20 @@ static int si_shader_select_with_key(struct si_screen 
*sscreen,
                                     struct si_shader_ctx_state *state,
                                     struct si_compiler_ctx_state 
*compiler_state,
                                     struct si_shader_key *key,
                                     int thread_index)
 {
        struct si_shader_selector *sel = state->cso;
        struct si_shader_selector *previous_stage_sel = NULL;
        struct si_shader *current = state->current;
        struct si_shader *iter, *shader = NULL;
 
-       if (unlikely(sscreen->b.debug_flags & DBG_NO_OPT_VARIANT)) {
-               memset(&key->opt, 0, sizeof(key->opt));
-       }
-
 again:
        /* Check if we don't need to change anything.
         * This path is also used for most shaders that don't need multiple
         * variants, it will cost just a computation of the key and this
         * test. */
        if (likely(current &&
                   memcmp(&current->key, key, sizeof(*key)) == 0 &&
                   (!current->is_optimized ||
                    util_queue_fence_is_signalled(&current->optimized_ready))))
                return current->compilation_failed ? -1 : 0;
-- 
2.7.4

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to