summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/softpipe/sp_quad_fs.c
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-12-13 09:05:15 -0700
committerBrian <brian.paul@tungstengraphics.com>2007-12-13 09:05:15 -0700
commit81c9058ea90615cd0c819da6e51c3a539a540a7e (patch)
tree3b37cd0c70b61394072b42b26e3de8333c4f23b0 /src/mesa/pipe/softpipe/sp_quad_fs.c
parent8cd608d5ba538cdebea7e9bb51c1458ce7eb5137 (diff)
Add QuadX,Y fields to tgsi_exec_machine to pass quad's position to tgsi interpreter.
The tgsi linear/perspective attribute code now uses these values rather than input[0]. Need to update SSE path to take quad x,y as function params. Then, we can remove additional code.
Diffstat (limited to 'src/mesa/pipe/softpipe/sp_quad_fs.c')
-rw-r--r--src/mesa/pipe/softpipe/sp_quad_fs.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/mesa/pipe/softpipe/sp_quad_fs.c b/src/mesa/pipe/softpipe/sp_quad_fs.c
index 251b47341a..da590b256a 100644
--- a/src/mesa/pipe/softpipe/sp_quad_fs.c
+++ b/src/mesa/pipe/softpipe/sp_quad_fs.c
@@ -100,6 +100,7 @@ shade_quad(
machine->InterpCoefs = quad->coef;
+#if 1 /* XXX only do this if the fp really reads fragment.position */
machine->Inputs[0].xyzw[0].f[0] = fx;
machine->Inputs[0].xyzw[0].f[1] = fx + 1.0f;
machine->Inputs[0].xyzw[0].f[2] = fx;
@@ -113,6 +114,10 @@ shade_quad(
machine->Inputs[0].xyzw[1].f[1] = fy;
machine->Inputs[0].xyzw[1].f[2] = fy + 1.0f;
machine->Inputs[0].xyzw[1].f[3] = fy + 1.0f;
+#endif
+
+ machine->QuadX = quad->x0;
+ machine->QuadY = quad->y0;
/* run shader */
#if defined(__i386__) || defined(__386__)
@@ -123,7 +128,11 @@ shade_quad(
machine->Outputs,
machine->Consts,
machine->Temps,
- machine->InterpCoefs );
+ machine->InterpCoefs
+#if 0
+ ,quad->x0, quad->y0
+#endif
+ );
quad->mask &= ~(machine->Temps[TGSI_EXEC_TEMP_KILMASK_I].xyzw[TGSI_EXEC_TEMP_KILMASK_C].u[0]);
}
else