Page MenuHome

Retrieving evaluated mesh when realizing geometry nodes instances can fail
Closed, ResolvedPublicBUG

Description

System Information
Operating system: Linux-5.11.0-7614-generic-x86_64-with-glibc2.32 64 Bits
Graphics card: Quadro RTX 6000/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 460.73.01

Blender Version
Broken: version: 3.0.0 Alpha, branch: master, commit date: 2021-07-16 07:47, hash: rB038345fa5650
Worked: Caused by rBbfa3dc91b754: Depsgraph: Implement 'ID_RECALC_GEOMETRY_DEFORM'

Short description of error
When realizing many instances from a collection info node, often many instances will fail to appear. It happens more often when there are more instances, and it depends on threading.

Exact steps for others to reproduce the error
Open sample file, enable viewport visibility of Plane object. Repeat.

Simpler example:
Toggle visibility for the "Points" object. Repeat until only some instances appear.

Event Timeline

Hans Goudey (HooglyBoogly) changed the task status from Needs Triage to Confirmed.Fri, Jul 16, 8:35 PM
Hans Goudey (HooglyBoogly) claimed this task.
Hans Goudey (HooglyBoogly) changed the subtype of this task from "Report" to "Bug".

I've done a bit of investigation here. The problem seems to be a bit bigger than just the vertex groups, and I can also replicate it by realizing the instances before distribution.

Sometimes the mesh generated from joining the instances is smaller than other times:

New mesh size: 34680
New mesh size: 30923
New mesh size: 31790
New mesh size: 26010

It doesn't happen in a build without TBB (no threading).

This is quite odd, I'm not sure how the vertex refactor would cause this! I'll continue investigating later today.

Further investigation reveals that BKE_modifier_get_evaluated_mesh_from_evaluated_object sometimes returns NULL when gathering instances meshes to be realized.
I think I will bisect this just to make sure it's actually caused by the vertex group refactor.

Bisecting finished, and it points to rBbfa3dc91b754: Depsgraph: Implement 'ID_RECALC_GEOMETRY_DEFORM'

Honestly that makes a lot more sense based on the behavior I was observing when meshes are collected for instancing.

Hans Goudey (HooglyBoogly) renamed this task from Vertex group evaluation failing on realized instances in geometry nodes to Retrieving evaluated mesh when realizing geometry nodes instances can fail.Sat, Jul 17, 3:43 AM
Hans Goudey (HooglyBoogly) removed Hans Goudey (HooglyBoogly) as the assignee of this task.
Hans Goudey (HooglyBoogly) triaged this task as High priority.
Hans Goudey (HooglyBoogly) updated the task description. (Show Details)