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
2018-04-10Depsgraph: Flush debug printsSergey Sharybin
Makes it more reliable to see what was updating last when crash happens.
2018-03-16Depsgraph: Support colored addresses in debug printsSergey Sharybin
Enabled with --debug-depsgraph-pretty, only works with ANSI terminals. Thanks Bastien for review!
2018-03-16Depsgraph: Move evaluation debug prints to depsgraphSergey Sharybin
This way we can easily control format and keep it consistent. And also possibly do other trickery, like coloring addresses!
2018-03-02Depsgraph: Fix dependency cycle when ID prop drives ID propertySergey Sharybin
Introduced explicit ID property node for driers in depsgraph, so it is clear what is the input for driver, and what is the output. This also solved relations builder throwing lots of errors due to ID property not being found.
2018-03-02Cleanup: Avoid double semi-colonSergey 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-21Depsgraph: Fix dependency when constraint influence drives some other constraintSergey Sharybin
It is not possible to address transform at particular position of constraint stack, and when constraint is being addressed is usually from driver variable. This fixes some of dependency cycles reported in T54083.
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-19Cleanup: reaname LINKLIST_FOREACH -> LISTBASECampbell Barton
LinkList's are a different API, no need to confuse things.
2018-01-17Depsgraph: Fix for fake dependency cycle being created for shape key driversSergey Sharybin
One thing i'm not fully happy with is all this is_same_* functions. Need to get rid of this by probably adding explicit entry/init/whatever nodes and maybe making node criteria aware of whether key will be used as "from" or as "to" node.
2017-12-20Depsgraph: Move ID node to own fileSergey Sharybin
2017-12-20Depsgraph: Move time source node to own fileSergey Sharybin
2017-12-20Depsgraph: Add utility function to unlink relation from graphSergey Sharybin
2017-12-18Depsgraph: Introduce flat list of ID nodesSergey Sharybin
The idea is to allow iterating over ID nodes in exact order of their construction, and in order which will not change dependent on memory pointers or anything.
2017-12-15Depsgraph: Cleanup, make naming more understandableSergey Sharybin
2017-12-15Move ID recalc flags into dedicated field in IDSergey Sharybin
Currently this is a no-visible-changes change, but the idea is to use this dedicated flag to tell which exact components of ID changed, make it more granular than just OBJECT and OBJECT_DATA. Allow setting this field based on what components new dependency graph flushed on evaluation.
2017-12-06Depsgraph: Add missing NULL pointer checkSergey Sharybin
2017-12-06Depsgraph: Add ability to check whether relation exists before adding itSergey Sharybin
Currently not used, but this is aimed to be used when adding relations from FCurve to property which is being animated.
2017-12-06Depsgraph: Correct fallback for the parameters calculationSergey Sharybin
We can't use a single component here, sine it might consist of multiple operations. So, for example, having driver operation will confuse targets of another driver.
2017-12-06Depsgraph: Add criteria for RNA_KeySergey Sharybin
2017-12-06Depsgraph: Remove confusing ID node criteriaSergey Sharybin
it sometimes overrides all possible other criteria, even tho we might want to be very specific about what component we are looking for here.
2017-12-06Depsgraph: Use generic function for shape key driver targetSergey Sharybin
2017-12-06Depsgraph: Correct RNA pointer criteria to deal with bone custom propertiesSergey Sharybin
2017-12-04Depsgraph: Cleanup, node from RNA pointer searchSergey Sharybin
2017-11-23Depsgraph: Cleanup, always call full `object`Sergey Sharybin
2017-06-14Depsgraph: Remove unused ID node removalSergey Sharybin
2017-06-13Depsgraph: Remove root node conceptSergey Sharybin
Was rather weird and only used for time source. It is simpler to make depsgraph to keep track of time source directly. No need to introduce extra entitites without actual need.
2017-06-01Depsgraph: Cleanup, use DEG_NODE_TYPE prefix for depsgraph node typesSergey Sharybin
2017-06-01Depsgraph: Remove unused argument from time source querySergey Sharybin
2017-06-01Depsgraph: Remove subgraph nodesSergey Sharybin
Those were never finished nor used. Again, starting from clean state before we go into more complicated details.
2017-06-01Depsgraph: Remove dead codeSergey Sharybin
Was never used or worked on in ages, if any of this code is needed in the future it'll need to be redone anyway.
2017-06-01Depsgraph: Cleanup, get rid of relation typeSergey Sharybin
It was never actually used apart from being stored at a construciton time. This caused some redundancy and ncertanty about which relation type to use during construciton (often existing types were not close enough to particular use case).
2016-11-23Depsgraph: Fix matrix_world driver sourceSergey Sharybin
Reported by Dalai in IRC, thanks!
2016-11-21Depsgraph: Fix infinite viewport object update in CYcles render modeSergey Sharybin
The issue was caused by wrong object re-tag needed to have proper dependnecies update for OpenSubdiv.
2016-11-07fix building depsgraph after recent changesMartijn Berger
2016-11-07Depsgraph: Use const char instead of string in part of drivers constructionSergey Sharybin
2016-11-07Depsgraph: Switch away form string to const char* for node namesSergey Sharybin
There is no real reason to have nodes storing heap-allocated name and description. Doing this increases amount of allocations during dependency graph building, which usually means somewhat slowness. We're temporarily loosing some eyecandy in the graphviz visualizer, but those we can bring back as a part of graphiz dump (which happens much less often than depsgraph build). This will happen in multiple commits for the ease of bisect in the future just in case this causes any regression. This commit contains ID creation API changes.
2016-05-27Depsgraph: Cleanup and code simplificationSergey Sharybin
This is mainly a maintenance commit which was aimed to make work with this module more pleasant and solve such issues as: - Annoyance with looong files, which had craftload in them - Usage of STL for the data structures we've got in BLI - Possible symbol conflicts - Not real clear layout of what is located where So in this commit the following changes are done: - STL is prohibited, it's not really predictable on various compilers, with our BLI algorithms we can predict things much better. There are still few usages of std::vector, but that we'll be solving later once we've got similar thing in BLI. - Simplify foreach loops, avoid using const_iterator all over the place. - New directory layout, which is hopefully easier to follow. - Some files were split, some of them will be split soon. The idea of this is to split huge functions into own files with good documentation and everything. - Removed stuff which was planned for use in the future but was never finished, tested or anything. Let's wipe it out for now, and bring back once we really start using it, so it'll be more clear if it solves our needs. - All the internal routines were moved to DEG namespace to separate them better from rest of blender. Some places now annoyingly using DEG::foo, but that we can olve by moving some utility functions inside of the namespace. While working on this we've found some hotspot in updates flush, so now playback of blenrig is few percent faster (something like 96fps with previous master and around 99-100fps after this change). Not saying it's something final, there is still room for cleanup and API simplification, but those might happen as a regular development now without doing any global changes.
2016-05-25Depsgraph: Simplify some loops using foreach()Sergey Sharybin
2016-05-09Depsgraph: Store node input/output links in a vector rather than in setSergey Sharybin
Set is much slower to iterate through (due to cache misses and such) and the only advantage of using set is faster removal of link. However, we are iterating links much much more often than removing them, and even when we are removing links we don't really need to remove link from nodes which it connects -- we don't support partial depsgraph updates, so removing links from nodes on destruction is a waste of time. If we ever want to support partial updates we can have dedicated function to remove link from nodes it connects. This gives a surprising increase of fps from 42 to 56 with test file from Mr. J.P.Bouza (blenrig_for_debugging.blend). Surprising because old DEG is actually slower here (52 fps). Didn't see any regressions (and don't see why they will happen), so let's ask our riggers and animators to perform further speed tests ;)
2015-12-27Split id->flag in two, persistent flags and runtime tags.Bastien Montagne
This is purely internal sanitizing/cleanup, no change in behavior is expected at all. This change was also needed because we were getting short on ID flags, and future enhancement of 'user_one' ID behavior requires two new ones. id->flag remains for persistent data (fakeuser only, so far!), this also allows us 100% backward & forward compatibility. New id->tag is used for most flags. Though written in .blend files, its content is cleared at read time. Note that .blend file version was bumped, so that we can clear runtimeflags from old .blends, important in case we add new persistent flags in future. Also, behavior of tags (either status ones, or whether they need to be cleared before/after use) has been added as comments to their declaration. Reviewers: sergey, campbellbarton Differential Revision: https://developer.blender.org/D1683
2015-08-28Fix remaining parts of T44881, missing update on loading fileSergey Sharybin
2015-08-28Fix T45929: OpenSubdiv was doing extra object recalc tagsSergey Sharybin
2015-08-27Fix T45702: Editing smoke while viewport render and blender bugSergey Sharybin
Issue was caused by blender internal accessing data from DNA during rendering. There's no simple solution to make stuff thread safe, so for now simply restart rendering on frame update.
2015-08-27OpenSubdiv: Tweaks to detecting whether geometry data is needed on GPU with ↵Sergey Sharybin
new DEG
2015-08-03OpenSubdiv: Make new geometry relations ensures dependent data exists on CPUSergey Sharybin
2015-08-03OpenSubdiv: Resolve crashes when other object depends on subsurf-ed objectSergey Sharybin
Cases like using subsurfed object as a boolean operand can't be evaluated on GPU and needs to have all the CCG on CPU. This commit resolves existing configuration to survive, but new configurations would need to have some sort of forced object update so all the data is being moved on CPU if it was previously on GPU.
2015-05-20doxygen: corrections/updatesCampbell Barton
Also add depsgraph & physics
2015-05-12Depsgraph: New dependency graph integration commitSergey Sharybin
This commit integrates the work done so far on the new dependency graph system, where goal was to replace legacy depsgraph with the new one, supporting loads of neat features like: - More granular dependency relation nature, which solves issues with fake cycles in the dependencies. - Move towards all-animatable, by better integration of drivers into the system. - Lay down some basis for upcoming copy-on-write, overrides and so on. The new system is living side-by-side with the previous one and disabled by default, so nothing will become suddenly broken. The way to enable new depsgraph is to pass `--new-depsgraph` command line argument. It's a bit early to consider the system production-ready, there are some TODOs and issues were discovered during the merge period, they'll be addressed ASAP. But it's important to merge, because it's the only way to attract artists to really start testing this system. There are number of assorted documents related on the design of the new system: * http://wiki.blender.org/index.php/User:Aligorith/GSoC2013_Depsgraph#Design_Documents * http://wiki.blender.org/index.php/User:Nazg-gul/DependencyGraph There are also some user-related information online: * http://code.blender.org/2015/02/blender-dependency-graph-branch-for-users/ * http://code.blender.org/2015/03/more-dependency-graph-tricks/ Kudos to everyone who was involved into the project: - Joshua "Aligorith" Leung -- design specification, initial code - Lukas "lukas_t" Toenne -- integrating code into blender, with further fixes - Sergey "Sergey" "Sharybin" -- some mocking around, trying to wrap up the project and so - Bassam "slikdigit" Kurdali -- stressing the new system, reporting all the issues and recording/writing documentation. - Everyone else who i forgot to mention here :)