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.
This commit is contained in:
Sergey Sharybin
2015-07-18 16:00:07 +02:00
parent 45b5bf034b
commit cf14437ac9
3 changed files with 31 additions and 1 deletions

View File

@@ -31,6 +31,29 @@
CCL_NAMESPACE_BEGIN 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::~Device() Device::~Device()

View File

@@ -124,8 +124,12 @@ public:
use_camera_motion == requested_features.use_camera_motion && use_camera_motion == requested_features.use_camera_motion &&
use_baking == requested_features.use_baking); use_baking == requested_features.use_baking);
} }
}; };
std::ostream& operator <<(std::ostream &os,
const DeviceRequestedFeatures& requested_features);
/* Device */ /* Device */
struct DeviceDrawParams { struct DeviceDrawParams {

View File

@@ -30,6 +30,7 @@
#include "util_foreach.h" #include "util_foreach.h"
#include "util_function.h" #include "util_function.h"
#include "util_logging.h"
#include "util_math.h" #include "util_math.h"
#include "util_opengl.h" #include "util_opengl.h"
#include "util_task.h" #include "util_task.h"
@@ -650,7 +651,9 @@ void Session::load_kernels()
if(!kernels_loaded) { if(!kernels_loaded) {
progress.set_status("Loading render kernels (may take a few minutes the first time)"); 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(); string message = device->error_message();
if(message.empty()) if(message.empty())
message = "Failed loading render kernel, see console for errors"; message = "Failed loading render kernel, see console for errors";