User:JacquesLucke/Reports/2023
< User:JacquesLucke | Reports
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
- Fix #105953: division by zero in quadriflow leads to crash r45c16f43ad6c9ae52fe4b002ccb88641a09c4ea6
- BLI: add core types for supporting implicit-sharing rfbcddfcd68adc72f4dde6c1b769659ba8e9f086b
- BLI: support == and != for Set rd81d743537d9e9965d73e8509047aed47225a37b
- Cleanup: use eCustomDataType instead of int PR #106268
- Cleanup: move flip faces code from nodes to geometry module ra145d1563a68ac08c3b72c222fee30d85850e30f
- WIP: Sculpt: update mesh data pointers stored in pbvh PR #106271
- WIP: Custom Data: support implicit sharing for custom data layers PR #106228
- Got to know the alembic api a little bit.
- Experimented with simulation baking and a freeze geometry node.
Week 229: April 03 - 07
- PBVH: update mesh data pointers stored in pbvh rcde565c26cf22f08706db93c4d22f34ce8e23546
- Cleanup: use BLO_CODE_ prefix for BHead codes r9182851afe1a59ad32f596dbb7aa79385b6655a3
- Cleanup: simplify customData_resize r5cc5d6391b78896919b3bae0fca534821f78d593
- Custom Data: support implicit sharing for custom data layers PR #106228
- Geometry Nodes: Freeze Node #106497
- Taught my first class on Blender and 3D printing.
- Code Review.
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
- Fix: calculating duplicates in kdtree does not work with selection (20b19f2b12)
- Fix: missing null check leads to crash when rendering (e674e32aa1)
- Geometry Nodes: add simulation support (0de54b84c6)
- Checkpoints prototype and proposal: https://devtalk.blender.org/t/geometry-nodes-checkpoints-proposal/29266
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
- Spend most of the week in Amsterdam in meetings: https://devtalk.blender.org/t/2023-05-15-node-tools-workshop/29426
- UI: Add timeline to Geometry Nodes workspace (PR #107982)
- BLI: refactor IndexMask for better performance and memory usage (PR #104629)
- Code review.
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
- RNA: support compiling rna files as C++ code (PR #108290)
- Wrote design task for supporting materials in simulation state: https://projects.blender.org/blender/blender/issues/108410
- Code Review.