Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Castilla <manzanillawork@gmail.com>2021-06-09 11:19:28 +0300
committerManuel Castilla <manzanillawork@gmail.com>2021-06-09 12:02:40 +0300
commitd7c812f15befb161d47451afdeba9d070a7d81a7 (patch)
treeba95d7e7586699725d9d6d630bb4d56fcd8a0032 /source/blender/compositor/intern/COM_FullFrameExecutionModel.h
parent3ba16afa1e5065e9f61ee6921421efd8641807d3 (diff)
Compositor: Refactor recursive methods to iterative
In order to reduce stack size this patch converts full frame recursive methods into iterative. - No functional changes. - No performance changes. - Memory peak may slightly vary depending on the tree because now breadth-first traversal is used instead of depth-first. Tests in D11113 have same results except for test1 memory peak: 360MBs instead of 329.50MBs. Reviewed By: Jeroen Bakker (jbakker) Differential Revision: https://developer.blender.org/D11515
Diffstat (limited to 'source/blender/compositor/intern/COM_FullFrameExecutionModel.h')
-rw-r--r--source/blender/compositor/intern/COM_FullFrameExecutionModel.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/source/blender/compositor/intern/COM_FullFrameExecutionModel.h b/source/blender/compositor/intern/COM_FullFrameExecutionModel.h
index 2c0d5e0460a..e68ad93b407 100644
--- a/source/blender/compositor/intern/COM_FullFrameExecutionModel.h
+++ b/source/blender/compositor/intern/COM_FullFrameExecutionModel.h
@@ -67,8 +67,7 @@ class FullFrameExecutionModel : public ExecutionModel {
private:
void determine_areas_to_render_and_reads();
void render_operations(ExecutionSystem &exec_system);
-
- void ensure_inputs_rendered(NodeOperation *op, ExecutionSystem &exec_system);
+ void render_output_dependencies(NodeOperation *output_op, ExecutionSystem &exec_system);
Vector<MemoryBuffer *> get_input_buffers(NodeOperation *op);
MemoryBuffer *create_operation_buffer(NodeOperation *op);
void render_operation(NodeOperation *op, ExecutionSystem &exec_system);
@@ -76,8 +75,8 @@ class FullFrameExecutionModel : public ExecutionModel {
void operation_finished(NodeOperation *operation);
void get_output_render_area(NodeOperation *output_op, rcti &r_area);
- void determine_areas_to_render(NodeOperation *operation, const rcti &render_area);
- void determine_reads(NodeOperation *operation);
+ void determine_areas_to_render(NodeOperation *output_op, const rcti &output_area);
+ void determine_reads(NodeOperation *output_op);
void update_progress_bar();