User:JacquesLucke/Reports/2023

Week 216: January 02 - 06

  • rB3819a9b1: Fix T103614: crash during geometry nodes evaluation with tbb disabled
  • rBd8750aa1: Fix T103734: reroutes don't propagate attribute references correctly
  • rB0bc0e3f9: Fix: geometry nodes crashes with large trees
  • rB862d08bb: Fix: use-after-free when threadlocal is destructed after static variable
  • rB3337838b: Fix: retrieved writable attribute but did not write to it
  • rBe22247a9: Fix: crash when opening file with visible node editor
  • rB710f8164: Fix: crash when inserting reroute node
  • rB0f8487f6: Geometry Nodes: add more details about field handling to node declaration
  • rB2ffd08e9: Geometry Nodes: deterministic anonymous attribute lifetimes
  • rB8dbfbac9: Nodes: add utility methods for bNodeLink and bNodeSocket
  • rBe0d70e6a: Nodes: avoid processing same node group multiple times to find textures
  • rB30753f76: Functions: add method to iterate over all inputs of a field
  • rB83f519b7: Functions: initialize node storage and default values on first execution
  • rB42b88c00: Functions: simplify multi-function parameters
  • rB1bbf1ed0: Functions: improve devirtualization in multi-function builder
  • rBb3146200: Functions: refactor multi-function builder API
  • rB577442a2: Functions: build multi-function signature in-place
  • rBa5b27f98: Functions: simplify multi-function signature type
  • rBeedcf187: Functions: introduce multi-function namespace
  • rBc4d4db39: Functions: enable more gcc optimizations for multi-functions
  • rB5f9a48ed: Functions: improve compiler optimizability of multi-function evaluation
  • rB891b9730: Functions: optimize multi-function evaluation in materialized mode
  • rB73a2c79c: Functions: free memory of unused sockets earlier
  • rB78f28b55: Allocator: improve multi-threaded allocation performance
  • rBae716300: Allocator: improve protection against false sharing
  • rB006e9059: Tests: support running benchmark when Blender prints unrelated text
  • rBd49b8503: Tests: run geometry nodes benchmarks multiple times to reduce noise
  • rBf7e9bc65: Cleanup: simplify getting value of generic ValueOrField
  • rBed1df2ce: Cleanup: use slightly more efficient method to add multi-function parameter
  • rBa2ea32a6: Cleanup: inline signatures into multi-function constructors
  • rBL63163: Geometry Nodes: add field evaluation performance tests
  • rBL63164: Geometry Nodes: add a more complex field performance test
  • D16943: Profile: Add hints for better profilability. (WIP, Experiment)
  • D16944: Functions: Use new local allocator in lazy-function evaluator. (WIP)
  • D16642: Geometry Nodes: New Interpolate Curves nodes (WIP).

Week 217: January 09 - 13

  • rB29a41ed6: Fix T103747: crash when using rotation output of Curve to Points node
  • rBca45c2dc: Fix T103756: wrong anonymous attribute tooltip
  • rB8a3a1a0c: Fix T103781: assert when connecting viewer node on mesh without faces
  • rB761e6b1b: Fix: crash when opening node add menu
  • rB72cc68e2: Functions: only allocate resource scope when it is actually used
  • rB1a79bdfb: BLI: inline index mask slice methods
  • rBba714198: Cleanup: improve const correctness of bvh tree
  • rBff15edc6: Cleanup: unify method parameters for virtual arrays
  • D16642: Geometry Nodes: New Interpolate Curves nodes (WIP).
  • D16980: Mesh: Support computing custom/loop normals lazily (WIP).
  • D16970: BLI: Use SIMD through auto-vectorization for noise (WIP).
  • rBL63170: Geometry Nodes: add noise benchmarks

Week 218: January 16 - 20

  • rB1d253b66: Fix T103945: incorrect anonymous attribute references
  • rB737e7a63: Fix: incorrect curve type counts after adding curves of same type
  • rBc006ba83: Fix: execution graph for geometry nodes contained cycles leading to crash
  • rB85908e9e: Geometry Nodes: new Interpolate Curves node
  • rBc8a10c43: Geometry Nodes: show number of curve points in socket inspection tooltip
  • rBb5105085: Geometry Nodes: optimize Sample Index node with constant index
  • rB244c87dd: Geometry Nodes: avoid geometry copy if nothing is selected in Set Position node
  • rB2c217854: Curves: add OffsetIndices abstraction
  • rB3f1886d0: Functions: align chunk sizes in multi-function evaluation
  • rB31a505d1: Functions: add debug utility for lazy function graphs
  • rBcf50a3ea: Cleanup: remove is_same method for virtual arrays
  • rB4bef5f3d: Cleanup: move some undo related files to C++
  • rBL63179: Geometry Nodes: add tests for Interpolate Curves node
  • D14139: Use copy-on-write in some new places (WIP, Experiment).
  • D17031: Assets: Bundle essentials with Blender. (WIP)

