diff options
Diffstat (limited to 'intern/cycles/session')
-rw-r--r-- | intern/cycles/session/merge.h | 2 | ||||
-rw-r--r-- | intern/cycles/session/session.cpp | 11 | ||||
-rw-r--r-- | intern/cycles/session/tile.cpp | 5 |
3 files changed, 16 insertions, 2 deletions
diff --git a/intern/cycles/session/merge.h b/intern/cycles/session/merge.h index 702ca5c3eb8..d8a4f04a27b 100644 --- a/intern/cycles/session/merge.h +++ b/intern/cycles/session/merge.h @@ -9,7 +9,7 @@ CCL_NAMESPACE_BEGIN -/* Merge OpenEXR multilayer renders. */ +/* Merge OpenEXR multi-layer renders. */ class ImageMerger { public: diff --git a/intern/cycles/session/session.cpp b/intern/cycles/session/session.cpp index a2955da5480..acaa55f4990 100644 --- a/intern/cycles/session/session.cpp +++ b/intern/cycles/session/session.cpp @@ -43,6 +43,10 @@ Session::Session(const SessionParams ¶ms_, const SceneParams &scene_params) device = Device::create(params.device, stats, profiler); + if (device->have_error()) { + progress.set_error(device->error_message()); + } + scene = new Scene(scene_params, device); /* Configure path tracer. */ @@ -318,6 +322,13 @@ RenderWork Session::run_update_for_next_iteration() path_trace_->set_adaptive_sampling(adaptive_sampling); } + /* Update path guiding. */ + { + const GuidingParams guiding_params = scene->integrator->get_guiding_params(device); + const bool guiding_reset = (guiding_params.use) ? scene->need_reset(false) : false; + path_trace_->set_guiding_params(guiding_params, guiding_reset); + } + render_scheduler_.set_num_samples(params.samples); render_scheduler_.set_start_sample(params.sample_offset); render_scheduler_.set_time_limit(params.time_limit); diff --git a/intern/cycles/session/tile.cpp b/intern/cycles/session/tile.cpp index f4930cbb945..362372f1d7b 100644 --- a/intern/cycles/session/tile.cpp +++ b/intern/cycles/session/tile.cpp @@ -7,6 +7,7 @@ #include "graph/node.h" #include "scene/background.h" +#include "scene/bake.h" #include "scene/film.h" #include "scene/integrator.h" #include "scene/scene.h" @@ -367,7 +368,9 @@ void TileManager::update(const BufferParams ¶ms, const Scene *scene) node_to_image_spec_atttributes( &write_state_.image_spec, &denoise_params, ATTR_DENOISE_SOCKET_PREFIX); - if (adaptive_sampling.use) { + /* Not adaptive sampling overscan yet for baking, would need overscan also + * for buffers read from the output driver. */ + if (adaptive_sampling.use && !scene->bake_manager->get_baking()) { overscan_ = 4; } else { |