May 13, 2016, 16:08 (GMT) |
Implemented math functions for the LLVM backend. |
May 13, 2016, 13:48 (GMT) |
Fix for missing notifier application on texture node trees. The pynodes tree does not have the static NTREE_TEXTURE type set. |
May 13, 2016, 13:46 (GMT) |
Fix node socket update callbacks exiting early because of missing output connection. Outputs are currently identified in the nodes via the DO_OUTPUT flag. This is not nicely accessible for pynodes and needs to be reimplemented in a proper way. Until then this optimization for node recalculation should just be ignored for texnodes, so nodes now have a callback for checking usage, and will always be considered used by default. |
May 13, 2016, 09:22 (GMT) |
Remove redundant dependency declaration from pynodes, which creates a circular dependency. Previously the "parameters" depsnode was the POST operation for node trees, but has now been supplanted by the cache invalidation node. Making an explicit dependency on the component thus creates a cycle. |
May 13, 2016, 09:15 (GMT) |
Switch texture nodes to a pynodes implementation. This also removes the static bNodeTree type definition C, because BVM requires some functions that are best defined in python (and it would have been switched eventually anyway). |
May 13, 2016, 05:53 (GMT) |
Removed texture nodes. The node tree type is left alone for now, only the node types are removed. |
May 12, 2016, 17:26 (GMT) |
Define the base opcode functions for LLVM and use util_ files for types. |
May 12, 2016, 16:17 (GMT) |
Split opcode macro into thematic sections to make it easier to handle them in parts. |
May 12, 2016, 15:56 (GMT) |
More meaningful dependencies between node tree parameters and cache-invalidation operations, and textures that use them. |
May 12, 2016, 15:51 (GMT) |
Fix for regenerating functions with MCJIT. LLVM was reusing old machine code, apparently regenerating it explicitly with EE->generateCodeForModule() fixes this. |
May 12, 2016, 14:50 (GMT) |
Fix for node function invalidation through the depsgraph. We have two separate caches for bvm and llvm backend, both of them might contain a function for the node tree. |
May 12, 2016, 07:56 (GMT) |
Merge branch 'master' into object_nodes |
May 11, 2016, 09:47 (GMT) |
Merge branch 'master' into object_nodes |
May 11, 2016, 08:15 (GMT) |
Fix the module.cc file. |
May 11, 2016, 08:14 (GMT) |
Small fix for llvm file includes. |
May 11, 2016, 06:48 (GMT) |
Silence a few (false positive) compiler warnings about uninitialized variables. |
May 10, 2016, 09:24 (GMT) |
Cleanup: removed unused code for struct return values and pointer arguments. |
May 10, 2016, 09:14 (GMT) |
Implemented external C function linking and change of function signature convention. The general signature layout for node functions is void foobar(out1_t *out1, out2_t *out2, ..., in1_t in1, in2_t in2, ...); All outputs are passed as pointers or references (using references in C code for clarity). Inputs can be passed by-value or as const pointers/references (for structs and arrays). In the future we may also support single value return types for convenience. |
May 9, 2016, 07:12 (GMT) |
Moved type definition functions for LLVM types into own file. |
May 9, 2016, 06:17 (GMT) |
Disable IR module loading for blenvm by default (with a compile option). Base modules for nodes will instead be declared as external functions with regular linkage through C code. This means some potential for low-level optimization might be lost, but this shouldn't be a big problem as long as node functions don't get too complex (which means they should be split up in the first place). IR module loading is not the real issue, but generating the IR code from C/C++ code in a generic way is not so easy. In the future we may actually generate most code for basic operators and types directly inside blenvm and only use precompiled modules for more complex functions. |
|