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-18Depsgraph; Correct assert for depsgraph sceneSergey Sharybin
We can not do it from builder, since builder will pull set scenes.
2018-04-18Depsgraph: Fix missing bases array updateSergey Sharybin
view_layer_object_copy test was broken. This is a quick fix for now, can be optimized further later.
2018-04-18Remove irrelevant print statementSybren A. Stüvel
This statement is only relevant in 2.8, but causes confusion in master. I kept the 'default' label to prevent compiler warnings about unhandled cases. The break is needed because there should be at least one statement after 'default'.
2018-04-18Make depsgraph tag for auto-override IDs it updates.Bastien Montagne
This will reduce amount of needless auto-override checks, at least when not touching anything related to overriding IDs...
2018-04-17Depsgraph: Allow querying NULL IDs for evaluated versionSergey Sharybin
Saves us from extra checks for NULL pointers when using datablocks for read.
2018-04-17Depsgraph: Fix unwanted node tree copy-overSergey Sharybin
Was caused by two things from the past: - Tagging would set id->recalc to COW update flag. This one is to be ignored. - Particle tagging will use psys recalc flags on id->recalc, but we only need to use flags from particles. Otherwise it will be some collisions in bit masks.
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-16Merge branch 'master' into blender2.8Sergey Sharybin
2018-04-16Depsgraph: Pull indirect relations via driver targetsSergey Sharybin
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-04-13Depsgraph: remove engine type from evaluation context.Brecht Van Lommel
This was only used for viewport rendering, where we can just pass the engine type directly. There is no technical reason why we can't draw the same depsgrpah with different render engines. It also led to some weird things like requiring a render engine for snapping and raycast API functions. Differential Revision: https://developer.blender.org/D3145
2018-04-13Depsgraph: store mode and time in depsgraph, add view layer / scene accessors.Brecht Van Lommel
Scene, view layer and mode are now set in the constructor and never changed. Time is updated on frame changes to indicate which frame is being or has been evaluated last. This is a step towards making EvaluationContext obsolete. Differential Revision: https://developer.blender.org/D3144
2018-04-13Fix incomplete evaluation context in depsgraph iter.Brecht Van Lommel
2018-04-12Depsgraph: Move CoW tag to ID datablock tagSergey Sharybin
Unless there is an external action from an user, there should not be need in re-copying original datablock to a copied one. This brings performance up from 5fps to 11fps with Spring runcycle (performance in master is 14fps).
2018-04-12Depsgraph: Avoid relations build time scene datablock expansionSergey Sharybin
Quite straightforward implementation, allows us to remove all the cherry-picking update of specified scene/view layer/collection fields. Makes it possible to use generic function to update scene. The tricky part is that we need to know view layer pointer before the whole evaluation starts. So we actually expand scene at initialization of evaluation. context. This is still a bit of an exceptional case, but at least we still avoid dangerous cherry-picking update.
2018-04-12Depsgraph: Introduce ID recalc flag for COW componentSergey Sharybin
Currently unused, but will become handy to check whether ID needs to have COW update to be run.
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-12Depsgraph: Bind view layer by indexSergey Sharybin
Makes it a bit slower to evaluate single view layer, but this is does not happen often, and overall number of layers is not very high.
2018-04-12Depsgraph: Remove function bindings with collectionsSergey Sharybin
Use single function to evaluate all the collections for the given view layer. This way we avoid need to get scene ID sub-data. Similar to pchan index, this allows us to avoid build-time scene expansion, which also simplifies update of the scene datablock. Well, sort of. There is still work to be done to get rid of build-time scene datablock expansion, which includes: - Need to pass view layer by index. Annoying part would be to get actual view layer for that index. In practice doing list lookup might not be such a bad idea, since such lookup will not happen very often, and it is unlikely to have more than handful of view layer anyway. Other idea could be to use view layer from evaluation context. Or maybe from depsgraph, which is supposed to be in the context. Can have some assert statements to make sure everything is good. - Need to get id of base binding for flags flush. We can replace that with index-based lookup from an array created by view layer evaluation. Reviewers: dfelinto Differential Revision: https://developer.blender.org/D3141
2018-04-10Merge branch 'master' into blender2.8Sergey Sharybin
2018-04-10Depsgraph: Build relations for objects linked via pchan constraintsSergey Sharybin
This is similar to previous fix for missing ID nodes, just the original fix missed this part of change because it looked like it is already happening.
2018-04-10Depsgraph: Flush debug printsSergey Sharybin
Makes it more reliable to see what was updating last when crash happens.
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-05Remove workspace object mode, reverts changes w/ 2.8Campbell Barton
This caused too many problems syncing object modes with multiple objects/windows/workspaces, see: D3130 for details.
2018-04-05Depsgraph: Pull indirect dependencies via pchan constraintsSergey Sharybin
Was missing ID looper for pchan constraint.
2018-04-04Depsgraph: Fix/workaround crash with animation and drivers and CoWSergey Sharybin
The issue was caused by component tag forcing CoW component to be run, without actually flushing changes down the road from the CoW operation. In a way, this is what we want: we do want CoW to run on changes, but we don't want tiny change forcing full datablock update. This commit makes it so order of updates is all correct, but the bigger issue is still open: what parts of datablock CoW should be updating? Now it's possible to open spring file and play around.
2018-04-04Depsgraph: Cleanup, reduce indentation levelSergey Sharybin
2018-04-04Merge branch 'master' into blender2.8Sergey Sharybin
2018-04-04Depsgraph: Make sure textures used by modifiers are in the graphSergey Sharybin
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-04Fix missing hair in fishycat and everything else after particle recalc changesMai Lavelle
The cache was getting reset always, due to special case of flag being 0. Bug introduced by: 44cd24a9cee9ffb14b5d26a622f
2018-04-04Merge branch 'master' into blender2.8Sergey 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-04-01Correct accidental changes by C Logging additionCampbell Barton
Error in 891c1cfc9a3
2018-03-30C Logging: use instead of printf for messagesCampbell Barton
- See `--log` help message for usage. - Supports enabling categories. - Color severity. - Optionally logs to a file. - Currently use to replace printf calls in wm module. See D3120 for details.
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-29Particles: Remove dedicated recalc field from ParticleSettingsSergey Sharybin
Use more generic id->recalc flag. Also sanitize flag flush from settings to particle system. Need to do such flush before triggering point cache reset, since point cache reset will do some logic based on what flags are set. This will solve crash caused by threaded update which will set some bitflags while point cache reset is in progress.
2018-03-29Depsgraph: Tag datablock with original update flagSergey Sharybin
Tagging based on components might not be granular enough. For example, for particles we would want to know what part of particles was changed exactly. For the flushing we wouldn't worry too much, because we will want less granular updates there anyway.
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-21Depsgraph: Remove redundant operation nodesSergey Sharybin
Rather a mistake since previous merge.
2018-03-21Merge branch 'master' into blender2.8Sergey Sharybin
2018-03-21Fix T54378: Drivers fail with property from emptySergey Sharybin
Empties were missing Parameters component.