Week 65: January 6 - 10
- Fix T71630: Add Delete Tracks to Edit menu in NLA editor.
- D6540: Remove node->offsetx/offsety [WIP].
- General bug tracker work.
- Thought more about a generic simulation system and wrote a document about it. The document is not public yet, because I want to discuss it with sebbas first.
- Changed the way function-networks are built to support removal of nodes during optimization steps.
- Implemented constant-folding and dead-node-elimination optimizations on function networks. This will result in better performance in many cases.
Week 66: January 13 - 17
- Usual Tracker Curfew work.
- Fix T71690: Skip enum item separators in
- Compiled Blender on a (borrowed) macbook for the first time to find an OS specific bug. Turned out to be related to aligned memory allocation. The final fix will hopefully be committed next week (D6606).
- Had a meeting with sebbas to talk about a unified simulation system proposal I've been thinking about for some time now. More discussion is necessary of course.
- The proposal can be found in the wiki.
- In the functions branch I further improved the optimization of function networks before they are evaluated (potentially millions of times per second). Most notably, I implemented an optimization that can eliminate duplicate computations from the node tree. This is especially important when node groups are used a lot, because during inlining many duplicates of the same data paths might appear. An optimization like this could also benefit Cycles (afaik it does not do this optimization yet).
Week 67: January 20 - 24
- Two days of Tracker Curfew work as usual.
- Spent some time responding to feedback on the unified simulation system proposal I published last week. The thread can be found on devtalk.
- I was learning more about the VDB data structure. My main goal was to understand why it is a good choice in general and for Blender.
- Fixed a bug in the lockfree aligned allocator (9c9ea37).
- Worked on improving the reuse of memory buffers when (node-based-)functions are evaluated. This is important because they are potentially evaluated on millions of particles. It's not done yet, but I made some good progress compared to my last attempts on this subject.