diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-11-23 00:49:33 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-11-23 00:49:33 +0400 |
commit | 086e4ed825b7938400f14999acc7faf5f2594c00 (patch) | |
tree | 487f841117ef8f33226061e4af0b5e79a32cb4e6 /intern/cycles/render/session.cpp | |
parent | 055ddbc22de62e197f706e591932a7593dd3fb4c (diff) |
Cycles: improve error reporting for opencl and cuda, showing error messages in
viewport instead of only console.
Diffstat (limited to 'intern/cycles/render/session.cpp')
-rw-r--r-- | intern/cycles/render/session.cpp | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 2deb83674cc..73ac033623d 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -203,6 +203,10 @@ void Session::run_gpu() if(!no_tiles) { /* update scene */ update_scene(); + + if(device->error_message() != "") + progress.set_cancel(device->error_message()); + if(progress.get_cancel()) break; } @@ -222,6 +226,9 @@ void Session::run_gpu() device->task_wait(); + if(device->error_message() != "") + progress.set_cancel(device->error_message()); + if(progress.get_cancel()) break; } @@ -243,6 +250,9 @@ void Session::run_gpu() } } + if(device->error_message() != "") + progress.set_cancel(device->error_message()); + if(progress.get_cancel()) break; } @@ -345,6 +355,10 @@ void Session::run_cpu() /* update scene */ update_scene(); + + if(device->error_message() != "") + progress.set_cancel(device->error_message()); + if(progress.get_cancel()) break; @@ -360,6 +374,9 @@ void Session::run_cpu() if(!params.background) need_tonemap = true; + + if(device->error_message() != "") + progress.set_cancel(device->error_message()); } device->task_wait(); @@ -379,6 +396,9 @@ void Session::run_cpu() want to show the result of an incomplete sample*/ tonemap(); } + + if(device->error_message() != "") + progress.set_cancel(device->error_message()); } progress.set_update(); @@ -391,7 +411,11 @@ void Session::run() progress.set_status("Loading render kernels (may take a few minutes the first time)"); if(!device->load_kernels()) { - progress.set_status("Failed loading render kernel, see console for errors"); + 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; } @@ -409,7 +433,7 @@ void Session::run() /* progress update */ if(progress.get_cancel()) - progress.set_status(progress.get_cancel_message()); + progress.set_status("Cancel", progress.get_cancel_message()); else progress.set_update(); } |