From 63c462226ef2bda691b28837e143853fcbcfd0a5 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sat, 18 Feb 2017 17:08:34 +0100 Subject: radeonsi: fix issues with monolithic shaders MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit R600_DEBUG=mono has had no effect since: commit 1fabb297177069e95ec1bb7053acb32f8ec3e092 Author: Marek Olšák Date: Tue Feb 14 22:08:32 2017 +0100 radeonsi: have separate LS and ES main shader parts in the shader selector Also, this assertion was failing: si_state_shaders.c:1307: si_shader_select_with_key: Assertion `!shader->is_optimized' failed. Reviewed-by: Nicolai Hähnle --- src/gallium/drivers/radeonsi/si_state_shaders.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/gallium/drivers/radeonsi') diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index bcfff0c2770..0e85c129437 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.c +++ b/src/gallium/drivers/radeonsi/si_state_shaders.c @@ -1245,6 +1245,7 @@ again: * if the initial guess was wrong. */ struct si_shader **mainp = si_get_main_shader_part(sel, key); bool is_pure_monolithic = + sscreen->use_monolithic_shaders || memcmp(&key->mono, &zeroed.mono, sizeof(key->mono)) != 0; if (!*mainp && !is_pure_monolithic) { @@ -1278,7 +1279,7 @@ again: memcmp(&key->opt, &zeroed.opt, sizeof(key->opt)) != 0; shader->is_optimized = - !sscreen->use_monolithic_shaders && + !is_pure_monolithic && memcmp(&key->opt, &zeroed.opt, sizeof(key->opt)) != 0; if (shader->is_optimized) util_queue_fence_init(&shader->optimized_ready); -- cgit v1.2.3