Blender Git Loki
Git Commits -> Revision adf85cd
Revision adf85cd by Sergey Sharybin (cycles-x) September 17, 2021, 09:18 (GMT) |
Cycles X: Real memory saving when using tiled rendering The general idea is to delay reading EXR files for until after all view layers are rendered. Once they are all rendered, BlenderSession frees up as much memory as possible, and initiates processing of the on-disk files. The processing includes reading the file, optional denoising of the full frame (if the denoising is enabled), and writing the result via the write callback. The processing is done as a state-machine which routes specific calls to a full-frame processing, which allows to re-use same tile write callback in the software integration. In order to be able to know which view layer and render view is being written the API has been extended to write layer and view names. Done via BufferParams, as layer and view concepts are quite typical for the EXR files. The BufferParams also contains all fields needed for buffers access outside of the scene graph. Differential Revision: https://developer.blender.org/D12503 |
Commit Details:
Full Hash: adf85cd552d3d3319b095397f95fecc0c8961bc5
Parent Commit: e5f51c6
Lines Changed: +350, -206
18 Modified Paths:
/intern/cycles/blender/addon/engine.py (+7, -0) (Diff)
/intern/cycles/blender/addon/__init__.py (+3, -0) (Diff)
/intern/cycles/blender/blender_python.cpp (+21, -0) (Diff)
/intern/cycles/blender/blender_session.cpp (+42, -4) (Diff)
/intern/cycles/blender/blender_session.h (+6, -0) (Diff)
/intern/cycles/integrator/pass_accessor.cpp (+2, -12) (Diff)
/intern/cycles/integrator/pass_accessor.h (+1, -3) (Diff)
/intern/cycles/integrator/path_trace.cpp (+76, -68) (Diff)
/intern/cycles/integrator/path_trace.h (+19, -7) (Diff)
/intern/cycles/integrator/path_trace_work.cpp (+0, -2) (Diff)
/intern/cycles/integrator/render_scheduler.cpp (+0, -4) (Diff)
/intern/cycles/integrator/render_scheduler.h (+1, -3) (Diff)
/intern/cycles/render/buffers.cpp (+11, -2) (Diff)
/intern/cycles/render/buffers.h (+8, -2) (Diff)
/intern/cycles/render/session.cpp (+46, -19) (Diff)
/intern/cycles/render/session.h (+15, -2) (Diff)
/intern/cycles/render/tile.cpp (+65, -65) (Diff)
/intern/cycles/render/tile.h (+27, -13) (Diff)
/intern/cycles/blender/addon/__init__.py (+3, -0) (Diff)
/intern/cycles/blender/blender_python.cpp (+21, -0) (Diff)
/intern/cycles/blender/blender_session.cpp (+42, -4) (Diff)
/intern/cycles/blender/blender_session.h (+6, -0) (Diff)
/intern/cycles/integrator/pass_accessor.cpp (+2, -12) (Diff)
/intern/cycles/integrator/pass_accessor.h (+1, -3) (Diff)
/intern/cycles/integrator/path_trace.cpp (+76, -68) (Diff)
/intern/cycles/integrator/path_trace.h (+19, -7) (Diff)
/intern/cycles/integrator/path_trace_work.cpp (+0, -2) (Diff)
/intern/cycles/integrator/render_scheduler.cpp (+0, -4) (Diff)
/intern/cycles/integrator/render_scheduler.h (+1, -3) (Diff)
/intern/cycles/render/buffers.cpp (+11, -2) (Diff)
/intern/cycles/render/buffers.h (+8, -2) (Diff)
/intern/cycles/render/session.cpp (+46, -19) (Diff)
/intern/cycles/render/session.h (+15, -2) (Diff)
/intern/cycles/render/tile.cpp (+65, -65) (Diff)
/intern/cycles/render/tile.h (+27, -13) (Diff)