Week 219: January 23 - 27

  • rBc16bd343: Fix: memory allocation before guarded allocator is initialized
  • rB33edef15: Fix T104095: missing crazy space data while sculpting curves
  • rB68994746: Fix: crash when adding curves in curves sculpt mode with interpolation
  • rB79f70e48: Fix: crash in mesh topology nodes
  • rB904357d6: Fix: assert when converting between incompatible field types
  • rBb2534fb8: Fix: anonymous attribute output requested even though it's not used
  • rB6043ed9e: Build: checkout assets directory automatically
  • rB81342587: Geometry Nodes: propagate material from guides in Interpolate Curves node
  • rBae80a669: Geometry Nodes: don't show warning in modifier with multiple geometry inputs
  • rB90253ad2: Geometry Nodes: avoid creating a lazy function many times
  • D17108: Geometry Nodes: Add support for eye dropper for object input in modifier.
  • D14139: Use copy-on-write in some new places (WIP, Experiment).
  • D17031: Assets: Bundle essentials with Blender. (WIP)
  • D17109: Geometry Nodes: Use face corner normals in Distribute Points on Faces node.

Week 220: January 30 - 03

  • rB2a19810f: Fix T104296: crash caused by incorrectly initialized group nodes
  • rB72089387: Fix T104278: incorrect handling of unavailable linked node groups
  • rBca99a596: Fix T104261: crash when trying to draw viewer overlay for empty curve
  • rB3d6ceb73: Geometry Nodes: parallelize part of Duplicate Elements node
  • rB19fe5caf: Geometry Nodes: add support for eye dropper for object input in modifier
  • rB29951651: Cleanup: simplify wrapping CurvesGeometry in C++
  • D17154: Curves: Cage overlay for sculpt mode.
  • D17109: Geometry Nodes: Use face corner normals in Distribute Points on Faces node.
  • D17185: Modifiers: Measure execution time and provide Python access.
  • D17196: BLI: Parallelize accumulating counts to offsets.

Week 221: February 06 - 10

  • f0669ff8ba: BLI: use larger integer type in BitVector
  • 0f708fa2e3: Geometry Nodes: use smooth normals in Distribute Points on Faces node
  • 923152d180: Geometry Nodes: improve parallelization in Delete/Separate Geometry node
  • b723a398f3: Curves: initial surface collision for curves sculpt mode
  • 8adebaeb7c: Modifiers: measure execution time and provide Python access
  • PR #104474: Assets: bundle essentials with Blender
  • PR #104467: Curves: cage overlay for sculpt mode
  • PR #104416: Geometry Nodes: new Axis to Euler node
  • PR #104478: WIP: Core: use generic copy-on-write system to avoid redundant copies
  • PR #104589: WIP: Curves: add Curve Parameter Falloff to comb brush
  • PR #104630: WIP: Functions: new local allocator for better memory reuse and performance
  • PR #104629: WIP: BLI: refactor IndexMask for better performance and memory usage
  • PR #104671: WIP: BLI: new bit span data structure

Week 222: February 13 - 17

  • 9c79875f65: Cleanup: use BitSpan instead of BitVector where possible
  • 891f47b801: BLI: new bit span data structure
  • 35cde8b5fd: Curves: move edit mode out of experimental
  • ddc6815b1a: Curves: add Curve Parameter Falloff to comb brush
  • c9f02569c7: Curves: cage overlay for sculpt mode
  • eb9647c53d: Cleanup: rename vertex buffer attribute to be more specific
  • 7ba59c8a62: Assets: show all assets by default instead of current file
  • b3fb73f325: Assets: bundle Essentials with Blender
  • 59b9a88a35: Fix: duplicate elements node does not update curve type counts
  • PR #104629: WIP: BLI: refactor IndexMask for better performance and memory usage
  • Code review.

Week 223: February 20 - 24

  • 18614b6b0b: Fix #103269: node group asset description not showing as tooltip in the Add menu
  • 763f1897c2: Fix #103865: keep IDProperties overridable when setting them with Python
  • 423291eaf2: Fix #102882: Geometry Nodes: crash when using viewer in invalid group
  • 25e57c39b1: Fix #104920: crash when creating node group from script node
  • 3d10dfb0a3: Fix #105166: Sample UV Surface node does not take index mask into account
  • 2c5434c3f5: Fix: crash in Spline Parameter node with single-point-curves
  • bf27a239c7: Fix: segfault when setting value in empty bit span
  • 423763771c: remove geometry nodes module
  • PR #104629: WIP: BLI: refactor IndexMask for better performance and memory usage
  • Code Review.

Week 224: February 27 - 03

Was on holiday for most of this week.

  • 79bce99260: Fix #104305: crash when datafiles/assets folder does not exist
  • PR #104629: WIP: BLI: refactor IndexMask for better performance and memory usage
  • Code Review.

Week 225: March 06 - 10

