diff --git a/intern/cycles/kernel/svm/svm_checker.h b/intern/cycles/kernel/svm/svm_checker.h index 186bf7df55f..cea245991de 100644 --- a/intern/cycles/kernel/svm/svm_checker.h +++ b/intern/cycles/kernel/svm/svm_checker.h @@ -25,9 +25,9 @@ ccl_device_noinline float svm_checker(float3 p) p.y = (p.y + 0.000001f)*0.999999f; p.z = (p.z + 0.000001f)*0.999999f; - int xi = float_to_int(fabsf(floorf(p.x))); - int yi = float_to_int(fabsf(floorf(p.y))); - int zi = float_to_int(fabsf(floorf(p.z))); + int xi = abs(float_to_int(floorf(p.x))); + int yi = abs(float_to_int(floorf(p.y))); + int zi = abs(float_to_int(floorf(p.z))); return ((xi % 2 == yi % 2) == (zi % 2))? 1.0f: 0.0f; } diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index cdbc37fd32c..32924f9a8c2 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -97,6 +97,11 @@ ccl_device_inline float fminf(float a, float b) #ifndef __KERNEL_GPU__ +ccl_device_inline int abs(int x) +{ + return (x > 0)? x: -x; +} + ccl_device_inline int max(int a, int b) { return (a > b)? a: b;