From: Marek Olšák Date: Thu, 12 Dec 2019 22:11:40 +0000 (-0500) Subject: radeonsi: don't wrap the VS prolog in if (ES thread) .. endif X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=de4a4595f62a9bd1494781c203ea8b1049545605;p=mesa.git radeonsi: don't wrap the VS prolog in if (ES thread) .. endif We can execute it unconditionally and the values computed for disabled threads won't be used anyway. Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 4453976ef9b..308be06121b 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -7429,17 +7429,6 @@ static void si_build_vs_prolog_function(struct si_shader_context *ctx, key->vs_prolog.num_input_sgprs + i, ""); } - LLVMValueRef original_ret = ret; - bool wrapped = false; - LLVMBasicBlockRef if_entry_block = NULL; - - if (key->vs_prolog.is_monolithic && key->vs_prolog.as_ngg) { - LLVMValueRef ena = si_is_es_thread(ctx); - if_entry_block = LLVMGetInsertBlock(ctx->ac.builder); - ac_build_ifcc(&ctx->ac, ena, 11501); - wrapped = true; - } - /* Compute vertex load indices from instance divisors. */ LLVMValueRef instance_divisor_constbuf = NULL; @@ -7495,20 +7484,6 @@ static void si_build_vs_prolog_function(struct si_shader_context *ctx, ctx->args.arg_count + i, ""); } - if (wrapped) { - LLVMBasicBlockRef bbs[2] = { - LLVMGetInsertBlock(ctx->ac.builder), - if_entry_block, - }; - ac_build_endif(&ctx->ac, 11501); - - LLVMValueRef values[2] = { - ret, - original_ret - }; - ret = ac_build_phi(&ctx->ac, LLVMTypeOf(ret), 2, values, bbs); - } - si_llvm_build_ret(ctx, ret); }