[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52564] trunk/blender/intern/cycles: Fix: cycles light sampling crash, happens on rare occasions due to float

Brecht Van Lommel brechtvanlommel at pandora.be
Mon Nov 26 12:05:23 CET 2012


Revision: 52564
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52564
Author:   blendix
Date:     2012-11-26 11:05:22 +0000 (Mon, 26 Nov 2012)
Log Message:
-----------
Fix: cycles light sampling crash, happens on rare occasions due to float
rounding errors.

Modified Paths:
--------------
    trunk/blender/intern/cycles/SConscript
    trunk/blender/intern/cycles/kernel/kernel_light.h

Modified: trunk/blender/intern/cycles/SConscript
===================================================================
--- trunk/blender/intern/cycles/SConscript	2012-11-26 11:03:14 UTC (rev 52563)
+++ trunk/blender/intern/cycles/SConscript	2012-11-26 11:05:22 UTC (rev 52564)
@@ -49,7 +49,7 @@
 
 # optimized kernel
 if env['WITH_BF_RAYOPTIMIZATION']:
-    optim_cxxflags = []
+    optim_cxxflags = Split(env['CXXFLAGS'])
 
     if env['OURPLATFORM'] == 'win32-vc':
         optim_cxxflags.append('/arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /fp:fast /EHsc'.split())

Modified: trunk/blender/intern/cycles/kernel/kernel_light.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_light.h	2012-11-26 11:03:14 UTC (rev 52563)
+++ trunk/blender/intern/cycles/kernel/kernel_light.h	2012-11-26 11:05:22 UTC (rev 52564)
@@ -350,10 +350,9 @@
 		}
 	}
 
-	first = max(0, first-1);
-	kernel_assert(first >= 0 && first < kernel_data.integrator.num_distribution);
-
-	return first;
+	/* clamping should not be needed but float rounding errors seem to
+	 * make this fail on rare occasions */
+	return clamp(first-1, 0, kernel_data.integrator.num_distribution-1);
 }
 
 /* Generic Light */




More information about the Bf-blender-cvs mailing list