Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-03-15Fix T86262: Tracking backwards fails after gap in trackSergey Sharybin
The issue was caused by a prediction algorithm detecting tracking the wrong way. Solved by passing tracking direction explicitly, so that prediction will always happen correctly regardless of the state of the Tracks context.
2020-12-07Cleanup: spellingCampbell Barton
2020-12-03Tracking: Improve multithreading of tracking many markersSergey Sharybin
This change solves a bottleneck which was caused by attempt to cache postprocessed search areas used for tracking. It was a single cache used by all threads, which required to have some synchronization mechanism. This synchronization turned out to be making all threads to idle while one thread is accessing the cache. The access was not cheap, so the multi-threading did not provide expected speedup. Current solution is to remove the cache of search areas. This avoids any threading synchronization overhead because there is no need for it anymore. The downside is that for certain configurations tracking became slower when comparing to master branch. There is no expected slowdown compared to 2.91 release. The slowdown is mainly experienced when using big search area and keyframe matching strategy. Other cases should still be within a ballpark of performance of single-threaded code prior to this change. The reason why is it so is because while this change makes it so the image accessors needs to process images multiple times the complexity of this process is almost the same as all the overhead for the cache lookup and maintenance. Here are Some numbers gained on different configurations. CPU: Intel Xeom CPU E5-2699 v4 OS: Linux Footage: Old_Factory MVI_4005.mov from the first part of Track Match Blend training which can be found on the Blender Cloud. Tracking 443 markers across 250 frames. The unit is seconds. File: F9433209 2.91: 401.520874 before: 358.650055 after: 14.966302 Tracking single marker across 250 frames. The unit is seconds. File: F9433211 2.91 before after Big keyframe 1.307203 1.005324 1.227300 Big previous frame 1.144055 0.881139 0.944044 Small keyframe 0.434015 0.197760 0.224982 Small previous frame 0.463207 0.218058 0.234172 All at once 2.338268 1.481220 1.518060
2020-12-01Tracking: Refactor autotrack tracking implementationSergey Sharybin
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.
2020-11-30Tracking: Clarify tracks and options storage once againSergey Sharybin
This is something not-so-trivial to see from just reading code, which shown an important of proper comments and clear naming. Main source of confusion was that it is not immediately clear that AutoTrack context is to see all tracks, but tracking to only operate on selected ones.
2020-11-30Tracking: Cleanup, remove unused argument from image accessorSergey Sharybin
2020-11-30Tracking: Cleanup, remove unused fieldSergey Sharybin
Was re-introduced after previous round of cleanups when was merging refactor and master branches.
2020-11-30Tracking: Cleanup, use explicit frame match optionSergey Sharybin
No functional changes, just allows to potentially extend the options in the future, and also makes code more explicit.
2020-11-30Tracking: Cleanup, finish pass of comments in the contextSergey Sharybin
Some fields are still not really documented, but they are subject of refactor/fix which will happen shortly.
2020-11-30Tracking: Cleanup, replace clip user with frame numberSergey Sharybin
Makes it more clear from intent and usage point of view. The user was not used for anything else than frame number.
2020-11-30Tracking: Cleanup, more clear variable namingSergey Sharybin
A no-functional-followup of the previous commit.
2020-11-30Tracking: Fix missing frame remap for plane tracksSergey Sharybin
Tracking track which is used for plane track and movie clip having a scene frame offset would have trigger re-calculation from a wrong frame.
2020-11-30Tracking: Cleanup, clear variable names and indentationSergey Sharybin
Should be no functional changes.
2020-11-30Tracking: Cleanup, unused field in autotrack contextSergey Sharybin
Was only assigned to truth, always. Never read back.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-02-07Cleanup: Tracking, use LISTBASE_FOREACHSergey Sharybin
Makes loops declaration shorter and cleaner.
2020-02-07Cleanup: Tracking, reduce scope of variablesSergey Sharybin
Mainly affects for() loops. The reason why loop parameter was declared outside of the loop roots back to the times when not all compilers supported C99.
2019-09-07Cleanup: use post increment/decrementCampbell Barton
When the result isn't used, prefer post increment/decrement (already used nearly everywhere in Blender).
2019-08-01Cleanup: misc spelling fixesCampbell Barton
T68035 by @luzpaz
2019-07-31Spelling fixes in comments and descriptions, patch by luzpazBrecht Van Lommel
Differential Revision: https://developer.blender.org/D3744
2019-07-30BLI_task: Cleanup: rename some structs to make them more generic.Bastien Montagne
TLS and Settings can be used by other types of parallel 'for loops', so removing 'Range' from their names. No functional changes expected here.
2019-04-18Cleanup: comment blocksCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-03-15Cleanup: indentation, wrappingCampbell Barton
Mostly functions wrapping args, not confirming to our style guide.
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2018-01-10Task scheduler: Use const qualifier in callbacks for parallel rangeSergey Sharybin
2018-01-10Task scheduler: Use restrict pointer qualifierSergey Sharybin
Those pointers are never to be aliased, so let's be explicit about this and hope compiler does save some CPU ticks.
2018-01-09Task scheduler: Use single parallel range function with more flexible functionSergey Sharybin
Now all the fine-tuning is happening using parallel range settings structure, which avoid passing long lists of arguments, allows extend fine-tuning further, avoid having lots of various functions which basically does the same thing.
2018-01-09Task scheduler: Get rid of extended version of parallel range callbackSergey Sharybin
Wrap all arguments into TLS type of argument. Avoids some branching and also makes it easier to extend things in the future.
2017-12-15Tracking: Cleanup, fix typo in variable nameSebastian Koenig
2017-12-15Tracking: Pass all markers to autotrack at onceSergey Sharybin
This solves delay before tracking actually starts. The issue is reported by Sebastian over IRC, thanks!
2017-12-15Tracking: Cleanup, make autotrack context creation code more granularSergey Sharybin
2017-12-15Tracking: Cleanup, use more const qualifiers when appropriateSergey Sharybin
2017-11-27Tracking: Cleanup. make code friendly for multi-column editingSergey Sharybin
2017-11-26Removing OMP: autotrack BKE code.Bastien Montagne
Pretty straightforward this time, we already have a single struct pointer containing all needed data (or nearly). And we gain about 10-15% speed on tracking! :)
2017-08-14Tracking: Cleanup and some commentsSergey Sharybin
2017-08-11Cleanup: whitespaceCampbell Barton
2017-05-26Fix T50908: Motion Tracker ignored grease pencil maskSergey Sharybin
This feature got lost with new auto-track API, Added it back by extending frame accessor class. This isn't really a frame thing, but we don't have other type of accessor here. Surely, we can use old-style API here and pass mask via region tracker options for this particular case, but then it becomes much less obvious how real auto-tracker will access this mask with old style API. So seems we do need an accessor for such data, just matter of finding better place than frame accessor.
2016-07-21Tracking: Fix possible cases when tracker will try tracking failed tracksSergey Sharybin
2015-11-23Cleanup: shadowing (blenkernel)Campbell Barton
2015-04-22Tracking: Code cleanup, de-duplicate some code in tracking context finishSergey Sharybin
2015-01-23cleanup: styleCampbell Barton
2014-12-15Tracking: Fix wrong logic in tracks synchronizationSergey Sharybin
There was some stupidness in the way how tracks are synchronized from the job to actual DNA data leading to all sort of weird and wonderful failures again.
2014-12-15Tracking: Avoid possible treading issue reading the frame to syncSergey Sharybin
2014-12-15Tracking: Fix possible race condition accessing the tracksSergey Sharybin
Writing to the tracks was already inside the lock section, but reading was not. This could have lead to race condition leading to all sorts of weird and wonderful artifacts.
2014-11-02Cleanup: styleCampbell Barton
2014-11-01Cleanup/fix from latest coverity report.Bastien Montagne
Mostly harmless things, though the 'multires' error was a real bug.
2014-10-30Libmv: Support disabled color channels in tracking settingsSergey Sharybin
This was never ported to a new tracking pipeline and now it's done using FrameAccessor::Transform routines. Quite striaghtforward, but i've changed order of grayscale conversion in blender side with call of transform callback. This way it's much easier to perform rescaling in libmv side.