summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2012-01-28 18:29:18 +0000
committerDave Airlie <airlied@redhat.com>2012-02-04 17:50:43 +0000
commitfa2a76a21c8c513de506f2c5ec938c829cc65fdf (patch)
tree71a9e1f7459b93c0a0c1737131c45f152332bafd
parentf8be4f33d31d004bfcf090fa7d4aa37b750e43af (diff)
draw: fix fog coord export.
This does what we do in the hw drivers, and only export the X. fixes the fogcoord.dp* tests. Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--src/gallium/auxiliary/draw/draw_vs_exec.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vs_exec.c b/src/gallium/auxiliary/draw/draw_vs_exec.c
index eaba4755f53..84ce8c15190 100644
--- a/src/gallium/auxiliary/draw/draw_vs_exec.c
+++ b/src/gallium/auxiliary/draw/draw_vs_exec.c
@@ -168,7 +168,12 @@ vs_exec_run_linear( struct draw_vertex_shader *shader,
output[slot][2] = CLAMP(machine->Outputs[slot].xyzw[2].f[j], 0.0f, 1.0f);
output[slot][3] = CLAMP(machine->Outputs[slot].xyzw[3].f[j], 0.0f, 1.0f);
}
- else
+ else if (name == TGSI_SEMANTIC_FOG) {
+ output[slot][0] = machine->Outputs[slot].xyzw[0].f[j];
+ output[slot][1] = 0;
+ output[slot][2] = 0;
+ output[slot][3] = 1;
+ } else
{
output[slot][0] = machine->Outputs[slot].xyzw[0].f[j];
output[slot][1] = machine->Outputs[slot].xyzw[1].f[j];