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
2020-01-25Cleanup: spellingCampbell Barton
2020-01-24Depsgraph: Report FPS when running with --debug-depsgraph-timeSergey Sharybin
The FPS here is measured based on a timestamp from when depsgraph was previously evaluated. Allows to ease investigating performance improvements/regressions which are not related on animation system but on modifications on a single frame (such as transforming vertex in edit mode).
2020-01-24Depsgrapg: Refactor, move Relation to own fileSergey Sharybin
2020-01-08Fix T62311: Metaball animation playback crashSergey Sharybin
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. Reviewed By: dfelinto Differential Revision: https://developer.blender.org/D6539
2020-01-07Depsgraph: Revert unwillingly staged change from previous commitSergey Sharybin
One of those days, sorry for the spam.
2020-01-07Depsgraph: Cleanup spellingSergey Sharybin
For some reason got sneaked into previous commit.
2020-01-07Depsgraph: Refactor, make evaluation stages easier to extendSergey Sharybin
Currently should be no functional changes, but allows to extend it for experiments or for real fixes.
2020-01-07Depsgraph: Cleanup, move private functions to anonymous namespaceSergey Sharybin
Allows to have shorter definition lines.
2019-10-11Depsgraph: Cleanup, promote is_evaluating querySergey Sharybin
This way it might be used for sanity checks in RNA API as well.
2019-10-11Depsgraph: Don't use push-from-thread when scheduling graphSergey Sharybin
This isn't guaranteed that graph is scheduled from main thread, so it is actually a miracle how it all worked.
2019-10-08Depsgraph: Avoid threading for trivial operationsSergey Sharybin
Found this while looking into T70463, solves the high spinning times mentioned in T70463#791026. Sounds logical that iterating over an array to modify a single property is faster than doing it in threads. But strangely, doing it for both nodes and its components is still faster in threads here. Gives extra speedup with a file mentioned in the report. Reviewed By: brecht, mont29 Differential Revision: https://developer.blender.org/D6017
2019-10-08Depsgraph: Cleanup, spelling in commentSergey Sharybin
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-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-18Cleanup: C++ style of structure definitionSergey Sharybin
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 original authorCampbell Barton
Missed when removing contributors.
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.
2019-01-31Fix build errors on Visual Studio after recent changes.Brecht Van Lommel
SYNCHRONIZE is a Windows macro.
2019-01-31Depsgraph: Comb code to a better state all overSergey Sharybin
Some summary of changes: - Don't use DEG prefix for types and enumerator values: the code is already inside DEG namespace. - Put code where it locally belongs to: avoid having one single header file with all sort of definitions in it. - Take advantage of modern C++11 enabled by default.
2018-12-04Depsgraph: execute all COPY_ON_WRITE nodes first as a separate stage.Alexander Gavrilov
COW nodes in the graph are mostly connected via a relation type that doesn't propagate the update flags. Unfortunately, due to the scheduling implementation that means the relations don't actually guarantee execution order for indirect dependencies. Relations also don't guarantee order in case of cycles. As mentioned in IRC, the simplest way to fix possible problems is to execute all COW nodes as a separate execution stage. This seems to fix crashes with Data Transfer modifier in a cycle. Staging works by simply delaying actual scheduling of tasks for non-COW nodes until the second run of schedule_graph. Reviewers: sergey Differential Revision: https://developer.blender.org/D4027
2018-12-03Depsgraph: assert that mesh_get_eval_final/deform aren't used in eval.Alexander Gavrilov
Using those functions during multithreaded evaluation is a sure way to have a race condition and crash.
2018-11-09Cleanup, indentationSergey Sharybin
2018-09-24Cleanup: SpellingSergey Sharybin
2018-09-19Despgraph: Keep track of per-component visibilitySergey Sharybin
The idea of those flags is to avoid evaluation of operations which are not needed to bring visible objects to an up to date state. Previously, dependency graph attempted to do combine those into an ID level flag. In practice it proved to be rather tricky, since there could be dependency cycles on ID level which will not exist on component level.
2018-09-03Depsgraph: Use more meaningful name for flags storageSergey Sharybin
2018-08-23Depsgraph: Bring back visibility checks based on collection restrict flagsSergey Sharybin
The title says it all actually, the idea is to speedup the following case: - Visible duplicator of a restricted collection (reported as T56512), One of the questionable change is that none of the view layer bases is ignored now. This ensures corresponding objects will have copy-on-write component evaluated, making it possible to access those pointers. The evaluation of those objects is skipped. Reviewers: brecht Differential Revision: https://developer.blender.org/D3641
2018-05-31Depsgraph: Remove the "disable-copy-on-write" option completelyJoshua Leung
After discussion with Sergey and Dalai, we have decided to remove this option completely. We're getting to the point where it is almost impossible to really use 2.8 without COW, and keeping the old option running ends up diverting dev resources away towards tracking down and fixing problems with a parallel system that will be going away.
2018-04-28Cleanup: style, duplicate includesCampbell Barton
2018-04-25Depsgraph: Ensure we only expand scene datablock on evaluationSergey Sharybin
Previously it could have happened on every request to evaluated scene or view layer. This commit also removes expansion of view layer and scene from iterator. Iterator is not to be used before depsgraph is evaluated.
2018-04-16Depsgraph: remove EvaluationContext, pass Depsgraph instead.Brecht Van Lommel
The depsgraph was always created within a fixed evaluation context. Passing both risks the depsgraph and evaluation context not matching, and it complicates the Python API where we'd have to expose both which is not so easy to understand. This also removes the global evaluation context in main, which assumed there to be a single active scene and view layer. Differential Revision: https://developer.blender.org/D3152
2018-04-13Depsgraph: don't pass evaluation context to update functions.Brecht Van Lommel
The depsgraph now contains all the state needed to evaluate it. Differential Revision: https://developer.blender.org/D3147
2018-03-29Merge remote-tracking branch 'origin/master' into blender2.8Dalai Felinto
Fix for T54437: Sequencer preview uses last updated scene The fix started in master, moving EvaluationContext initialization before we leave `deg_evaluate_on_refresh()`. Upon merging master we can fix the actual issue which was to set the EvaluationContext depsgraph even if the depsgraph was already updated.
2018-03-29Depsgraph: initialize EvaluationContext even if nothing to updateDalai Felinto
This is required to T54437 (sequencer preview uses last updated scene). Although the fix itself needs to be in 2.8, for the 2.8 specific initialization code.
2018-03-22Merge branch 'master' into blender2.8Sergey Sharybin
2018-03-22Depsgraph: Report new depsgraph evaluation timeSergey Sharybin
Timing is printed to the console when running with --debug-depsgraph-time.
2018-03-12Merge branch 'master' into blender2.8Sergey Sharybin
2018-03-12Depsgraph: Make timing profile a command line optionSergey Sharybin
This way we can add even more statistics, even one which will be print to the console. Would be nice if we also have verbosity level control.
2018-02-22Depsgraph: Use proper debug print flags checkSergey Sharybin
Was printing some tagging/evaluation prints when only building messages were requested.
2018-02-15Merge branch 'master' into blender2.8Sergey Sharybin
2018-02-15Cleanup: use '_len' instead of '_size' w/ BLI APICampbell Barton
- When returning the number of items in a collection use BLI_*_len() - Keep _size() for size in bytes. - Keep _count() for data structures that don't store length (hint this isn't a simple getter). See P611 to apply instead of manually resolving conflicts.
2018-01-11Merge branch 'master' into blender2.8Sergey Sharybin
2018-01-11Depsgraph: Make eval initialization more friendly for threadingSergey Sharybin
Helps in cases of not very complex scenes and lots of system threads available. A bit hard to measure change on it's own, it works best with the upcoming changes and gives measurable improvements.
2018-01-10Merge branch 'master' into blender2.8Sergey Sharybin
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-09Merge branch 'master' into blender2.8Sergey Sharybin
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.