[Bf-blender-cvs] [268ff5e3489] cycles-x: Fix possible race condition in Cycles X
Sergey Sharybin
noreply at git.blender.org
Mon May 17 11:53:01 CEST 2021
Commit: 268ff5e3489a7fcf79fd9a2dd87c642f8d94d3be
Author: Sergey Sharybin
Date: Mon May 17 11:46:04 2021 +0200
Branches: cycles-x
https://developer.blender.org/rB268ff5e3489a7fcf79fd9a2dd87c642f8d94d3be
Fix possible race condition in Cycles X
Not a fix easily measurable by artists, but something what is correct
from multi-threaded environment.
Update number of samples in the scheduler in a safe place, where we
know that scheduler is not accessing the value.
===================================================================
M intern/cycles/render/session.cpp
===================================================================
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index 5f0ea4a8e9c..013c161590a 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -60,9 +60,6 @@ Session::Session(const SessionParams ¶ms_, const SceneParams &scene_params)
scene = new Scene(scene_params, device);
- /* Configure scheduler */
- render_scheduler_.set_num_samples(params.samples);
-
/* Configure path tracer. */
path_trace_ = make_unique<PathTrace>(device, &scene->dscene, render_scheduler_);
path_trace_->set_progress(&progress);
@@ -267,6 +264,8 @@ RenderWork Session::run_update_for_next_iteration()
path_trace_->set_adaptive_sampling(adaptive_sampling);
}
+ render_scheduler_.set_num_samples(params.samples);
+
while (have_tiles) {
render_work = render_scheduler_.get_render_work();
if (render_work) {
@@ -383,9 +382,6 @@ void Session::set_samples(int samples)
if (samples != params.samples) {
params.samples = samples;
- /* TODO(sergey): Verify whether threading synchronization is needed here. */
- render_scheduler_.set_num_samples(samples);
-
pause_cond.notify_all();
}
}
More information about the Bf-blender-cvs
mailing list