summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2010-01-06 17:42:53 -0700
committerBrian Paul <brianp@vmware.com>2010-01-06 17:43:56 -0700
commit8485811f10142f54756d876ebe91193bfc8f8a0e (patch)
tree7f7376a116e84875883f80b3eaedac7035523937 /src
parent4c45810d575c53f3e829809cb4d27e35739a2a69 (diff)
tnl: set FOGC result to (f,0,0,1)
Fixed FDO bug 23397.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/tnl/t_vb_program.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/tnl/t_vb_program.c b/src/mesa/tnl/t_vb_program.c
index e69f7d5766..a9dae7d2e7 100644
--- a/src/mesa/tnl/t_vb_program.c
+++ b/src/mesa/tnl/t_vb_program.c
@@ -390,6 +390,13 @@ run_vp( GLcontext *ctx, struct tnl_pipeline_stage *stage )
#endif
COPY_4V(store->results[attr].data[i], machine.Outputs[attr]);
}
+
+ /* FOGC is a special case. Fragment shader expects (f,0,0,1) */
+ if (program->Base.OutputsWritten & BITFIELD64_BIT(VERT_RESULT_FOGC)) {
+ store->results[VERT_RESULT_FOGC].data[i][1] = 0.0;
+ store->results[VERT_RESULT_FOGC].data[i][2] = 0.0;
+ store->results[VERT_RESULT_FOGC].data[i][3] = 1.0;
+ }
#ifdef NAN_CHECK
ASSERT(machine.Outputs[0][3] != 0.0F);
#endif