Blender 2.8 Undo System Discussion

In 2.79, there are several undo histories. One per mode per object.
Problem was that undoing an action in object may suppress all theses edit mode undo histories.

In 2.8, as a unique undo system, steps into edit mode are no more lost.

When you are in edit mode, data managed is only mesh data (maybe + enabled in edit mode modifiers effects).
When you are in object mode, data managed is all objects data. So reducing amount of objects visible will improve performance.
To sum-up, what you are complaining about is performance into object mode.
If this point is globally solved, there is a chance that undo will not suffer of that, anymore, like any other action.

Undo system in object mode is so called “global undo”. Which is, basically, equivalent of saving current .blend file in memory (a bit smarter than, since the undo memory de-duplication system is in place). So when you undo Blender tosses away current .blend file state and opens a new one from memory, causing every object to be re-evaluated since their evaluated state is lost.

In edit mode (and other modes like painting, sculpting, etc) the undo system is more localized, and only stores changes for a specific object or its parts. Undo in this case will only restore state of a single object and re-evaluate that specific object.

One of the possible solutions would be to somehow preserve evaluated status through global undo steps as well. This isn’t a small project, but, hopefully, will be tackled as part of a project related on improving Blender for handling large and complex scenes.

Confusing part to me here is that you mention that if undo brings you back to an edit mode, the undo is still slow. This isn’t something what i would expect. Worth isolating and making a report i’d say.

P.S. Campbell is more familiar with the nowadays’ undo system.

3 Likes

Hi, thank you a lot, it’s great to have someone who sees all the underlying issues.

Good to read this. I understand it’s no easy task. Just wondered if having slower Global Undo but also Local Mode Undo would be beneficial and quite straightforward to implement (so blender stores and reverts to only objects in Local Mode).

I was trying it in a new artificially complex scene and I don’t think it was happening. It still happens in my file but by now I always use Undo in Object mode only once when I accidentaly move something etc (hard to exactly revert changes) otherwise if I wish to undo something often I do it manually.

I might investigate this more later but this scene is devilish. It’s a real testament to 2.8 for handling it pretty damn well. I get fluid viewport on 1070M.

image

Hi guys! I hope UNDO issue gets attention! I have really had hard times with it… I have read through this thread and the other one related to current state of UNDO in Blender. Also on right-click select there are 4 or 6 different UNDO improvement proposals, but I think they could be combined into one really. Undo is a huge problem when I work with serious models that occupy quite a lot of memory. Also I have noticed that the stuttering appears mostly when you UNDO in object mode. Maybe storing the whole blend file in object mode is not the most effective way for UNDO to work efficiently? But also, sadly, I don’t know what to propose to improve that. I think the reason why It was not reported as often is that a lot of users have quite lightweight scenes and models and don’t necessarily encounter the same problems that some modelers do. I have no complaints about overall scene performance in Blender, it can handle quite a large amount of polys and it’s all editable and I don’t see much of a difference here compared to other packages. But Undo is just killing me… It really does… I wish devs had some plan to mitigate that problem, but I have read previous devs responses in other threads and the answer was that there is currenly NO PLAN to fix this issue yet… Which is really sad, Blender is such a cool tool, where you can sculpt quite detailed mesh, quickly carve necessary shapes with booleans and use modifiers efficiently, but it will take you 2 minutes to do one UNDO step in a heavy scene.

Hi,

I decided to dig up this topic, because actual UNDO is much worse than 2.7X undo.
I was working with the “old” undo mode since Blender 2.42, which was My beginnings in 3D.
The new undo regardless of what’s under the hood is terrible. Is that hard to make it per mode back? Or as an option? I really can’t work, always am forced to undo for example going out of edit mode, to object mode, and vice versa. Actual undo is just bad. Can it be like in 2.7X?
What anyway is the status of undo now?

The status of current UNDO is that it’s much much faster. The scene I was showing above now takes only like 2-3 seconds to undo while it easily took 20-30 seconds previously… And it’s even more complex now!

While I liked the previous separated Undo quite a bit I am also fine with how it is now.

To be honest I am satisfied with the UNDO system, I use Ctrl Alt Z often to pinpoint exactly where I want to go back and it works fast.

The best tip I can give you is - try to work so that you don’t need to UNDO too far back. Meaning sometimes when afraid, just duplicate the object and store it in a Hidden layer for example. Then if anything goes amiss, you can revert to it.

Thank You Adam for the tips, but they don’t solve anything, it goes about the convenience of use. Nothing will be better. I often change modes between edit/object, and when using Undo I’m forced to undo also changing modes, this just makes Me crazy, and to be honest that only. I know it’s faster I’m working on Blender all the time, but sadly comparing with 2.7X actual undo is a step back for the workflow. I really hope something can be done with it. Regards.

