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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2017-11-08 22:15:38 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2017-11-09 22:28:00 +0300
commitbd4bea3e98a436521f9a7effcfed19cdf46eadfb (patch)
treee3dea019f996d610fc5bb14281930213f648497a /intern/cycles/device/device_cpu.cpp
parentdf886b178c9c176eefb73617c997f85e9d750c2d (diff)
Cycles: avoid reallocating tile denoising memory many times during render.
Diffstat (limited to 'intern/cycles/device/device_cpu.cpp')
-rw-r--r--intern/cycles/device/device_cpu.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp
index 0f4001ab1a6..ce02a5a932e 100644
--- a/intern/cycles/device/device_cpu.cpp
+++ b/intern/cycles/device/device_cpu.cpp
@@ -712,12 +712,10 @@ public:
}
}
- void denoise(DeviceTask &task, RenderTile &tile)
+ void denoise(DeviceTask &task, DenoisingTask& denoising, RenderTile &tile)
{
tile.sample = tile.start_sample + tile.num_samples;
- DenoisingTask denoising(this);
-
denoising.functions.construct_transform = function_bind(&CPUDevice::denoising_construct_transform, this, &denoising);
denoising.functions.reconstruct = function_bind(&CPUDevice::denoising_reconstruct, this, _1, _2, _3, &denoising);
denoising.functions.divide_shadow = function_bind(&CPUDevice::denoising_divide_shadow, this, _1, _2, _3, _4, _5, &denoising);
@@ -769,6 +767,8 @@ public:
}
RenderTile tile;
+ DenoisingTask denoising(this);
+
while(task.acquire_tile(this, tile)) {
if(tile.task == RenderTile::PATH_TRACE) {
if(use_split_kernel) {
@@ -780,7 +780,7 @@ public:
}
}
else if(tile.task == RenderTile::DENOISE) {
- denoise(task, tile);
+ denoise(task, denoising, tile);
}
task.release_tile(tile);