diff options
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/render/session.cpp | 21 | ||||
-rw-r--r-- | intern/cycles/render/session.h | 2 |
2 files changed, 15 insertions, 8 deletions
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 0abc76f7309..504e0b1f5bf 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -57,6 +57,7 @@ Session::Session(const SessionParams& params_) gpu_draw_ready = false; gpu_need_tonemap = false; pause = false; + kernels_loaded = false; } Session::~Session() @@ -414,16 +415,20 @@ void Session::run_cpu() void Session::run() { /* load kernels */ - progress.set_status("Loading render kernels (may take a few minutes the first time)"); + if(!kernels_loaded) { + progress.set_status("Loading render kernels (may take a few minutes the first time)"); - if(!device->load_kernels(params.experimental)) { - string message = device->error_message(); - if(message == "") - message = "Failed loading render kernel, see console for errors"; + if(!device->load_kernels(params.experimental)) { + string message = device->error_message(); + if(message == "") + message = "Failed loading render kernel, see console for errors"; - progress.set_status("Error", message); - progress.set_update(); - return; + progress.set_status("Error", message); + progress.set_update(); + return; + } + + kernels_loaded = true; } /* session thread loop */ diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h index a662948c15b..90616f011ea 100644 --- a/intern/cycles/render/session.h +++ b/intern/cycles/render/session.h @@ -156,6 +156,8 @@ protected: thread_condition_variable pause_cond; thread_mutex pause_mutex; + bool kernels_loaded; + double start_time; double reset_time; double preview_time; |