May 27, 2016, 09:01 (GMT) |
Small fixes for compiler errors in VS2013. |
May 27, 2016, 07:37 (GMT) |
Use a more consistent naming scheme for value and derivative functions with prefixes. |
May 27, 2016, 07:06 (GMT) |
Another depsgraph fix, internal texture relations need to be built explicitly. Like node trees, textures are only optionally constructed in the depsgraph when something uses them. When a modifier (or other potential future user of the "handle" system) declares a texture dependency, the internal relations of that texture are not necessarily built - this only happens when the texture is part of a material texture stack. So we need to also construct the internal texture relations (lazy init) in addition to the external modifier->texture dependency. |
May 26, 2016, 13:17 (GMT) |
Fix for node group updates: need to force-update the group node because of crappy node update system. |
May 26, 2016, 12:52 (GMT) |
Fix node tree group relations. Recent commits removed an important depsgraph relation between a node group and its tree. |
May 26, 2016, 07:01 (GMT) |
Fix for pynode group registration. Because pynode groups now use the bl_idname of tree types rather than expecting a python class attribute, these tree types need to be registered *before* generating node group classes. Messy stuff, needs some rewriting. |
May 26, 2016, 06:45 (GMT) |
Fix for depsgraph building of modifiers, missing nodes for ID blocks (textures). The updateDepsgraph callback for modifiers needs to be used in both passes of depsgraph building, once for creating nodes and then for relations. Without the initial node building pass some datablocks like textures can be missing, if they are not incidentally built by other means such as a render texture. |
May 25, 2016, 15:34 (GMT) |
Use (1,0,0) and (0,1,0) as derivatives of texvec when no explicit derivatives are given. This is a bit stupid, but allows testing the system without major changes to old textures or the displacement modifier. |
May 25, 2016, 15:20 (GMT) |
New node "Get Derivative" for using a derivative as the value. This is mostly a debugging feature for getting visual feedback about the derivatives. The function doesn't work in the regular scheme of decomposing a function into the value and derivative parts, so it is only implemented in the internal IR (making it directly inlineable). |
May 25, 2016, 10:10 (GMT) |
Use the common BVM_DEFINE_ALL_OPCODES macro to simplify node->opcode mapping. |
May 25, 2016, 09:58 (GMT) |
Fix for uninitialized variable and removed some unused code. |
May 25, 2016, 08:35 (GMT) |
Straightforward texture eval function in BKE for getting texture results with derivatives. |
May 24, 2016, 16:14 (GMT) |
Use derivative functions for calculating dual values using the forward accumulation method. Only a few functions have derivatives defined yet. |
May 24, 2016, 10:07 (GMT) |
Cleanup: Remove the unnecessary compiler subclasses for final instantiation. |
May 24, 2016, 09:36 (GMT) |
Cleanup: renamed "codegen" files to "compiler" and split the implementation. |
May 24, 2016, 08:58 (GMT) |
Move IR function implementations using the LLVM api into modules.h. |
May 23, 2016, 13:07 (GMT) |
Generate wrapper functions in LLVM for converting dual types to primitives. Currently Dual2 arguments are structs with the main value and 2 derivatives in x and y. Node functions will generally be implemented using the base types, so the value and derivatives have to be extracted and later combined using the chain rule. |
May 20, 2016, 06:00 (GMT) |
Generate dual values for input constants to match the declared function signatures. Note that actual functions currently don't use Dual2<> values, but because they only read/write the 'value' field it works anyway ... |
May 19, 2016, 16:34 (GMT) |
Fix module linking: initialize the node graph module right away to avoid repeating code. |
May 19, 2016, 16:22 (GMT) |
Leave the decision about passing arguments by pointer to the compiler class too. This removes the last "global" type function, so all the details of types are now decided in the compiler implementation subclass. |
|