Blender Git Commit Log

Git Commits -> Revision b30225b

Revision b30225b by Sergey Sharybin (cycles-x)
April 13, 2021, 16:00 (GMT)
Cycles: Move denoising passes to generic passes routines

The change makes it so denoising passes are handled in the same exact
way as "regular" passes are, allowing to get rid of some exceptions in
the code.

The current downside is that if OptiX denoiser is requested and is not
supported by the platform the passes will still be allocated. I'd say
that behavior in this case needs to be revisited: either fallback to
the OpenImageDenoiser (similar to how unsupported GPU Compute falls
back to CPU) or to move support checks in a centralized place. The one
thing which could help here is moving denoiser parameters from Session
to Scene.

The immediate benefit is that the special access to the denoiser passes
in the Buffers is no longer needed.

After this change it will also be possible to save up memory by not
allocating passes which are not needed for the denoiser: for example if
denoiser does not use normals there is no need to allocate pass for
them.

Commit Details:

Full Hash: b30225beb6394c47807fcc421291ac0299ef2639
Parent Commit: 220d3ed
Lines Changed: +211, -258

19 Modified Paths:

/intern/cycles/blender/blender_camera.cpp (+1, -6) (Diff)
/intern/cycles/blender/blender_session.cpp (+10, -34) (Diff)
/intern/cycles/blender/blender_sync.cpp (+19, -33) (Diff)
/intern/cycles/blender/blender_sync.h (+2, -6) (Diff)
/intern/cycles/device/device_denoise.h (+4, -1) (Diff)
/intern/cycles/device/optix/device_impl.cpp (+2, -3) (Diff)
/intern/cycles/integrator/denoiser_device.cpp (+4, -1) (Diff)
/intern/cycles/integrator/denoiser_oidn.cpp (+3, -3) (Diff)
/intern/cycles/kernel/kernel_accumulate.h (+8, -8) (Diff)
/intern/cycles/kernel/kernel_passes.h (+4, -8) (Diff)
/intern/cycles/kernel/kernel_path_state.h (+1, -1) (Diff)
/intern/cycles/kernel/kernel_types.h (+9, -12) (Diff)
/intern/cycles/render/buffers.cpp (+73, -105) (Diff)
/intern/cycles/render/buffers.h (+10, -12) (Diff)
/intern/cycles/render/film.cpp (+43, -16) (Diff)
/intern/cycles/render/film.h (+0, -3) (Diff)
/intern/cycles/render/scene.cpp (+14, -3) (Diff)
/intern/cycles/render/scene.h (+3, -2) (Diff)
/intern/cycles/render/session.cpp (+1, -1) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021