Blender Git Commit Log

Git Commits -> Revision 9adfd27

Revision 9adfd27 by Manuel Castilla (master)
June 1, 2021, 08:51 (GMT)
Compositor: Full-frame base system

This patch adds the base code needed to make the full-frame system work for both current tiled/per-pixel implementation of operations and full-frame.

Two execution models:
- Tiled: Current implementation. Renders execution groups in tiles from outputs to input. Not all operations are buffered. Runs the tiled/per-pixel implementation.
- FullFrame: All operations are buffered. Fully renders operations from inputs to outputs. Runs full-frame implementation of operations if available otherwise the current tiled/per-pixel. Creates output buffers on first read and free them as soon as all its readers have finished, reducing peak memory usage of complex/long trees. Operations are multi-threaded but do not run in parallel as Tiled (will be done in another patch).

This should allow us to convert operations to full-frame in small steps with the system already working and solve the problem of high memory usage.

FullFrame breaking changes respect Tiled system, mainly:
- Translate, Rotate, Scale, and Transform take effect immediately instead of next buffered operation.
- Any sampling is always done over inputs instead of last buffered operation.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D11113

Commit Details:

Full Hash: 9adfd278f7487798f1b0124c7e44cf9934b4ba54
Parent Commit: 930ad92
Lines Changed: +1629, -158

12 Added Paths:

/source/blender/compositor/intern/COM_BufferOperation.cc (+65, -0) (View)
/source/blender/compositor/intern/COM_BufferOperation.h (+37, -0) (View)
/source/blender/compositor/intern/COM_ExecutionModel.cc (+48, -0) (View)
/source/blender/compositor/intern/COM_ExecutionModel.h (+84, -0) (View)
/source/blender/compositor/intern/COM_FullFrameExecutionModel.cc (+328, -0) (View)
/source/blender/compositor/intern/COM_FullFrameExecutionModel.h (+89, -0) (View)
/source/blender/compositor/intern/COM_MultiThreadedOperation.cc (+26, -0) (View)
/source/blender/compositor/intern/COM_MultiThreadedOperation.h (+73, -0) (View)
/source/blender/compositor/intern/COM_SharedOperationBuffers.cc (+131, -0) (View)
/source/blender/compositor/intern/COM_SharedOperationBuffers.h (+71, -0) (View)
/source/blender/compositor/intern/COM_TiledExecutionModel.cc (+158, -0) (View)
/source/blender/compositor/intern/COM_TiledExecutionModel.h (+54, -0) (View)

24 Modified Paths:

/release/scripts/startup/bl_ui/space_node.py (+4, -0) (Diff)
/release/scripts/startup/bl_ui/space_userpref.py (+1, -0) (Diff)
/source/blender/compositor/CMakeLists.txt (+12, -0) (Diff)
/source/blender/compositor/COM_defines.h (+10, -0) (Diff)
/source/blender/compositor/intern/COM_CompositorContext.cc (+18, -0) (Diff)
/source/blender/compositor/intern/COM_CompositorContext.h (+5, -0) (Diff)
/source/blender/compositor/intern/COM_CPUDevice.cc (+18, -5) (Diff)
/source/blender/compositor/intern/COM_Debug.cc (+22, -15) (Diff)
/source/blender/compositor/intern/COM_Debug.h (+1, -1) (Diff)
/source/blender/compositor/intern/COM_Enums.h (+15, -0) (Diff)
/source/blender/compositor/intern/COM_ExecutionGroup.cc (+1, -0) (Diff)
/source/blender/compositor/intern/COM_ExecutionSystem.cc (+18, -125) (Diff)
/source/blender/compositor/intern/COM_ExecutionSystem.h (+22, -3) (Diff)
/source/blender/compositor/intern/COM_NodeOperation.cc (+176, -0) (Diff)
/source/blender/compositor/intern/COM_NodeOperation.h (+66, -0) (Diff)
/source/blender/compositor/intern/COM_NodeOperationBuilder.cc (+8, -4) (Diff)
/source/blender/compositor/intern/COM_WorkPackage.h (+13, -0) (Diff)
/source/blender/compositor/intern/COM_WorkScheduler.cc (+11, -2) (Diff)
/source/blender/compositor/intern/COM_WorkScheduler.h (+2, -0) (Diff)
/source/blender/compositor/nodes/COM_TranslateNode.cc (+4, -1) (Diff)
/source/blender/makesdna/DNA_node_types.h (+8, -1) (Diff)
/source/blender/makesdna/DNA_userdef_types.h (+2, -1) (Diff)
/source/blender/makesrna/intern/rna_nodetree.c (+20, -0) (Diff)
/source/blender/makesrna/intern/rna_userdef.c (+8, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021