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:
authorJeroen Bakker <jeroen@blender.org>2021-03-31 13:45:42 +0300
committerJeroen Bakker <jeroen@blender.org>2021-03-31 15:43:14 +0300
commit1a7b94236e0f4a1ff382a9c17e723c53130ce872 (patch)
tree1e9a297bf1cdd261c9011b6675b3a919a8ede5d3 /source/blender/compositor/intern/COM_OpenCLDevice.cc
parent14901e37741981a1317e6eb29f8be7c96526293d (diff)
Compositor: Keep WorkPackages and Data Around.
WorkPackages struct was created when scheduled. This patch keeps the WorkPackages around and stores additional data with the workpackages. The speedup is to small to notice, but it is needed as preparation to introduce a faster scheduling method.
Diffstat (limited to 'source/blender/compositor/intern/COM_OpenCLDevice.cc')
-rw-r--r--source/blender/compositor/intern/COM_OpenCLDevice.cc12
1 files changed, 5 insertions, 7 deletions
diff --git a/source/blender/compositor/intern/COM_OpenCLDevice.cc b/source/blender/compositor/intern/COM_OpenCLDevice.cc
index ac6f1490083..b96dbe91434 100644
--- a/source/blender/compositor/intern/COM_OpenCLDevice.cc
+++ b/source/blender/compositor/intern/COM_OpenCLDevice.cc
@@ -57,18 +57,16 @@ OpenCLDevice::~OpenCLDevice()
}
}
-void OpenCLDevice::execute(WorkPackage *work)
+void OpenCLDevice::execute(WorkPackage *work_package)
{
- const unsigned int chunkNumber = work->chunk_number;
- ExecutionGroup *executionGroup = work->execution_group;
- rcti rect;
+ const unsigned int chunkNumber = work_package->chunk_number;
+ ExecutionGroup *executionGroup = work_package->execution_group;
- executionGroup->determineChunkRect(&rect, chunkNumber);
MemoryBuffer **inputBuffers = executionGroup->getInputBuffersOpenCL(chunkNumber);
- MemoryBuffer *outputBuffer = executionGroup->allocateOutputBuffer(rect);
+ MemoryBuffer *outputBuffer = executionGroup->allocateOutputBuffer(work_package->rect);
executionGroup->getOutputOperation()->executeOpenCLRegion(
- this, &rect, chunkNumber, inputBuffers, outputBuffer);
+ this, &work_package->rect, chunkNumber, inputBuffers, outputBuffer);
delete outputBuffer;