Blender Git Commit Log

Git Commits -> Revision 8a65d6c

December 20, 2016, 04:38 (GMT)
Cycles: Replace T-SVD algorithm with new Jacobi Eigendecomposition solver

The code that was used for the T-SVD before came from the WLR reference implementation,
but had numerical problems on Windows and would often cause NaNs.

This commit replaces it with a new implementation using Eigendecomposition based on the Jacobi Eigenvalue Method.
That should:
- Give a slight performance boost (probably not noticable, since the T-SVD was no bottleneck to begin with)
- Improve numerical accuracy of the results (not very important either since the eigenvalues are only compared against a threshold)
- FINALLY solve the black spot issue on Windows
- Slightly reduce memory usage (singular values are now constructed on the diagonal of the input matrix) with the potential of more in the future (now only the lower-triangular part is required).
- Resolve potential licensing issues - the specific file containing the original code didn't come with any licensing information, and the main file contains an apparently custom license...

Commit Details:

Full Hash: 8a65d6cf11f727ab0e99a0433edd3ce1e3cf09db
Parent Commit: 9acc795
Lines Changed: +144, -276

4 Modified Paths:

/intern/cycles/kernel/filter/filter_wlr.h (+4, -5) (Diff)
/intern/cycles/kernel/filter/filter_wlr_cuda.h (+3, -5) (Diff)
/intern/cycles/kernel/filter/filter_wlr_sse.h (+4, -6) (Diff)
/intern/cycles/util/util_math_matrix.h (+133, -260) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021