User:JacquesLucke/Reports/2021

Week 115: January 04 - 08

  • Fixed T84106: Attribute mix node worked incorrectly on float attributes (17be214).
  • Fixed T83876: Blender crashes when baking particles + smoke sim (5aab7f6).
  • Fixed T84142: Crash when mirroring hair emitted from vertices (c55b578).
  • Fixed T83282: Division by zero when creating psys tasks (357e519).
  • Fixed T83497: Missing relations update when group node changes (c26f46c).
  • Fixed T83942: Improve error checking when trying to render high resolution volume (e3ae7d1).
  • Fixed T83544: Cycles crash when rendering with Save Buffers enabled (d095411).
  • Fix: Tried to set error message on modifier that does not exist (39f99fd).
  • Scenes: Forbid deleting last local scene (bc78892).
  • Created T84369: Can be used as a common base task for missing cache invalidation for fluid simulation.
  • Partially fixed T83592: Crash when deleting or reloading linked scene (D10046).
  • Reviewed D9697: Refactor IDProperty UI data storage.
  • Investigated T84397: Creating and removing many objects very quickly causes a crash.

Next Week

Geometry Nodes sprint.

Week 116: January 11 - 15

  • RNA: Support range-based for loops in C++ api (c4286dd).
  • Cycles: Start simplifying some code based on the above api update (P1890).
  • Geometry Nodes: Refactored the Point Distribution node (d985751).
  • Geometry Nodes: Improved attribute handling when input and output attributes have the same name (e5ee7e9).
  • Geometry Nodes: Wrote initial documentation for Rotate Points and Align Rotation to Vector nodes.
  • Geometry Nodes: Improved support for float2 attributes and added related implicit conversions.
  • Geometry Nodes: Support accessing uv data through attribute system (33a558b).
  • Geometry Nodes: Support attribute interpolation for Point Distribute node (a51584d).
  • Created D10121: Geometry Nodes: New Sample Texture node.
  • Reviewed D9400: Add a Python template for image processing.

Next Week

Geometry Nodes sprint.

Week 117: January 18 - 22

  • Geometry Nodes: Initial volume support (793547e).
  • Geometry Nodes: Finished Sample Texture node (425e706).
  • Geometry Nodes: Started working on Points to Volume node (D10169).
  • Wrote documentation for some geometry nodes.
  • Various meetings related to geometry nodes.

Next Week

Bug sprint.

Week 118: January 25 - 29

  • Helped with D10198: Attempt to migrate Movie Clip Editor to new tool system.
  • Fixed T84907: Incorrect dirty mask after geometry join node.
  • Fixed T84935: Boolean custom data layers not saved correctly.
  • Simplified D10046: Fix T83592: Crash when deleting or reloading linked scene.
  • Cycles: Modernize usage of rna iterators (8a77019).
  • Cycles: WIP implementation for supporting custom mesh attributes (D10210).
  • Geometry Nodes: Started short discussion for how to handle shear (T85049).
  • Geometry Nodes: Wrote documentation for Points to Volume node.
  • Code Review.

Next Week

Geometry nodes sprint.

Week 119: February 01 - 05

  • Geometry Nodes: New Volume to Mesh node (16abe93).
  • Geometry Nodes: New pivot axis property for Align Rotation to Vector node (46e0efb).
  • Geometry Nodes: New Is Viewport node (e7af04d).
  • Geometry Nodes: Initial attribute interpolation between domains (D10305).
  • Geometry Nodes: Started refactoring internal attribute access architecture (D10341).
  • Rendering: Investigated why volumes are rendered with an offset and how to fix it (T85312).
  • DNA: Support structs with a size of 1 or 2 bytes (a0867f0).

Next Week

Geometry nodes sprint.

