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)
/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)