diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-01-09 18:57:01 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-01-09 19:16:29 +0300 |
commit | 0bb0e07e6109fc474b8ff1a1d2422e40bd3bec40 (patch) | |
tree | 8aa7fc5e3813eda383ae3d6278b5d35190d6a2a4 /intern/cycles/render | |
parent | b7fb3296c101bf408455352ec9784a8870672c81 (diff) |
Fix Cycles viewport render doing some unnecessary work at the start.
In some cases it would load adaptive kernels or even start rendering
twice because the first time the scene was not fully synced yet.
Diffstat (limited to 'intern/cycles/render')
-rw-r--r-- | intern/cycles/render/session.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index d6d0ffb4a6b..edbf9947b70 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -129,7 +129,9 @@ Session::~Session() void Session::start() { - session_thread = new thread(function_bind(&Session::run, this)); + if (!session_thread) { + session_thread = new thread(function_bind(&Session::run, this)); + } } bool Session::ready_to_reset() @@ -830,8 +832,10 @@ void Session::set_pause(bool pause_) void Session::wait() { - session_thread->join(); - delete session_thread; + if (session_thread) { + session_thread->join(); + delete session_thread; + } session_thread = NULL; } |