Blender Git Loki
Git Commits -> Revision cb730df
Revision cb730df by Brecht Van Lommel (cycles-x) April 7, 2021, 16:43 (GMT) |
Cycles: add shader sorting for shade_surface kernel * intersect_closest and intersect_subsurface compute a sorting key and with atomics count how many paths are queued for each key. * Then we compute the prefix sum of the sorting keys, and use that for sorting paths according to the key in a single pass with atomics. |
Commit Details:
Full Hash: cb730df6b8cf0ef9713056bd186d87f8febfe15d
Parent Commit: ced0c97
Lines Changed: +271, -21
2 Added Paths:
/intern/cycles/kernel/device/cuda/parallel_prefix_sum.h (+47, -0) (View)
/intern/cycles/kernel/device/cuda/parallel_sorted_index.h (+49, -0) (View)
/intern/cycles/kernel/device/cuda/parallel_sorted_index.h (+49, -0) (View)
13 Modified Paths:
/intern/cycles/device/cuda/queue.cpp (+2, -0) (Diff)
/intern/cycles/device/device_kernel.cpp (+6, -0) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.cpp (+76, -1) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.h (+6, -0) (Diff)
/intern/cycles/kernel/bvh/bvh_util.h (+22, -0) (Diff)
/intern/cycles/kernel/CMakeLists.txt (+3, -1) (Diff)
/intern/cycles/kernel/device/cuda/kernel.cu (+20, -0) (Diff)
/intern/cycles/kernel/device/cuda/parallel_active_index.h (+1, -1) (Diff)
/intern/cycles/kernel/integrator/integrator_intersect_closest.h (+21, -18) (Diff)
/intern/cycles/kernel/integrator/integrator_path_state.h (+9, -0) (Diff)
/intern/cycles/kernel/integrator/integrator_state.h (+4, -0) (Diff)
/intern/cycles/kernel/integrator/integrator_subsurface.h (+2, -0) (Diff)
/intern/cycles/kernel/kernel_types.h (+3, -0) (Diff)
/intern/cycles/device/device_kernel.cpp (+6, -0) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.cpp (+76, -1) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.h (+6, -0) (Diff)
/intern/cycles/kernel/bvh/bvh_util.h (+22, -0) (Diff)
/intern/cycles/kernel/CMakeLists.txt (+3, -1) (Diff)
/intern/cycles/kernel/device/cuda/kernel.cu (+20, -0) (Diff)
/intern/cycles/kernel/device/cuda/parallel_active_index.h (+1, -1) (Diff)
/intern/cycles/kernel/integrator/integrator_intersect_closest.h (+21, -18) (Diff)
/intern/cycles/kernel/integrator/integrator_path_state.h (+9, -0) (Diff)
/intern/cycles/kernel/integrator/integrator_state.h (+4, -0) (Diff)
/intern/cycles/kernel/integrator/integrator_subsurface.h (+2, -0) (Diff)
/intern/cycles/kernel/kernel_types.h (+3, -0) (Diff)