Was in Amsterdam for a Nodes & Physics module workshop.

  • a4fd2d10c1: Fix #105571: crash when connecting invalid node group to multi input
  • adfffb7d32: Fix: normalize matrix before converting to euler
  • {{PullRequest|105696}: Geometry Nodes: use lazy-function directly for switch node
  • {{PullRequest|105697}: WIP: Functions: process multiple elements at once in the lazy-function api
  • Investigated algorithms to deduplicate data in multiple arrays efficiently.
  • Code Review.

Week 226: March 13 - 17

  • cc44b98871: Fix #105720: crash when adding viewer node
  • 2c9ba55c7f: Fix #105849: crash when using link-swap with an existing link
  • 34f3893831: BLI: support recursive usage of Vector
  • 92b607d686: CustomData: add separate function to add layer from existing data
  • 258678916f: Geometry Nodes: use lazy-function directly for switch node
  • PR #104629: WIP: BLI: refactor IndexMask for better performance and memory usage
  • PR #104478: WIP: Core: use generic copy-on-write system to avoid redundant copies
  • Worked on simulation zone detection based on a node tree.
  • Worked on improved bit vector operations.
  • Simplified my own work a bit with a tampermonkey script for gitea: https://projects.blender.org/JacquesLucke/blender-web-scripts
  • Code Review.

Week 227: March 20 - 24

  • Core: new blenlib library for implicit-sharing PR #105994
  • Timeline: draw cache in overlay so that it stays in sync with actually cached data PR #105986
  • WIP: BLI: refactor IndexMask for better performance and memory usage PR #104629
  • Worked on simulation caching for the simulation nodes branch.
  • Code Review.

Week 228: March 27 - 31

Week 229: April 03 - 07

Week 230: April 10 - 14

  • Custom Data: support implicit sharing for custom data layers r7eee378eccc8f87e1330b9cfea2799928be9d657
  • WIP: Undo: support implicit-sharing in memfile undo step PR #106903
  • WIP: Simulation Nodes: bake simulation state to disk PR #106937
  • Simulation Nodes: Store baked geometries in .blend file #106790
  • Experimented with saving non-main meshes in .blend files.
  • Code Review.

Week 231: April 17 - 21

  • Fix #106982: crash with muted node (5491563e59)
  • Fix #106208: data-block socket defaults not used for node group (f6ec11741c)
  • Simulation Nodes: bake simulation states to disk (05ddbc20b8)
  • Geometry Nodes: replace multiple maps with single array (8b6777edc2)
  • Geometry Nodes: support outputting field without computing full node (ca32fb604e)
  • Undo: support implicit-sharing in memfile undo step (PR #106903)
  • RNA: ignore some large arrays in override code (99f5e60b86)
  • Cleanup: rename anonymous attribute id pointer type (3ee21d1098)
  • Code Review.

Week 232: April 24 - 28

  • Fix: group node inputs always requested unnecessarily (536144983b)
  • BLI: extract MapItem type to simplify iterating over map items (a57584e40d)
  • Simulation Nodes: support primitive values and attributes in simulation state
  • Checkpoints ui prototype for geometry nodes.
  • Simple fixed precision integer library for new boolean code.
  • Code Review.

Week 233: May 01 - 05

Week 234: May 08 - 12

  • Fix #107637: crash when using density brush on empty hair (c3365666e5)
  • Fix: unnecessary depsgraph update when scrubbing in timeline (2fbbc7acbb)
  • Fix: scrubbing time always has extra update that is only used by sequencer (037b3f87bd)
  • Fix: force frame update only when starting animation timer (8e9ada0079)
  • Fix: avoid extra depsgraph evaluation when stopping animation playback (d8388ef36a)
  • RNA: use correct ui scale type string in generated rna code (38416e7ad2)
  • Geometry Nodes: show simulated frames only when there is a simulation (db6eda6c60)
  • Geometry Nodes: allow skipping frames during simulation (b4fb17f11c)
  • Geometry Nodes: visualize evaluated nodes (PR #107780)
  • Functions: improve handling of thread-local data in lazy functions (8ba9d7b67a)
  • Geometry Nodes: add theme option for simulated frames in timeline (493c4dd65b)
  • WIP: BLI: refactor IndexMask for better performance and memory usage (PR #104629)
  • WIP: BLI: implicit sharing cache (PR #107794)
  • Experiments for serial loops.
  • Code Review.

Week 235: May 15 - 19

Week 236: May 22 - 26

  • Fix #108122: onion skin disappears after scrubbing timeline (9692262b9d)
  • BLI: support aligned parallel reduce (7725bacd6a)
  • BLI: add size_in_bytes method to MutableSpan (3895261454)
  • BLI: support transferring ownership of buffers between linear allocators (2b49d4eeea)
  • BLI: support keeping track of how much memory a linear allocator uses (92512f224d)
  • BLI: fix overload resolution with FunctionRef parameters (153e1c0492)
  • BLI: refactor IndexMask for better performance and memory usage (2cfcb8b0b8)
  • Depsgraph: add generic way for modifiers to check user-edited flags (0d13b0e50d)
  • Geometry Nodes: store path to simulation bake in modifier (edf4cb8b67)
  • RNA: support compiling rna files as C++ code (PR #108290)
  • Code Review.

Week 237: May 29 - 02