1 Like

I’m not sure what is worse now than in 2.7 ? My experience matches that of @AdamPreisler (more or less), undo is several times faster now. Tten times does not seem like an exaggeration, especially in scenes with many objects. Can you share the specifics of the scenes that are causing you problems ? Maybe it’s a corner case or something that could be investigated. I personally hope that more improvements are to come, because 2.9’s undo is still lagging behind other DCCs, honestly.

What about another problem with UNDOING interface changes(setups).
Like if i set up my brush, snaping options, etc and then do something, next i undo.
It undoing my setups.

2 Likes

Hadriscus, everything is great regarding performance, I’m writing about modes. In 2.7X there was an global object mode UNDO, and edit mode UNDO. Now We have global, which takes edit mode and object mode into one. This is a pain when You switch the modes often, as I do, then I’m undoing switching between modes, which is stupid. And that what mentions youthatninja. It needs to be as it was, to have separate Undo, for edit mode, and object mode. Now it’s a mess.

You can try pushing it but think it’s going to be pretty hard. Looks like not a lot of people have such a problem? Maybe @sergey could chime in if something like this is easy to bring back as checkbox but I doubt it.

Ok apologies I didn’t immediately understand what it was about. I remember the undo system not being global, I never could make sense of it. I remember sometimes the different undo stacks could get out of sync and have unpredictable behaviour -was it just me not knowing how it worked, or was it indeed a bit complicated ? Do we know exactly why it wasn’t kept along with global undo ?

i have the same problem and for me undo in its current state is not useable and i try to avoid it at all cost. Its almost like in the old blender versions where there was no undo, as soon as you get into a situation you need it you know you are in trouble.

what i often do when working on some models for 3d printing (hard surface modeling) is switching between objects and working with lots of modifiers.
the main problem at the moment is that when i want to undo its on the current object i have selected, but when undo is used i might not even know what i undo since the last changes have been done one another object that get undone but since they are not in sight i do not realize it and everything starts to fall apart at that point.
Its just horrible to work with undo and i mentioned these issues way back when performance was bad, since i consider this the real issue of undo and am still surprised that not everybody is crying “broken” about the functionality changes that have been done.

The local undo how it was and how it is now is not the solution either, that one is even more broken. We better come up with a new concept that works.

1 Like

This one is a real problem for me. Dialing in settings - especially in sculpting is terrible with the current undo system. When I undo my last step then I don’t expect it to drag along all the brush settings with it as well. It’s cool that brush settings can be undone but I actually as good as never want the settings to be reset when undoing a brush stroke or a mesh edit.

Don’t know if a separate Undo combination like Shift-Z would be a solution but the way it is it really doesn’t make sense to me.

1 Like

Hi,

Anything new regarding this topic?
I can’t work… Blender now is UNDOING Switching subsurf on\of, switich local global mode. This is a DISASTER!!! Is there someone in power to push this topic? Or is there an option which I just don’t know about? I don’t want to UNDO interface changes, nor switching modifiers on/off. Is Blender still worthy for PROFESSIONALS? This is a joke, really. I’m not insulting noone, but try to work on something…

P.S Hadriscus, Apologize I wasn’t aware I’m quoting You.

Indeed work is being done on undo, little by little, but I don’t think you would learn much by reading the commits. (https://developer.blender.org/D10227) Let’s see how it goes.
As far undo undoing object and scene properties, well… I think most people want this part of the queue… I know I do, I mean that’s a “change” like any other isn’t it ?

Hopefully undo gets a bit more attention since it is also extremely slow in more heavier scenes. It got much better, since couple of time ( last year patches) and object undo is good now. Many thanks from my side to developer who did this.
But undo in case where you switch between edit mode and object mode is still extremely slow. If doing modeling 60 percent of cases are:
select object- go edit mode - select object- edit mode.

2 Likes

I don’t have a problem with undo working on propoerties per se. What is a problem is in cases like for example in sculpt mode. Tweaking dyntopo settings, then making a test stroke and then hitting undo simply undeas both the stroke and the settings. This is annoying as I have to test brush settings when I tweak something.

(edit) oh nevermind - I actually complained about JUST that last November, already. XD
Sorry.

Ah yeah that is annoying af. It makes me crazy as well. I actually have to reload my blend file to flush the undo queue after I add a texture to my brush, otherwise undoing will also change/remove the texture. I misunderstood your comment.

1 Like

I don’t really know the thinking behind actual undo. Really?
Was there a poll or something? This is bad. It needs at least be separate from any UI changes, and maybe as an option. For Me the best Undo system was when We have it for Object mode, and edit mode, without any interface undo. Everyone who is working on models, or animation will agree, everyone who just plays in Blender doing random stuff, doesn’t care.

1 Like