From 3508815d178a5b2d22b2249a68974b0cf8f67069 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20K=C3=B6nig?= Date: Wed, 1 Aug 2012 22:35:24 +0200 Subject: [PATCH] radeonsi: fix shader param and color count MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Christian König Reviewed-by: Michel Dänzer --- src/gallium/drivers/radeonsi/radeonsi_shader.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/radeonsi/radeonsi_shader.c b/src/gallium/drivers/radeonsi/radeonsi_shader.c index 81b44a7..522016e 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_shader.c +++ b/src/gallium/drivers/radeonsi/radeonsi_shader.c @@ -355,6 +355,8 @@ static void si_llvm_emit_epilogue(struct lp_build_tgsi_context * bld_base) &si_shader_ctx->radeon_bld.soa.bld_base.uint_bld; struct tgsi_parse_context *parse = &si_shader_ctx->parse; LLVMValueRef last_args[9] = { 0 }; + unsigned color_count = 0; + unsigned param_count = 0; while (!tgsi_parse_end_of_tokens(parse)) { /* XXX: component_bits controls which components of the output @@ -369,8 +371,6 @@ static void si_llvm_emit_epilogue(struct lp_build_tgsi_context * bld_base) LLVMValueRef args[9]; unsigned target; unsigned index; - unsigned color_count = 0; - unsigned param_count = 0; int i; tgsi_parse_token(parse); @@ -384,17 +384,18 @@ static void si_llvm_emit_epilogue(struct lp_build_tgsi_context * bld_base) shader->input[i].sid = d->Semantic.Index; shader->input[i].interpolate = d->Interp.Interpolate; shader->input[i].centroid = d->Interp.Centroid; - break; + continue; + case TGSI_FILE_OUTPUT: i = shader->noutput++; shader->output[i].name = d->Semantic.Name; shader->output[i].sid = d->Semantic.Index; shader->output[i].interpolate = d->Interp.Interpolate; break; - } - if (d->Declaration.File != TGSI_FILE_OUTPUT) + default: continue; + } for (index = d->Range.First; index <= d->Range.Last; index++) { for (chan = 0; chan < 4; chan++ ) { -- 2.7.4