[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