[Mesa-dev] [PATCH 4/4] radeonsi: fix interpolateAt opcodes for .zw components

Marek Olšák maraeo at gmail.com
Tue Oct 4 22:35:53 UTC 2016


From: Marek Olšák <marek.olsak at amd.com>

Not returning garbage in .zw seems pretty important.

This fixes:
GL45-CTS.shader_multisample_interpolation.render.interpolate_at_*_check.*

Cc: 11.2 12.0 <mesa-stable at lists.freedesktop.org>
---
 src/gallium/drivers/radeonsi/si_shader.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index 590ae64..f856064 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -5201,21 +5201,21 @@ static void build_interp_intrinsic(const struct lp_build_tgsi_action *action,
 
 			temp2 = LLVMBuildFAdd(gallivm->builder, temp2, temp1, "");
 
 			ij_out[i] = LLVMBuildBitCast(gallivm->builder,
 						     temp2, ctx->i32, "");
 		}
 		interp_param = lp_build_gather_values(bld_base->base.gallivm, ij_out, 2);
 	}
 
 	intr_name = interp_param ? "llvm.SI.fs.interp" : "llvm.SI.fs.constant";
-	for (chan = 0; chan < 2; chan++) {
+	for (chan = 0; chan < 4; chan++) {
 		LLVMValueRef args[4];
 		LLVMValueRef llvm_chan;
 		unsigned schan;
 
 		schan = tgsi_util_get_full_src_register_swizzle(&inst->Src[0], chan);
 		llvm_chan = lp_build_const_int32(gallivm, schan);
 
 		args[0] = llvm_chan;
 		args[1] = attr_number;
 		args[2] = params;
-- 
2.7.4



More information about the mesa-dev mailing list