Week 120: February 08 - 12

  • Geometry Nodes: Refactor internal attribute access architecture (4601e3a).
  • Geometry Nodes: Initial attribute interpolation between domains (17672ef).
  • RNA: Support bool attribute (dabf96f).
  • Fixed T85492: Fix check if object has visible instances.
  • Fixed T85514: Exact match is not showing up in search menu.
  • Fixed T85420: Moving color ramp handles via position input does not work.
  • Fixed T85541: Crash when replacing an existing node link.
  • Fixed T85545: Changing position attribute does not tag normals dirty.
  • Fixed T84899: Instance ids are not unique in common cases.
  • Updated D10295: Volumes has an offset in Workbench, Eevee and Cycles.
  • Updated D10210: Support accessing custom mesh attributes.
  • Code Review.

Next Week

Geometry nodes sprint.


Week 121: February 15 - 19

  • Geometry Nodes: Realize instances before passing geometry to mesh modifiers (96da8e9, 55a69d5).
  • Geometry Nodes: Convert point cloud to mesh vertices for mesh modifiers (999abee).
  • Geometry Nodes: Support accessing vertex colors (e3f0b6d).
  • Geometry Nodes: Support adapting point to corner domain (72e2b50).
  • Geometry Nodes: Use corner domain for densities in Point Distribute node (51c2ee4).
  • Cycles: Support accessing custom mesh attributes (3a6d629).
  • UI: Fuzzy search in collection search (116cda6).
  • Fixed T84624: Node group data-block has phantom user.
  • Fixed T85697: Subdivision surface node output does not contain vertex group names.
  • Created D10439: Cleanup: Remove scene parameter from object_duplilist.
  • Created D10462: Geometry Nodes: Store available attribute names in node ui storage.
  • Created D10476: BLI: New FunctionRef type.
  • Created T85736: Incorrect volume rendering when enabling NanoVDB.
  • Updated manual and wiki page about attributes.
  • Code Review.

Next Week

Geometry nodes print.

Week 122: February 22 - 26

  • Spend most of the week working on the MVP for a new spreadsheet editor. The first patch will be available next week.
  • Geometry Nodes: Improve accessing attribute meta data (18be02b).
  • Spend a couple of hours reviewing the Sculpt Expand patch (D10455). I should finish this within the next few days.

Next Week

Mostly focus on the new spreadsheet editor and code review besides some smaller things.

Week 123: March 01 - 05

  • Created an initial patch for the spreadsheet editor (D10566). However, we took a step back and focussed on design a bit more.
  • Fixed T86172: Check if attribute is actually accessible.
  • Fixed T86204: Support multiple group inputs in node group.
  • Fixed T86172: Tag relations update when pasting nodes.
  • Fixed T86050: Use material count from correct data block.
  • Nodes: Improve NodeTreeRef (44ab908, 7d68539).
  • Nodes: Refactored derived node tree (d286994).
  • UI: Prefer shorter search items in fuzzy search (f951aa0).
  • BLI: Some memory management improvements (456d3cc, 7497945).
  • Finished review of the Sculpt Expand patch (D10455).
  • More code review.

Next Week

Probably work on spreadsheet editor and other geometry nodes related things.

Week 124: March 08 - 12

  • Spreadsheet: Add boilerplate code for new editor type (9cb5f0a).
  • Spreadsheet: New spreadsheet editor (3dab6f8).
  • Spreadsheet: Expose more domains and point cloud data (5f1f233).
  • Spreadsheet: Add status bar (b617b44).
  • Spreadsheet: Support showing data from original/unevaluated object (4ed208b).
  • Geometry Nodes: Expose crease attribute ([1]).
  • Geometry Nodes: Transfer polygon attributes to points in Point Distribute node (4fece16).
  • Fixed T86432: Missing check if an attribute is available.
  • Closed the blenloader decentralization task and created a couple of follow up tasks for different modules (T76372).
  • Code review.

Next Week

More work on the spreadsheet editor and the user manual.

