Blender Git Commits
Page: 10 / 13
Revision e40ad8b by Bastien Montagne (undo-experiments-swap-reread-datablocks, uuid-undo-experiments-swap-reread-datablocks) January 30, 2020, 20:56 (GMT) |
undoexp: fix memleak after recent change of WM/SCR/WS IDs handling. |
Revision 75b917e by Bastien Montagne (undo-experiments, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks) January 30, 2020, 14:29 (GMT) |
undoexp: tweak `setup_app_data()` to better handle undo case. The way we detected undo case there was somewhat weak, now we have a stronger way to do it from `BlendFileReadParams`. |
Revision ff487a0 by Bastien Montagne (undo-experiments, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks) January 30, 2020, 14:11 (GMT) |
undoexp: fix memleak after recent change of WM/SCR/WS IDs handling. |
Revision 09e59f1 by Bastien Montagne (undo-experiments-swap-reread-datablocks, uuid-undo-experiments-swap-reread-datablocks) January 30, 2020, 11:36 (GMT) |
Merge branch 'undo-experiments' into undo-experiments-swap-reread-datablocks Conflicts: source/blender/blenloader/intern/readfile.c |
Revision d7da371 by Bastien Montagne (undo-experiments, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks) January 30, 2020, 11:29 (GMT) |
Merge branch 'master' into undo-experiments |
Revision e38ab3c by Bastien Montagne (undo-experiments, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks) January 30, 2020, 11:27 (GMT) |
undoexp: fix bug/crash in recent refactor of WM/SCR/WS IDs handling. Mismatch when partial undo was not enabled. |
Revision f23113c by Bastien Montagne (undo-experiments-swap-reread-datablocks, uuid-undo-experiments-swap-reread-datablocks) January 30, 2020, 11:10 (GMT) |
undoexp: Better handling of recalc flags in undo/redo case. Main idea here is to accumulate all recalc flags used on an ID over the whole time between two memfile savings. Since our IDs are now almost never fully re-evaluated in depsgraph on undo, this should give us a best 'precise' info required to update actually changed things in the DEG update just after the undo. |
Revision d1e4376 by Bastien Montagne (undo-experiments-swap-reread-datablocks, uuid-undo-experiments-swap-reread-datablocks) January 29, 2020, 20:37 (GMT) |
undoexp: better handling of recalc flags in undo case. Fixes the 'object that not update its position when undoing the very first undo step' issue. Just like with the 'unchanged' detection, when going backward, i.e. actual undo from n to n-1 stages, the 'recalc' flag stored in ID is not that useful, as it actually marks the updates needed from n-2 to n-1 stages. So we need a way to get 'future' recacl flags, i.e. the last recalc flags used by the last despgraph update, for the current ID, and set them into the newly read ID's racalc flags. Note that am not sure how strong this approach is, it is relatively simple, but may require some more involved handling (like accumulating all flags used in-between two undo steps storage, or something similar?). |
Revision c41d392 by Bastien Montagne (undo-experiments-swap-reread-datablocks, uuid-undo-experiments-swap-reread-datablocks) January 29, 2020, 11:00 (GMT) |
Merge branch 'undo-experiments' into undo-experiments-swap-reread-datablocks Conflicts: source/blender/blenloader/intern/readfile.c |
Revision a149952 by Bastien Montagne (undo-experiments, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks) January 29, 2020, 10:52 (GMT) |
undoexp: cleanup/simplify handling of WM/SCR/WS IDs. Re-read from memfile WindowManagers, Screens and WorkSpaces are never actually used in undo situation. This allows us to simply early abort on those ID types, even if we do not find them in current (old) bmain for some reason. |
Revision 5aaf48c by Bastien Montagne (undo-experiments-swap-reread-datablocks, uuid-undo-experiments-swap-reread-datablocks) January 29, 2020, 10:05 (GMT) |
Merge branch 'undo-experiments' into undo-experiments-swap-reread-datablocks |
Revision c2a6cb9 by Bastien Montagne (undo-experiments, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks) January 29, 2020, 10:05 (GMT) |
undoexp: style cleanup. |
Revision 2a061a5 by Bastien Montagne (undo-experiments-swap-reread-datablocks, uuid-undo-experiments-swap-reread-datablocks) January 28, 2020, 20:22 (GMT) |
undoexp: initial implementation of ID swapping. Goal is to reuse same address also for changed IDs during an undo step. This will allow for a given ID to almost always keep its same address along a whole editing session, reducing a lot useless updates required by current memfile undo. Note that this commit has a lot of things to be investigated & fixed still, at the very least: * Refcounting is not really taken care of yet. This is fine for now since we remap everything still, but at some point plan is to not remap (liblink) reused unchanged IDs at all... * We keep the double libmap for now, getting rid of it requires further investigations (especially in some corner cases). * 'UI' IDs (WM, screen and WS) are likely troublemakers given their current weird specific handling. This might actually be seriously simplified with this new approach? * Since even changed IDs keep the same address, we are going to have to improve a lot the `id->recalc` handling - unless we accept a brute-force complete depsgraph update of the changed IDs. Last point is especially interesting, as with current code, updates do happen as expected most of the time (proper updates are missing sometimes). This means that even undo moving of a very highly modifier-subdivided object can be done "instantaneously" as that object updates does not requires a geometry update. Handling it properly will likely require to store the 'future' update flag (as we do currently with the future unchanged status). Not sure we'll catch all cases though, if that goes too far we may just force full update as a first step. :/ |
Revision 06c2bb9 by Bastien Montagne (undo-experiments-swap-reread-datablocks, uuid-undo-experiments-swap-reread-datablocks) January 28, 2020, 20:06 (GMT) |
undoexp: BKE_id_swap: add 'full' swapping. Add a new func to do a full swapping of two ID data, including all of the ID strcut content itself. Also make both idswap functions resilient to a NULL given bmain pointer (they simply do not do internal remapping of pointers to itself then). |
Revision ca8706b by Bastien Montagne (undo-experiments, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks) January 28, 2020, 15:14 (GMT) |
Merge branch 'master' into undo-experiments |
Revision b533f73 by Bastien Montagne (undo-experiments-swap-reread-datablocks, uuid-undo-experiments-swap-reread-datablocks) January 28, 2020, 10:32 (GMT) |
Merge branch 'undo-experiments' into undo-experiments-swap-reread-datablocks |
Revision 9205f3a by Bastien Montagne (undo-experiments, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks) January 28, 2020, 10:31 (GMT) |
Merge branch 'master' into undo-experiments |
Revision 29e2ca5 by Bastien Montagne (undo-experiments-swap-reread-datablocks, uuid-undo-experiments-swap-reread-datablocks) January 26, 2020, 20:07 (GMT) |
Reset to current undo-experiments branch. |
Revision 05cf747 by Bastien Montagne (undo-experiments-swap-reread-datablocks, uuid-undo-experiments-swap-reread-datablocks) January 26, 2020, 20:03 (GMT) |
Merge branch 'master' into undo-experiments-swap-reread-datablocks |
Revision edc4b18 by Bastien Montagne (undo-experiments, undo-experiments-idnames, undo-experiments-swap-reread-datablocks, uuid-undo-experiments, uuid-undo-experiments-swap-reread-datablocks) January 24, 2020, 15:21 (GMT) |
Merge branch 'undo-experiments' into undo-experiments-idnames |