[Bf-blender-cvs] [cf14437] master: Cycles: Log requested device features

Sergey Sharybin noreply at git.blender.org
Sat Jul 18 16:06:13 CEST 2015


Commit: cf14437ac91975aaf51b50ae6dca7abf7cc997fa
Author: Sergey Sharybin
Date:   Sat Jul 18 16:00:07 2015 +0200
Branches: master
https://developer.blender.org/rBcf14437ac91975aaf51b50ae6dca7abf7cc997fa

Cycles: Log requested device features

Useful to have this always logged because otherwise it's needed to remove cached
kernels and check build flags to see which features are enabled.

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

M	intern/cycles/device/device.cpp
M	intern/cycles/device/device.h
M	intern/cycles/render/session.cpp

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

diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp
index 5cad8e1..fc9959e 100644
--- a/intern/cycles/device/device.cpp
+++ b/intern/cycles/device/device.cpp
@@ -31,6 +31,29 @@
 
 CCL_NAMESPACE_BEGIN
 
+/* Device Requested Features */
+
+std::ostream& operator <<(std::ostream &os,
+                          const DeviceRequestedFeatures& requested_features)
+{
+	os << "Experimental features: "
+	   << (requested_features.experimental ? "On" : "Off") << std::endl;
+	os << "Max closure count: " << requested_features.max_closure << std::endl;
+	os << "Max nodes group: " << requested_features.max_nodes_group << std::endl;
+	/* TODO(sergey): Decode bitflag into list of names. */
+	os << "Nodes features: " << requested_features.nodes_features << std::endl;
+	/* TODO(sergey): Make it utility function to convert bool to string. */
+	os << "Use hair: "
+	   << (requested_features.use_hair ? "True" : "False")  << std::endl;
+	os << "Use object motion: "
+	   << (requested_features.use_object_motion ? "True" : "False")  << std::endl;
+	os << "Use camera motion: "
+	   << (requested_features.use_camera_motion ? "True" : "False")  << std::endl;
+	os << "Use Baking: "
+	   << (requested_features.use_baking ? "True" : "False")  << std::endl;
+	return os;
+}
+
 /* Device */
 
 Device::~Device()
diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h
index 7c4f5b6..ea1e20d 100644
--- a/intern/cycles/device/device.h
+++ b/intern/cycles/device/device.h
@@ -124,8 +124,12 @@ public:
 		         use_camera_motion == requested_features.use_camera_motion &&
 		         use_baking == requested_features.use_baking);
 	}
+
 };
 
+std::ostream& operator <<(std::ostream &os,
+                          const DeviceRequestedFeatures& requested_features);
+
 /* Device */
 
 struct DeviceDrawParams {
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index f3acebd..837c269 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -30,6 +30,7 @@
 
 #include "util_foreach.h"
 #include "util_function.h"
+#include "util_logging.h"
 #include "util_math.h"
 #include "util_opengl.h"
 #include "util_task.h"
@@ -650,7 +651,9 @@ void Session::load_kernels()
 	if(!kernels_loaded) {
 		progress.set_status("Loading render kernels (may take a few minutes the first time)");
 
-		if(!device->load_kernels(get_requested_device_features())) {
+		DeviceRequestedFeatures requested_features = get_requested_device_features();
+		VLOG(2) << "Requested features:\n" << requested_features;
+		if(!device->load_kernels(requested_features)) {
 			string message = device->error_message();
 			if(message.empty())
 				message = "Failed loading render kernel, see console for errors";




More information about the Bf-blender-cvs mailing list