Week 125: March 15 - 19

  • Spreadsheet: Improve separation of drawing and data separation (5ad4713).
  • Spreadsheet: Show number of filtered rows only when necessary (e7f59e6).
  • Nodes: Fix crash after undo after recent multi-input-socket changes (cf5cada).
  • Nodes: Improve handling of derived data in node tree ref (0ff3f96, 0021569).
  • Nodes: Implement dot graph exporter for derived node tree (3494946).
  • Geometry Nodes: Expose builtin crease attribute (3618948).
  • Geometry Nodes: Store domain and data type in attribute hints (e00a47f).
  • Geometry Nodes: Fix crash when inserting certain invalid links (2dd055b).
  • Geometry Nodes: Built a prototype for the tool system for nodes (T86395).
  • Geometry Nodes: Built a prototype for portal nodes and pages (T86583).
  • BLI: Provide a default hash for enums (ac60e64).
  • BLI: Improve implicit conversions of spans (bf62002).
  • BLI: Support equality operator on Span and Vector (e9eb08f).
  • BLI: Improve support for generic algorithms with C++ containers (98721c8).
  • BLI: Add macro to indicate unreachable code (D10780).
  • RNA: Support automatically mapping string property to allocated char pointer (D10773).
  • Functions: Refactor virtual array data structures (4fe8d04).
  • Code Review.

Next Week

Geometry nodes sprint.

Week 126: March 22 - 26

  • User Manual: Various updates for the spreadsheet editor and geometry nodes.
  • Wiki: Added some docs for the node tools prototype (T86814).
  • UI: Rename node editor sidebar categories (3b05311).
  • Spreadsheet: Show comma separators in number of rows (028ca67).
  • Geometry Nodes: Show domain in attribute fill node (9c7492e).
  • Geometry Nodes: Rename attribute domains (28cf851).
  • Geometry Nodes: Make random float node more consistent with other nodes (77887f9).
  • Geometry Nodes: Made a small prototype for more compact nodes (T87009).
  • BLI: Add macro to indicate unreachable code (433fb93).
  • BLI: Fix Set.lookup_key_or_add (9b42626).
  • BLI: Simplify using DefaultHash (1d7adb6).
  • Functions: Make multi-functions smaller and cheaper to construct in many cases (01b6c4b).
  • Functions: Devirtualize virtual arrays in simple functions (21268ad).
  • Code Review.

Next Week

General geometry nodes development.

Week 127: March 29 - 02

  • Fixed T86972: Transform node transforms shape keys.
  • Fixed T86966: Crash when rendering with geometry nodes.
  • Fixed T86876: Cannot modify float properties of geometry nodes modifier from Python.
  • Fixed T86298: Crash when loading "corrupted" geometry node tree.
  • Fixed T87087: Attributew were removed automatically even though they are still needed.
  • Geometry Nodes: Support multiple group input nodes (5da5a1c).
  • Geometry Nodes: Add socket value logging capability (2a5c0c3).
  • Nodes: Separate node name and display name in bNodeTreePath (b007279).
  • BLI: Renamed resource collector to resource scope (b5c2c3a).
  • BLI: Add call_safe method for FunctionRef (328b393).
  • Wiki: Moved some design docs for portals/pages to the wiki (T86816).
  • D10875: Spreadsheet: Show data of active node.
  • Code Review.

Next Week

General geometry nodes and spreadsheet development.

Week 128: April 05 - 09

  • Spreadsheet: Support showing data of specific node (c6ff722).
  • Spreadsheet: Persistent column storage and data source (75491fe).
  • D10931: Spreadsheet: Breadcrumbs and node pinning (WIP).
  • Cleanup: Enable modernize-use-equals-default check (19dfb6e).
  • Continued working on using virtual arrays for attributes.
  • Code Review.

Next Week

General geometry nodes and spreadsheet development.

