Fix T96139: Cycles doesn't warn if the render is paused
Caused by 6ec83afb1d
.
Technically, a regression since 3.0.
Differential Revision: https://developer.blender.org/D14239
This commit is contained in:
parent
9c2e385509
commit
769ae5c866
Notes:
blender-bot
2023-06-26 11:58:59 +02:00
Referenced by issue #96139, cycles doesn't warn if the render is paused
|
@ -123,11 +123,7 @@ void Session::start()
|
|||
void Session::cancel(bool quick)
|
||||
{
|
||||
/* Check if session thread is rendering. */
|
||||
bool rendering;
|
||||
{
|
||||
thread_scoped_lock session_thread_lock(session_thread_mutex_);
|
||||
rendering = (session_thread_state_ == SESSION_THREAD_RENDER);
|
||||
}
|
||||
const bool rendering = is_session_thread_rendering();
|
||||
|
||||
if (rendering) {
|
||||
/* Cancel path trace operations. */
|
||||
|
@ -288,6 +284,12 @@ void Session::thread_render()
|
|||
progress.set_update();
|
||||
}
|
||||
|
||||
bool Session::is_session_thread_rendering()
|
||||
{
|
||||
thread_scoped_lock session_thread_lock(session_thread_mutex_);
|
||||
return (session_thread_state_ == SESSION_THREAD_RENDER);
|
||||
}
|
||||
|
||||
RenderWork Session::run_update_for_next_iteration()
|
||||
{
|
||||
RenderWork render_work;
|
||||
|
@ -570,7 +572,7 @@ void Session::set_pause(bool pause)
|
|||
}
|
||||
}
|
||||
|
||||
if (session_thread_) {
|
||||
if (is_session_thread_rendering()) {
|
||||
if (notify) {
|
||||
pause_cond_.notify_all();
|
||||
}
|
||||
|
|
|
@ -175,6 +175,10 @@ class Session {
|
|||
void thread_run();
|
||||
void thread_render();
|
||||
|
||||
/* Check whether the session thread is in `SESSION_THREAD_RENDER` state.
|
||||
* Returns true if it is so. */
|
||||
bool is_session_thread_rendering();
|
||||
|
||||
/* Update for the new iteration of the main loop in run implementation (run_cpu and run_gpu).
|
||||
*
|
||||
* Will take care of the following things:
|
||||
|
|
Loading…
Reference in New Issue