summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2009-08-14 10:56:40 +0100
committerJosé Fonseca <jfonseca@vmware.com>2009-08-29 09:21:32 +0100
commitb6f43b445b43188b10cb57e4cff0190ae2cee789 (patch)
treecf3dff7ff49d6b3aee4832fffed997b3d110089f /src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c
parent1a004142bbfdaeb0697077b3976e47ac179bb11b (diff)
llvmpipe: Pass the interpolation factors as scalars.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c b/src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c
index 1f489a359b..60b9819fff 100644
--- a/src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c
+++ b/src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c
@@ -1372,16 +1372,22 @@ emit_declaration(
case TGSI_INTERPOLATE_LINEAR: {
LLVMValueRef dadx_ptr = LLVMBuildGEP(builder, bld->dadx_ptr, &index, 1, "");
LLVMValueRef dady_ptr = LLVMBuildGEP(builder, bld->dady_ptr, &index, 1, "");
+ dadx = LLVMBuildLoad(builder, dadx_ptr, "");
+ dady = LLVMBuildLoad(builder, dady_ptr, "");
+ dadx = lp_build_broadcast_scalar(&bld->base, dadx);
+ dady = lp_build_broadcast_scalar(&bld->base, dady);
util_snprintf(name, sizeof name, "dadx_%u.%c", attrib, "xyzw"[chan]);
- dadx = LLVMBuildLoad(builder, dadx_ptr, name);
+ LLVMSetValueName(dadx, name);
util_snprintf(name, sizeof name, "dady_%u.%c", attrib, "xyzw"[chan]);
- dady = LLVMBuildLoad(builder, dady_ptr, name);
+ LLVMSetValueName(dady, name);
}
case TGSI_INTERPOLATE_CONSTANT: {
LLVMValueRef a0_ptr = LLVMBuildGEP(builder, bld->a0_ptr, &index, 1, "");
+ a0 = LLVMBuildLoad(builder, a0_ptr, "");
+ a0 = lp_build_broadcast_scalar(&bld->base, a0);
util_snprintf(name, sizeof name, "a0_%u.%c", attrib, "xyzw"[chan]);
- a0 = LLVMBuildLoad(builder, a0_ptr, name);
+ LLVMSetValueName(a0, name);
break;
}