Week 129: April 12 - 16

  • Fix T87348: Convert vertex colors to linear color space.
  • Fix T87308: Don't show columns when there are no instances.
  • Fix T87434: Spreadsheet shows same column more than once.
  • Fix T85691: Attributes used by geometry nodes were removed automatically.
  • Fix T87441: Don't remove custom attributes automatically.
  • Fix T87217: Improve impact of seed in point distribute node.
  • Fix T87169: Support attribute search on group nodes.
  • Fix T87522: Frame selected does not take instances into account.
  • Fix unreported: Instances disappear when instanced mesh is in edit mode (1266df8).
  • Spreadsheet: Breadcrumbs and node pinning (3810bcc).
  • Spreadsheet: Rename Point to Vertex (1f2a801).
  • Geometry Nodes: Realize instances in subdivide node (93d8c75).
  • Geometry Nodes: Refactor implicit conversions (05dbbd8).
  • Geometry Nodes: Use virtual arrays in internal attribute api (5cf6f57).
  • Functions: Extend virtual array functionality (3608891).
  • BLI: Support multiple arguments for value in *_as methods of Map (d0d8574).
  • BLI: Support multiple parameters in Stack.push_as method (eff2b89).
  • BLI: Add Vector.append_as method (686452f).
  • D11003: Cleanup: Replace .index_range() with iter_indices().
  • Started working on new geometry nodes evaluator.
  • Code Review.

Next Week

I want to work on a new geometry nodes evaluator this week. One important goal among a few others is to support a switch node efficiently (by computing its inputs lazily).

Week 130: April 19 - 23

Didn't get too far on the new geometry nodes evaluator this week unfortunately.

  • Fixed T87659: Crash when creating reroute loop in geometry nodes.
  • Fixed T87661: Attribute Combine XYZ node can't overwrite existing attribute.
  • Fixed T87582: Incorrect interpolation from edge to corner domain.
  • Geometry Nodes: Support geometry nodes modifier on volume objects (8c0f7d1).
  • Geometry Nodes: Skip attribute conversion if src and dst are the same (2125ee4).
  • Geometry Nodes: Extract mesh surface sampling functions to separate file (1dd1772).
  • Geometry Nodes: Initial Attribute Transfer node (D11037).
  • Geometry Nodes: Incorrect data in spreadsheet (71db02e).
  • Geometry Nodes: Warn when output attribute has not been saved (4cb8438).
  • Spreadsheet: Combine vector/color spreadsheet columns (D11056).
  • Depsgraph: Support depending on collection geometry (D11053).
  • Created T87620: Geometry Nodes Evaluator Improvements.
  • Functions: Add slice method for generic spans (d5309bf).
  • Code Review.

Next Week

General module work and bug fixing.

Week 131: April 26 - 30

  • Fixed T85889: Recursive instances result in crash.
  • Fixed T87526: Poor contrast in attribute search.
  • Fixed T87876: Vertex groups missing when mesh is in edit mode.
  • Fixed T87767: Spreadsheet not updating on texture changes.
  • Drag & Drop: Use session id instead of name to identify dropped object (D11116).
  • Geometry Nodes: Improve geometry nodes evaluator internal api (908bb03).
  • Geometry Nodes: Initial Attribute Transfer node (a022cff).
  • Geometry Nodes: Refactor instances component (D11125).
  • Depsgraph: Support depending on collection geometry (b67fe05).
  • Functions: Make copying virtual arrays to span more efficient (4e10b19).
  • Functions: Add method to create shallow copy of virtual array (4225a18).
  • BLI: Improve VectorSet data structure (7041568).
  • BLI: Support removing Map elements during iteration (313a1c0).
  • Code Review.

Next Week

General module work and bug fixing.

Week 132: May 03 - 07

Most of the week I spend investigating issues with material handling in geometry nodes and implementing a new much more capable geometry nodes evaluator. I also started working on (attribute panels), but keep running into technical issues, that needs more thought.

  • Geometry Nodes: Initial material handling (D11155).
  • Geometry Nodes: New Geometry Nodes evaluator (D11191).
  • Drag & Drop: Use session id instead of name to identify dropped object (D11116).
  • Code Review.

