diff options
author | Jeroen Bakker <jeroen@blender.org> | 2021-03-31 13:45:42 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2021-03-31 15:43:14 +0300 |
commit | 1a7b94236e0f4a1ff382a9c17e723c53130ce872 (patch) | |
tree | 1e9a297bf1cdd261c9011b6675b3a919a8ede5d3 /source/blender/compositor/intern/COM_OpenCLDevice.cc | |
parent | 14901e37741981a1317e6eb29f8be7c96526293d (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.cc | 12 |
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; |