diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2017-11-10 12:13:19 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2017-11-10 12:13:19 +0300 |
commit | 7a6ad2901cce23d47c3a0618b4791d4eb034a6c5 (patch) | |
tree | abf9644577d5b7adcfb196ea74b81c5ee9e7e4d1 /intern/cycles/device/device_cuda.cpp | |
parent | 7defb27f084288e0218f068aec74a693a0ca9b6a (diff) | |
parent | a466d7ae248b2807b4e2f8693b458d3da509e9bc (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'intern/cycles/device/device_cuda.cpp')
-rw-r--r-- | intern/cycles/device/device_cuda.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp index 2f52bd49b16..e602cba00b8 100644 --- a/intern/cycles/device/device_cuda.cpp +++ b/intern/cycles/device/device_cuda.cpp @@ -1408,10 +1408,8 @@ public: return !have_error(); } - void denoise(RenderTile &rtile, const DeviceTask &task) + void denoise(RenderTile &rtile, DenoisingTask& denoising, const DeviceTask &task) { - DenoisingTask denoising(this); - denoising.functions.construct_transform = function_bind(&CUDADevice::denoising_construct_transform, this, &denoising); denoising.functions.reconstruct = function_bind(&CUDADevice::denoising_reconstruct, this, _1, _2, _3, &denoising); denoising.functions.divide_shadow = function_bind(&CUDADevice::denoising_divide_shadow, this, _1, _2, _3, _4, _5, &denoising); @@ -1878,8 +1876,6 @@ public: CUDAContextScope scope(this); if(task->type == DeviceTask::RENDER) { - RenderTile tile; - DeviceRequestedFeatures requested_features; if(use_split_kernel()) { if(split_kernel == NULL) { @@ -1891,6 +1887,9 @@ public: device_vector<WorkTile> work_tiles(this, "work_tiles", MEM_READ_ONLY); /* keep rendering tiles until done */ + RenderTile tile; + DenoisingTask denoising(this); + while(task->acquire_tile(this, tile)) { if(tile.task == RenderTile::PATH_TRACE) { if(use_split_kernel()) { @@ -1904,7 +1903,7 @@ public: else if(tile.task == RenderTile::DENOISE) { tile.sample = tile.start_sample + tile.num_samples; - denoise(tile, *task); + denoise(tile, denoising, *task); task->update_progress(&tile, tile.w*tile.h); } |