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
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.
2014-09-08Fix T41703: Blender crashes trying to load character file.Bastien Montagne
Core of the issue is that pointcache handling in depsgraph were (re-) tagging for update some objects on hidden layers, when all their dependencies remained untag. Since we do not want to update objects on hidden layers, take this data into account when flushing pointcache. Investigations and org patch by self, reviews, advices and final patch by sergey, many thanks! :)
2014-09-03Texture painting:Antony Riakiotakis
Free draw objects instead of tagging object update and doing recalculation of derived meshes. The reason is that if user deletes all slots and tries to paint, the system will invalidate the cached in projection painting derivedmesh. This will promptly crash. Invalidating the draw objects only is also much cheaper.
2014-08-27Changing render engine now refreshes the texture paint display better.Antony Riakiotakis
Also avoid looping over all objects for texture paint checks when a material changes, only check active object.
2014-08-27Only calculate texture paint slots from mtex if renderer is blenderAntony Riakiotakis
internal. This should eliminate some confusion when people use external render engines.
2014-07-31Style cleanupCampbell Barton
2014-07-21Fix T40839: Object Font Text Rendering BugSergey Sharybin
The issue was caused by the wrong objects order for convertblender.c. Dependency graph totally missed handling of this situation. Fixed now, but it's not that pretty, don't try this at home obviously. But consider this to be good enough for the current dependency graph. Details are in the build_dag_object().
2014-07-21GSOC 2013 paintAntony Riakiotakis
Yep, at last it's here! There are a few minor issues remaining but development can go on in master after discussion at blender institute. For full list of features see: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.72/Painting Thanks to Sergey and Campbell for the extensive review and to the countless artists that have given their input and reported issues during development.
2014-07-19Defines: replace ELEM3-16 with ELEM(...), that can take varargsCampbell Barton
2014-07-18Fix T41109: Reloading image that has been modified outside Blender does not ↵Sergey Sharybin
update image in Image Texture nodes
2014-07-01Fix T40556: Curve Modifier does not work when used in a Background sceneSergey Sharybin
A bit hackish solution for now, cleaner solution we'll look into as a part of the new DAG project, when it's clear what kind of data is passed to the evaluation callbacks.
2014-05-09Code cleanup: styleCampbell Barton
2014-05-08Removed a Freestyle hack for DAG updates introduced in commit rBae58968e0a61.Tamito Kajiyama
Now that Freestyle employs a separate Main, this workaround is no longer necessary. Reviewers: sergey Reviewed By: sergey Differential Revision: https://developer.blender.org/D513
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-11API Cleanup: Use BKE_constraint prefix for constraint apiCampbell Barton
2014-04-04Fix crash happening in DAG_pose_sort() due to threading issuesSergey Sharybin
This function used ugly hack with static variable which was preventing some type checks in DAG nodes. Using this variable form multiple threads is not considered safe, apparently. Solved by moving this variable inside the DAGForest structure. so it's global for the graph now, but different graphs does not run into conflicts. This required passing the forest to some functions, which doesn't look so much nice, but don't want to spend time on making this code look beautiful because it is really to be replaced by the new dependency graph. This is really bad bug actually which is must go to 'a'.
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-02-25Fix T38824: curve which is constrained on a hidden layer causes cycles crashSergey Sharybin
Issue was caused by cycles setting scene frame which will update scene for all the layers (not just visible ones) which confuses depsgraph making objects which are needed as dependency are not really evaluated. Made it so setting frame via scene.frame_set() which check whether update need to be flushed to an invisible objects and do this if so. Not ideal solution but seems to be safest at this point.
2014-02-22Code cleanup: styleCampbell Barton
2014-02-19Code cleanup: styleCampbell Barton
2014-02-18Fix T38691: Curve object bevel not working in group instanceSergey Sharybin
It is possible that objects from dupli-groups depends on objects which are not in the dupli-group. We do need this objects to be evaluated as well on visible changes, so all dependencies for objects from the dupli-group are met. Unfortunately, we don't have parent relations on this state, so we're to use DFS over the whole DAG to gather such dependencies. This is probably not so bad since visible update is called really rarely. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D326
2014-02-14Fix for crash caused by effectors doing precalculation //during// DAGLukas Tönne
updates. This file crashes on loading with NULL pointer access to curve_cache: {F77132} The pdInitEffectors function was amalgamating the simple collection of effector objects with an automatic precalculation for curve guides and the like. This precalculation requires object data that may not be available until the DAG has finished. Since for DAG dependencies only the list of effectors is required, added an argument to disable precalculation when collecting effectors.
2014-02-07ListBase API: add utility api funcs for clearing and checking emptyCampbell Barton
2014-02-05Add debug print to ID update taggingSergey Sharybin
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-01-23Fix T38337: Crash when calling to_mesh() on a Curve object after clearing ↵Sergey Sharybin
its parent This is rather a workaround which only works because curve evaluation is only called for a temporary object. Not a big deal if we'll skip path creation for such objects. Still would need to think of general solution.
2014-01-23Fix crash when changing space type to 3D space when having multiple windowsSergey Sharybin
it is possible that different windows shares scene but displays different layers. And it's also possible that different areas in the same window will show different layers. First case was violated in `dag_current_scene_layers()` which only checked scene layers only once and if multiple windows shares the same scene only one window was handled. Now made it so layers from all windows will be squashed together into a single `DagSceneLayer`. This mainly solves issue with `DAG_on_visible_update()` which didn't work reliable with multiple open windows. Second case required call of `DAG_on_visible_update()` when changing space are type. This commit slows things a bit actually because `dag_current_scene_layers()` is actually called on every main WM loop iteration. It is possible to speed some logic up perhaps. Not sure it's so much critical to do now because there are unlikely to be more than few windows open anyway. Will rather think of skipping all that flushing things if no objects are tagged for update actually.