Blender Git Loki

Git Commits -> Revision fff5aa5

April 28, 2021, 15:13 (GMT)
[WIP] 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.

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.

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

Commit Details:

Full Hash: fff5aa5a9f72314fa43b680225b1c7eae98ddeed
Parent Commit: 1b5b4b0
Lines Changed: +880, -40

6 Added Paths:

/source/blender/compositor/intern/COM_BufferOperation.cc (+45, -0) (View)
/source/blender/compositor/intern/COM_BufferOperation.h (+37, -0) (View)
/source/blender/compositor/intern/COM_MultiThreadedOperation.cc (+25, -0) (View)
/source/blender/compositor/intern/COM_MultiThreadedOperation.h (+73, -0) (View)
/source/blender/compositor/intern/COM_OutputManager.cc (+99, -0) (View)
/source/blender/compositor/intern/COM_OutputManager.h (+67, -0) (View)

12 Modified Paths:

/source/blender/compositor/CMakeLists.txt (+6, -0) (Diff)
/source/blender/compositor/COM_defines.h (+14, -0) (Diff)
/source/blender/compositor/intern/COM_compositor.cc (+20, -5) (Diff)
/source/blender/compositor/intern/COM_CPUDevice.cc (+11, -5) (Diff)
/source/blender/compositor/intern/COM_ExecutionSystem.cc (+182, -22) (Diff)
/source/blender/compositor/intern/COM_ExecutionSystem.h (+51, -1) (Diff)
/source/blender/compositor/intern/COM_NodeOperation.cc (+174, -0) (Diff)
/source/blender/compositor/intern/COM_NodeOperation.h (+53, -0) (Diff)
/source/blender/compositor/intern/COM_NodeOperationBuilder.cc (+8, -4) (Diff)
/source/blender/compositor/intern/COM_WorkPackage.h (+8, -0) (Diff)
/source/blender/compositor/intern/COM_WorkScheduler.cc (+3, -2) (Diff)
/source/blender/compositor/nodes/COM_TranslateNode.cc (+4, -1) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021