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-02-22Depsgraph: Remove unused argumentSergey Sharybin
2018-02-22Depsgraph: Remove unused bmain from modifiers relations update contextSergey Sharybin
2018-02-22Depsgraph: Wrap all arguments foe modifiers relations update into a structSergey Sharybin
Makes it easier to add or remove fields needed to update relations.
2018-02-21Depsgraph: Split debug flagsSergey Sharybin
Now it's possible to have debug messages for following things: - Graph construction - Graph evaluation - Graph tagging
2018-01-09Fix T53691: Motion Tracking Object Solver Constraint doesn't work as Bone ↵Sergey Sharybin
Constraint
2018-01-09Depsgraph: Move special handling of tracking constraints to a dedicated functionSergey Sharybin
2018-01-09Depsgraph: Perform early check on constraint info NULLSergey Sharybin
2017-12-21Depsgraph: Make it more clear that we dump relations into graphvizSergey Sharybin
We might implement other things to dump into graphviz, so better to start having explicit names.
2017-12-21Depsgraph: Remove eval priority from debuggerSergey Sharybin
This needs to be redone anyway, to correspond to possibly new priorities calculated for evaluaiton.
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-13Depsgraph: Cleanup, use less explicit checks of LIB_TAG_ID_RECALC_DATASergey Sharybin
This is a part of ongoing work in Blender 2.8, where we need to replace `object->id.tag & LIB_TAG_ID_RECALC_DATA` with `object->data->id.tag & LIB_TAG_ID_RECALC` Should be no user measurable difference.
2017-11-30Fix T53410: 3D Text always recalculatedCampbell Barton
2017-09-15Transform: Enable recursion dependency check for new depsgraphSergey Sharybin
2017-04-24Cleanup: styleCampbell Barton
2017-04-04Depsgraph: Use atomic operation to tag the changed IDSergey Sharybin
2017-02-27Similar to previous commit, but for object constraintsSergey Sharybin
2017-02-27Depsgraph: Shrinkwrap constraint actually depends on geometrySergey Sharybin
2017-01-31Cleanup: use 'cb_flag', not 'cd_flag' for library_query callbacks.Bastien Montagne
`cd_flag` tends to be used for CustomData flags in mesh area, while for library_query those are rather callback flags...
2016-12-05Fix depsgraph: hair collision is actually enabled, so add the relations.Alexander Gavrilov
2016-11-30Cleanup id->newid usage, initial work.Bastien Montagne
This aims at always ensuring that ID.newid (and relevant LIB_TAG_NEW) stay in clean (i.e. cleared) state by default. To achieve this, instead of clearing after all id copy call (would be horribly noisy, and bad for performances), we try to completely remove the setting of id->newid by default when copying a new ID. This implies that areas actually needing that info (mainly, object editing area (make single user...) and make local area) have to ensure they set it themselves as needed. This is far from simple change, many complex code paths to consider, so will need some serious testing. :/
2016-11-15Atomics: Make naming more obvious about which value is being returnedSergey Sharybin
2016-10-28CacheFile: fix missing depsgraph update.Kévin Dietrich
2016-08-16Fix depsgraph to compute more accurate links for collision & force.Alexander Gavrilov
Current implementation more or less indiscriminately links physics objects to colliders and forces, ignoring precise details of layer checks and collider groups. The new depsgraph seemed to lack some such links at all. The relevant code in modifiers suffers from a lot of duplication. Different physics simulations use independent implementations of collision and similar things, which results in a lot of variance: * Cloth collides with objects on same or visible layer with dupli. * Softbody collides with objects on same layer without dupli. * Non-hair particles collide on same layer with dupli. * Smoke uses same code as cloth, but needs different modifier. * Dynamic paint "collides" with brushes on any layer without dupli. Force fields with absorption also imply dependency on colliders: * For most systems, colliders are selected from same layer as field. * For non-hair particles, it uses the same exact set as the particles. As a special quirk, smoke ignores smoke flow force fields; on the other hand dependency on such field implies dependency on the smoke domain. This introduces two utility functions each for old and new depsgraph that are flexible enough to handle all these variations, and uses them to handle particles, cloth, smoke, softbody and dynpaint. One thing to watch out for is that depsgraph code shouldn't rely on any properties that don't cause a graph rebuild when changed. This was violated in the original code that was building force field links, while taking zero field weights into account. This change may cause new dependency cycles in cases where necessary dependencies were missing, but may also remove cycles in situations where unnecessary links were previously created. It's also now possible to solve some cycles by switching to explicit groups, since they are now properly taken into account for dependencies. Differential Revision: https://developer.blender.org/D2141
2016-08-08Fix ID types DAG update tagging.Kévin Dietrich
The first character of the ID type was used to tag IDs for updates which is weak since different IDs can have the same first character (for example meshes, materials and metaballs), causing unnecessary updates of unrelated IDs. Now we use a unique index per ID type to tag for updates, unifying IDs arrays indexing along the way. Reviewers: sergey, mont29 Differential Revision: https://developer.blender.org/D2139
2016-08-06Basic Alembic supportKévin Dietrich
All in all, this patch adds an Alembic importer, an Alembic exporter, and a new CacheFile data block which, for now, wraps around an Alembic archive. This data block is made available through a new modifier ("Mesh Sequence Cache") as well as a new constraint ("Transform Cache") to somewhat properly support respectively geometric and transformation data streaming from alembic caches. A more in-depth documentation is to be found on the wiki, as well as a guide to compile alembic: https://wiki.blender.org/index.php/ User:Kevindietrich/AlembicBasicIo. Many thanks to everyone involved in this little project, and huge shout out to "cgstrive" for the thorough testings with Maya, 3ds Max, Houdini and Realflow as well as @fjuhec, @jensverwiebe and @jasperge for the custom builds and compile fixes. Reviewers: sergey, campbellbarton, mont29 Reviewed By: sergey, campbellbarton, mont29 Differential Revision: https://developer.blender.org/D2060
2016-06-23Fix T48658: Cycles render & render preview corrupts particlesCampbell Barton
Replaces `G.is_rendering` with `use_render_params` argument. This is needed for Cycles, which attempts to restore render-preview settings from particles, after it gets its own particle data, but fails to restore because `G.is_rendering` was being checked in psys_cache_paths (and other places).
2016-04-28Fix T47715: EXCEPTION_ACCESS_VIOLATION crash when removing modifiers or ↵Sergey Sharybin
rendering The issue was caused by missing indirect dependencies from other scenes in the current scene depsgraph, which was causing some threading conflicts. Not sure what would be ideal solution here, for now use stupid but rather robust approach to solve that. Maybe there's something better to do here tho.
2016-03-05Fix for missing update changing VFont.filepathCampbell Barton
Changing the filepath wouldn't reload the font even after calling scene.update().
2016-02-15Cleanup: reorganize BKE ID tagging functions.Bastien Montagne
BKE_main_id_tag_/BKE_main_id_flag_ were horrible naming now that we split those into flags (for presistent one) and tags (for runtime ones). Got rid of previous 'tag_' functions behavior (those who were dedicated shortcuts to set/clear LIB_TAG_DOIT), so now '_tag_' functions affect tags, and '_flag_' functions affect flags.
2016-02-03Fix T47266: Blender crashes from Scripted Expression in DriverSergey Sharybin
Issue was caused by update RNA callbacks freeing the dependency graph, which is only needed to tag depsgraph for rebuild. Solved by using a flag for the depsgraph which indicated that it is to be rebuilt.
2016-01-24Depsgraph: Add missing relations between driver and particle settingsSergey Sharybin
While it's not really working reliably to drive something on runtime it's handy to have such possibility to tune particle system using proxies in the scene files. Just another quick thing for the Nieve project.
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-11-01Cleanup: remove unused scene recalcCampbell Barton
2015-10-27OpenSubdiv: Fix wrong handling of vertex parentSergey Sharybin
Vertex parent was not registered as CPU data requirement. Should be in the 'a' release.
2015-10-08Modifiers: add 'cd_flag' parameter to their ID looping callbacks, neededBastien Montagne
since some IDs (objects) are not 'refcounted' while others (textures) are... Partial merge from id-remap branch.
2015-10-07Cleanup: spellingCampbell Barton
2015-10-06Fix T46385: Duplicate w/ vertex parent failsCampbell Barton
Depsgraph customdata flag was set on the parent, then cleared once the parent object was handled. This is initialized to zero for new nodes, no need to clear.
2015-09-05Fix T45938: Ocean modifier animation not working with NLA action-strip (old ↵Joshua Leung
depsgraph only) When a modifier was animated by a NLA strip, this animation was not working when using the old depsgraph. This was because the code which checks if a NLA strip affects any modifiers was missing - specifically, it was originally left out as it was thought that it was unlikely that many users would need this, but adding in those checks would have a (slight) negative effect files where there are heaps of NLA strips but modifiers animated this way were absent. The new depsgraph however doesn't suffer from this problem, as these sorts of checks need ot be built into the graph-building stage for everything to work, so these links had already been added.
2015-09-01Depsgraph: Fix compilation error with legacy depsgraph disabledSergey Sharybin
Reported by Campbell on IRC, partial patch by him as well.
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-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-12Cleanup: styleCampbell Barton
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 :)
2015-04-08Fix T44213: Bevel object from different scene won't update generated bezier ↵Sergey Sharybin
curve geometry The issue was caused by bevel object being automatically added to the scene graph by dag_get_node() and had no incoming relations, even form the scene. This confused scene update flush logic. Now there'll be a scene relation added to such nodes, so they're always reachable from the root node.
2015-03-30Cleanup: use const for typeinfoCampbell Barton
2015-03-13Pass proper bmain to the updateDepgraph() of modifiersSergey Sharybin
This is mainly to make physics modifiers being able to work with it. For other cases this main is not needed.
2014-12-10Fix T42472: Undoing/Redoing repeated transform operator gives wrong final ↵Bastien Montagne
matrix on objects with no geom data. This hack should not be needed here, quoting Sergey, the actual issue comes from BKE_object_handle_update_ex, which is calling BKE_object_where_is_calc_ex when it shouldn't. Propper fix is depsgraph refactor topic, though.
2014-10-06Texture painting:Antony Riakiotakis
Do not generate materials/images/UVs if they are missing. Now we spawn a panel ("Missing Data") with operators to generate the missing data and pop a warning if user tries to paint without them. The reason we have reverted this is that it is too easy to end up with more textures than we wanted. It was impossible to enter texture paint without having textures added, and code makes too many assumptions about what user may want. Discussed during Sunday's meeting. This might be a candidate for 2.72a but I'm not sure how other artists will take this (and how refined and crash-free it is), better make a few iterations first. And for interested parties...test please, don't wait until after a release to poke with such issues. Also, add slot operator now adds a new unconnected image node in cycles. Only used in the "Missing Data" panel. This should be a separate commit but I am squashing it into the same commit because it relies too much on changes done here and can be reverted easily if complainstorm occurs again.