Blender Git Loki
Git Commits -> Revision d26d3cf
Revision d26d3cf by Sergey Sharybin (master) November 11, 2021, 14:21 (GMT) |
Fix T92868: Cycles catcher with transparency crashes The issue was caused by splitting happening twice. Fixed by checking for split flag which is assigned to the both states during split. The tricky part was to write catcher data at the moment of split: the transparency and shadow catcher sample count is to be accumulated at that point. Now it is happening in the `intersect_closest` kernel. The downside is that render buffer is to be passed to the kernel, but the benefit is that extra split bounce check is not needed now. Had to move the passes write to shadow catcher header, since include of `film/passes.h` causes all the fun of requirement to have BSDF data structures available. Differential Revision: https://developer.blender.org/D13177 |
Commit Details:
Full Hash: d26d3cfe193793728cac77be9b44463a84a0f57e
Parent Commit: 9be6880
Lines Changed: +62, -55
13 Modified Paths:
/intern/cycles/device/cpu/kernel.h (+1, -1) (Diff)
/intern/cycles/device/optix/queue.cpp (+2, -1) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.cpp (+9, -1) (Diff)
/intern/cycles/kernel/device/cpu/kernel_arch.h (+1, -1) (Diff)
/intern/cycles/kernel/device/cpu/kernel_arch_impl.h (+1, -1) (Diff)
/intern/cycles/kernel/device/gpu/kernel.h (+4, -2) (Diff)
/intern/cycles/kernel/device/optix/kernel.cu (+1, -1) (Diff)
/intern/cycles/kernel/film/passes.h (+0, -34) (Diff)
/intern/cycles/kernel/integrator/intersect_closest.h (+17, -6) (Diff)
/intern/cycles/kernel/integrator/megakernel.h (+1, -1) (Diff)
/intern/cycles/kernel/integrator/shade_surface.h (+0, -4) (Diff)
/intern/cycles/kernel/integrator/shade_volume.h (+1, -1) (Diff)
/intern/cycles/kernel/integrator/shadow_catcher.h (+24, -1) (Diff)
/intern/cycles/device/optix/queue.cpp (+2, -1) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.cpp (+9, -1) (Diff)
/intern/cycles/kernel/device/cpu/kernel_arch.h (+1, -1) (Diff)
/intern/cycles/kernel/device/cpu/kernel_arch_impl.h (+1, -1) (Diff)
/intern/cycles/kernel/device/gpu/kernel.h (+4, -2) (Diff)
/intern/cycles/kernel/device/optix/kernel.cu (+1, -1) (Diff)
/intern/cycles/kernel/film/passes.h (+0, -34) (Diff)
/intern/cycles/kernel/integrator/intersect_closest.h (+17, -6) (Diff)
/intern/cycles/kernel/integrator/megakernel.h (+1, -1) (Diff)
/intern/cycles/kernel/integrator/shade_surface.h (+0, -4) (Diff)
/intern/cycles/kernel/integrator/shade_volume.h (+1, -1) (Diff)
/intern/cycles/kernel/integrator/shadow_catcher.h (+24, -1) (Diff)