Blender Git Commit Log

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)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021