[Bf-blender-cvs] [f72cc47d8ed] master: Shader Nodes: Unity Build

Aaron Carlisle noreply at git.blender.org
Mon Dec 6 17:48:32 CET 2021


Commit: f72cc47d8edf849af98e196f721022bacf86a5e7
Author: Aaron Carlisle
Date:   Mon Dec 6 11:47:21 2021 -0500
Branches: master
https://developer.blender.org/rBf72cc47d8edf849af98e196f721022bacf86a5e7

Shader Nodes: Unity Build

- Create a new `bf_nodes_shader` library
- Enable unity builds for  `bf_nodes_shader`, gives abount a 2.7x speed up for compile times

Reviewed By: JacquesLucke

Differential Revision: https://developer.blender.org/D13484

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

M	source/blender/nodes/CMakeLists.txt
A	source/blender/nodes/shader/CMakeLists.txt

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

diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index a05063af067..da3e0c837a2 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -19,6 +19,7 @@
 # ***** END GPL LICENSE BLOCK *****
 
 add_subdirectory(geometry)
+add_subdirectory(shader)
 
 set(INC
   .
@@ -157,99 +158,6 @@ set(SRC
   function/nodes/node_fn_value_to_string.cc
   function/node_function_util.cc
 
-  shader/nodes/node_shader_add_shader.cc
-  shader/nodes/node_shader_ambient_occlusion.cc
-  shader/nodes/node_shader_attribute.cc
-  shader/nodes/node_shader_background.cc
-  shader/nodes/node_shader_bevel.cc
-  shader/nodes/node_shader_blackbody.cc
-  shader/nodes/node_shader_brightness.cc
-  shader/nodes/node_shader_bsdf_anisotropic.cc
-  shader/nodes/node_shader_bsdf_diffuse.cc
-  shader/nodes/node_shader_bsdf_glass.cc
-  shader/nodes/node_shader_bsdf_glossy.cc
-  shader/nodes/node_shader_bsdf_hair.cc
-  shader/nodes/node_shader_bsdf_hair_principled.cc
-  shader/nodes/node_shader_bsdf_principled.cc
-  shader/nodes/node_shader_bsdf_refraction.cc
-  shader/nodes/node_shader_bsdf_toon.cc
-  shader/nodes/node_shader_bsdf_translucent.cc
-  shader/nodes/node_shader_bsdf_transparent.cc
-  shader/nodes/node_shader_bsdf_velvet.cc
-  shader/nodes/node_shader_bump.cc
-  shader/nodes/node_shader_camera.cc
-  shader/nodes/node_shader_clamp.cc
-  shader/nodes/node_shader_common.cc
-  shader/nodes/node_shader_curves.cc
-  shader/nodes/node_shader_displacement.cc
-  shader/nodes/node_shader_eevee_specular.cc
-  shader/nodes/node_shader_emission.cc
-  shader/nodes/node_shader_fresnel.cc
-  shader/nodes/node_shader_gamma.cc
-  shader/nodes/node_shader_geometry.cc
-  shader/nodes/node_shader_hair_info.cc
-  shader/nodes/node_shader_holdout.cc
-  shader/nodes/node_shader_hueSatVal.cc
-  shader/nodes/node_shader_ies_light.cc
-  shader/nodes/node_shader_invert.cc
-  shader/nodes/node_shader_layer_weight.cc
-  shader/nodes/node_shader_light_falloff.cc
-  shader/nodes/node_shader_light_path.cc
-  shader/nodes/node_shader_map_range.cc
-  shader/nodes/node_shader_mapping.cc
-  shader/nodes/node_shader_math.cc
-  shader/nodes/node_shader_mixRgb.cc
-  shader/nodes/node_shader_mix_shader.cc
-  shader/nodes/node_shader_normal.cc
-  shader/nodes/node_shader_normal_map.cc
-  shader/nodes/node_shader_object_info.cc
-  shader/nodes/node_shader_output_aov.cc
-  shader/nodes/node_shader_output_light.cc
-  shader/nodes/node_shader_output_linestyle.cc
-  shader/nodes/node_shader_output_material.cc
-  shader/nodes/node_shader_output_world.cc
-  shader/nodes/node_shader_particle_info.cc
-  shader/nodes/node_shader_rgb.cc
-  shader/nodes/node_shader_script.cc
-  shader/nodes/node_shader_sepcombHSV.cc
-  shader/nodes/node_shader_sepcombRGB.cc
-  shader/nodes/node_shader_sepcombXYZ.cc
-  shader/nodes/node_shader_shaderToRgb.cc
-  shader/nodes/node_shader_squeeze.cc
-  shader/nodes/node_shader_subsurface_scattering.cc
-  shader/nodes/node_shader_tangent.cc
-  shader/nodes/node_shader_tex_brick.cc
-  shader/nodes/node_shader_tex_checker.cc
-  shader/nodes/node_shader_tex_coord.cc
-  shader/nodes/node_shader_tex_environment.cc
-  shader/nodes/node_shader_tex_gradient.cc
-  shader/nodes/node_shader_tex_image.cc
-  shader/nodes/node_shader_tex_magic.cc
-  shader/nodes/node_shader_tex_musgrave.cc
-  shader/nodes/node_shader_tex_noise.cc
-  shader/nodes/node_shader_tex_pointdensity.cc
-  shader/nodes/node_shader_tex_sky.cc
-  shader/nodes/node_shader_tex_voronoi.cc
-  shader/nodes/node_shader_tex_wave.cc
-  shader/nodes/node_shader_tex_white_noise.cc
-  shader/nodes/node_shader_uvAlongStroke.cc
-  shader/nodes/node_shader_uvmap.cc
-  shader/nodes/node_shader_valToRgb.cc
-  shader/nodes/node_shader_value.cc
-  shader/nodes/node_shader_vectTransform.cc
-  shader/nodes/node_shader_vector_displacement.cc
-  shader/nodes/node_shader_vector_math.cc
-  shader/nodes/node_shader_vector_rotate.cc
-  shader/nodes/node_shader_vertex_color.cc
-  shader/nodes/node_shader_volume_absorption.cc
-  shader/nodes/node_shader_volume_info.cc
-  shader/nodes/node_shader_volume_principled.cc
-  shader/nodes/node_shader_volume_scatter.cc
-  shader/nodes/node_shader_wavelength.cc
-  shader/nodes/node_shader_wireframe.cc
-  shader/node_shader_tree.cc
-  shader/node_shader_util.cc
-
   texture/nodes/node_texture_at.c
   texture/nodes/node_texture_bricks.c
   texture/nodes/node_texture_checker.c
@@ -321,8 +229,8 @@ set(SRC
 set(LIB
   bf_bmesh
   bf_functions
-  bf_intern_sky
   bf_nodes_geometry
+  bf_nodes_shader
 )
 
 if(WITH_BULLET)
diff --git a/source/blender/nodes/shader/CMakeLists.txt b/source/blender/nodes/shader/CMakeLists.txt
new file mode 100644
index 00000000000..b582960f03f
--- /dev/null
+++ b/source/blender/nodes/shader/CMakeLists.txt
@@ -0,0 +1,167 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+set(INC
+  .
+  ../
+  ../intern
+  ../../blenkernel
+  ../../blenlib
+  ../../blentranslation
+  ../../depsgraph
+  ../../functions
+  ../../gpu
+  ../../imbuf
+  ../../makesdna
+  ../../makesrna
+  ../../render
+  ../../windowmanager
+  ../../../../intern/guardedalloc
+  ../../../../intern/sky/include
+)
+
+
+set(SRC
+  nodes/node_shader_add_shader.cc
+  nodes/node_shader_ambient_occlusion.cc
+  nodes/node_shader_attribute.cc
+  nodes/node_shader_background.cc
+  nodes/node_shader_bevel.cc
+  nodes/node_shader_blackbody.cc
+  nodes/node_shader_brightness.cc
+  nodes/node_shader_bsdf_anisotropic.cc
+  nodes/node_shader_bsdf_diffuse.cc
+  nodes/node_shader_bsdf_glass.cc
+  nodes/node_shader_bsdf_glossy.cc
+  nodes/node_shader_bsdf_hair.cc
+  nodes/node_shader_bsdf_hair_principled.cc
+  nodes/node_shader_bsdf_principled.cc
+  nodes/node_shader_bsdf_refraction.cc
+  nodes/node_shader_bsdf_toon.cc
+  nodes/node_shader_bsdf_translucent.cc
+  nodes/node_shader_bsdf_transparent.cc
+  nodes/node_shader_bsdf_velvet.cc
+  nodes/node_shader_bump.cc
+  nodes/node_shader_camera.cc
+  nodes/node_shader_clamp.cc
+  nodes/node_shader_common.cc
+  nodes/node_shader_curves.cc
+  nodes/node_shader_displacement.cc
+  nodes/node_shader_eevee_specular.cc
+  nodes/node_shader_emission.cc
+  nodes/node_shader_fresnel.cc
+  nodes/node_shader_gamma.cc
+  nodes/node_shader_geometry.cc
+  nodes/node_shader_hair_info.cc
+  nodes/node_shader_holdout.cc
+  nodes/node_shader_hueSatVal.cc
+  nodes/node_shader_ies_light.cc
+  nodes/node_shader_invert.cc
+  nodes/node_shader_layer_weight.cc
+  nodes/node_shader_light_falloff.cc
+  nodes/node_shader_light_path.cc
+  nodes/node_shader_map_range.cc
+  nodes/node_shader_mapping.cc
+  nodes/node_shader_math.cc
+  nodes/node_shader_mixRgb.cc
+  nodes/node_shader_mix_shader.cc
+  nodes/node_shader_normal.cc
+  nodes/node_shader_normal_map.cc
+  nodes/node_shader_object_info.cc
+  nodes/node_shader_output_aov.cc
+  nodes/node_shader_output_light.cc
+  nodes/node_shader_output_linestyle.cc
+  nodes/node_shader_output_material.cc
+  nodes/node_shader_output_world.cc
+  nodes/node_shader_particle_info.cc
+  nodes/node_shader_rgb.cc
+  nodes/node_shader_script.cc
+  nodes/node_shader_sepcombHSV.cc
+  nodes/node_shader_sepcombRGB.cc
+  nodes/node_shader_sepcombXYZ.cc
+  nodes/node_shader_shaderToRgb.cc
+  nodes/node_shader_squeeze.cc
+  nodes/node_shader_subsurface_scattering.cc
+  nodes/node_shader_tangent.cc
+  nodes/node_shader_tex_brick.cc
+  nodes/node_shader_tex_checker.cc
+  nodes/node_shader_tex_coord.cc
+  nodes/node_shader_tex_environment.cc
+  nodes/node_shader_tex_gradient.cc
+  nodes/node_shader_tex_image.cc
+  nodes/node_shader_tex_magic.cc
+  nodes/node_shader_tex_musgrave.cc
+  nodes/node_shader_tex_noise.cc
+  nodes/node_shader_tex_pointdensity.cc
+  nodes/node_shader_tex_sky.cc
+  nodes/node_shader_tex_voronoi.cc
+  nodes/node_shader_tex_wave.cc
+  nodes/node_shader_tex_white_noise.cc
+  nodes/node_shader_uvAlongStroke.cc
+  nodes/node_shader_uvmap.cc
+  nodes/node_shader_valToRgb.cc
+  nodes/node_shader_value.cc
+  nodes/node_shader_vectTransform.cc
+  nodes/node_shader_vector_displacement.cc
+  nodes/node_shader_vector_math.cc
+  nodes/node_shader_vector_rotate.cc
+  nodes/node_shader_vertex_color.cc
+  nodes/node_shader_volume_absorption.cc
+  nodes/node_shader_volume_info.cc
+  nodes/node_shader_volume_principled.cc
+  nodes/node_shader_volume_scatter.cc
+  nodes/node_shader_wavelength.cc
+  nodes/node_shader_wireframe.cc
+
+  node_shader_tree.cc
+  node_shader_util.cc
+)
+
+set(LIB
+  bf_functions
+  bf_intern_sky
+)
+
+if(WITH_PYTHON)
+  list(APPEND INC
+    ../../python
+  )
+  list(APPEND INC_SYS
+    ${PYTHON_INCLUDE_DIRS}
+  )
+  list(APPEND LIB
+    ${PYTHON_LINKFLAGS}
+    ${PYTHON_LIBRARIES}
+  )
+  add_definitions(-DWITH_PYTHON)
+endif()
+
+if(WITH_INTERNATIONAL)
+  add_definitions(-DWITH_INTERNATIONAL)
+endif()
+
+if(WITH_FREESTYLE)
+  add_definitions(-DWITH_FREESTYLE)
+endif()
+
+blender_add_lib(bf_nodes_shader "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
+
+if(WITH_UNITY_BUILD)
+  set_target_properties(bf_nodes_shader PROPERTIES UNITY_BUILD ON)
+  set_target_properties(bf_nodes_shader PROPERTIES UNITY_BUILD_BATCH_SIZE 10)
+endif()



More information about the Bf-blender-cvs mailing list