diff options
author | José Fonseca <jfonseca@vmware.com> | 2009-08-14 10:56:40 +0100 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2009-08-29 09:21:32 +0100 |
commit | b6f43b445b43188b10cb57e4cff0190ae2cee789 (patch) | |
tree | cf3dff7ff49d6b3aee4832fffed997b3d110089f /src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c | |
parent | 1a004142bbfdaeb0697077b3976e47ac179bb11b (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.c | 12 |
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; } |