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
2019-04-30Depsgraph: build bbone operation if bone segments has animationSergey Sharybin
This is a part of T61296: Crash with animated b-bone segments. Consider animated/driven bendy bones segments as something what requires special bendy-bones operation and relation in the dependency graph. This is because it is more beneficial from a performance point of view to not build operations if they are not needed. But if the property is animated it is not possible to make any reliable decision based on just a property value. Differential Revision: https://developer.blender.org/D4739
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-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-11Cleanup: commentsCampbell Barton
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: Shuffle arguments in most used orderSergey Sharybin
Quite often we need to create nodes which defines various evaluation stages.
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-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.
2019-01-31Fix T59495, T59992, T59904, T59178, T60598: broken keyframed value editing.Brecht Van Lommel
This removes a bunch of animation/driver evaluations and recalc flags that should be redundant in the new depsgraph, and were incorrectly affecting the evaluated scene in a permanent way. Still two cases that could be removed if the depsgraph is improved, in BKE_object_handle_data_update and BKE_cachefile_update_frame. For physics subframe interpolation there are also still calls to BKE_object_where_is_calc that should ideally be removed as well, though they are not known to cause keyframing bugs. Differential Revision: https://developer.blender.org/D4274
2018-11-23Depsgraph: add a new operation node for computing B-Bone segments.Alexander Gavrilov
Computing the shape of a B-Bone is a quite expensive operation, and there are multiple constraints that can access this information in a variety of useful ways. This means computing the shape once per bone and saving it is good for performance. Since the shape may depend on the position of up to two other bones, often in a "cyclic" manner, this computation has to be a separate node with its own dependencies. Reviewers: sergey Differential Revision: https://developer.blender.org/D3975
2018-11-20Speedup rigs with multiple objects deformed by bbonesSergey Sharybin
Previously each of the objects which has armature modifier will request deformation matricies from bbones. Thing is, all those deformations are the same and do not depend on object which is being modified. What's even worse is that this calculation is not cheap. This change makes it so bbones deformation is calculated once and stored in the armature object. After this armature modifiers simply use it. With a rigs we've got here dependency graph evaluation time goes down from 0.02 sec to 0.012 sec. Possible further optimization is to make bbone deformation calculated at the time when bone is calculated. This will avoid an extra threaded loop over all bones.
2018-11-07Depsgraph: Ensure dependency cycle does not clear runtime memorySergey Sharybin
If there was a dependency cycle involved, it was possible that pchan array will be freed before all bones are evaluated. Now clear is done in a dedicated node, which is never a part of dependency cycle.
2018-09-17Depsgraph: Cleanup, indentationSergey Sharybin
2018-09-14Depsgraph: Respect parent object visibility in more placesSergey Sharybin
Mainly coverts object->parent and pose constraints.
2018-09-14Depsgraph: Make indirectly linked objects inherit visibility from parentSergey Sharybin
This way objects which are pulled into dependency graph via modifier stack from an invisible object will be invisible.
2018-09-14Depsgraph: Use explicit argument valuesSergey Sharybin
2018-07-31Fix T56170: Fake dependency cycle in new depsgraph + interleaved armature ↵Sergey Sharybin
update + proxy Make proxy copy result more atomic operation.
2018-07-31Respect ID user count when creating pose on object copySergey Sharybin
This solves wrong user counter of custom shape when duplicating bone few times and then undoing all the duplications.
2018-07-20Fix T55973: [2.8] Crash when 'apply pose as rest pose' when bone scale is 0,0,0.Bastien Montagne
`BKE_pose_rebuild()` should (ideally) always trigger a rebuild of the depsgraph, since it can add or remove posechannels. This function now takes a Main parameter to ensure that related depsgraphes are tagged as dirty (kept it optional, for some corner cases). We should also probably double-check calls to that function, think in theory it should only be called from depsgraph itself? But for now...
2018-06-06Depsgraph: Object data separation, armatureSergey Sharybin
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-05-04Merge branch 'master' into blender2.8Sergey Sharybin
2018-05-04Depsgraph: Fix extra operations and relations created for shared armaturesSergey Sharybin
2018-04-12Depsgraph: Bind base by it's indexSergey Sharybin
For the performance we convert object bases list to an array during view layer evaluation. This makes it possible to have very cheap index-based base lookup. The goal of this change is to get rid of base used for function binding, and avoid scene datablock expansion at the depsgraph construction time.
2018-04-05Depsgraph: Avoid build-time armature expandingSergey Sharybin
With index-based pchan evaluation we don't need to go into a mess of expanding armature at relation construction time.
2018-04-05Merge branch 'master' into blender2.8Sergey Sharybin
2018-04-05Depsgraph: Pull indirect dependencies via pchan constraintsSergey Sharybin
Was missing ID looper for pchan constraint.
2018-04-04Depsgraph: Get pchan index from correct poseSergey Sharybin
This code should be replaced with evaluation-time ID block expansion, but before that it will be helpful to get old design to work again.
2018-04-04Merge branch 'master' into blender2.8Sergey Sharybin
2018-04-04Depsgraph: Ensure root pchan is always foundSergey Sharybin
2018-04-04Depsgraph: Pass CoW version of object to armature update doneSergey Sharybin
2018-04-04Depsgraph: Add missing expansion od custom bone shapesSergey Sharybin
This was fixed in 2.8 branch but not in master.
2018-04-04Merge branch 'master' into blender2.8Sergey Sharybin
2018-04-04Depsgraph: Only bind ID-data and indices to depsgraph callbacksSergey Sharybin
This is a part of copy-on-write sanitization, to avoid all the checks which were attempting to keep sub-data pointers intact. Point is: ID pointers never change for CoW datablocks, but nested data pointers might change when updating existing copy. Solution: Only bind ID data pointers and index of sub-data. This will make CoW datablock 7update function was easier in 2.8. In master we were only using pose channel pointers in callbacks, this is exactly what this commit addresses. A linear lookup array is created on pose evaluation init and is thrown away afterwards. One thing we might consider doing is to keep indexed array of poses, similar to chanhash. Reviewers: campbellbarton Reviewed By: campbellbarton Subscribers: dfelinto Differential Revision: https://developer.blender.org/D3124
2018-02-22Merge branch 'master' into blender2.8Sergey Sharybin
2018-02-22Depsgraph: Fix mistake in previous refactor commitSergey Sharybin
2018-02-22Merge branch 'master' into blender2.8Sergey Sharybin
2018-02-22Depsgraph: Replace LIB_TAG_DOIT with hash lookupSergey Sharybin
This allows us to: - Not mock around with tags stored in a global space, and not to iterate over all datablocks in the database to clear the tags. - Properly deal with datablocks which might not be in main database. While it sounds crazy, it might be handy when dealing with preview, or some partial scene updates, such as motion paths. - Avoids majority of places where depsgraph construction needed bmain. This is something what could help in blender2.8 branch. From tests with production file here did not see any measurable slowdown. Hopefully, there is no functional changes :)
2018-02-15Merge branch 'master' into blender2.8Sergey Sharybin
2018-02-15Cleanup: Remove BLI_ prefix from listbase macroSergey Sharybin
This is kind of doesn't matter where macro itself is defined. We should stick to the following: - If some macro is actually more an inline function, follow regular function name conventions. - If macro is a macro, type it in capitals. Use module prefix if that helps readability or it if helps avoiding accidents.
2018-01-30Merge branch 'master' into blender2.8Sergey Sharybin
2018-01-29Depsgraph: Correction for previous fixSergey Sharybin
Original fix only worked when there is one custom property.
2018-01-19Merge branch 'master' into blender2.8Campbell Barton
2018-01-19Cleanup: reaname LINKLIST_FOREACH -> LISTBASECampbell Barton
LinkList's are a different API, no need to confuse things.
2017-12-06Merge branch 'master' into blender2.8Sergey Sharybin
2017-12-06Depsgraph: Cleanup, use less geenric data typeSergey Sharybin
2017-12-06Depsgraph: Proxy pose bones should be coming from CoW objectSergey Sharybin
This should solve crash on files having proxies, but there will still be assert failure because proxy_from is expected to come from library, which is no longer truth for objects which got copied.
2017-12-06Merge branch 'master' into blender2.8Sergey Sharybin
2017-12-06Depsgraph: Add missing bone properties to proxy rigsSergey Sharybin