Next Week

General module work.

Week 133: May 10 - 14

  • Geometry Nodes: Finished patch for the new geometry nodes evaluator (D11191).
  • Geometry Nodes: Updated patch for new Material Assign node (D11155).
  • Geometry Nodes: Use texture socket in Attribute Sample Texture node (2871fadc).
  • Geometry Nodes: Remove some unnecessary updates (26b4ef6).
  • Created T88196: to get feedback on how to support changing material slots during evaluation.
  • Support changing materials during evaluation (D11236).
  • Nodes: Fix connecting wrong sockets when inserting node (65f9550).
  • Nodes: Add boilerplate for texture and material sockets (2074729).
  • BLI: Add initial wrapper for tbb::enumerable_thread_specific (8b87fc1).
  • BLI: Support looking up a key stored in Map or VectorSet (d288eeb).
  • BLI: Simplify supporting heterogeneous lookup for new types (b90fec5).
  • Added various changes from the last weeks to the user manual.
  • Code Review.

Next Week

General module work.

Week 134: May 17 - 21

  • Materials: Support changing materials during evaluation (1a81d26).
  • Materials: Support materials when applying modifier (f3a0267).
  • Geometry Nodes: Take materials into account when joining geometries (5e6f3b8).
  • Geometry Nodes: New Material Assign node (f41a753).
  • Geometry Nodes: New Material Replace node (c154b07).
  • Geometry Nodes: New geometry nodes evaluator (b084b57).
  • Geometry Nodes: Initial attribute list for meshes (D11276).
  • Geometry Nodes: New Select by Material node (D11324).
  • Created T88460: Technical design for attribute ui list.
  • Started working on attribute processor for geometry nodes.
  • Code Review.

Next Week

General module work.

Week 135: May 24 - 28

  • Fixed T88250: Crash when instancing object in disabled collection.
  • Fixed T88588: Crash when muting node with multi input socket.
  • Attempted to Fix T88454: Incorrect handling of dupli-objects (D11402).
  • Geometry Nodes: Worked on attribute processor prototype in temp-attribute-processor branch.
  • Nodes: Fix threading issues with node ui storage (b67423f).
  • Investigated a deadlock that is apparently caused by task isolation (T88598).
  • Code Review.

Next Week

General module work.

Week 136: May 31 - 04

  • Geometry Nodes: Do not create unnecessary geometry components (26fb7b9).
  • Geometry Nodes: Add empty material slot to new meshes (6583fb6).
  • Geometry Nodes: Started working on viewer node (D11470).
  • Updated D11276: Initial attribute list for meshes.
  • Updated D11415: Support disabling task isolation in task pool.
  • D11438: Fix memory leak when python safety is on.
  • Cleanup: Moved some files to C++ (4f8edc8).
  • Add workaround for gcc 11 compiler bug (6cd64f8).
  • Updated the manual for recent changes.
  • Code Review.

Next Week

General module work.

Week 137: June 07 - 10

  • Fix T88719: Attribute Remove node input field does nothing.
  • Fix T88807: Crash when there are multiple links between the same sockets.
  • Fix T88578: Crash when loading value from group input node.
  • Fix T89001: Node search not working anymore.
  • Geometry Nodes: Enable multi-threading in evaluator again (933c2cf).
  • Geometry Nodes: New Select by Material node (08b0de4).
  • Geometry Nodes: New viewer node (D11470).
  • Geometry Nodes: New Attribute Processor (D11547).
  • BLI: Support disabling task isolation in task pool (ed1fc9d).
  • Depsgraph: Disable task isolation in evaluator task pool (D11531).
  • Id Properties: Update depsgraph id properties change (WIP) (D11572).
  • Nodes: Add utilities to check if there are undefined nodes/sockets (fe22635).
  • Nodes: Cache socket identifier to index mapping (605ce62).
  • Update geometry nodes manual.
  • Code Review.

