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-03-29Cleanup: Line wrappingSergey Sharybin
2019-03-29Cleanup: Spelling in commentSergey Sharybin
2019-03-29Fix T62938: Rigid body crash with surface effectorSergey Sharybin
Missing dependency graph relation from geometry to simulation, which made simulation to use evaluated mesh while it is being evaluated.
2019-03-29Cleanup: Make it obvious which relations are usedSergey Sharybin
Relation in dependency graph is something else. So make it clear that those are the effector ones.
2019-03-28Fix part of T60735: invalid CD_ORIGINDEX data in some modifier stack ↵Brecht Van Lommel
evaluations. BKE_mesh_new_nomain automatically added a CD_ORIGINDEX layer initialized to 0, which was never filled in correctly. In 2.7 the equivalent function used to modify the source derivedmesh and add valid original indices to it, but this is no longer possible in the new design and was quite unpredictable anyway. Now instead rely on mesh_calc_modifiers and the depsgraph to determine when CD_ORIGINDEX should be added.
2019-03-28Depsgraph: Fix dependency cycle when adding rigid bodySergey Sharybin
Was a mistake in the recent change. The idea here is: manual should invalidate point cache, but rigid body simulation should only happen after point cache was ensured to be in the correct state.
2019-03-26Depsgraph: Standardize parameters nodesSergey Sharybin
Makes it possible to handle them the same from drivers relations builder. Solves missing operations errors printed when opening autumn character.
2019-03-25Cleanup: styleCampbell Barton
2019-03-21Fix T62768: Softbody cache still not updated correctlySergey Sharybin
There was missing flush from transform update to the point cache reset. Caused by the fact that when update happens in the "middle" of component all the component operations will be tagged for update (since the intermediate state is not stored), but that will not flush updates to other operations since that would cause too much of updates. This now we tag point cache for reset after evaluation operation but before final transform and before rigid body world.
2019-03-20Fix T56778: Alembic Override Frame does not update on playbackSergey Sharybin
2019-03-20Depsgraph: Fix cycle with rigid body and Weight ProximitySergey Sharybin
The issue is a feedback loop with point cache reset operation. Solved by introducing extra node which ensures object's transformation is ready for simulator input. Allows to route relations without causing a fake dependency cycle now.
2019-03-20Fix T59449: Particle system creates error in rigid bodySergey Sharybin
Is a dependency cycle problem. Fix is similar to what is done in 024f5ba2bdb.
2019-03-20Cleanup: styleCampbell Barton
2019-03-19Fix T62622: Animating vertex does not update viewportSergey Sharybin
Missing dependency graph update due to wrong relation.
2019-03-19Cleanup: comment blocksCampbell Barton
2019-03-18Subdiv: Enable topology cache in edit modeSergey Sharybin
The general idea of this change is to have a runtime data pointer in the ModifierData, so it can be preserved through copy-on-write updates by the dependency graph. This is where subdivision surface modifier can store its topology cache, so it is not getting trashed on every copy-on-write which is happening when moving a vertex. Similar mechanism should be used by multiresolution, dynamic paint and some other modifiers which cache evaluated data. This fixes T61746. Thing to keep in mind, that there are more reports about slow subdivision surface in the tracker, but that boils down to the fact that those have a lot of extraordinary vertices, and hence a lot slower to evaluated topology. Other thing is, this speeds up oeprations which doesn't change topology (i.e. moving vertices). Reviewers: brecht Reviewed By: brecht Maniphest Tasks: T61746 Differential Revision: https://developer.blender.org/D4541
2019-03-18Depsgraph: Store original modifier pointerSergey Sharybin
Currently not needed that much, but will ease some further development which is related on preserving runtime modifier data.
2019-03-18Cleanup: CommentsSergey Sharybin
2019-03-18Cleanup: C++ style of structure definitionSergey Sharybin
2019-03-16Python API: add Python-defined node groups for shaders and compositing.Miguel Porces
This was already supported for Cycles shader nodes, but now also works for Eevee and compositing nodes. Instead of a generic NodeCustomGroup, now there is ShaderNodeCustomGroup and CompositorNodeCustomGroup that can be subclassed and registered. Differential Revision: https://developer.blender.org/D4370
2019-03-16Cleanup: fix compiler warnings.Brecht Van Lommel
2019-03-15Cleanup: indentation, wrappingCampbell Barton
Mostly functions wrapping args, not confirming to our style guide.
2019-03-13Fix T62521: Fake dependency cycle with spline IKSergey Sharybin
The core was hooking up relation to a wrong operation, in an attempt to cause proper full update of the pose (since there is no intermediate state stored anywhere). This is now done as a part of flush_handle_component_node(), so can properly route more granular relation. This fixes the crash which was caused by an access of partially evaluated data by solving the fake cycle. However, if there is a real cycle involved the code will still not survive, but this is more generic issue (which also includes modifiers for meshes and curves). Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D4509
2019-03-13Fix T58721: Keyframing one transform option reset other transformsSergey Sharybin
Use dedicated flag to tag animation just for copy-on-write synchronization, which makes it so copies of the original data blocks gets in sync with the original ID. This will not flush the animation update to all objects which depend on that animation. If such flush is required, use ID_RECALC_ANIMATION. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D4508
2019-03-13Fix T60185: Crash on adding Inverse KinematicsJose C. Rubio
When having loops in a kinematic chain and also a IK constrain, the solve_cycle function removes graph relations necessary to ensure the cleanup operation was running at the very end. Due to his Blender was crashing when some operations (the bone constraints) accessed a pointer that was already freed. Solved by adding more relations between crucial nodes.
2019-03-12Fix T62457: Crash with rigid body and disabled objectsSergey Sharybin
Need to always ensure objects form rigid body wortld are part of dependency graph.
2019-03-12Fix T62470: instanced object does not preserve bounds display type.Brecht Van Lommel
Inheriting the display type from the instancer should only happen if it's a simpler one.
2019-03-12DRW: use object color from instancerCampbell Barton
Otherwise it's impossible to set the color of instanced library objects. Follows convention of instancer controlling draw options.
2019-03-11Fix T62366: Grease pencil material color keyingSergey Sharybin
Do proper tagging for material changes, and avoid grease-pencil hack in the relations builder. The dependency graph code was forcing animation to be run for any copy-on-write change of material. However, animation is not supposed to be run on copy-on-write changes.
2019-03-11Fix T62059: Driver not updating in Color RampJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D4497
2019-03-11Depsgraph: Add missing parameters for node treesSergey Sharybin
This allows to have drivers on node trees. Probably now it will be better to simply add parameters for any ID node, to avoid such amount of manual work. Initial idea was to not have nodes if it's not needed to avoid any possible overhead. Having more robust system is probably more valuable. We can always optimize overhead in one way or another.
2019-03-11Despgraph: Make dupli objects inherit the parent's display typeClément Foucault
Fix T61152 Instanced Collections Don't Honor Viewport Display Setting
2019-03-08Depsgraph: Fix missing relation when driving image offsetSergey Sharybin
Related on T61937.
2019-03-08Fix T60900, T61111, T61963: node values stuck after clearing keyframes.Brecht Van Lommel
This removes special dependency graph code that was intended to avoid GPU shader recompiles by preserving the node tree and GPU material in specific cases. This is no longer needed now that we have a general shader pass cache that compares the generated shader code. The GPU material is already being freed in material and world eval as well, so there's no point. Note also that GPU materials are now safe to free from threads, actual OpenGL buffer freeing happens delayed.
2019-03-08Fix T62327: Multires with Particles: Undo not workingSergey Sharybin
Modifier stack was forced to be re-evaluated when it was not supposed to. Should also improve sculpt performance.
2019-03-08Cleanup: use plural names for Main listsCampbell Barton
Convention was not to but after discussion on 918941483f7e we agree its best to change the convention. Names now mostly follow RNA. Some exceptions: - Use 'nodetrees' instead of 'nodegroups' since the struct is called NodeTree. - Use 'gpencils' instead of 'grease_pencil' since 'gpencil' is a common abbreviation in the C code. Other exceptions: - Leave 'wm' as it's a list of one. - Leave 'ipo' as is for versioning.
2019-03-07Refactor CDData masks, to have one mask per mesh elem type.Bastien Montagne
We already have different storages for cddata of verts, edges etc., 'simply' do the same for the mask flags we use all around Blender code to request some data, or limit some operation to some layers, etc. Reason we need this is that some cddata types (like Normals) are actually shared between verts/polys/loops, and we don’t want to generate clnors everytime we request vnors! As a side note, this also does final fix to T59338, which was the trigger for this patch (need to request computed loop normals for another mesh than evaluated one). Reviewers: brecht, campbellbarton, sergey Differential Revision: https://developer.blender.org/D4407
2019-03-06Cleanup: styleCampbell Barton
2019-03-05Fix T61763: Crash on selecting "Background Scene"Sergey Sharybin
Memory optimization in dependency graph was using wrong view layer for the scene which came via set.
2019-03-04Cleanup: indentation, styleCampbell Barton
2019-03-01Fix T62087: Crash when rendering in CyclesSergey Sharybin
The issue was discovered only after recent changes, but roots back to much older changes. What was happening is scene's ID recalc flags where never cleared, which caused ensure_view_layer() to always run copy-on-write on the scene. This resulted in certain runtime data being cleared, without proper flag stored in the dependency graph. This was caused by ID recalc clear function checking whether any ID was tagged for recalc in that graph or not. This was happening due to all areas using DEG_id_type_tag() which can only set flags on the graph from viewport scenes, and could not inform render dependency graph. Now ID tyoe tagging is happening on per-graph level, which avoids possibility of flags running out of sync. In a bit longer term we also need to get rid of two functions which are clearing flags: DEG_id_type_tag() and deg_graph_clear_tags().
2019-03-01Use original base to see whether it can be ignored from evaluationSergey Sharybin
Object of evaluated base is not yet copied, so we can not know whether it has animation on visibility or not. This issue was reported in T56635#630383.
2019-02-28Depsgraph: Fix wrong disabled bases deletionSergey Sharybin
Original optimization idea was wrong: it is possible that some other ID would reference an object which is also used by a base. Rolled back to a bit more fragile solution. In the future would be nice to make it somewhat less duplicated with the builder itself. Fixes assert failure (and possibly crashes) when adding grease pencil object and switching to a draw mode.
2019-02-28Cleanup: Snake style in depsgraphSergey Sharybin
While it's kind of common to use camel case in C++ this is not currently agreed style for C++ in Blender. Got confused by working on other areas with 3rd party libraries.
2019-02-28Depsgraph: Keep objects which has animated visibilitySergey Sharybin
This allows dependency graph to evaluate drivers of those objects and put them to a correct state. It will increase memory usage since now we can no longer save it by skipping copy-on-write for such objects. It will also currently make things slower, because we do not have granular enough visibility update of components in the dependency graph. Can do it later when the rest of the changes are finished. This commit does not update restriction flags on the base, since that is somewhat tricky to do currently: need to somehow see whether object is disabled due to flags on collection or due to own flags. Differential Revision: https://developer.blender.org/D4419
2019-02-28Depsgraph: Route visibility flags update to proper componentSergey Sharybin
2019-02-28Depsgraph: Change the logic about keeping bases in the graphSergey Sharybin
The idea is to keep bases which are known for sure to be in the dependency graph. Previously, this code was duplicating logic around checking restriction flags, which becomes more hard to maintain once we are moving towards to more comprehensive checks about whether base is a part of evaluated scene or not.
2019-02-28Cleanup: styleCampbell Barton
2019-02-27Depsgraph: Make it easier to control which bases being pulled into the graphSergey Sharybin
Just de-duplicates some logic. Should be no functional changes.
2019-02-27Move base flags evaluation to its own functionSergey Sharybin
No need to have iterator loop in the view layer evaluation, this only makes it more difficult to have base flags covered by the dependency graph. Other good thing is that we don't need to worry about whether base has been removed from the evaluated view layer or not. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D4414