Page MenuHome

Fix T62311: Metaball animation playback crash
ClosedPublic

Authored by Sergey Sharybin (sergey) on Tue, Jan 7, 1:56 PM.

Details

Summary

This commit restores old metaball workaround which was forcing their
update from a single thread.

The root of the issue comes to the fact that metaball evaluation needs
to access metaballs from duplilists, so they are properly polygonized
with corresponding motherball which is outside of duplilist.

In a more ideal world this will be implemented in a way that will not
require iterating over all duplilists, but only through the ones which
actually contain metaballs for the given motherball. In practice this
ends up in a huge refactor in both relations builder (which meeds to
see whether there are metaballs in duplilists without actually
creating duplilist as it can not be done prior scene is evaluated)
and in metaballs area which need to use new relations information.
Additionally, metaball evaluation must become thread-safe, which is
currently not a case with dupli-object matrices. There might be issues
deeper in polygonization code which I am not aware of.

Having this forced single-thread evaluation is same as Blender 2.79
was doing.

Think it's better to have slower but simpler solution than to invest
time in refactoring area which requires deeper design changes.

Diff Detail

Repository
rB Blender

Event Timeline

I think the decision to compromise on single-thread for metaballs is good until we make metaball a priority project.

This revision is now accepted and ready to land.Tue, Jan 7, 2:12 PM