Revision b1b0208 by Campbell Barton February 21, 2020, 16:00 (GMT) |
Cleanup: remove unused ScreenAnimData.refresh |
Revision 4c30dc3 by Sybren A. Stüvel February 21, 2020, 15:57 (GMT) |
Fix T73593: Drivers on hide_viewport and hide_render are unreliable This fixes a threading issue (T73593) between drivers that write to the same memory address. Driver nodes in the depsgraph now get relations to each other in order to ensure serialisation. These relations are only added between drivers that target the same struct in RNA, which is determined by removing everything after the last period. For example, a driver with data path `pose.bones["Arm_L"].rotation_euler[2]` will be grouped with all other drivers on that datablock with a data path that starts with `pose.bones["Arm_L"]` to form a 'driver group'. To find a suitable relation within such a driver group, say the relation (from ? to), a depth-first search is performed (turned out to be marginally faster than a breadth-first in my test case) to see whether this will create a cycle, and to see whether there already is such a connection (direct or transitive). This is done by recursively inspecting the incoming connections of the 'to' node and thereby walking from it towards the 'from' node. This is an order of magnitde faster than inspecting the outgoing connections of the 'from' node. This approach generalises the special case for array properties, so the code to support that special case has been removed from `DepsgraphRelationBuilder::build_animdata_drivers()`. A test on the Spring rig [1] shows that this process adds approximately 8% to the build time of the dependency graph. In my test case, it takes 28 ms for this process on a total 329 ms construction time. However, since it also made some code obsolete, it only adds 24 ms (=8%) to the construction time. I have experimented with a simple cache to keep track of known-connected (from, to) node pairs, but this did not significantly improve the timing. Note that animation data and drivers are already connected by a relation, which means that animating a field and also changing it with a driver will not cause conflicts. [1] https://cloud.blender.org/p/spring/5d30a1076249366fa1939cf1 Differential Revision: https://developer.blender.org/D6905 Reviewed By: sergey, mont29 |
Revision b8c7ff5 by Campbell Barton February 21, 2020, 15:43 (GMT) |
Cleanup: un-indent ED_screen_set_active_region Also remove redundant flag assignment from previous comment. |
Revision d0578a9 by Germano Cavalcante February 21, 2020, 15:20 (GMT) |
Revision 824b2c6 by Campbell Barton February 21, 2020, 15:13 (GMT) |
Cleanup: avoid looping over areas when refreshing the cursor These values are already known, pass in as arguments. |
Revision 4653d25 by Campbell Barton February 21, 2020, 14:59 (GMT) |
Fix T67805: Cursor doesn't update when switching tools via shortcuts |
Revision 803636f by Sebastián Barschkis February 21, 2020, 14:32 (GMT) |
Fluid: Fix typo in fluid RNA Fix typo in fluid RNA. |
Revision f2b0aef by Sebastián Barschkis February 21, 2020, 14:30 (GMT) |
Fluid: Cleanup in cache delete function Removed unneccessary calls to BLI_exists() as BLI_delete() does this implicitly. |
Revision b8af5e1 by Sebastián Barschkis February 21, 2020, 14:29 (GMT) |
Fluid: Updated manta pp files Updates include: - A fix from Jacques that changed the loop order in the mesh creation function (the fix speeds up the function significantly due to fewer cache misses). - Some of the grid copy helper functions are now multithreaded. - A fix for Windows file IO. Now it possible to load files with non ASCII characters on Windows too. |
Revision ec5fc1a by Germano Cavalcante February 21, 2020, 13:43 (GMT) |
Cleanup: Move transform_mode_init to transform_mode API |
Revision f2224cc by Philipp Oeser February 21, 2020, 13:35 (GMT) |
Fix T74006: Alt+ clicking (assign to all selected) doesn not work for bone constraints settings 'UI_context_copy_to_selected_list()' was working fine for constraints on objects (would properly get the path and list of selected objects) and also for bone settings (would properly get the path and list of bones). There was no special case for constraints on bones though, so code would work on selected objects (not selected bones). So we now get the right bones and resolve the path to the constraint setting _from the bones_. Maniphest Tasks: T74006 Differential Revision: https://developer.blender.org/D6897 |
Revision 0c506a6 by Germano Cavalcante February 21, 2020, 13:04 (GMT) |
Fix T74044: Switching from Edge Slide to Move and Cancelling causes crash `TFM_TRANSLATION` was removed in rBa33b261473e9 but is still needed. |
Revision 7bea141 by Germano Cavalcante February 21, 2020, 13:03 (GMT) |
Transform: Fix reinitialization of custom data correction |
Revision 94e180b by Sybren A. Stüvel February 21, 2020, 10:16 (GMT) |
Fix: Drivers on hide_viewport and hide_render throw warnings This partially fixes T73593. The `add_relation(driver_key, property_entry_key, ...);` call can fail in the following situation: - A collection is linked, and instanced into the scene by an Empty. - The collection contains an object with a driver on its `hide_render` or `hide_viewport` property. As the object doesn't exist as a real object in the scene, it's added with `base_index=-1` to the depsgraph (see `DepsgraphNodeBuilder::build_collection()`). As a result the node for syncing the restrictflags back to the base isn't present in the depsgraph, and the `add_relation()` call failed. This commit fixes the warning, simply by not attempting to add the offending relation. |
Revision be2bc97 by Jeroen Bakker February 21, 2020, 10:13 (GMT) |
EEVEE: Render Passes This patch adds new render passes to EEVEE. These passes include: * Emission * Diffuse Light * Diffuse Color * Glossy Light * Glossy Color * Environment * Volume Scattering * Volume Transmission * Bloom * Shadow With these passes it will be possible to use EEVEE effectively for compositing. During development we kept a close eye on how to get similar results compared to cycles render passes there are some differences that are related to how EEVEE works. For EEVEE we combined the passes to `Diffuse` and `Specular`. There are no transmittance or sss passes anymore. Cycles will be changed accordingly. Cycles volume transmittance is added to multiple surface col passes. For EEVEE we left the volume transmittance as a separate pass. Known Limitations * All materials that use alpha blending will not be rendered in the render passes. Other transparency modes are supported. * More GPU memory is required to store the render passes. When rendering a HD image with all render passes enabled at max extra 570MB GPU memory is required. Implementation Details An overview of render passes have been described in https://wiki.blender.org/wiki/Source/Render/EEVEE/RenderPasses Future Developments * In this implementation the materials are re-rendered for Diffuse/Glossy and Emission passes. We could use multi target rendering to improve the render speed. * Other passes can be added later * Don't render material based passes when only requesting AO or Shadow. * Add more passes to the system. These could include Cryptomatte, AOV's, Vector, ObjectID, MaterialID, UV. Reviewed By: Cl�ment Foucault Differential Revision: https://developer.blender.org/D6331 |
Revision 1f8f4c8 by Sergey Sharybin February 21, 2020, 10:00 (GMT) |
Codesign: Make file watcher robust for network errors |
Revision 973982a by Sergey Sharybin February 21, 2020, 09:49 (GMT) |
Cleanup: Spelling in a comment |
Revision 20b47d7 by Sergey Sharybin February 21, 2020, 08:31 (GMT) |
Codesign: Remove archive with files after they were copied |
Revision b56957f by Germano Cavalcante February 21, 2020, 01:21 (GMT) |
Revision ee7f307 by William Reynish February 20, 2020, 21:50 (GMT) |
Fix T73841: Pressing 3 doesn't go to Pose mode Just changing the order in the keymap seems to fix this |
|