New ("fullframe") CPU compositor backend is being used now, and all the code
related to "tiled" CPU compositor is just never used anymore. The new backend
is faster, uses less memory, better matches GPU compositor, etc.
TL;DR: 20 thousand lines of code gone.
This commit:
- Removes various bits and pieces related to "tiled" compositor (execution
groups, one-pixel-at-a-time node processing, read/write buffer operations
related to node execution groups).
- "GPU" (OpenCL) execution device, that was only used by several nodes of
the tiled compositor.
- With that, remove CLEW external library too, since nothing within Blender
uses OpenCL directly anymore.
Pull Request: https://projects.blender.org/blender/blender/pulls/118819
71 lines
1.7 KiB
C++
71 lines
1.7 KiB
C++
/* SPDX-FileCopyrightText: 2011 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
#pragma once
|
|
|
|
#ifdef WITH_CXX_GUARDEDALLOC
|
|
# include "MEM_guardedalloc.h"
|
|
#endif
|
|
|
|
namespace blender::compositor {
|
|
|
|
struct WorkPackage;
|
|
|
|
/** \brief the workscheduler
|
|
* \ingroup execution
|
|
*/
|
|
struct WorkScheduler {
|
|
/**
|
|
* \brief schedule a chunk of a group to be calculated.
|
|
* An execution group schedules a chunk in the WorkScheduler
|
|
*/
|
|
static void schedule(WorkPackage *package);
|
|
|
|
/**
|
|
* \brief initialize the WorkScheduler
|
|
*
|
|
* during initialization the mutexes are initialized.
|
|
* there are two mutexes (for every device type one)
|
|
* After mutex initialization the system is queried in order to count the number of CPUDevices
|
|
* to be created. For every hardware thread a CPUDevice is created.
|
|
*/
|
|
static void initialize(int num_cpu_threads);
|
|
|
|
/**
|
|
* \brief deinitialize the WorkScheduler
|
|
* free all allocated resources
|
|
*/
|
|
static void deinitialize();
|
|
|
|
/**
|
|
* \brief Start the execution
|
|
* this methods will start the WorkScheduler. Inside this method all threads are initialized.
|
|
* for every device a thread is created.
|
|
* \see initialize Initialization and query of the number of devices
|
|
*/
|
|
static void start();
|
|
|
|
/**
|
|
* \brief stop the execution
|
|
* All created thread by the start method are destroyed.
|
|
* \see start
|
|
*/
|
|
static void stop();
|
|
|
|
/**
|
|
* \brief wait for all work to be completed.
|
|
*/
|
|
static void finish();
|
|
|
|
static int get_num_cpu_threads();
|
|
|
|
static int current_thread_id();
|
|
|
|
#ifdef WITH_CXX_GUARDEDALLOC
|
|
MEM_CXX_CLASS_ALLOC_FUNCS("COM:WorkScheduler")
|
|
#endif
|
|
};
|
|
|
|
} // namespace blender::compositor
|