From 2a460f6185199bad8b2bca4d0bac319377f801fa Mon Sep 17 00:00:00 2001 From: Brian Date: Tue, 18 Sep 2007 12:55:20 -0600 Subject: Fix some issues with perspective-corrected interpolation. In mesa_to_tgsi.c, use TGSI_INTERPOLATE_PERSPECTIVE by default (to match post-transform vertex info convention). More to be done there... In sp_quad_fs.c, interpolate W in addition to Z. This fixes the divide by zero happening in perspective_interpolation() tgsi_exec.c As it was, we were only getting perspective correction of texture coords used by the TGSI_TEX instruction since it does a homogeneous divide. Other coords/varyings were incorrect. --- src/mesa/pipe/tgsi/exec/tgsi_exec.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/mesa/pipe/tgsi/exec/tgsi_exec.c') 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] + -- cgit v1.2.3