[Bf-blender-cvs] [6260b3c15e5] blender2.7: Fix T60597, T60806: Cycles crash rendering principled BSDF + volume interior.

Brecht Van Lommel noreply at git.blender.org
Thu Jan 24 19:00:50 CET 2019


Commit: 6260b3c15e5afd0a38c97a16d47665833f69a79f
Author: Brecht Van Lommel
Date:   Thu Jan 24 15:15:57 2019 +0100
Branches: blender2.7
https://developer.blender.org/rB6260b3c15e5afd0a38c97a16d47665833f69a79f

Fix T60597, T60806: Cycles crash rendering principled BSDF + volume interior.

The integrator maximum number of closures was not set properly for the CPU/mega
kernels to match the actual available memory. Before relatively recent code
refactoring we did not use this value in those kernels so it worked fine.

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

M	intern/cycles/render/session.cpp

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

diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index edbf9947b70..c818f2b496c 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -886,7 +886,7 @@ bool Session::update_scene()
 		}
 		else {
 			/* Currently viewport render is faster with higher max_closures, needs investigating. */
-			kintegrator->max_closures = 64;
+			kintegrator->max_closures = MAX_CLOSURE;
 		}
 
 		progress.set_status("Updating Scene");
@@ -1086,6 +1086,20 @@ int Session::get_max_closure_count()
 		max_closures = max(max_closures, num_closures);
 	}
 	max_closure_global = max(max_closure_global, max_closures);
+
+	if (max_closure_global > MAX_CLOSURE) {
+		/* This is usually harmless as more complex shader tend to get many
+		 * closures discarded due to mixing or low weights. We need to limit
+		 * to MAX_CLOSURE as this is hardcoded in CPU/mega kernels, and it
+		 * avoids excessive memory usage for split kernels. */
+		VLOG(2) << "Maximum number of closures exceeded: "
+				<< max_closure_global
+				<< " > "
+				<< MAX_CLOSURE;
+
+		max_closure_global = MAX_CLOSURE;
+	}
+
 	return max_closure_global;
 }



More information about the Bf-blender-cvs mailing list