June 3, 2014, 15:25 (GMT) |
Use the global debug_value for switching between old and new depsgraph evaluation and simulation, for testing purposes. With a few UI bells and whistles this will allow quick comparison of the depsgraph implementations to make sure the behavior is consistent. |
June 3, 2014, 14:11 (GMT) |
Merge branch 'master' into depsgraph_refactor |
June 2, 2014, 09:35 (GMT) |
Fixes for release build stubs of debugging functions. |
May 31, 2014, 11:10 (GMT) |
Correct flushing, this was only happening with (still dysfunctional) frame change updates. |
May 30, 2014, 16:06 (GMT) |
Some tweaks to managing sce->depsgraph to make sure it stays in sync with the current sce->theDag. Eventually depsgraph should be moved out of the Scene DNA, but until then it's useful to have it there for testing. |
May 30, 2014, 14:53 (GMT) |
Clear depsgraph timings when evaluating a node. |
May 30, 2014, 14:17 (GMT) |
Simple stats drawing for the depsgraph info mode. |
May 30, 2014, 08:28 (GMT) |
Added a toolbar to the info space. This allows showing a mode switch button without having to put this into the main menu bar. |
May 30, 2014, 07:37 (GMT) |
New 'mode' property for the info space to draw depsgraph statistics. |
May 28, 2014, 06:30 (GMT) |
Don't delete all depsgraph stats on every eval, since most of the time this won't update the majority of data anyway and just delete info. |
May 27, 2014, 15:01 (GMT) |
Record basic statistics on depsgraph timing, if enabled in user prefs. This works with a (C style) `DepsgraphStats` struct, which holds a hash table containing per-ID block info. These ID info structs in turn can optionally have more detailed per-component info (currently never generated, this would have to be enabled per ID by the user in some way). |
May 27, 2014, 06:56 (GMT) |
Update simulation: Spend random sleep time in depsgraph operation stubs, to simulate actual work and provide a testbed for the scheduler. |
May 27, 2014, 05:47 (GMT) |
Debug cleanup: removed the build step debuggging. Build debugging is not very useful and pollutes the API somewhat. Also moved eval debug methods into the common DepsgraphDebug class. |
May 26, 2014, 17:24 (GMT) |
Added a central DepsgraphDebug class to hold the various reporting functions for debugging/logging/statistics. This could eventually have multiple implementations, including a stub for noop functions, and be passed as a top-level template parameter to eliminate overhead as much as possible. |
May 26, 2014, 15:09 (GMT) |
Exit from the task run function early in case of NOOP. |
May 26, 2014, 15:03 (GMT) |
Assign zero cost to NOOP nodes, the priority for these only depends on the cost of child nodes then. |
May 26, 2014, 14:55 (GMT) |
Move the evaluation code for operations into the task scheduler. Timing calls are disabled atm, these will go into a dedicated debug utility class, which can be disabled entirely to avoid any overhead. |
May 26, 2014, 10:32 (GMT) |
Removed the bone_hash and associated methods from the pose component. Instead for storing bones in a separate hash table, which adds complexity and ambiguity, they are now stored as regular components in the ID node component map as well, with a string identifier to distinguish them. Looking up bones from the pose component by name can be done just as well on the ID level, by using a combined key of (DEPSNODE_TYPE_BONE, bone name) This key extension (subdata) can be a general optional feature of components, useful e.g. for modifiers, constraints, particle systems. It saves us the work of implementing and maintaining individual hashes for all these sub-component types and streamlines the API quite a bit. Looping/filtering bones can work just as easily by looping over an ID block's components instead of the bone hash table of the pose component. The overhead is negligible, the number of other components in a single ID block would not scale as much as the number of ID blocks in general. Such loops would be an exception anyway. |
May 26, 2014, 09:50 (GMT) |
Extended keys for components, using an optional name string. This will replace the current sub-component hashes for bones (and later could be used for modifiers, constraints, particle systems etc.). |
May 26, 2014, 08:47 (GMT) |
Setting bone component channel explicitly is redundant, the component already does this in the init method based on the name. Eventually the pchan field might be removed entirely, currently it doesn't look like it has a purpose. |
|