Blender Git Commit Log

Git Commits -> Revision 29401d3

Revision 29401d3 by Sergey Sharybin (master)
December 1, 2020, 14:24 (GMT)
Tracking: Refactor autotrack tracking implementation

The idea is to avoid any synchronization needed in the worker threads
and make them to operate on a local data. From implementation detail
this is achieved by keeping track of "wavefront" of markers which are
to be tracked and the tracking result. Insertion of results to the
AutoTrack context happens from main thread, which avoids need in the
lock when accessing AutoTrack.

This change makes tracking of many (300+) about 10% faster on the
Xeon) CPU E5-2699 v4. More speedup will be gained by minimizing
threading overhead in the frame cache.

Another important aspect of this change is that it fixes non-thread
safe access which was often causing crashes. Quite surprising the
crash was never reported.

Commit Details:

Full Hash: 29401d38d113342d6fe5b5545742ad355f777439
Parent Commit: 4c92fb6
Lines Changed: +493, -251

1 Modified Path:

/source/blender/blenkernel/intern/tracking_auto.c (+493, -251) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021