[Bf-blender-cvs] [a072bc4] openvdb: Merge branch 'master' into openvdb
Kévin Dietrich
noreply at git.blender.org
Wed Dec 30 18:40:56 CET 2015
Commit: a072bc47cb68996e5e3462c6b0d052026a66b656
Author: Kévin Dietrich
Date: Wed Dec 30 18:40:17 2015 +0100
Branches: openvdb
https://developer.blender.org/rBa072bc47cb68996e5e3462c6b0d052026a66b656
Merge branch 'master' into openvdb
Conflicts:
intern/cycles/render/svm.cpp
intern/cycles/render/svm.h
===================================================================
===================================================================
diff --cc intern/cycles/render/nodes.h
index 7cebb45,4eddc90..4ffc8aa
--- a/intern/cycles/render/nodes.h
+++ b/intern/cycles/render/nodes.h
@@@ -780,22 -1015,17 +1016,31 @@@ public
static ShaderEnum axis_enum;
ustring attribute;
+
+ virtual bool equals(const ShaderNode *other)
+ {
+ const TangentNode *tangent_node = (const TangentNode*)other;
+ return ShaderNode::equals(other) &&
+ direction_type == tangent_node->direction_type &&
+ axis == tangent_node->axis &&
+ attribute == tangent_node->attribute;
+ }
};
+class OpenVDBNode : public ShaderNode {
+public:
+ SHADER_NODE_CLASS(OpenVDBNode)
+ void attributes(Shader *shader, AttributeRequestSet *attributes);
+ bool has_spatial_varying() { return true; }
+
+ ustring filename;
+ VolumeManager *volume_manager;
+
+ int grid_slot;
+ int sampling;
+ vector<ustring> output_names;
+};
+
CCL_NAMESPACE_END
#endif /* __NODES_H__ */
diff --cc intern/cycles/render/svm.cpp
index ea3cf93,11c6036..9a8834e
--- a/intern/cycles/render/svm.cpp
+++ b/intern/cycles/render/svm.cpp
@@@ -76,9 -76,14 +76,14 @@@ void SVMShaderManager::device_update(De
if(shader->use_mis && shader->has_surface_emission)
scene->light_manager->need_update = true;
+ SVMCompiler::Summary summary;
- SVMCompiler compiler(scene->shader_manager, scene->image_manager);
+ SVMCompiler compiler(scene->shader_manager, scene->image_manager, scene->volume_manager);
compiler.background = ((int)i == scene->default_background);
- compiler.compile(scene, shader, svm_nodes, i);
+ compiler.compile(scene, shader, svm_nodes, i, &summary);
+
+ VLOG(1) << "Compilation summary:\n"
+ << "Shader name: " << shader->name << "\n"
+ << summary.full_report();
}
dscene->svm_nodes.copy((uint4*)&svm_nodes[0], svm_nodes.size());
diff --cc intern/cycles/render/svm.h
index 59e04d8,4861de1..94bfc5d
--- a/intern/cycles/render/svm.h
+++ b/intern/cycles/render/svm.h
@@@ -53,7 -52,43 +53,44 @@@ public
class SVMCompiler {
public:
+ struct Summary {
+ Summary();
+
+ /* Number of SVM nodes shader was compiled into. */
+ int num_svm_nodes;
+
+ /* Peak stack usage during shader evaluation. */
+ int peak_stack_usage;
+
+ /* Time spent on surface graph finalization. */
+ double time_finalize;
+
+ /* Time spent on bump graph finalization. */
+ double time_finalize_bump;
+
+ /* Time spent on generating SVM nodes for surface shader. */
+ double time_generate_surface;
+
+ /* Time spent on generating SVM nodes for bump shader. */
+ double time_generate_bump;
+
+ /* Time spent on generating SVM nodes for volume shader. */
+ double time_generate_volume;
+
+ /* Time spent on generating SVM nodes for displacement shader. */
+ double time_generate_displacement;
+
+ /* Total time spent on all routines. */
+ double time_total;
+
+ /* A full multiline description of the state of the compiler after
+ * compilation.
+ */
+ string full_report() const;
+ };
+
- SVMCompiler(ShaderManager *shader_manager, ImageManager *image_manager);
+ SVMCompiler(ShaderManager *shader_manager, ImageManager *image_manager, VolumeManager *volume_manager_);
++
void compile(Scene *scene,
Shader *shader,
vector<int4>& svm_nodes,
More information about the Bf-blender-cvs
mailing list