Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-12-05 19:27:52 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2014-12-05 20:15:04 +0300
commit2b4eeb79cd77bebdb98c769b56dbe0a87e034e1a (patch)
tree05633e664998aa9fd1e2241da163a71a6bb04184 /intern
parentbd0b9ed0c0436cda050f139b9d30bd3d0648d09a (diff)
Cycles: Report error to the blender using report API
This way when something goes wrong in Cycles (for example out of VRAM, timelimit launching the kernel etc) we'll have a nice report in the Info space header. Sure it'll be nice to have mention of error in the image editor's information line, but that's for the future. This fixes T42747: "CUDA error" appears only momentarily, then disappears
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/blender/blender_session.cpp15
-rw-r--r--intern/cycles/blender/blender_session.h1
2 files changed, 16 insertions, 0 deletions
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 66d63d62067..39085ff2a1c 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -92,6 +92,7 @@ void BlenderSession::create_session()
/* reset status/progress */
last_status = "";
+ last_error = "";
last_progress = -1.0f;
start_resize_time = 0.0;
@@ -863,6 +864,20 @@ void BlenderSession::update_status_progress()
b_engine.update_progress(progress);
last_progress = progress;
}
+
+ if (session->progress.get_error()) {
+ string error = session->progress.get_error_message();
+ if(error != last_error) {
+ /* TODO(sergey): Currently C++ RNA API doesn't let us to
+ * use mnemonic name for the variable. Would be nice to
+ * have this figured out.
+ *
+ * For until then, 1 << 5 means RPT_ERROR.
+ */
+ b_engine.report(1 << 5, error.c_str());
+ last_error = error;
+ }
+ }
}
void BlenderSession::tag_update()
diff --git a/intern/cycles/blender/blender_session.h b/intern/cycles/blender/blender_session.h
index ac685118b3d..143a23af5c6 100644
--- a/intern/cycles/blender/blender_session.h
+++ b/intern/cycles/blender/blender_session.h
@@ -91,6 +91,7 @@ public:
string b_rlay_name;
string last_status;
+ string last_error;
float last_progress;
int width, height;