Mesa (master): st/nine: Fix non inversible matrix check

Axel Davy axeldavy at kemper.freedesktop.org
Sun Mar 18 21:54:54 UTC 2018


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

Author: Axel Davy <davyaxel0 at gmail.com>
Date:   Sat Mar 10 18:49:59 2018 +0100

st/nine: Fix non inversible matrix check

There was a missing absolute value when
checking if the determinant was big enough.

Fixes: https://github.com/iXit/Mesa-3D/issues/292

Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
Reviewed-by: Patrick Rudolph <siro at das-labor.org>
Tested-by: Dieter Nützel <Dieter at nuetzel-hh.de>

CC: "17.3 18.0" <mesa-stable at lists.freedesktop.org>

---

 src/gallium/state_trackers/nine/nine_ff.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/state_trackers/nine/nine_ff.c b/src/gallium/state_trackers/nine/nine_ff.c
index 6c30839b29..d7b697caee 100644
--- a/src/gallium/state_trackers/nine/nine_ff.c
+++ b/src/gallium/state_trackers/nine/nine_ff.c
@@ -2474,7 +2474,7 @@ nine_d3d_matrix_inverse(D3DMATRIX *D, const D3DMATRIX *M)
         M->m[2][0] * D->m[0][2] +
         M->m[3][0] * D->m[0][3];
 
-    if (det < 1e-30) {/* non inversible */
+    if (fabsf(det) < 1e-30) {/* non inversible */
         *D = *M; /* wine tests */
         return;
     }




More information about the mesa-commit mailing list