Blender Git Loki
Git Commits -> Revision 81634e8
Revision 81634e8 by Sergey Sharybin (cycles-x) June 11, 2021, 12:50 (GMT) |
Cycles X: Refactor noisy/denoised passes access The goal is to make it easily to extend denoising support for passes like light passes and shadow catcher, without need to double-write in the kernel, and without duplicating pass type for every noisy/denoised combination. Avoid double-write of noisy pass in the kernel, introducing an explicit separation of noisy pass written by the kernel and denoised pass written by a denoiser. The idea is to allow marking pass as "please read denoised result of the type when available". If there is no denoiser configured, then the pass will access its noisy data (and no data will be allocated for the pass which is requesting to return denoised result). It is possible to simplify some of the pass accessing in the denoisers, as well as possibly avoiding memory allocation. Will look into this as a followup development related on making denoiser able to denoise any input. The positive side is that now there is no need in the denoised pass film convert kernel. Should be no functional changes. Differential Revision: https://developer.blender.org/D11565 |
Commit Details:
Full Hash: 81634e83794ccbc29ca23c886917d4287d1f81fb
Parent Commit: df89a72
Lines Changed: +517, -341
32 Modified Paths:
/intern/cycles/blender/blender_session.cpp (+1, -1) (Diff)
/intern/cycles/blender/blender_sync.cpp (+51, -25) (Diff)
/intern/cycles/device/device_kernel.cpp (+0, -2) (Diff)
/intern/cycles/device/optix/device_impl.cpp (+4, -1) (Diff)
/intern/cycles/integrator/denoiser_oidn.cpp (+8, -5) (Diff)
/intern/cycles/integrator/pass_accessor.cpp (+28, -32) (Diff)
/intern/cycles/integrator/pass_accessor.h (+0, -1) (Diff)
/intern/cycles/integrator/pass_accessor_cpu.cpp (+0, -1) (Diff)
/intern/cycles/integrator/pass_accessor_cpu.h (+0, -1) (Diff)
/intern/cycles/integrator/pass_accessor_gpu.cpp (+0, -1) (Diff)
/intern/cycles/integrator/pass_accessor_gpu.h (+0, -1) (Diff)
/intern/cycles/integrator/path_trace.cpp (+14, -1) (Diff)
/intern/cycles/integrator/path_trace.h (+8, -2) (Diff)
/intern/cycles/integrator/path_trace_work.cpp (+24, -0) (Diff)
/intern/cycles/integrator/path_trace_work.h (+12, -2) (Diff)
/intern/cycles/integrator/path_trace_work_cpu.cpp (+4, -6) (Diff)
/intern/cycles/integrator/path_trace_work_cpu.h (+3, -1) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.cpp (+17, -15) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.h (+6, -4) (Diff)
/intern/cycles/kernel/device/cuda/kernel.cu (+6, -4) (Diff)
/intern/cycles/kernel/kernel_accumulate.h (+3, -16) (Diff)
/intern/cycles/kernel/kernel_film.h (+0, -25) (Diff)
/intern/cycles/kernel/kernel_types.h (+1, -3) (Diff)
/intern/cycles/render/bake.cpp (+2, -2) (Diff)
/intern/cycles/render/buffers.cpp (+29, -6) (Diff)
/intern/cycles/render/buffers.h (+5, -2) (Diff)
/intern/cycles/render/film.cpp (+49, -35) (Diff)
/intern/cycles/render/film.h (+4, -3) (Diff)
/intern/cycles/render/pass.cpp (+147, -103) (Diff)
/intern/cycles/render/pass.h (+69, -28) (Diff)
/intern/cycles/render/scene.cpp (+11, -9) (Diff)
/intern/cycles/render/session.cpp (+11, -3) (Diff)
/intern/cycles/blender/blender_sync.cpp (+51, -25) (Diff)
/intern/cycles/device/device_kernel.cpp (+0, -2) (Diff)
/intern/cycles/device/optix/device_impl.cpp (+4, -1) (Diff)
/intern/cycles/integrator/denoiser_oidn.cpp (+8, -5) (Diff)
/intern/cycles/integrator/pass_accessor.cpp (+28, -32) (Diff)
/intern/cycles/integrator/pass_accessor.h (+0, -1) (Diff)
/intern/cycles/integrator/pass_accessor_cpu.cpp (+0, -1) (Diff)
/intern/cycles/integrator/pass_accessor_cpu.h (+0, -1) (Diff)
/intern/cycles/integrator/pass_accessor_gpu.cpp (+0, -1) (Diff)
/intern/cycles/integrator/pass_accessor_gpu.h (+0, -1) (Diff)
/intern/cycles/integrator/path_trace.cpp (+14, -1) (Diff)
/intern/cycles/integrator/path_trace.h (+8, -2) (Diff)
/intern/cycles/integrator/path_trace_work.cpp (+24, -0) (Diff)
/intern/cycles/integrator/path_trace_work.h (+12, -2) (Diff)
/intern/cycles/integrator/path_trace_work_cpu.cpp (+4, -6) (Diff)
/intern/cycles/integrator/path_trace_work_cpu.h (+3, -1) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.cpp (+17, -15) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.h (+6, -4) (Diff)
/intern/cycles/kernel/device/cuda/kernel.cu (+6, -4) (Diff)
/intern/cycles/kernel/kernel_accumulate.h (+3, -16) (Diff)
/intern/cycles/kernel/kernel_film.h (+0, -25) (Diff)
/intern/cycles/kernel/kernel_types.h (+1, -3) (Diff)
/intern/cycles/render/bake.cpp (+2, -2) (Diff)
/intern/cycles/render/buffers.cpp (+29, -6) (Diff)
/intern/cycles/render/buffers.h (+5, -2) (Diff)
/intern/cycles/render/film.cpp (+49, -35) (Diff)
/intern/cycles/render/film.h (+4, -3) (Diff)
/intern/cycles/render/pass.cpp (+147, -103) (Diff)
/intern/cycles/render/pass.h (+69, -28) (Diff)
/intern/cycles/render/scene.cpp (+11, -9) (Diff)
/intern/cycles/render/session.cpp (+11, -3) (Diff)