[Bf-blender-cvs] [51b14e36304] temp-compositor-single-threaded-operation: Merge branch 'master' into temp-compositor-single-threaded-operation

Jeroen Bakker noreply at git.blender.org
Fri Apr 2 15:53:38 CEST 2021


Commit: 51b14e36304ffda18a6dc13319472ff44810f24e
Author: Jeroen Bakker
Date:   Fri Apr 2 15:48:47 2021 +0200
Branches: temp-compositor-single-threaded-operation
https://developer.blender.org/rB51b14e36304ffda18a6dc13319472ff44810f24e

Merge branch 'master' into temp-compositor-single-threaded-operation

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



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

diff --cc source/blender/compositor/COM_defines.h
index 9e3f99cd49d,c5ff2b3adc6..f2042f25d4d
--- a/source/blender/compositor/COM_defines.h
+++ b/source/blender/compositor/COM_defines.h
@@@ -52,69 -52,6 +52,21 @@@ constexpr int COM_data_type_num_channel
  constexpr int COM_DATA_TYPE_VALUE_CHANNELS = COM_data_type_num_channels(DataType::Value);
  constexpr int COM_DATA_TYPE_COLOR_CHANNELS = COM_data_type_num_channels(DataType::Color);
  
- /**
-  * \brief Possible quality settings
-  * \see CompositorContext.quality
-  * \ingroup Execution
-  */
- enum class CompositorQuality {
-   /** \brief High quality setting */
-   High = 0,
-   /** \brief Medium quality setting */
-   Medium = 1,
-   /** \brief Low quality setting */
-   Low = 2,
- };
- 
- /**
-  * \brief Possible priority settings
-  * \ingroup Execution
-  */
- enum class CompositorPriority {
-   /** \brief High quality setting */
-   High = 2,
-   /** \brief Medium quality setting */
-   Medium = 1,
-   /** \brief Low quality setting */
-   Low = 0,
-   /** No priority set. Is used to mark WorkPackages that aren't used. */
-   Unset = -1,
- };
- 
 +enum class eSchedulingMode {
 +  /**
 +   * Input based scheduling mode. Scheduling starts from input nodes. When a work package is
 +   * finished, other work packages are scheduled where all inputs have been executed..
 +   */
 +  InputToOutput,
 +
 +  /**
 +   * Scheduling mode where outputs are scheduled when all its inputs have been completed. When
 +   * inputs aren't completed it tries to schedule these inputs recursivly.
 +   */
 +  OutputToInput,
 +};
 +static constexpr eSchedulingMode COM_SCHEDULING_MODE = eSchedulingMode::OutputToInput;
 +
- /**
-  * \brief the execution state of a chunk in an ExecutionGroup
-  * \ingroup Execution
-  */
- enum class eChunkExecutionState {
-   /**
-    * \brief chunk is not yet scheduled
-    */
-   NotScheduled = 0,
-   /**
-    * \brief chunk is scheduled, but not yet executed
-    */
-   Scheduled = 1,
-   /**
-    * \brief chunk is executed.
-    */
-   Executed = 2,
- };
- 
  // configurable items
  
  // chunk size determination
diff --cc source/blender/compositor/intern/COM_Enums.h
index 00000000000,164fe7a3c27..705be2ab7ce
mode 000000,100644..100644
--- a/source/blender/compositor/intern/COM_Enums.h
+++ b/source/blender/compositor/intern/COM_Enums.h
@@@ -1,0 -1,76 +1,78 @@@
+ /*
+  * This program is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU General Public License
+  * as published by the Free Software Foundation; either version 2
+  * of the License, or (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program; if not, write to the Free Software Foundation,
+  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+  *
+  * Copyright 2021, Blender Foundation.
+  */
+ 
+ #pragma once
+ 
+ #include "COM_defines.h"
+ 
+ #include <ostream>
+ 
+ namespace blender::compositor {
+ 
+ /**
+  * \brief Possible quality settings
+  * \see CompositorContext.quality
+  * \ingroup Execution
+  */
+ enum class CompositorQuality {
+   /** \brief High quality setting */
+   High = 0,
+   /** \brief Medium quality setting */
+   Medium = 1,
+   /** \brief Low quality setting */
+   Low = 2,
+ };
+ 
+ /**
+  * \brief Possible priority settings
+  * \ingroup Execution
+  */
+ enum class CompositorPriority {
+   /** \brief High quality setting */
+   High = 2,
+   /** \brief Medium quality setting */
+   Medium = 1,
+   /** \brief Low quality setting */
+   Low = 0,
++  /** No priority set. Is used to mark WorkPackages that aren't used. */
++  Unset = -1,
+ };
+ 
+ /**
+  * \brief the execution state of a chunk in an ExecutionGroup
+  * \ingroup Execution
+  */
+ enum class eChunkExecutionState {
+   /**
+    * \brief chunk is not yet scheduled
+    */
+   NotScheduled = 0,
+   /**
+    * \brief chunk is scheduled, but not yet executed
+    */
+   Scheduled = 1,
+   /**
+    * \brief chunk is executed.
+    */
+   Executed = 2,
+ };
+ 
+ std::ostream &operator<<(std::ostream &os, const CompositorPriority &priority);
+ std::ostream &operator<<(std::ostream &os, const eChunkExecutionState &execution_state);
+ 
+ }  // namespace blender::compositor
diff --cc source/blender/compositor/intern/COM_WorkPackage.h
index 8ec1ecae6f4,b8e40dc7226..acb23711ed9
--- a/source/blender/compositor/intern/COM_WorkPackage.h
+++ b/source/blender/compositor/intern/COM_WorkPackage.h
@@@ -18,13 -18,12 +18,15 @@@
  
  #pragma once
  
- #include "COM_defines.h"
+ #include "COM_Enums.h"
  
  #include "BLI_rect.h"
 +#include "BLI_vector.hh"
 +
 +#include "atomic_ops.h"
  
+ #include <ostream>
+ 
  namespace blender::compositor {
  // Forward Declarations.
  class ExecutionGroup;



More information about the Bf-blender-cvs mailing list