May 19, 2016, 16:06 (GMT) |
Removed unused codegen_begin/end functions. |
May 19, 2016, 16:04 (GMT) |
Define a separate node function module for every compiler type. This means we can have differing implementations for every potential use of nodes, such as plain value functions vs. dual values with derivatives. Node functions for each compiler type are stored in a static map and are lazy-initialized on the first node graph compilation. |
May 19, 2016, 09:52 (GMT) |
Pass texture arguments and return values as dual values. Currently only the value part is actually accessed. Using dual values allows the node graph to handle input/output arguments are single a single llvm::Value instance. |
May 18, 2016, 15:40 (GMT) |
Preparatory changes for differing node compiler implementations. Uses some virtual functions of the node compiler to allow different implementation of values. This will be used for calculating values and partial derivatives in texture nodes. |
May 18, 2016, 09:28 (GMT) |
Use a TypeSpec pointer for structure fields rather than direct storage. |
May 18, 2016, 06:03 (GMT) |
Type system refactor: Use a global type definition map instead of defining each type locally. |
May 16, 2016, 10:45 (GMT) |
Merge branch 'master' into object_nodes |
May 16, 2016, 10:44 (GMT) |
Cleanup: removed some unused code. |
May 16, 2016, 10:37 (GMT) |
Enable the new depsgraph by default. The blenvm system depends on the new depsgraph, so it doesn't make sense to have to enable it every time. The legacy depsgraph can still be switched back on by the --enable-legacy-depsgraph option. |
May 14, 2016, 17:49 (GMT) |
Internal definition of commonly used node functions, so that LLVM can optimize better. This currently includes just a few 'value' nodes, but should be extended as much as feasible. In particular many vector functions can be split component-wise. |
May 14, 2016, 10:44 (GMT) |
Implemented common procedural texture patterns for LLVM. |
May 14, 2016, 08:25 (GMT) |
Include all module functions in a single header for convenience. |
May 14, 2016, 07:55 (GMT) |
Simple coordinate input node for texture nodes. |
May 14, 2016, 07:53 (GMT) |
Handle all node type kinds appropriately. The LLVM backend also supports PASS nodes, even though these are usually removed from the node graph in a preprocessing step for clarity. ARG nodes have their output values mapped in advance, so no extra code needs to be generated for them. |
May 14, 2016, 07:52 (GMT) |
Fix incorrect argument order for vector/color constructor functions. |
May 14, 2016, 07:09 (GMT) |
Replaced mix of bool type flags for node types with a single enum for special kinds of nodes. |
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. |
|