From: Marek Olšák Date: Sat, 4 Oct 2014 20:37:23 +0000 (+0200) Subject: radeonsi: remove si_shader_output_values::index X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=558f7770a7409c5ca47b735394ecd2dd3aa43607;p=mesa.git radeonsi: remove si_shader_output_values::index It's redundant now. It led to a simplification in si_llvm_emit_streamout, because outidx == reg. Reviewed-by: Michel Dänzer --- diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 2a1217946c1..c1a1e7b3955 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -49,7 +49,6 @@ struct si_shader_output_values { LLVMValueRef values[4]; unsigned name; - unsigned index; unsigned sid; }; @@ -1031,24 +1030,16 @@ static void si_llvm_emit_streamout(struct si_shader_context *shader, if (!num_comps || num_comps > 4) continue; + if (reg >= noutput) + continue; + /* Load the output as int. */ for (j = 0; j < num_comps; j++) { - unsigned outidx = 0; - - while (outidx < noutput && outputs[outidx].index != reg) - outidx++; - - if (outidx < noutput) - out[j] = LLVMBuildBitCast(builder, - outputs[outidx].values[start+j], - i32, ""); - else - out[j] = NULL; + out[j] = LLVMBuildBitCast(builder, + outputs[reg].values[start+j], + i32, ""); } - if (!out[0]) - continue; - /* Pack the output. */ LLVMValueRef vdata = NULL; @@ -1317,7 +1308,6 @@ static void si_llvm_emit_vs_epilogue(struct lp_build_tgsi_context * bld_base) for (i = 0; i < info->num_outputs; i++) { outputs[i].name = info->output_semantic_name[i]; outputs[i].sid = info->output_semantic_index[i]; - outputs[i].index = i; for (j = 0; j < 4; j++) outputs[i].values[j] = @@ -2656,7 +2646,6 @@ static int si_generate_gs_copy_shader(struct si_screen *sscreen, unsigned chan; outputs[i].name = gsinfo->output_semantic_name[i]; - outputs[i].index = i; outputs[i].sid = gsinfo->output_semantic_index[i]; for (chan = 0; chan < 4; chan++) {