A kill button for processes that take too long or stall and/or modifier system that can predict the number of verts and prompt the user if too high.
Add to whichever class that is dispatching threads an ability to close the threads at the whim of a function call, tie it to a red button on the status bar. If a modifier is called up that is going to stall the system, say the Remesh, we need a way to stop it from calculating (the 0.1m default on a large mesh can be disastrous in the Remesh modifier). If it is possible at all, a rough estimate of the verts that are going to generated by a modifier might be made, and if about it is gonna make N verts or more, it ought to bring up a prompt, 'are you sure?'
4 Comments
This is horrible problem in Blender around thread management for CPU/GPU. projects.blender.org/blender/blender/issues/112634
Perhaps warnings are unnecessary as for one person's computer it might not be a big deal, but on another person's potato with a screen, warnings could potentially appear everywhere. However, the hourglass or spinning beach ball is the bare minimum.
An opportunity to actually cancel what you did could mean the difference between someone who isn't familiar with the Recovery options (which aren't automatic), being able to find their work or just being devastated.
Also, you could still lose the last few minutes of what you're doing, or even all of it if your computer were to restart. This is why it's important to save often, but also critical that such a software have measures in place against losing stuff. At the very least the auto saves could be stored in the library instead of the /tmp folder that gets reset on reboot.
The conundrum situations like this where you accidentally apply too much subdivisions faces people with is "Should I just hope this task will eventually complete? Or, should I just fudge it and lose potentially the last few minutes of what I did?
Blender should include an action after installation and when first ran that performs a benchmark similar to many games to establish a baseline for the gpu/cpu. Then when Blender is about to perform an action that will dramatically increase vertices/triangles such as import of a model (it can check vertices prior to full import and view), subdivision past a certain level, etc, it would display a warning that it may be extremely taxing on the system and take a while to complete. This would not be that difficult to implement.
This is the source of the most frustrating moments I've ever had with Blender. And those do happen quite often.
Whether it is a modifier, or rendering, or remesh or any process that will make Blender calculate way too much stuff that your pc can handle, you are basically forced to wait it to do the calculation till the end or crash.
I've understood that this problem somehow is connected to the nature of Blender gui, that is made with python, so this feature would maybe have to be done somehow outside of the python gui. (someone who knows more can continue or correct me)