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-03-16Merge branch 'master' into blender2.8Sergey Sharybin
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-02-21Merge branch 'master' into blender2.8Sergey Sharybin
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-02-13Object Mode: remove Scene.obeditCampbell Barton
Add ED_screen_window_find, BKE_workspace_edit_object
2018-01-26Make object_update comment about lack of ID even more clearDalai Felinto
2018-01-18Depsgraph: Fix crahs when selecting objectsSergey Sharybin
Was wasy to reproduce by hitting A-key. Missing part of the recent orig_id pointer commit.
2017-12-01Depsgraph: Remove clear of legacy unused flagSergey Sharybin
2017-11-29Merge branch 'master' into blender2.8Sergey Sharybin
2017-11-29Cleanup: Split depsgraph uber transform function callbackSergey Sharybin
2017-11-29Cleanup: Remove unused argumentSergey Sharybin
2017-11-29Merge branch 'master' into blender2.8Sergey Sharybin
2017-11-29Transform: Avoid use of ob->recalc in snapping codeSergey Sharybin
Do a direct update of object transform instead, without involving manual trickery of recalc flag. Shouldn't be functional changes as far as artists are concerned, but will allow us to get rid of recalc flags in 2.8. Thanks Bastien for review!
2017-11-24Depsgraph: Do log from newly base flag flush functionSergey Sharybin
2017-11-24Depsgraph: Correct wrong base_flags for objects coming from set sceneSergey Sharybin
2017-11-24Depsgraph: Flush flags from base to object as an evaluation stepSergey Sharybin
Previously it was done during depsgraph iteration, which is not good at all, since after evaluation nobody should really modify how object was evaluated.
2017-11-24Depsgraph: Use depsgraph to handle edit mode selectionSergey Sharybin
This is crucial bit since batch cache is stored in the evaluated object, meaning we can't tag it's hatch cache dirty from the notifier system. Not easily at least. Better to leave this job to depsgraph, it knows all the copies of data.
2017-11-21Depsgraph: Tag evaluated mesh as suchSergey Sharybin
Helps troubleshooting.
2017-11-21Depsgraph: Report pointer from object evaluation functionsSergey Sharybin
2017-11-16Fix T51210: Draw Manager: Support for Metaball DrawingGermano
Differential Revision: D2914
2017-11-06Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: intern/cycles/device/device.cpp source/blender/blenkernel/intern/library.c source/blender/blenkernel/intern/material.c source/blender/editors/object/object_add.c source/blender/editors/object/object_relations.c source/blender/editors/space_outliner/outliner_draw.c source/blender/editors/space_outliner/outliner_edit.c source/blender/editors/space_view3d/drawobject.c source/blender/editors/util/ed_util.c source/blender/windowmanager/intern/wm_files_link.c
2017-11-06Rename ID_IS_LINKED_DATABLOCK to ID_IS_LINKED.Bastien Montagne
This makes code closer to id_override/assent-engine ones, which introduce a new type of linked data, and hence reserve ID_IS_LINKED_DATABLOCK to real linked datablocks.
2017-10-25Depsgraph: Remove driver evaluation from object updateSergey Sharybin
With new dependency graph this direct call to driver/animation update should not be needed,
2017-10-18Depsgraph: Make Copy-on-Write a command line optionSergey Sharybin
Before it was a compile time option which was not very easy to use or test. Now the project is getting more mature, so very soon we will be able to call for a public tests of limited features. The copy-on-write (which includes animation, modifiers) is enabled using --enable-copy-on-write command line argument.
2017-08-22Fix T52053: Sculpt missing update w/ clay engineCampbell Barton
Leaving sculpt mode wasn't updating the mesh because the update flushed from the depsgraph ignored edits to vertex location.
2017-08-22Cleanup: naming for mesh dirty flagsCampbell Barton
- NOCHECK -> ALL - ALL -> MAYBE_ALL Where 'MAYBE_ALL' checks to see if the mesh has changed. This is clearer that `BKE_MESH_BATCH_DIRTY_ALL` is dirty and going to be updated without any guess-work.
2017-08-16Pass EvaluationContext instead of bContextCampbell Barton
2.8x branch added bContext arg in many places, pass eval-context instead since its not simple to reason about what what nested functions do when they can access and change almost anything. Also use const to prevent unexpected modifications. This fixes crash loading files with shadows, since off-screen buffers use a NULL context for rendering.
2017-07-27Copy on write: Make sure freeing evaluated mesh does not cause crash when ↵Sergey Sharybin
re-evaluating the object
2017-07-21Pass EvaluationContext argument everywhereLuca Rood
Note that some little parts of code have been dissabled because eval_ctx was not available there. This should be resolved once DerivedMesh is replaced.
2017-07-20Depsgraph: Fix missing UV layers with copy on write enabledSergey Sharybin
2017-07-10Fix T51931: VBO not updating when UVs are added to shader node treeLuca Rood
UVs need specific data in the VBO, which is not computed unless the shaders assigned to the mesh actually use UVs. When adding UVs to the shader, the VBOs were not being recomputed to include the required data. This adds a DEG relation between the shader and the mesh, and recomputes the required data if the shader changed. Thanks Sergey, for all the DEG stuff...
2017-06-19Depsgraph: Initial groundwork for copy-on-write supportSergey Sharybin
< Dependency graph Copy-on-Write > -------------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || This is an initial commit of Copy-on-write support added to dependency graph. Main priority for now: get playback (Alt-A) and all operators (selection, transform etc) to work with the new concept of clear separation between evaluated data coming from dependency graph and original data coming from .blend file (and stored in bmain). = How does this work? = The idea is to support Copy-on-Write on the ID level. This means, we duplicate the whole ID before we cann it's evaluaiton function. This is currently done in the following way: - At the depsgraph construction time we create "shallow" copy of the ID datablock, just so we know it's pointer in memory and can use for function bindings. - At the evaluaiton time, the copy of ID get's "expanded" (needs a better name internally, so it does not conflict with expanding datablocks during library linking), which means the content of the datablock is being copied over and all IDs are getting remapped to the copied ones. Currently we do the whole copy, in the future we will support some tricks here to prevent duplicating geometry arrays (verts, edges, loops, faces and polys) when we don't need that. - Evaluation functions are operating on copied datablocks and never touching original datablock. - There are some cases when we need to know non-ID pointers for function bindings. This mainly applies to scene collections and armatures. The idea of dealing with this is to "expand" copy-on-write datablock at the dependency graph build time. This might introduce some slowdown to the dependency graph construction time, but allows us to have minimal changes in the code and avoid any hash look-up from evaluation function (one of the ideas to avoid using pointers as function bindings is to pass name of layer or a bone to the evaluation function and look up actual data based on that name). Currently there is a special function in depsgraph which does such a synchronization, in the future we might want to make it more generic. At some point we need to synchronize copy-on-write version of datablock with the original version. This happens, i.e., when we change active object or change selection. We don't want any actual evaluation of update flush happening for such thins, so now we have a special update tag: DEG_id_tag_update((id, DEG_TAG_COPY_ON_WRITE) - For the render engines we now have special call for the dependency graph to give evaluated datablock for the given original one. This isn't fully ideal but allows to have Cycles viewport render. This is definitely a subject for further investigation / improvement. This call will tag copy-on-write component tagged for update without causing updates to be flushed to any other objects, causing chain reaction of updates. This tag is handy when selection in the scene changes. This basically summarizes ideas underneath this commit. The code should be reasonably documented. Here is a demo of dependency graph with all copy-on-write stuff in it: https://developer.blender.org/F635468 = What to expect to (not) work? = - Only meshes are properly-ish aware of copy-on-write currently, Non-mesh geometry will probably crash or will not work at all. - Armatures will need similar depsgraph built-time expansion of the copied datablock. - There are some extra tags / relations added, to keep things demo-able but which are slowing things down for evaluation. - Edit mode works for until click selection is used (due to the selection code using EditDerivedMesh created ad-hoc). - Lots of tools will lack tagging synchronization of copied datablock for sync with original ID. = How to move forward? = There is some tedious work related on going over all the tools, checking whether they need to work with original or final evaluated object and make the required changes. Additionally, there need synchronization tag done in fair amount of tools and operators as well. For example, currently it's not possible to change render engine without re-opening the file or forcing dependency graph for re-build via python console. There is also now some thoughts required about copying evaluated properties between objects or from collection to a new object. Perhaps easiest way would be to move base flag flush to Object ID node and tag new objects for update instead of doing manual copy. here is some WIP patch which moves such evaluaiton / flush: https://developer.blender.org/F635479 Lots of TODOs in the code, with possible optimization. = How to test? = This is a feature under heavy development, so obviously it is disabled by default. The only reason it goes to 2.8 branch is to avoid possible merge hell. In order to enable this feature use WITH_DEPSGRAPH_COPY_ON_WRITE CMake configuration option.
2017-06-07Merge branch 'master' into blender2.8Sergey Sharybin
2017-06-07Depsgraph: Remove modifiers operation codeSergey Sharybin
Was internally a no-op operation, which only caused extra work to be done during depsgrpah traversal and evaluation, without making any measurable improvement.
2017-04-21Cleanup: move draw-cache creation from BKE to DRWCampbell Barton
Creating draw-cache should only ever be used by the draw-manager.
2017-04-20Curve: draw curve/surface/text geometryCampbell Barton
Note that displists will be removed, but this wont be hard to replace. Signed-off-by: Campbell Barton <ideasman42@gmail.com>
2017-04-19Draw Manager: curve supportCampbell Barton
Draws the curve centerline and editmode verts/handles. Handle theme colors, and normal display still need adding.
2017-04-13Draw Manager: initial lattice supportCampbell Barton
Still misses support for edit-mode selection & weight drawing.
2017-04-06Depsgraph: Remove old header from blenkernelSergey Sharybin
2017-03-15Merge branch 'master' into blender2.8Sergey Sharybin
2017-03-15Fix T50938: Cache not being reset when changing simulation settings with new ↵Sergey Sharybin
depsgraph The thing i'm really starting to hate is the requirement to specify both operation code and node type. Seems to be duplicated enums without real need for that.
2017-03-02Revert "Depsgraph: Add placeholder function to handle objects update"Dalai Felinto
This reverts commit 9023abbf27c4efcdba3d9bd7c884680e56e4d9cb.
2017-03-02Fix mesh edit wasn't updating for new objectsDalai Felinto
The problem was that we were updating the mesh cache on BKE_object_eval_shading, not on mesh change.
2017-01-26Use the ultimate depsgraph callback functionDalai Felinto
Note: when in edit mode this depsgraph update is not being called. We are using DerivedMesh in those cases, so it is fine. I would like to investigate this though
2017-01-26Depsgraph: Add placeholder function to handle objects updateSergey Sharybin
This way @dfelinto can do some special trickery in there.
2017-01-24Depsgraph: Remove special exception in update loggingSergey Sharybin
2016-12-28Revert particle system and point cache removal in blender2.8 branch.Lukas Tönne
This reverts commit 5aa19be91263a249ffae75573e3b32f24269d890 and b4a721af694817fa921b119df83d33ede7d7fed0. Due to postponement of particle system rewrite it was decided to put particle code back into the 2.8 branch for the time being.
2016-07-18Merge branch 'master' into blender2.8Campbell Barton
2016-07-13Revert "Depsgraph: Russian electric tape bodge to have multiple proxies work"Sergey Sharybin
This reverts commit 47d0d9cca4d0c3ccbdc368e97fc24652379fd368. Reverting the commit. Not only it did not solve all the cases of proxy popping, but also broke real cases with single proxy involved.
2016-07-12Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: intern/cycles/blender/addon/ui.py source/blender/blenkernel/BKE_particle.h source/blender/blenkernel/intern/dynamicpaint.c source/blender/blenkernel/intern/library.c source/blender/blenkernel/intern/object.c source/blender/blenkernel/intern/particle.c source/blender/blenkernel/intern/particle_distribute.c source/blender/blenkernel/intern/texture.c source/blender/editors/object/object_add.c source/blender/editors/object/object_relations.c source/blender/editors/physics/particle_edit.c source/blender/editors/physics/particle_object.c source/blender/editors/transform/transform_snap_object.c