I’ve filed a bug report on this issue, but wanted to elaborate a little and thought this might be a good place to do so.
When using modifiers, I tend to use subdivision surfaces more than once in the stack.
Since the old subdiv code was removed, I’m having a lot of issues trying to do certain things than were no problem in 2.79 without using OpenSubdiv.
I have a basic example that can be replicated really easy and the difference in performance is quite staggering.
If you create Monkey model and add a Subsurf set to 4 subdivisions, then add a Wireframe and add another Subsurf to smooth it, this is the difference:
- Blender 2.79 (without OpenSubdiv): ~5 seconds, ~2GB RAM usage
- Blender 2.79 (with OpenSubdiv): ~15 seconds, ~3.5GB RAM usage
- Blender 2.80 (with OpenSubdiv): ~3m, 52s, ~64GB RAM usage
Would there be an option to bring back the old way of subdividing a separate option on the modifier? I understand OpenSubdiv is great for all kinds of things but right now a lot of modifier workflows I use are completely hampered by new defaults. The faster, older one is enough for quick subdivs in the stack and works great on more complex meshes or weird geometry.
I’ve attached two files so you can test it yourself, might be worth getting benchmarks from a few people to eliminate it being something specific to my system.
All you need to do is turn on the second Subsurf in the modifier stack and keep an eye on your system resources.
I have a more extreme example for testing as well. This is a static mesh as an alembic file (~250MB) that you can import, but be warned (!) it’s quite heavy. (~8Mil Polys)
This is just to illustrate what happens when really pushing Blender with this kind of workflow, but might be an interesting litmus test.
- 2.79 without OpenSubdiv takes a while but uses about 30GB of RAM and handles it fine.
- Both 2.79 with OpenSubdiv and 2.80 max out 64GB RAM + 64GB swap on my machine and crash out without ever finishing.
I’m all for cleaning up the codebase to make the load on developers easier to maintain, but there’s an extreme loss of performance here for something as widely used as a Subsurf modifier.