Next Week

General module work.

Week 138: June 14 - 18

  • Fix T88947: Invalid normals when converting point cloud to mesh.
  • Fix T88494: Add missing depsgraph relation update tags.
  • Geometry Nodes: Improved viewer node patch (D11470).
  • Geometry Nodes: Fix z-up spline normal calculation (94084b2).
  • Geometry Nodes: Support minimum twist normal mode (7c1bb23).
  • Geometry Nodes: Improve node locking in evaluator (1388e9d).
  • Geometry Nodes: Fix ownership issue in spline to points conversion (56db09e).
  • ID Properties: Update depsgraph when id properties change (D11572).
  • BLI: Add threading namespace (45d59e0).
  • BLI: Add C++ wrapper for task isolation (b37093d).
  • Update geometry nodes manual.
  • Code Review.

Next Week

Node workshop in Amsterdam.

Week 139: June 21 - 25

  • Fix T89122: Crash when multi input is connected to multiple group inputs.
  • Fix T89390: Crash when Join Geometry node has only muted inputs.
  • Geometry Nodes: Some changes to the attribute processor prototype (D11547).
  • Was traveling to Amsterdam and back and had many nodes related meetings there (notes on devtalk).

Next Week

General module work.

Week 140: June 28 - 02

  • Geometry Nodes: Refactor logging during geometry nodes evaluation (D11785).
  • Geometry Nodes: Wrote proposal for attribute handling (Fields and Anonymous Attributes).
  • UI: Custom free function improvements (17a67bf).
  • BLI: Improve enum operators (f7e2559).
  • Functions: Improve CPPType (7d281a4).

Next Week

General module work.

Week 141: July 05 - 09

  • Fix T89397: Animation in geometry nodes modifier does not update.
  • Fix T89429: Instances are made real when the shouldn't be.
  • Fix: Crash when using empty attribute search (09082f6).
  • Fix T89734: Incorrect dependency cycle with id property on modifier (D11851).
  • Geometry Nodes: Refactor logging during geometry nodes evaluation (0153e99).
  • Geometry Nodes: Initial support for geometry in Point Instance node (D11841).
  • Geometry Nodes: Initial socket inspection (D11842).
  • Nodes: Dim links whose start and end socket are not visible (D11813).
  • BLI: Add conversion constructor for destruct_ptr (ded4dc7).
  • BLI: Wrap more features of tbb::enumerable_thread_specific (fb46c04).
  • BLI: Avoid calling deleted copy constructor in some compilers (af8fb70).
  • Functions: Add utility to create string from value of generic type (24a7774).
  • Cleanup: Fix variable shadow warnings (D11855).
  • Wrote documentation for Curve Line node, Viewer node and attribute list for meshes.

Next Week

General module work.

Week 142: July 12 - 16

  • Fix T89775: Geometry nodes logging crash during render.
  • Fix T89734: Incorrect dependency cycle with id property on modifier.
  • Geometry Nodes: Improved and gathered feedback for geometry instancing (D11841).
  • Geometry Nodes: Initial socket inspection (271f34f).
  • Nodes: Dim links whose start and end sockets are not visible (c27ef1e9).
  • Nodes: Highlight entire link when connected to a selected node (D11930).
  • Code Review.

Next Week

General module work.

Week 143: July 19 - 23

Took two days off.

  • Fix T89881: Ignore unavailable sockets when searching for link cycles.
  • Fix T89829: Wrong active context path check in spreadsheet.
  • Fix T90065: Disable attribute search in places where there is too little context.
  • Fix T89393: Crash when selecting edges when geometry nodes modifier has "on cage" turned one.
  • Fix: Avoid creating improper rotation matrix (6ac378e).
  • Documentation: Initial geometry nodes inspection docs (8220).
  • Started working on supporting modifier context in spreadsheet.
  • Code Review.