Improve Undo System
Hi everyone,
Undo is quite slow on big scenes and I avoid to use it in most cases (Reopening file might be even faster).
Here is a test case:
On a big scene (~18 million face total, each object has ~100K face) ( I realized that if I edit mesh and undo that , it is fine. However if I transform object, add modifier etc. and undo that, it slows down a lot:
2.79 and 2.80 both have this issue, so there is no regression according to my tests.
And it is certain that lots of other people are struggling with this issue:
- Bug report T60418 , Brecht told that this issue is not strictly a bug (but a design flaw?).
- Ongoing topic at Blenderartists.
- Ongoing topic at Devtalk.
- 4 people asked the same question related to slow undos on Blender Live #46 .
Jack confirmed that this is indeed a problem: T63882 and Brecht created this design task: T60695 with normal priority.
So, please vote up and comment below if you think this is an important issue and deserves a higher priority.
Edit (17.06.2019): Pablo mentioned in the stream #66 that developers are "super aware" of the issue and it's a "high priority" but it's not easy to tackle, so I assume we'll have to wait for 2.81 or later. Video 41:50
Thanks.
44 Comments
undo is so broken in blender
I disagree with those who have dismissed 2.8’s UI improvements as ‘cosmetic’ - I think new users need to be considered, and I’m glad that the UI is much more self-explanatory now.
That said, I think performance ought to be close to the #1 priority once 2.8 is stable. I could honestly go a whole year without seeing any new features, if it meant improving Blender’s ability to handle complex scenes.
* @richardhnoble * well said Richard. I love that Blender is becoming such a complete package but the one HUGE bottleneck right now is peformance (both polygonal editing speed and the undo performance). I do have faith in the blender devs!
This really needs to take top priority. Even if it isn't fixed for the 2.80 release, 2.81 has to address it. Preferrably I would like to get it done asap, but considering I am not a coder, I have no idea how complex of a problem this is.
One part that makes this slowdown worse is that you can potentially crash Blender by repeating the undo command too fast, which has happened to me a bit too often sadly.
Along with making undo faster, I would really like to see an actual undo history in Blender at some point. Since the program also fully supports 2D drawing now, having a timeline like Photoshop does it, or similar software would be pretty nice to have.
Absolutely so. I just hate this cancellation due to the fact that in a scene with 1-5 million polygons, you have to wait half a minute or a minute, when you did not move the polygon in the wrong direction.
It is strange that it is still not recognized as a bug.
This issue should be of the HIGHEST priority, right now its extremely painful and annoying to wait 2 - 3 seconds for every time you want to CTRL + Z specially if you have a Subdivision modifier.
Now they are trying to resolve all high priority errors to close 2.8. Because of this I think the normal priority assignment is correct.
Ideally they should have it fixed at 2.81.
Thank you for exposing this problem so clearly.
Yes, my friends coming from Maya specially notice this
* @zanqdo * Yes, Maya can handle heavy scenes and it's Undo handles quite well. But the problem of Maya is crashes though and slow UI, sometimes even experimental Blender builds are more stable than Maya =)). Also we should note that Maya has inbuilt limited Undo steps set to 50 by default (Or it's my settings, I don't remember. This also might be the reason why it's fast). A proper check is needed. But indeed, Maya won't stutter for a minute when you perform undo operation in a mid sized scenes.
And Maya have infinite undo. ♥
the task is not "Assigned To" anyone so this may take a long time to achieve, probably even beyond 2.82 -2.83...etc as it touches low level parts of blender...it's a shame that it's not a high priority in dev's eyes and just accepting the way it's right now.
True, sometimes an undo could freeze for a while or even crash. Im not developer but I though if this could be because it read all the data in the scene in a whole block each time you make an undo, instead split caches of undos and mesh by object, and a general index of global undos, making compatible with the new volumes undos for sculpt branch, so you can access to that internal cache individually in each object in scene, maybe longer scene loading, but probably faster BVH building also, if this can help to multithreading.
I agree this needs more attention. Ctrl Z is painfully slow and the thought of undoing puts discomfort and fear into my heart. Big, serious scenes are painful to work with with this state of undo.
The Undo issue is painful when working on Animation where all you're doing is setting transforms on bones. I'm working on a scene where almost everything is linked to keep the size small: 6 characters, 1 background and i'ts 8mbs. Undoing a vertex move is instant. Undoing translation of a box or a character bone takes about 5 seconds... it hurts. Well. until they fix it, better get back to it :-). Animation 2020 ?
* @mehdianim * agreed
Please make this a priority; at the moment this is my main concern with Blender. Especially in film production environments with tons of animation undo and linked assets, hitting CTRL Z is painfully slow and makes me consider manually restoring previous steps instead of using this most basic function. Better undo performance would be amazing.
Isn't the slowness of the undo currently accepted as a high priority "to do" on the stretch for 2.8 release? That and subdivision performance? I know they will eventually have to overhaul the system though, I'm pretty sure that's why we don't have a "back one step" with the knife tool.
* @daniellapalme * Do you have any link where it's mentioned as high priority 'to do'?
* @Emir Sinan Gürlek * no link sorry, just what Pablo has been saying in the blender today episodes. Maybe he was wrong that they didn't mark it as "high priority" but they are obviously working in it.
* @daniellapalme * Yeah, I recall him saying that on Monday. Guess we will have to wait for some clarification about what course of action the devs will take.
Hello, I created the above mentioned bug report T60418. At work I also use other 3D pogram like Maya, Clarisse, PMScope etc. The undo steps in these programs are as in most other programs all of us use daily, a second or two. Also in complex scenes! Blender is the only program I know, were undo takes ages. I hope the developers will fix the problem soon!
Can anybody comment on how fast the undo system works in other programs like Cinema and Maya? I assumed that the slowness of undo in Blender was just the nature of working in 3D, but perhaps this is not the case.
Edit: Never mind. I read through the other threads and it’s clear that Blender is uniquely weak in this area.
* @richardhnoble * zbrush has the best undo/redo that i have ever seen, it's pure magic, blender needs a system like that especially we have more than just modeling and sculpting :(
* @zedkorp * Undo in Zbrush is okay, but it has it's problems too. A - It has quite a heavy impact on your performance and your zbrush file size if you don't heavily limit it. B- When your model gets denser polywise specifically when you're at the later stages working on microdetails of your model (I usually get to 40-80 mil at later stages) I heavily limit undo step size or usually turn it off completely, because it can sometimes lead to sudden crashes. If you're working on a realistic model in ZBrush your file size can grow up to 1,5 - 2-3 gb easily add undos info to that and if you don't limit it your pc might choke (Zbrush will eat up your RAM as it was an icecream easily swallowing up to 8-24 gb depending on the density of the model). So I wouldn't call it pure magic it has a lot of flaws too. Undo almost in any 3d software has some problems in a certain form. But blender's UNDO system needs refinement indeed, because working with medium scenes with mesh having SUBD modifiers is a nightmare. Overall blender performance issues stem from combination of ineffective Undo system and introduction of new subdivision calculation method which has been reported to be couple of times slower than in 2.79, but on the other hand it outputs more correct results. I think these are two main directions where Blender can improve. And I do think that these directions are a bit more important that cosmetic UI changes, UI in 2.8 is cool compared to other software packages as of now.
Yes your'e right, every software gets slower if you work with really heavy scenes. I don' speak of undoing for example dozens of steps at once. But undoing only one simple transformation in a middle sized scenes takes ages in blender. From my point of experience, no other 3D software has this problem. But Brecht recognized the problem and created a design task. You are right, fancy UI stuff can't hide the fact that there is a performance problem. The identified performance problems should be high priority and should get more attention than cosmetic UI stuff!
* @marcus * Totally agree!
* @Chingiz Jumagulov * if u don't save zpr files with undo history on, it won't take large space and 40-80 mil is pretty damn good, zbrush is CPU based so of course you'll need a powerful PC for it...i use it all the time and never had any problem with undo-redo in zbrush ever ,even running keyshot along side it which takes up to 100% CPU.
* @zedkorp * I do use it all the time, UNDO's cause crashes at later stages for some reason. But I agree that I don't have to wait for 30sec though for undo to take place which is good compared to Blender.
I wanted to note that It's a combination of Subdivision modifier (it's performance got worse in 2.8 compared to 2.79 and it has been acknowledged (up to 4 times performance drop)) and Undo system that is holding Blender back performance wise.
Please supply a test blend file ,and write some steps for sharing test results.
* @Steve Yang * The testfile is in bugreport T60418. My testresults are also in this report.
"Undo" is the biggest weakness in Blender and is the sole reason I can't use it in a production environment. The models we build are not that large, but they're large enough to cause very long delays when using "undo".
I think fixing "undo" properly will be a huge undertaking, and I don't expect to see a fully streamlined version until the next major release.
Literary every step (except of edit poly) requires so much time to undo in late phase of the project. For me its the most important feature since this affect mostly every user. Even with SSD and high end pc they are just slow.
Yes, the most frustrating part of it, is that it's not really using computer resources.
and in text editor because this is a nightmare to use
* @zgorg2004 * it has been fixed about the text editor
can't this be archived or something
Done is a bit of a overstatement Still slow as hell on medium to big projects.
UPDATED: This has been fixed ! animating on Blender is <3 <3 <3
One great thing about Undo in Blender is it can undo almost anything ! Coming from Maya, it blows my mind you can undo "generate rig" in rigify for example. Maya usually crashes or breaks your scene when you try to undo complex operations, Blender seems to just do it, I hope the robustness of Undo remains while it gets sped up. Especially speed for keyframing rigs. Get more animators excited about Blender !
blender's new usd backend will resolve this.
* @tibbyninja * Could you explain what you mean by that and where you got this information from?
* @Frozen Death Knight * this video from yesterday's siggraph will help. It's Houdini, but Blender are also currently working on the same thing (usd/hydra scene description:
youtube.com/watch