[Bf-blender-cvs] [2b4eeb7] master: Cycles: Report error to the blender using report API

Sergey Sharybin noreply at git.blender.org
Fri Dec 5 18:15:56 CET 2014


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;




More information about the Bf-blender-cvs mailing list