Created by: Durman
This is an attempt to remake update system. Main goal is to make such system that would calculate node only when this is really need. I think this can become really important update of Sverchok that will make nodeing a little bit easier. There are 3 update events:
event | old US | new US |
---|---|---|
update node | updating only changed nodes | updating only changed nodes |
update tree | updating every node in tree | updating only changed nodes |
animation update | updating every node in tree | update only animation nodes and next after them |
In new update system there are 3 conditions that determine should node be recalculated or not:
- All sockets (inputs and outputs) should have the same links as previous update.
- All data passing from input sockets should have the same data as previous update event.
- All parameters of node should be the same as previous update. In most cases this approach should work faster and even much more faster.
This branch is ready to test. In this moment monads is not supported yet the same as nodes which takes data from blender database excluding frame info node.
Testing instruction:
After that you can start testing. In node tree changed nodes will have red color. If you will notice some nodes that should not be updated but nevertheless has red color please make bug report in this topic.
It is possible to get additional information about process of update system:
-
For this you should enabled debug level of logging in Svechok settings and toggle log to text buffer.
-
Now in "Sverchok log" text file updating information is available.
For better perfomance of animation I would recommend disable logging.
Preflight checklist
Put an x letter in each brackets when you're done this item:
-
Code changes complete. -
Code documentation complete. -
Documentation for users complete (or not required, if user never sees these changes). -
Manual testing done. -
Unit-tests implemented. -
Ready for merge.