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,

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

Reply via email to