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:
authorBastien Montagne <montagne29@wanadoo.fr>2017-11-10 12:13:19 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2017-11-10 12:13:19 +0300
commit7a6ad2901cce23d47c3a0618b4791d4eb034a6c5 (patch)
treeabf9644577d5b7adcfb196ea74b81c5ee9e7e4d1 /intern/cycles/device/device_cuda.cpp
parent7defb27f084288e0218f068aec74a693a0ca9b6a (diff)
parenta466d7ae248b2807b4e2f8693b458d3da509e9bc (diff)
Merge branch 'master' into blender2.8
Diffstat (limited to 'intern/cycles/device/device_cuda.cpp')
-rw-r--r--intern/cycles/device/device_cuda.cpp11
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);
}