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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to