diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-05-04 21:49:22 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-05-04 21:49:22 +0400 |
commit | d828d44d7a934e6e9c8fb492c8f788e91fda16ff (patch) | |
tree | d9ae1cf32ab6d26d2d663ca1611ac7036485bb98 /intern/cycles/util/util_transform.cpp | |
parent | dc13969e484ed9fa6834b1aba85ba00f65bf8a11 (diff) |
Cycles: use LIKELY/UNLIKELY macros
Gives overall ~3% speedup in own tests for BMW scene.
Diffstat (limited to 'intern/cycles/util/util_transform.cpp')
-rw-r--r-- | intern/cycles/util/util_transform.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/intern/cycles/util/util_transform.cpp b/intern/cycles/util/util_transform.cpp index 12c2270a8d4..14613558501 100644 --- a/intern/cycles/util/util_transform.cpp +++ b/intern/cycles/util/util_transform.cpp @@ -75,7 +75,7 @@ static bool transform_matrix4_gj_inverse(float R[][4], float M[][4]) } } - if(pivotsize == 0) + if(UNLIKELY(pivotsize == 0.0f)) return false; if(pivot != i) { @@ -106,7 +106,7 @@ static bool transform_matrix4_gj_inverse(float R[][4], float M[][4]) for(int i = 3; i >= 0; --i) { float f; - if((f = M[i][i]) == 0) + if(UNLIKELY((f = M[i][i]) == 0.0f)) return false; for(int j = 0; j < 4; j++) { @@ -135,15 +135,16 @@ Transform transform_inverse(const Transform& tfm) memcpy(R, &tfmR, sizeof(R)); memcpy(M, &tfm, sizeof(M)); - if(!transform_matrix4_gj_inverse(R, M)) { + if(UNLIKELY(!transform_matrix4_gj_inverse(R, M))) { /* matrix is degenerate (e.g. 0 scale on some axis), ideally we should * never be in this situation, but try to invert it anyway with tweak */ M[0][0] += 1e-8f; M[1][1] += 1e-8f; M[2][2] += 1e-8f; - if(!transform_matrix4_gj_inverse(R, M)) + if(UNLIKELY(!transform_matrix4_gj_inverse(R, M))) { return transform_identity(); + } } memcpy(&tfmR, R, sizeof(R)); |