[Bf-blender-cvs] [cccc40db51a] master: Fix T57963: Cycles crash using AO for displacement.

Brecht Van Lommel noreply at git.blender.org
Thu Dec 6 19:55:35 CET 2018


Commit: cccc40db51a0b73d396952be65ef351a7c68ed4f
Author: Brecht Van Lommel
Date:   Thu Dec 6 19:50:05 2018 +0100
Branches: master
https://developer.blender.org/rBcccc40db51a0b73d396952be65ef351a7c68ed4f

Fix T57963: Cycles crash using AO for displacement.

Note this is not supported, there exists no geometry at this point, but
it should not crash at least.

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

M	intern/cycles/kernel/svm/svm_ao.h
M	intern/cycles/kernel/svm/svm_bevel.h

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

diff --git a/intern/cycles/kernel/svm/svm_ao.h b/intern/cycles/kernel/svm/svm_ao.h
index 0337c88a543..15d074780c4 100644
--- a/intern/cycles/kernel/svm/svm_ao.h
+++ b/intern/cycles/kernel/svm/svm_ao.h
@@ -33,6 +33,11 @@ ccl_device_noinline float svm_ao(KernelGlobals *kg,
 		return 1.0f;
 	}
 
+	/* Can't raytrace from shaders like displacement, before BVH exists. */
+	if (kernel_data.bvh.bvh_layout == BVH_LAYOUT_NONE) {
+		return 1.0f;
+	}
+
 	if(flags & NODE_AO_INSIDE) {
 		N = -N;
 	}
diff --git a/intern/cycles/kernel/svm/svm_bevel.h b/intern/cycles/kernel/svm/svm_bevel.h
index 79d0fb6ddbe..96d132acd73 100644
--- a/intern/cycles/kernel/svm/svm_bevel.h
+++ b/intern/cycles/kernel/svm/svm_bevel.h
@@ -34,6 +34,11 @@ ccl_device_noinline float3 svm_bevel(
 		return sd->N;
 	}
 
+	/* Can't raytrace from shaders like displacement, before BVH exists. */
+	if (kernel_data.bvh.bvh_layout == BVH_LAYOUT_NONE) {
+		return sd->N;
+	}
+
 	/* Don't bevel for blurry indirect rays. */
 	if(state->min_ray_pdf < 8.0f) {
 		return sd->N;



More information about the Bf-blender-cvs mailing list