diff options
author | Brecht Van Lommel <brecht@blender.org> | 2022-07-26 21:58:16 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2022-07-27 21:58:02 +0300 |
commit | cd47d1b2ed0834e52c1e71027c5b5032f1a24afd (patch) | |
tree | 8d5ee21c7a6b4b50bccf828a40fa6791ac565f82 /intern/cycles/kernel/bvh | |
parent | 0dcfd93c6eebc1a3bb6a4026c01387b73ed91ff3 (diff) |
Fix broken BVH2 on CPU after recent changes
Runtime switching between Embree and BVH2 got lost.
Diffstat (limited to 'intern/cycles/kernel/bvh')
-rw-r--r-- | intern/cycles/kernel/bvh/bvh.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/intern/cycles/kernel/bvh/bvh.h b/intern/cycles/kernel/bvh/bvh.h index 11e732ec480..5e3f8d839e9 100644 --- a/intern/cycles/kernel/bvh/bvh.h +++ b/intern/cycles/kernel/bvh/bvh.h @@ -12,6 +12,7 @@ #if defined(__EMBREE__) # include "kernel/device/cpu/bvh.h" +# define __BVH2__ #elif defined(__METALRT__) # include "kernel/device/metal/bvh.h" #elif defined(__KERNEL_OPTIX__) @@ -72,6 +73,12 @@ ccl_device_intersect bool scene_intersect(KernelGlobals kg, return false; } +# ifdef __EMBREE__ + if (kernel_data.device_bvh) { + return kernel_embree_intersect(kg, ray, visibility, isect); + } +# endif + # ifdef __OBJECT_MOTION__ if (kernel_data.bvh.have_motion) { # ifdef __HAIR__ @@ -121,6 +128,12 @@ ccl_device_intersect bool scene_intersect_local(KernelGlobals kg, return false; } +# ifdef __EMBREE__ + if (kernel_data.device_bvh) { + return kernel_embree_intersect_local(kg, ray, local_isect, local_object, lcg_state, max_hits); + } +# endif + # ifdef __OBJECT_MOTION__ if (kernel_data.bvh.have_motion) { return bvh_intersect_local_motion(kg, ray, local_isect, local_object, lcg_state, max_hits); @@ -170,6 +183,13 @@ ccl_device_intersect bool scene_intersect_shadow_all(KernelGlobals kg, return false; } +# ifdef __EMBREE__ + if (kernel_data.device_bvh) { + return kernel_embree_intersect_shadow_all( + kg, state, ray, visibility, max_hits, num_recorded_hits, throughput); + } +# endif + # ifdef __OBJECT_MOTION__ if (kernel_data.bvh.have_motion) { # ifdef __HAIR__ @@ -254,6 +274,12 @@ ccl_device_intersect uint scene_intersect_volume(KernelGlobals kg, return false; } +# ifdef __EMBREE__ + if (kernel_data.device_bvh) { + return kernel_embree_intersect_volume(kg, ray, isect, max_hits, visibility); + } +# endif + # ifdef __OBJECT_MOTION__ if (kernel_data.bvh.have_motion) { return bvh_intersect_volume_all_motion(kg, ray, isect, max_hits, visibility); |