[Bf-blender-cvs] [d84c156] master: Fix T41601: Correlated multi-jitter with high samples "hangs"

Sergey Sharybin noreply at git.blender.org
Thu Aug 28 11:18:27 CEST 2014


Commit: d84c15696b2949b7e596b1f75e5864033fd9d067
Author: Sergey Sharybin
Date:   Thu Aug 28 15:15:59 2014 +0600
Branches: master
https://developer.blender.org/rBd84c15696b2949b7e596b1f75e5864033fd9d067

Fix T41601: Correlated multi-jitter with high samples "hangs"

Issue was caused by the precision issues which made sdivm by 1 under
it's actual value. We can try to do some eps magic, but from the tests
on laptop and desktop doing integer division is not slower than using
floats here.

===================================================================

M	intern/cycles/kernel/kernel_jitter.h

===================================================================

diff --git a/intern/cycles/kernel/kernel_jitter.h b/intern/cycles/kernel/kernel_jitter.h
index 4dfffcb..2a5b768 100644
--- a/intern/cycles/kernel/kernel_jitter.h
+++ b/intern/cycles/kernel/kernel_jitter.h
@@ -182,7 +182,8 @@ ccl_device void cmj_sample_2D(int s, int N, int p, float *fx, float *fy)
 		smodm = cmj_fast_mod_pow2(s, m);
 	}
 	else {
-		sdivm = float_to_int(s * invm);
+		/* Doing s*inmv gives precision issues here. */
+		sdivm = s / m;
 		smodm = s - sdivm*m;
 	}




More information about the Bf-blender-cvs mailing list