Module: Mesa
Branch: 8.0
Commit: d6724833edbcc2eb5d89459de94ee4ed18ef82bc
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d6724833edbcc2eb5d89459de94ee4ed18ef82bc

Author: Brian Paul <[email protected]>
Date:   Tue Jul 24 11:11:45 2012 -0600

mesa: loosen small matrix determinant check

When computing a matrix inverse, if the determinant is too small we could hit
a divide by zero.  There's a check to prevent this (we basically give up on
computing the inverse and return the identity matrix.)  This patch loosens
this test to fix a lighting bug reported by Lars Henning Wendt.

v2: use abs(det) to handle negative values

NOTE: This is a candidate for the 8.0 branch.

Tested-by: Lars Henning Wendt <[email protected]>
(cherry picked from commit 50db8129152f3d5ea8db13d55f82673d53bf1b8f)

---

 src/mesa/math/m_matrix.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/mesa/math/m_matrix.c b/src/mesa/math/m_matrix.c
index 02aedba..ffbdcdb 100644
--- a/src/mesa/math/m_matrix.c
+++ b/src/mesa/math/m_matrix.c
@@ -513,7 +513,7 @@ static GLboolean invert_matrix_3d_general( GLmatrix *mat )
 
    det = pos + neg;
 
-   if (det*det < 1e-25)
+   if (FABSF(det) < 1e-25)
       return GL_FALSE;
 
    det = 1.0F / det;

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to