Will something be done about Blender's slow undo system?

On DevTalk…

Current ‘final’ branch is called uuid-undo-experiments-swap-reread-datablocks, and is almost master-ready (besides some known random crashes happening in depsgraph that need to be fixed).

It is still planned for 2.83, but as an experimental feature (to be enabled in preferences), since it is very unlikely we can harden it enough to enable it by default in this release.

Please also note that using this feature in its current state will expose you to rather severe risks (most common issues will be crashes, but there could also be some .blend file corruptions in some corner cases).

7 Likes

The work has actually been ongoing for months, but it required a fundamental redesign on how Blender handles datablocks and object ID’s. This was not even close to being something that could be done in one release cycle (or even over two cycles).

Thanks, I’ll have to try this one. I tried the one from March 3rd this weekend and didn’t see any improvement on large scenes(51,000 objects, lots of instancing so only a couple hundred thousand triangles) at all vs. 2.82.

Where can I find this build?

There’s no build, but this week’s dev. reports indicate Bastien will commit the fast undo as an ‘experimental’ feature in master soon.

As hinted, you will need to turn it on, as there will still be a slight chance of a corrupted file if it bugs out. Backup your current .blend file if you intend to use it right away.

I can’t even get undos to work with a build of that branch. It just crashes Blender when I press Ctrl-Z. The other branch undo-experiments-swap-reread-datablocks worked for me this weekend.

Are you actually trying to use those dev. branches!? :hushed:

I’m pretty sure Bastien was not expecting users to actually give them a test run.

Not using them for real, I’m just testing them with some typical imports from our software to see if there have been any speed ups. I can’t distribute the blend files because they’re scenes of our customers’ data they’ve granted us access to for marketing reasons, so I test builds myself.

I believe that is the real reason Blender isn’t used extensively by big studios.

2 Likes

An experimental feature has just landed:
Add experimental global undo speedup

3 Likes

But it should be noted that you should back up your .blend file or save more often, as crashes might occur in some situations or (very rarely) an operation could corrupt the file.

That is why you need to enable it first (so look in the preferences if you get the next build and undo is still slow).

1 Like

I’ve tested in 3 cases and it crashed 2 times :
edit mode (subdivided cube ) : no issues but can’t judge the speedup
production file (linked characters and set, undoing a pose) : crash
production file (a set with many objects, undoing an object transform) : crash

I’m sure these bug will be fixed soon but it’s experimental still :smiley:

OK, tested with 1000 Cubes subdivided 20 times (2646 polys), 10 undos from history:

2.82 = 16.70s
2.83 = 6.22s

4 Likes

Where did you find this build? I downloaded 2.83 alpha and cant find the option to enable ti

In the Preferences, the last option, Experimental. Check the Undo Speedup box and it should be enabled.


I dont have this option. cant see it anywhere in 2.83 alpha (today’s)

wqCk2Q2R5V

You are looking in the wrong section.

Unfortunately I dont have that experimental tab. Is this a build that you have to make yourself? I just downloaded Blender 2.83 alpha from the experimental section.

Have you got your build from the buildbot?

The one I’ve tested is the latest available: blender-2.83-b852db57ba24-windows64

Oooooo, AND it will REDO actions in its queue! That’s nice for precision repitition!

Thanks for the hedzup!