[Mesa-dev] [PATCH 15/16] radeonsi: remove si_shader_output_values::index
Marek Olšák
maraeo at gmail.com
Sat Oct 4 15:42:18 PDT 2014
From: Marek Olšák <marek.olsak at amd.com>
It's redundant now.
It led to a simplification in si_llvm_emit_streamout, because outidx == reg.
---
src/gallium/drivers/radeonsi/si_shader.c | 23 ++++++-----------------
1 file changed, 6 insertions(+), 17 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index 2a12179..c1a1e7b 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++) {
--
1.9.1
More information about the mesa-dev
mailing list