[Bf-blender-cvs] [ae8e9c6f485] compositor-full-frame: Compositor: Ensure denoise output is only rendered once

Manuel Castilla noreply at git.blender.org
Thu Aug 12 22:35:57 CEST 2021


Commit: ae8e9c6f485666b47fcbf63f5b5eade38d0da7d0
Author: Manuel Castilla
Date:   Thu Aug 12 15:44:40 2021 +0200
Branches: compositor-full-frame
https://developer.blender.org/rBae8e9c6f485666b47fcbf63f5b5eade38d0da7d0

Compositor: Ensure denoise output is only rendered once

===================================================================

M	source/blender/compositor/operations/COM_DenoiseOperation.cc
M	source/blender/compositor/operations/COM_DenoiseOperation.h

===================================================================

diff --git a/source/blender/compositor/operations/COM_DenoiseOperation.cc b/source/blender/compositor/operations/COM_DenoiseOperation.cc
index 64103b51759..e7f2d5a740a 100644
--- a/source/blender/compositor/operations/COM_DenoiseOperation.cc
+++ b/source/blender/compositor/operations/COM_DenoiseOperation.cc
@@ -36,6 +36,7 @@ DenoiseOperation::DenoiseOperation()
   this->addOutputSocket(DataType::Color);
   this->m_settings = nullptr;
   flags.is_fullframe_operation = true;
+  output_rendered_ = false;
 }
 void DenoiseOperation::initExecution()
 {
@@ -196,10 +197,13 @@ void DenoiseOperation::get_area_of_interest(const int UNUSED(input_idx),
 }
 
 void DenoiseOperation::update_memory_buffer(MemoryBuffer *output,
-                                            const rcti &area,
+                                            const rcti &UNUSED(area),
                                             Span<MemoryBuffer *> inputs)
 {
-  this->generateDenoise(output, inputs[0], inputs[1], inputs[2], m_settings);
+  if (!output_rendered_) {
+    this->generateDenoise(output, inputs[0], inputs[1], inputs[2], m_settings);
+    output_rendered_ = true;
+  }
 }
 
 }  // namespace blender::compositor
diff --git a/source/blender/compositor/operations/COM_DenoiseOperation.h b/source/blender/compositor/operations/COM_DenoiseOperation.h
index f680b76264f..48209c3eacf 100644
--- a/source/blender/compositor/operations/COM_DenoiseOperation.h
+++ b/source/blender/compositor/operations/COM_DenoiseOperation.h
@@ -37,6 +37,8 @@ class DenoiseOperation : public SingleThreadedOperation {
    */
   NodeDenoise *m_settings;
 
+  bool output_rendered_;
+
  public:
   DenoiseOperation();
   /**



More information about the Bf-blender-cvs mailing list