diff options
-rwxr-xr-x | src/mesa/pipe/softpipe/sp_quad_fs.c | 9 | ||||
-rw-r--r-- | src/mesa/pipe/tgsi/exec/tgsi_exec.c | 1 | ||||
-rw-r--r-- | src/mesa/pipe/tgsi/mesa/mesa_to_tgsi.c | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/mesa/pipe/softpipe/sp_quad_fs.c b/src/mesa/pipe/softpipe/sp_quad_fs.c index 25bc170d8c..7d2712a537 100755 --- a/src/mesa/pipe/softpipe/sp_quad_fs.c +++ b/src/mesa/pipe/softpipe/sp_quad_fs.c @@ -68,10 +68,9 @@ quad_shade_stage(struct quad_stage *qs) * INPUT[attr] = MAD INPUT[attr], COEF_DADY[attr], INPUT_WPOS.yyyy */ static INLINE void -linterp_z(const struct tgsi_interp_coef *coef, - struct tgsi_exec_vector *pos) +linterp(const struct tgsi_interp_coef *coef, + struct tgsi_exec_vector *pos, uint ch) { - uint ch = 2; uint j; for (j = 0; j < QUAD_SIZE; j++) { const float x = pos->xyzw[0].f[j]; @@ -83,7 +82,6 @@ linterp_z(const struct tgsi_interp_coef *coef, } - /* This should be done by the fragment shader execution unit (code * generated from the decl instructions). Do it here for now. */ @@ -131,7 +129,8 @@ shade_quad( machine.Inputs[0].xyzw[1].f[3] = fy + 1.0f; /* interp Z */ - linterp_z(&quad->coef[0], &machine.Inputs[0]); + linterp(&quad->coef[0], &machine.Inputs[0], 2); /* Z */ + linterp(&quad->coef[0], &machine.Inputs[0], 3); /* 1/W */ /* run shader */ tgsi_exec_machine_run( &machine ); diff --git a/src/mesa/pipe/tgsi/exec/tgsi_exec.c b/src/mesa/pipe/tgsi/exec/tgsi_exec.c index 793f8bc0f6..28dc049658 100644 --- a/src/mesa/pipe/tgsi/exec/tgsi_exec.c +++ b/src/mesa/pipe/tgsi/exec/tgsi_exec.c @@ -1104,6 +1104,7 @@ perspective_interpolation( const float y = mach->Inputs[0].xyzw[1].f[i]; // WPOS.w here is really 1/w const float w = 1.0f / mach->Inputs[0].xyzw[3].f[i]; + assert(mach->Inputs[0].xyzw[3].f[i] != 0.0); mach->Inputs[attrib].xyzw[chan].f[i] = (mach->InterpCoefs[attrib].a0[chan] + diff --git a/src/mesa/pipe/tgsi/mesa/mesa_to_tgsi.c b/src/mesa/pipe/tgsi/mesa/mesa_to_tgsi.c index 182a7eff05..2820706537 100644 --- a/src/mesa/pipe/tgsi/mesa/mesa_to_tgsi.c +++ b/src/mesa/pipe/tgsi/mesa/mesa_to_tgsi.c @@ -859,7 +859,7 @@ tgsi_mesa_compile_fp_program( fulldecl = make_frag_input_decl(
1,
1 + count - 1,
- TGSI_INTERPOLATE_LINEAR,
+ TGSI_INTERPOLATE_PERSPECTIVE,
TGSI_WRITEMASK_XYZW );
ti += tgsi_build_full_declaration(
&fulldecl,
|