Mesa (master): llvmpipe: fix fogcoord writing (v2)
Dave Airlie
airlied at kemper.freedesktop.org
Wed Feb 15 19:28:04 UTC 2012
Module: Mesa
Branch: master
Commit: c89b471f8cd3da6c07eb437caabb2e648027f8bb
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c89b471f8cd3da6c07eb437caabb2e648027f8bb
Author: Dave Airlie <airlied at redhat.com>
Date: Sat Feb 4 17:55:56 2012 +0000
llvmpipe: fix fogcoord writing (v2)
this fixes the fogcoord related piglit tests, like I fixed them in softpipe.
Signed-off-by: Dave Airlie <airlied at redhat.com>
---
src/gallium/auxiliary/draw/draw_llvm.c | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c
index 8a55e17..f0646ac 100644
--- a/src/gallium/auxiliary/draw/draw_llvm.c
+++ b/src/gallium/auxiliary/draw/draw_llvm.c
@@ -510,7 +510,7 @@ generate_vs(struct draw_llvm *llvm,
sampler,
&llvm->draw->vs.vertex_shader->info);
- if (clamp_vertex_color) {
+ {
LLVMValueRef out;
unsigned chan, attrib;
struct lp_build_context bld;
@@ -523,9 +523,17 @@ generate_vs(struct draw_llvm *llvm,
switch (info->output_semantic_name[attrib]) {
case TGSI_SEMANTIC_COLOR:
case TGSI_SEMANTIC_BCOLOR:
- out = LLVMBuildLoad(builder, outputs[attrib][chan], "");
- out = lp_build_clamp(&bld, out, bld.zero, bld.one);
- LLVMBuildStore(builder, out, outputs[attrib][chan]);
+ if (clamp_vertex_color) {
+ out = LLVMBuildLoad(builder, outputs[attrib][chan], "");
+ out = lp_build_clamp(&bld, out, bld.zero, bld.one);
+ LLVMBuildStore(builder, out, outputs[attrib][chan]);
+ }
+ break;
+ case TGSI_SEMANTIC_FOG:
+ if (chan == 1 || chan == 2)
+ LLVMBuildStore(builder, bld.zero, outputs[attrib][chan]);
+ else if (chan == 3)
+ LLVMBuildStore(builder, bld.one, outputs[attrib][chan]);
break;
}
}
More information about the mesa-commit
mailing list