diff options
Diffstat (limited to 'intern/cycles/device/device_cpu.cpp')
-rw-r--r-- | intern/cycles/device/device_cpu.cpp | 8 |
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); |