From c4b64343d02069b83083e974aaee1fed686f4328 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 23 Feb 2012 19:48:18 +0000 Subject: Fix #30246: rendering multiple render layers with CUDA still not working, should really be fixed now. --- intern/cycles/render/session.cpp | 21 +++++++++++++-------- intern/cycles/render/session.h | 2 ++ 2 files changed, 15 insertions(+), 8 deletions(-) (limited to 'intern') 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; -- cgit v1.2.3