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:
Diffstat (limited to 'intern/cycles/render/session.cpp')
-rw-r--r--intern/cycles/render/session.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index 361a1465aac..7c50140ecfe 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -436,6 +436,12 @@ bool Session::acquire_tile(RenderTile &rtile, Device *tile_device, uint tile_typ
/* Reset copy state, since buffer contents change after the tile was acquired */
buffers->map_neighbor_copied = false;
+ /* This hack ensures that the copy in 'MultiDevice::map_neighbor_tiles' accounts
+ * for the buffer resolution divider. */
+ buffers->buffer.data_width = (buffers->params.width * buffers->params.get_passes_size()) /
+ tile_manager.state.resolution_divider;
+ buffers->buffer.data_height = buffers->params.height / tile_manager.state.resolution_divider;
+
return true;
}
@@ -1125,13 +1131,6 @@ bool Session::render_need_denoise(bool &delayed)
return false;
}
- /* Cannot denoise with resolution divider and separate denoising devices.
- * It breaks the copy in 'MultiDevice::map_neighbor_tiles' (which operates on
- * the full buffer dimensions and not the scaled ones). */
- if (!params.device.denoising_devices.empty() && tile_manager.state.resolution_divider > 1) {
- return false;
- }
-
/* Avoid excessive denoising in viewport after reaching a certain amount of samples. */
delayed = (tile_manager.state.sample >= 20 &&
(time_dt() - last_display_time) < params.progressive_update_timeout);