[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