November 26, 2015, 13:12 (GMT) |
Fix for stack index assignment to graph outputs. |
November 26, 2015, 11:47 (GMT) |
Use a simple value node for graph outputs that are only connected to pass nodes. |
November 26, 2015, 10:13 (GMT) |
Changing graph output mechanism to use proxy nodes. |
November 25, 2015, 12:55 (GMT) |
Distinguish 'function' and 'kernel' node types. Only kernel nodes will be allowed to have function inputs. This is necessary because any kernel node will define the boundaries of node subtrees used for function inputs. |
November 25, 2015, 11:29 (GMT) |
Node inputs now have a 'value type' to specify how input connections are treated. VALUE_CONSTANT inputs can not have connections, their values are known at compile time. bvm stores these values directly in the instruction list. VALUE_VARIABLE inputs store values at evaluation time. bvm stores a stack index for them which is used to load and store from/to the evaluation stack. VALUE_FUNCTION inputs are passed to kernels to be called internally when needed. bvm stores an instruction index and allows a jump to this instruction (TODO). |
November 25, 2015, 10:27 (GMT) |
Added an 'entry point' instruction number to functions. This is currently always 0, but will be used in the future to allow storing per-element functions along with the main code. These can then be called within kernels. |
November 25, 2015, 10:12 (GMT) |
Enabled generic math nodes for modifier node trees. |
November 25, 2015, 09:51 (GMT) |
Fix for static empty mesh variable, used as default value of meshes on the stack. This creates a (minor) mem leak when statically creating the mesh. Instead it should be constructed in a init/free pair of functions. Because this variable is used in all different compile units, each of them has to create their own global 'empty_mesh' variable. |
November 25, 2015, 09:01 (GMT) |
Fixed missing delete call for unused nodes. |
November 25, 2015, 08:58 (GMT) |
Free the modifier bvm function after use. Note that eventually these should be cached to avoid unnecessary recompilation, but for now they get compiled on every modifier eval. |
November 25, 2015, 08:53 (GMT) |
Use the guardedalloc new/delete overloads for relevant classes. |
November 25, 2015, 08:29 (GMT) |
Fixed overzealous assert for input stack assignments in codegen. For constant inputs no stack index is needed. Previous to node pruning this did not trigger the assert because there were still pass nodes allocating the stack indices. |
November 25, 2015, 08:28 (GMT) |
Node tree pruning function for removing unused nodes. This also removes the placeholder 'pass' nodes, which were already being skipped and made unused. |
November 25, 2015, 08:09 (GMT) |
Changed node instance storage in the node graph to pointers. This makes it much easier to optimize the graph by removing and reconnecting nodes. |
November 24, 2015, 08:40 (GMT) |
Merge branch 'master' into object_nodes Conflicts: source/blender/blenkernel/intern/softbody.c |
November 23, 2015, 11:50 (GMT) |
Use the base mesh as a fallback result in case no geometry nodes exist. |
November 23, 2015, 11:29 (GMT) |
Fix for store/load of mesh_ptr on the stack. Most actual mesh operations should only store the data pointer itself but not modify the refcount. |
November 23, 2015, 10:42 (GMT) |
Fix for wrong index in codegen. Was using the socket instance map sizes rather than the overall number of sockets of the node type. |
November 23, 2015, 10:07 (GMT) |
Added a matrix compose/decompose node for loc/rot/scale. |
November 23, 2015, 09:14 (GMT) |
Horrible fix for depsgraph/notifier updates through property changes in geometry nodes. This is really awful, but we don't have a good generic way of defining node tree relations in the dependency graph yet. More importantly, the notifier system is not up to the task - putting the responsibility for notifying into operators requires anticipating their effects, which is not good at all for node operators which affect geometry through complex processing. The depsgraph really should be handling this. |
|