Commit: 2b4eeb79cd77bebdb98c769b56dbe0a87e034e1a
Author: Sergey Sharybin
Date:   Fri Dec 5 21:27:52 2014 +0500
Branches: master
https://developer.blender.org/rB2b4eeb79cd77bebdb98c769b56dbe0a87e034e1a

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

===================================================================

M       intern/cycles/blender/blender_session.cpp
M       intern/cycles/blender/blender_session.h

===================================================================

diff --git a/intern/cycles/blender/blender_session.cpp 
b/intern/cycles/blender/blender_session.cpp
index 66d63d6..39085ff 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 ac68511..143a23a 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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to