From a296b8f694d1a93d40da78312758580f69b43be7 Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Mon, 15 Aug 2022 14:58:04 +0200 Subject: GPU: replace GLEW with libepoxy With libepoxy we can choose between EGL and GLX at runtime, as well as dynamically open EGL and GLX libraries without linking to them. This will make it possible to build with Wayland, EGL, GLVND support while still running on systems that only have X11, GLX and libGL. It also paves the way for headless rendering through EGL. libepoxy is a new library dependency, and is included in the precompiled libraries. GLEW is no longer a dependency, and WITH_SYSTEM_GLEW was removed. Includes contributions by Brecht Van Lommel, Ray Molenkamp, Campbell Barton and Sergey Sharybin. Ref T76428 Differential Revision: https://developer.blender.org/D15291 --- source/blender/nodes/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) (limited to 'source/blender/nodes/CMakeLists.txt') diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index 386e5fe14c9..ae31fd7ff5f 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -29,7 +29,6 @@ set(INC ../makesrna ../render ../windowmanager - ../../../intern/glew-mx ../../../intern/guardedalloc # dna_type_offsets.h -- cgit v1.2.3 From 25e307d725d0b924fb0e87e4ffde84f915b74310 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Wed, 31 Aug 2022 12:15:57 +0200 Subject: Nodes: move NodeTreeRef functionality into node runtime data The purpose of `NodeTreeRef` was to speed up various queries on a read-only `bNodeTree`. Not that we have runtime data in nodes and sockets, we can also store the result of some queries there. This has some benefits: * No need for a read-only separate node tree data structure which increased complexity. * Makes it easier to reuse cached queries in more parts of Blender that can benefit from it. A downside is that we loose some type safety that we got by having different types for input and output sockets, as well as internal and non-internal links. This patch also refactors `DerivedNodeTree` so that it does not use `NodeTreeRef` anymore, but uses `bNodeTree` directly instead. To provide a convenient API (that is also close to what `NodeTreeRef` has), a new approach is implemented: `bNodeTree`, `bNode`, `bNodeSocket` and `bNodeLink` now have C++ methods declared in `DNA_node_types.h` which are implemented in `BKE_node_runtime.hh`. To make this work, `makesdna` now skips c++ sections when parsing dna header files. No user visible changes are expected. Differential Revision: https://developer.blender.org/D15491 --- source/blender/nodes/CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) (limited to 'source/blender/nodes/CMakeLists.txt') diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index ae31fd7ff5f..ff8bd27f8d7 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -49,7 +49,6 @@ set(SRC intern/node_multi_function.cc intern/node_socket.cc intern/node_socket_declarations.cc - intern/node_tree_ref.cc intern/node_util.c intern/socket_search_link.cc @@ -63,7 +62,6 @@ set(SRC NOD_math_functions.hh NOD_multi_function.hh NOD_node_declaration.hh - NOD_node_tree_ref.hh NOD_shader.h NOD_socket.h NOD_socket_declarations.hh -- cgit v1.2.3 From 4130f1e674f83fc3d53979d3061469af34e1f873 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Tue, 13 Sep 2022 08:44:26 +0200 Subject: Geometry Nodes: new evaluation system This refactors the geometry nodes evaluation system. No changes for the user are expected. At a high level the goals are: * Support using geometry nodes outside of the geometry nodes modifier. * Support using the evaluator infrastructure for other purposes like field evaluation. * Support more nodes, especially when many of them are disabled behind switch nodes. * Support doing preprocessing on node groups. For more details see T98492. There are fairly detailed comments in the code, but here is a high level overview for how it works now: * There is a new "lazy-function" system. It is similar in spirit to the multi-function system but with different goals. Instead of optimizing throughput for highly parallelizable work, this system is designed to compute only the data that is actually necessary. What data is necessary can be determined dynamically during evaluation. Many lazy-functions can be composed in a graph to form a new lazy-function, which can again be used in a graph etc. * Each geometry node group is converted into a lazy-function graph prior to evaluation. To evaluate geometry nodes, one then just has to evaluate that graph. Node groups are no longer inlined into their parents. Next steps for the evaluation system is to reduce the use of threads in some situations to avoid overhead. Many small node groups don't benefit from multi-threading at all. This is much easier to do now because not everything has to be inlined in one huge node tree anymore. Differential Revision: https://developer.blender.org/D15914 --- source/blender/nodes/CMakeLists.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender/nodes/CMakeLists.txt') diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index ff8bd27f8d7..e042458ca19 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -40,7 +40,8 @@ set(INC set(SRC intern/derived_node_tree.cc - intern/geometry_nodes_eval_log.cc + intern/geometry_nodes_lazy_function.cc + intern/geometry_nodes_log.cc intern/math_functions.cc intern/node_common.cc intern/node_declaration.cc @@ -58,7 +59,7 @@ set(SRC NOD_function.h NOD_geometry.h NOD_geometry_exec.hh - NOD_geometry_nodes_eval_log.hh + NOD_geometry_nodes_lazy_function.hh NOD_math_functions.hh NOD_multi_function.hh NOD_node_declaration.hh -- cgit v1.2.3 From 6bf5cc62e0901175d98506216932ec6ffd4506a5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 18 Sep 2022 10:37:28 +0200 Subject: Build: limit Py_ENABLE_SHARED to modules using Python headers And remove Python flags from nodes, no longer needed. --- source/blender/nodes/CMakeLists.txt | 14 -------------- 1 file changed, 14 deletions(-) (limited to 'source/blender/nodes/CMakeLists.txt') diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index e042458ca19..e9c0f2be368 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -102,20 +102,6 @@ if(WITH_BULLET) add_definitions(-DWITH_BULLET) endif() -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_TBB) list(APPEND INC_SYS ${TBB_INCLUDE_DIRS} -- cgit v1.2.3