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
2020-05-01Cleanup: moved drivers to BKE_fcurve_driver.h / fcurve_driver.cSybren A. Stüvel
All the driver-specific code in `fcurve.c` has been moved into a new file `fcurve_driver.c`. The corresponding declarations have been moved from `BKE_fcurve.h` to `BKE_fcurve_driver.h`. All the `#include "BKE_fcurve.h"` statements have been investigated and replaced with `BKE_fcurve_driver.h` where necessary. No functional changes.
2020-04-30Task: Use TBB as Task SchedulerBrecht Van Lommel
This patch enables TBB as the default task scheduler. TBB stands for Threading Building Blocks and is developed by Intel. The library contains several threading patters. This patch maps blenders BLI_task_* function to their counterpart. After this patch we can add more patterns. A promising one is TBB:graph that can be used for depsgraph, draw manager and compositor. Performance changes depends on the actual hardware. It was tested on different hardwares from laptops to workstations and we didn't detected any downgrade of the performance. * Linux Xeon E5-2699 v4 got FPS boost from 12 to 17 using Spring's 04_010_A.anim.blend. * AMD Ryzen Threadripper 2990WX 32-Core Animation playback goes from 9.5-10.5 FPS to 13.0-14.0 FPS on Agent 327 , 10_03_B.anim.blend. Reviewed By: brecht, sergey Differential Revision: https://developer.blender.org/D7475
2020-04-29Depsgraph: use native BLI data structures in registryJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7559
2020-04-29Cleanup: use const args for depsgraph functionsCampbell Barton
2020-04-28Cleanup: remove unnecessary includesJacques Lucke
2020-04-28Depsgraph: use BLI::Vector for RelationsJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7556
2020-04-28Depsgraph: Use BLI::Map for constraint_to_pchan_map_Jacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7553
2020-04-28Depsgraph: use BLI::Set for entry_tagsJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7555
2020-04-28Depsgraph: use BLI::Map in RootPChanMapJacques Lucke
Reviewers: sergey, sybren Differential Revision: https://developer.blender.org/D7521
2020-04-28Merge branch 'blender-v2.83-release'Bastien Montagne
Conflicts: source/blender/blenkernel/intern/lib_query.c source/blender/depsgraph/intern/builder/deg_builder_relations.cc
2020-04-28Depsgraph: Add IDProperties handling.Bastien Montagne
Fix T75279: BLI_assert failed when deleting object in debug build (only). And all general cases of ID pointer idproperties that would use a data-block not referenced anywhere else in the depsgraph. This includes idproperties from: * All ID types; * Bones and pose bones; * Sequences; * Nodes and sockets. Differential Revision: https://developer.blender.org/D7551
2020-04-28Depsgraph: Use BLI::Map in more placesJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7519
2020-04-28Depsgraph: Use BLI::Map for RNANodeQuery.id_data_map_Jacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7512
2020-04-25Merge branch 'blender-v2.83-release'Nathan Craddock
2020-04-24Fix T69753 Instanced Metaballs not rendering but showing up in ViewportSybren A. Stüvel
This hides the original metaballs when they are used in duplifaces/-verts instancing, and still shows the instanced metaballs. The visibility of the original metaballs is now determined by the visibility of the instancer. I'm not too thrilled about this, but at least it gives users the ability to show/hide the metaballs for viewport/render. Differential Revision: https://developer.blender.org/D7478
2020-04-24Depsgraph: Use BLI::Map instead of GHash for operations_mapJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7509
2020-04-24Depsgraph: Use BLI::Set instead of std::unordered_setJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7506
2020-04-24Cleanup: remove unused arg, clang-formatCampbell Barton
2020-04-23Cleanup: silence unused parameter warningJacques Lucke
2020-04-23Merge branch 'blender-v2.83-release'Brecht Van Lommel
2020-04-23Fix T75611: slow transform of many objects at the same timeBrecht Van Lommel
Solve O(n^2) time complexity problem where a dependency graph iterator loops over all nodes to clear flags, which happened for every object at the start of transform. Differential Revision: https://developer.blender.org/D7503
2020-04-21CleanUp: Renamed `BLI_task_pool_userdata` to `BLI_task_pool_user_data`Jeroen Bakker
In preparation for {D7475}
2020-04-21Fix T75845: some dependencies update missing when painting textures.Luc Revardel
issue: Painting a texture that is set as a particle system influencer, doesn't update particles. An external trigger (such as changing influence slider) is required to update particles. fix: The root cause is a missing relationship from image to texture in the dependency graph. test: Once fixed, image texture painting updates expected dependencies such as particle system influence or displacement modifier. Reviewed By: sergey Maniphest Tasks: T75845 Differential Revision: https://developer.blender.org/D7472
2020-04-20Simulations: Add new simulation data blockJacques Lucke
This data block will be the container for simulation node trees. It will be used for the new particle node system (T73324). The new data block has the type `ID_SIM`. It is not visible to users and other developers by default yet. To enable it, activate the cmake option `WITH_NEW_SIMULATION_TYPE`. New simulation data blocks can be created by running `bpy.data.simulations.new("name")`. Reviewers: brecht Differential Revision: https://developer.blender.org/D7225
2020-04-17Merge remote-tracking branch 'origin/blender-v2.83-release'Sybren A. Stüvel
2020-04-17Fix T75686: Animating scene audio volume doesn't workSybren A. Stüvel
Scene audio volume changes require the scene to be tagged with `ID_RECALC_AUDIO_VOLUME` (see `BKE_scene_update_sound()`). Tagging happens in the RNA update function `rna_Scene_volume_update()`, but that function is not called by the animation system. As a result, animated volume changes are not sent to the audio system. This commit adds a new depsgraph operation node that sets this tag when necessary, so that the animated values are used in the rest of the depsgraph evaluation. Reviewed By: sergey Differential Revision: https://developer.blender.org/D7429
2020-04-17Cleanup: use colon after doxygen parameters, spellingCampbell Barton
2020-04-15Cleanup: unused variable, spellingCampbell Barton
2020-04-14Fix T75542: toggling modifier visibility not working correct with undo speedupBrecht Van Lommel
The problem was that in direct_link_id_restore_recalc, recalc_undo_accumulated should contain the changes from the target state to the current state. However it had already been cleared at that point, to start accumulating changes up to the next undo push. Delaying the clear of this flag seems like the obvious solution, but it's hard to find the right place for that (if there is one). Instead this splits up the flag into two separate variables. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D7402
2020-04-14Cleanup: spellingCampbell Barton
2020-04-10Fix T67232: Multiples targetless IKs in a chain gives weird behaviour (known ↵Sebastian Parborg
as FakeIK for FK posing) The issue was that the deps graph relation builder assumed that all bones that had a IK constraint on them would be evaluated. However for targetless IK bones, only the active bone would receive updates and the others would be skipped (as those would be treated as if the IK constraint was disabled). I didn't see an easy way to solve this from the depsgraph side of things. Instead I came up with a solution that I feel is quite strait forward and reflects what is actually supposed to happen under the hood. Now all targetless IK constraints are treated as disabled and will not be added to any relations in the depsgraph. Instead, a temporary IK constraint will be created when the bone in question is transformed. This is basically activating "Auto IK" for the bone while transforming. Reviewed By: Sergey, Brecht Differential Revision: http://developer.blender.org/D7378
2020-04-09TaskScheduler: Minor Preparations for TBBBrecht Van Lommel
Tasks: move priority from task to task pool {rBf7c18df4f599fe39ffc914e645e504fcdbee8636} Tasks: split task.c into task_pool.cc and task_iterator.c {rB4ada1d267749931ca934a74b14a82479bcaa92e0} Differential Revision: https://developer.blender.org/D7385
2020-04-08Fix missed depsgraph update after undo in some casesBrecht Van Lommel
Forgot to take into account legacy DEG_id_tag_update with zero flag.
2020-04-07Undo: change depsgraph recalc flags handling to improve performanceBrecht Van Lommel
These changes only have an effect when the experimental Undo Speedup preference is enabled. * For DEG_id_tag_update, accumulate recalc flags immediately before the undo push happens instead of afterwards. Otherwise the undo state does not contain enough flags, and the current state may contain too many flags. This also means we call DEG_id_tag_update after undo with the accumulated flags to ensure they are flushed to other datablocks. * For undo, accumulate recalc flags in id->recalc and clear accumulated flags immediately. Not clearing would cause circular behavior where accumulated flags may never end up being cleared. This matches what happens after an undo push where these are also cleared, indicating that the undo state and current in-memory state match exactly. * Don't change id->recalc of identical datablocks, it should not be needed. There is one exception for armatures where pointers across datablocks exist which otherwise would cause problems. There may be a better solution to this but it seems to work in agent 327 production files. * This contains a change in undofile.c to avoid detecting all datablocks as changed for the first of the two undo steps, where we restore to the state of the last undo push before going to the one before. Without this the whole system is much less efficient. However this is unsafe in the sense that if an app handler or operators edits a datablock after an undo push, that change will not be undone. It can be argued that this is acceptable behavior, since a following undo push will include that change and this may already have unexpected side effects. Ref T60695 Differential Revision: https://developer.blender.org/D7339
2020-04-03Cleanup: Animation, move AnimData API to `anim_data.c`/`BKE_anim_data.h`Sybren A. Stüvel
The `BKE_animsys.h` and `anim_sys.c` files already had a an "AnimData API" section. The code in that section has now been split off, and placed into `BKE_anim_data.h` and `anim_data.c`. All files that used to include `BKE_animsys.h` have been adjusted to only include the animation headers they need (sometimes none). No functional changes.
2020-04-03Cleanup: split `BKE_anim.h` and `anim.c` into smaller piecesSybren A. Stüvel
The files are now split up into the following sections: - `BKE_anim_path.h` and `anim_path.c` for path/curve functions. - `BKE_anim_visualization.h` and `anim_visualizationanim_path.c` for animation visualization (mostly motion paths). - `BKE_duplilist.h` for DupliList function declarations. These were already implemented in `object_dupli.c`, so they were rather out of place being declared in `BKE_anim.h` in the first place. No functional changes.
2020-04-03Cleanup: use tern 'sync' instead of 'synchronization' for function namesCampbell Barton
This is a common, unambiguous abbreviation already used throughout the code-base.
2020-04-02Fix T74983: Material preview icons don't refreshSybren A. Stüvel
The root cause of the issue reported in T74983 is that an `IDNode` would not be marked as user-modified. This marking happened while looping over outgoing relations of one of its operation nodes. Since rBff60dd8b18ed unused relations are removed, and as a result the `IDNode` would not be marked. The solution was to move the responsible code outside the loop; this is probably a good idea anyway, as the code did not actually use the looped-over relations at all, and was thus repeated unnecessarily.
2020-04-01Fix T74224: Add missing depsgraph relations for boid particlesJacques Lucke
Reviewers: brecht Differential Revision: https://developer.blender.org/D7302
2020-03-28Cleanup: Removing unused parameter.Jörg Müller
2020-03-28Cleanup: compiler warningsBrecht Van Lommel
2020-03-24Cleanup: spellingCampbell Barton
2020-03-23Revert "COW: Edit Mesh: Do not copy the looptris pointer"Germano Cavalcante
The looptri is repeated in the linked Meshes but the pointer is only referenced in the evaluated ones. This reverts commit 64982e213f014123d1b0406cf9ae893910a6a3d3.
2020-03-23Fix T74984: Crash opening specific production filesSergey Sharybin
More detailed symptoms: there was no curve cache created for an object which was used by draw manager. A bit tricky situation, which involves collection instances and their proxies. The root of the problem in the dependency graph was that instanced collections visibility was not updated when object is requested with different visibility. So what was happening is that one of the objects was pulled as an indirect dependency of something invisible, so it built instanced collections as if the instancer is invisible. After that the same object was built as visible. Before this fix this was only update object flags, the instanced collections still believed they are invisible. Since there is no path via relations which would connect visible object with instanced objects the visibility flush which is happening during graph finalization did not "fix" the visibility flags. This change makes it so instanced collections are updating their visibility when their instancer's visibility is changing to truth. This is similar to how collections will accumulate their visibility when same collection is used from multiple ones with different visibility. However, this alone wasn't enough to get crash fixed. This marked collections as visible, but the geometry component of the curve object was still considering self as invisible. This is something tricky, since the code which is responsible for this issue was added as an optimization in afb4da6650d. This looks like like an oversight in that commit since it's rather weird that ID node's flag would depend on construction order (in "normal" object builder the ID node's directly_visible flag is initialized to object's visibility). So it seems logical to get this part of code in sync between "regular" and "accumulative" object builder. And last but not least the naming is_directly_visible is old and does not really represent what it actually mans now: a more correct name would be "will be used by the draw manager". Differential Revision: https://developer.blender.org/D7217
2020-03-23Depsgraph: Driver Relations, skip finding possible relation with one driverSybren A. Stüvel
The `build_driver_relations()` function in the depsgraph relations builder adds relations between drivers that potentially write to the same memory location. This of course is only useful when there are two or more drivers.
2020-03-23Fix T73593: Drivers on hide_viewport and hide_render are unreliableSybren A. Stüvel
My previous fix (rB4c30dc343165) worked, except for an off-by-one error.
2020-03-23COW: Edit Mesh: Do not copy the looptris pointerGermano Cavalcante
No functional changes. Differential Revision: https://developer.blender.org/D7173
2020-03-23Sound: Fix asymmetrical mutex lock/unlock logicSergey Sharybin
Started to happen after recent fix for T72632. Was caused by runtime fields backup doing an early exit in the case the given ID was never expanded by the Copy-on-Write mechanism, but it was not done int the backup restore function (since it was not possible to know "locally"). Now both init() and restore() will do an early exit when the ID had nothing to be backed up.
2020-03-23Fix T72632: Blender crashes using Jack with AV Sync enabled (repeatable)Jörg Müller
2020-03-19Cleanup/refactor: remove BKE_idcode, in favour of BKE_idtype.Bastien Montagne
Mpving utils from idcode to idtype proved to be somewhat painful for some reasons, but now all looks good. Had to add a fake/empty shell for the special snowflake too, `ID_LINK_PLACEHOLDER/INDEX_ID_NULL`...