From a02117ba6ee5ede209d372025343f1410ff5346c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Tue, 14 Feb 2017 22:06:51 +0100 Subject: [PATCH] radeonsi: don't compile pure monolithic shaders asynchronously MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit there is no point, we have to wait anyway. Reviewed-by: Nicolai Hähnle --- src/gallium/drivers/radeonsi/si_state_shaders.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index 9570259d8a8..3630911be76 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.c +++ b/src/gallium/drivers/radeonsi/si_state_shaders.c @@ -1236,14 +1236,17 @@ again: shader->key = *key; shader->compiler_ctx_state = *compiler_state; + bool is_pure_monolithic = + memcmp(&key->mono, &zeroed.mono, sizeof(key->mono)) != 0; + /* Monolithic-only shaders don't make a distinction between optimized * and unoptimized. */ shader->is_monolithic = !sel->main_shader_part || sel->main_shader_part->key.as_ls != key->as_ls || sel->main_shader_part->key.as_es != key->as_es || - memcmp(&key->opt, &zeroed.opt, sizeof(key->opt)) != 0 || - memcmp(&key->mono, &zeroed.mono, sizeof(key->mono)) != 0; + is_pure_monolithic || + memcmp(&key->opt, &zeroed.opt, sizeof(key->opt)) != 0; shader->is_optimized = !sscreen->use_monolithic_shaders && @@ -1261,6 +1264,7 @@ again: /* If it's an optimized shader, compile it asynchronously. */ if (shader->is_optimized && + !is_pure_monolithic && thread_index < 0) { /* Compile it asynchronously. */ util_queue_add_job(&sscreen->shader_compiler_queue, -- 2.30.2