Blender Git Loki
Git Commits -> Revision 0d28f5f
Revision 0d28f5f by Sergey Sharybin (cycles-x) June 3, 2021, 14:17 (GMT) |
Cycles X: Implement pass accessor for GPU It replaces film_convert_half_float with more generic code path. Currently only half4 destination is supported. No real stopper reason to support float destination, is just a bit harder to verify at this point as there will be no users of this code path. Form quick benchmarks the new code seems to be 10-15% faster than the film_convert_half_float when measuring overall display update time for non-interop rendering. Partially because we no longer convert global index to x/y and back to pixel index, partially due to smaller kernel. Note that the timing is only taking display update into account, the path tracing is not included into the speedup calculation (this means that viewport is not that much faster, but it means we can update viewpor4t more often now). Differential Revision: https://developer.blender.org/D11481 |
Commit Details:
Full Hash: 0d28f5ff49523260be058b33cc5d63330eae7dcf
Parent Commit: 379a5cb
Lines Changed: +470, -200
2 Added Paths:
/intern/cycles/integrator/pass_accessor_gpu.cpp (+99, -0) (View)
/intern/cycles/integrator/pass_accessor_gpu.h (+70, -0) (View)
/intern/cycles/integrator/pass_accessor_gpu.h (+70, -0) (View)
14 Modified Paths:
/intern/cycles/device/cuda/queue.cpp (+14, -1) (Diff)
/intern/cycles/device/device_kernel.cpp (+28, -2) (Diff)
/intern/cycles/device/optix/queue.cpp (+14, -1) (Diff)
/intern/cycles/integrator/CMakeLists.txt (+2, -0) (Diff)
/intern/cycles/integrator/pass_accessor.cpp (+53, -1) (Diff)
/intern/cycles/integrator/pass_accessor.h (+13, -0) (Diff)
/intern/cycles/integrator/pass_accessor_cpu.cpp (+1, -41) (Diff)
/intern/cycles/integrator/pass_accessor_cpu.h (+0, -5) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.cpp (+33, -20) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.h (+2, -2) (Diff)
/intern/cycles/kernel/device/cuda/kernel.cu (+126, -19) (Diff)
/intern/cycles/kernel/kernel_film.h (+0, -90) (Diff)
/intern/cycles/kernel/kernel_types.h (+15, -8) (Diff)
/intern/cycles/render/film.cpp (+0, -10) (Diff)
/intern/cycles/device/device_kernel.cpp (+28, -2) (Diff)
/intern/cycles/device/optix/queue.cpp (+14, -1) (Diff)
/intern/cycles/integrator/CMakeLists.txt (+2, -0) (Diff)
/intern/cycles/integrator/pass_accessor.cpp (+53, -1) (Diff)
/intern/cycles/integrator/pass_accessor.h (+13, -0) (Diff)
/intern/cycles/integrator/pass_accessor_cpu.cpp (+1, -41) (Diff)
/intern/cycles/integrator/pass_accessor_cpu.h (+0, -5) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.cpp (+33, -20) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.h (+2, -2) (Diff)
/intern/cycles/kernel/device/cuda/kernel.cu (+126, -19) (Diff)
/intern/cycles/kernel/kernel_film.h (+0, -90) (Diff)
/intern/cycles/kernel/kernel_types.h (+15, -8) (Diff)
/intern/cycles/render/film.cpp (+0, -10) (Diff)