Blender V4.3
COM_WorkScheduler.cc File Reference
#include "COM_WorkScheduler.h"
#include "COM_CPUDevice.h"
#include "MEM_guardedalloc.h"
#include "BLI_task.h"
#include "BLI_threads.h"
#include "BLI_vector.hh"
#include "BKE_global.hh"

Go to the source code of this file.

Namespaces

namespace  blender
 
namespace  blender::compositor
 

Enumerations

enum class  blender::compositor::ThreadingModel { blender::compositor::SingleThreaded , blender::compositor::Queue , blender::compositor::Task }
 

Functions

constexpr ThreadingModel blender::compositor::COM_threading_model ()
 
static blender::compositor::ThreadLocal (CPUDevice *) g_thread_device
 
Single threaded Scheduling
static void blender::compositor::threading_model_single_thread_execute (WorkPackage *package)
 
Queue Scheduling
static void * blender::compositor::threading_model_queue_execute (void *data)
 
static void blender::compositor::threading_model_queue_schedule (WorkPackage *package)
 
static void blender::compositor::threading_model_queue_start ()
 
static void blender::compositor::threading_model_queue_finish ()
 
static void blender::compositor::threading_model_queue_stop ()
 
static void blender::compositor::threading_model_queue_initialize (const int num_cpu_threads)
 
static void blender::compositor::threading_model_queue_deinitialize ()
 
Task Scheduling
static void blender::compositor::threading_model_task_execute (TaskPool *__restrict, void *task_data)
 
static void blender::compositor::threading_model_task_schedule (WorkPackage *package)
 
static void blender::compositor::threading_model_task_start ()
 
static void blender::compositor::threading_model_task_finish ()
 
static void blender::compositor::threading_model_task_stop ()
 

Variables

struct { 
 
   struct { 
 
      Vector< CPUDevice >   blender::compositor::devices 
 list of all CPUDevices. for every hardware thread an instance of CPUDevice is created More...
 
      ListBase   blender::compositor::threads 
 list of all thread for every CPUDevice in cpudevices a thread exists. More...
 
      bool   blender::compositor::initialized = false 
 
      ThreadQueue *   blender::compositor::queue 
 all scheduled work for the cpu More...
 
   }   blender::compositor::queue 
 
   struct { 
 
      TaskPool *   blender::compositor::pool 
 
   }   blender::compositor::task 
 
   int   blender::compositor::num_cpu_threads 
 
blender::compositor::g_work_scheduler