Blender Git Commit Log

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