Subdivision Surface modifier performance issues #58191

Open
opened 2018-11-29 22:05:38 +01:00 by mantissa · 82 comments

System Information
Operating system: Xubuntu 18.04
Graphics card: Nvidia Titan X (Pascal)

Blender Version
Broken: 2.80 26d5a3625e
Worked: Before the new "Quality" setting was introduced in the Subdivision Surface modifier

Short description of error
The Subdivision surface modifier has slowed down significantly, especially noticable with multiple Subdivision Surface modifiers on the same object.
Creating the same setup in the builds before the new setting is as fast as 2.79.

Exact steps for others to reproduce the error

  • Create Monkey object
  • Add Subdivision Surface modifier
  • Add Wireframe Modifier
  • Add second Subdivision Surface modifer
    slow-subsurf.blend
**System Information** Operating system: Xubuntu 18.04 Graphics card: Nvidia Titan X (Pascal) **Blender Version** Broken: 2.80 26d5a3625ed Worked: Before the new "Quality" setting was introduced in the Subdivision Surface modifier **Short description of error** The Subdivision surface modifier has slowed down significantly, especially noticable with multiple Subdivision Surface modifiers on the same object. Creating the same setup in the builds before the new setting is as fast as 2.79. **Exact steps for others to reproduce the error** - Create Monkey object - Add Subdivision Surface modifier - Add Wireframe Modifier - Add second Subdivision Surface modifer [slow-subsurf.blend](https://archive.blender.org/developer/F5759770/slow-subsurf.blend)
Author

Added subscriber: @Mantissa

Added subscriber: @Mantissa

#86600 was marked as duplicate of this issue

#86600 was marked as duplicate of this issue

#81880 was marked as duplicate of this issue

#81880 was marked as duplicate of this issue

#75195 was marked as duplicate of this issue

#75195 was marked as duplicate of this issue

#74480 was marked as duplicate of this issue

#74480 was marked as duplicate of this issue

#73968 was marked as duplicate of this issue

#73968 was marked as duplicate of this issue

#73752 was marked as duplicate of this issue

#73752 was marked as duplicate of this issue

#70523 was marked as duplicate of this issue

#70523 was marked as duplicate of this issue

#67536 was marked as duplicate of this issue

#67536 was marked as duplicate of this issue

#66226 was marked as duplicate of this issue

#66226 was marked as duplicate of this issue

#65000 was marked as duplicate of this issue

#65000 was marked as duplicate of this issue

#65203 was marked as duplicate of this issue

#65203 was marked as duplicate of this issue

#63887 was marked as duplicate of this issue

#63887 was marked as duplicate of this issue

#62522 was marked as duplicate of this issue

#62522 was marked as duplicate of this issue

#60724 was marked as duplicate of this issue

#60724 was marked as duplicate of this issue

#59983 was marked as duplicate of this issue

#59983 was marked as duplicate of this issue

#59907 was marked as duplicate of this issue

#59907 was marked as duplicate of this issue
Sergey Sharybin was assigned by Sebastian Parborg 2018-12-14 15:42:44 +01:00

Added subscribers: @bastiansalmela, @Thondal, @capnm

Added subscribers: @bastiansalmela, @Thondal, @capnm

Worked: Before the new "Quality" setting was introduced in the Subdivision Surface modifier

It was introduced after the enabling of OpenSubdiv (9abcf56fa8)

> Worked: Before the new "Quality" setting was introduced in the Subdivision Surface modifier It was introduced after the enabling of OpenSubdiv (9abcf56fa8)

Added subscriber: @Inovang

Added subscriber: @Inovang

Added subscriber: @ostry

Added subscriber: @ostry
Member

Added subscribers: @ConsoleMaster, @lichtwerk

Added subscribers: @ConsoleMaster, @lichtwerk
Author

I've elaborated a bit more on this issue in a devtalk post, as not to clutter the bug tracker too much.
Here's the full post for anyone interested: https://devtalk.blender.org/t/opensubdiv-issues-with-large-and-complex-meshes/5534

I've elaborated a bit more on this issue in a devtalk post, as not to clutter the bug tracker too much. Here's the full post for anyone interested: https://devtalk.blender.org/t/opensubdiv-issues-with-large-and-complex-meshes/5534

Added subscriber: @michaelknubben

Added subscriber: @michaelknubben

Added subscriber: @kfoong

Added subscriber: @kfoong

Added subscriber: @seaside98-4

Added subscriber: @seaside98-4

Added subscriber: @MassimilianoPuliero

Added subscriber: @MassimilianoPuliero

Added subscribers: @GabrielMoro, @Sergey, @ZedDB, @HADESBLACK

Added subscribers: @GabrielMoro, @Sergey, @ZedDB, @HADESBLACK

Added subscriber: @danielfcosta10

Added subscriber: @danielfcosta10

Added subscriber: @MeshVoid

Added subscriber: @MeshVoid

Added subscribers: @BassamKurdali, @brecht

Added subscribers: @BassamKurdali, @brecht

Added subscriber: @DoekedeWolf

Added subscriber: @DoekedeWolf

Removed subscriber: @DoekedeWolf

Removed subscriber: @DoekedeWolf

Added subscriber: @Parabox

Added subscriber: @Parabox

Added subscriber: @Nominous

Added subscriber: @Nominous

Added subscriber: @DonCoyote

Added subscriber: @DonCoyote

Added subscribers: @christopher.burns, @mano-wii, @dark999

Added subscribers: @christopher.burns, @mano-wii, @dark999

Added subscriber: @SamGreen

Added subscriber: @SamGreen

Added subscriber: @pabcou

Added subscriber: @pabcou

Added subscriber: @Lambdadelta

Added subscriber: @Lambdadelta

Added subscriber: @zebus3dream

Added subscriber: @zebus3dream

Added subscriber: @tgarriott

Added subscriber: @tgarriott

Added subscribers: @valya2255, @Mets

Added subscribers: @valya2255, @Mets

Added subscriber: @AlbertoVelazquez

Added subscriber: @AlbertoVelazquez

Could be this task change to high priority? actually any workflow that implies subdivision is nearly dead.

Could be this task change to high priority? actually any workflow that implies subdivision is nearly dead.

Added subscriber: @rotoglup

Added subscriber: @rotoglup

System Information
Operating system: Windows-10-10.0.17763 64 Bits
Graphics card: GeForce GT 650M/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 416.16

Blender Version
Broken: version: 2.81 (sub 16), branch: master, commit date: 2019-11-03 03:57, hash: 8ab6ef30ab

I'm new to Blender and I'm also stumbling on this issue while using adaptative subdivision for displacement map rendering using Blender 2.81 beta - FWIW a few precisions for my case :

  • I apply a SUBSURF modifier using the following code on my objects with a displacement material
    mod = obj.modifiers.new(name="Displacement subdiv", type='SUBSURF')
    mod.subdivision_type = 'SIMPLE'
    mod.show_viewport = False
    obj.cycles.use_adaptive_subdivision = True
  • I start a rendering with F12
  • the render image popup shows empty, with no progression message
    • Blender tries to consume a lot of RAM, eventually dies
  • after some 'long' time, the render image go alive
    • during the render init, the phases Updating mesh | Tesselating XXX are also 'long'
    • then phases Computing Displacement XXX are also 'long'

'long' means, for a minimal scene with only one object :

  • render time without modifier : 0.70 sec., peak mem 23Mb
  • render time with modifier : 24.00 sec, peak mem 817Mb (most time spent in init)
  • one mesh : 74k vert, 134k tris
  • if I apply a "Tris to Quads" on the mesh, the render time drops to 03.54 sec, peak mem 156Mb

With my full scene, the rendering crashes even with a beefier machine.

Would my repro test scene be of interest for you ?

(edited) to add mention of "Tris to Quads"

**System Information** Operating system: Windows-10-10.0.17763 64 Bits Graphics card: GeForce GT 650M/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 416.16 **Blender Version** Broken: version: 2.81 (sub 16), branch: master, commit date: 2019-11-03 03:57, hash: `8ab6ef30ab` I'm new to Blender and I'm also stumbling on this issue while using adaptative subdivision for displacement map rendering using Blender 2.81 beta - FWIW a few precisions for my case : - I apply a SUBSURF modifier using the following code on my objects with a displacement material ``` mod = obj.modifiers.new(name="Displacement subdiv", type='SUBSURF') mod.subdivision_type = 'SIMPLE' mod.show_viewport = False obj.cycles.use_adaptive_subdivision = True ``` - I start a rendering with `F12` - the render image popup shows empty, with no progression message - Blender tries to consume a lot of RAM, eventually dies - after some 'long' time, the render image go alive - during the render init, the phases `Updating mesh | Tesselating XXX` are also 'long' - then phases `Computing Displacement XXX` are also 'long' 'long' means, for a minimal scene with *only one* object : - render time *without* modifier : 0.70 sec., peak mem 23Mb - render time *with* modifier : 24.00 sec, peak mem 817Mb (most time spent in init) - one mesh : 74k vert, 134k tris - if I apply a "Tris to Quads" on the mesh, the render time drops to 03.54 sec, peak mem 156Mb With my full scene, the rendering crashes even with a beefier machine. Would my repro test scene be of interest for you ? (edited) to add mention of "Tris to Quads"

Added subscriber: @mysticfall

Added subscriber: @mysticfall
Sergey Sharybin was unassigned by Dalai Felinto 2019-12-23 16:35:49 +01:00

Added subscribers: @WilliamReynish, @YAFU, @EAW, @LucasVeber

Added subscribers: @WilliamReynish, @YAFU, @EAW, @LucasVeber

Added subscriber: @ChristopherAnderssarian

Added subscriber: @ChristopherAnderssarian

Added subscriber: @RORU

Added subscriber: @RORU

Added subscriber: @Ace_Dragon

Added subscriber: @Ace_Dragon

These issues should not be closed.

The reason is that if this is not solved, then 2.8 will not be a new era of Blender, it will be the beginning of a decline that ends either with Blender being forked or with its inclusion in the FOSS graveyard.

This is a major issue with FOSS productivity software in general, performance is considered a "nice to have" rather than a central pillar, the fact that this isn't a priority indicates the BF risking the impression that it has learned little from NaN's bankruptcy. The team can talk about how Autodesk screws over the artist, but they at least know performance and work to fix any issue.

Fix the performance issues or there will be yet more reports from users. Pros can't use the software for any serious character work, so I propose that all Open Movie Projects are stopped immediately until subdivision speed matches or exceeds Blender 2.79. Please show that the BF has indeed become serious about pros using Blender as seen with the attention on UI, usability, and standards. If you guys are enjoying that million dollar dev. fund, then keeping performance on the back-burner will be the fastest way to shrink it to pre 2.8 levels.

These issues should not be closed. The reason is that if this is not solved, then 2.8 will not be a new era of Blender, it will be the beginning of a decline that ends either with Blender being forked or with its inclusion in the FOSS graveyard. This is a major issue with FOSS productivity software in general, performance is considered a "nice to have" rather than a central pillar, the fact that this isn't a priority indicates the BF risking the impression that it has learned little from NaN's bankruptcy. The team can talk about how Autodesk screws over the artist, but they at least know performance and work to fix any issue. Fix the performance issues or there will be yet more reports from users. Pros can't use the software for any serious character work, so I propose that all Open Movie Projects are stopped immediately until subdivision speed matches or exceeds Blender 2.79. Please show that the BF has indeed become serious about pros using Blender as seen with the attention on UI, usability, and standards. If you guys are enjoying that million dollar dev. fund, then keeping performance on the back-burner will be the fastest way to shrink it to pre 2.8 levels.

@Ace_Dragon the issue is NOT closed. Bug reports get merged if they are duplicates. If the main report is still Confirmed, then the bug is still open.

@Ace_Dragon the issue is NOT closed. Bug reports get merged if they are duplicates. If the main report is still Confirmed, then the bug is still open.

Added subscriber: @juicebops

Added subscriber: @juicebops

Added subscriber: @coldrage79

Added subscriber: @coldrage79

System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce GTX 780/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 442.19

Blender Version
Broken: version: 2.82 (sub 7), branch: master, commit date: 2020-02-12 16:20, hash: 77d23b0bd7
Worked: 2.79b

Short description of error
Blender is freezing deeply when you are trying to add Subdivision Surface modifier on complex object. Other modeling programs and Blender 2.79b work without any lags.

Exact steps for others to reproduce the error

  1. Open subdiv_performance.blend{F8368874}
  2. Select the only object in the scene
  3. Add Subdivision Surface from the modifiers stack
  4. Wait

Download subdiv_performance.blend

**System Information** Operating system: Windows-10-10.0.18362-SP0 64 Bits Graphics card: GeForce GTX 780/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 442.19 **Blender Version** Broken: version: 2.82 (sub 7), branch: master, commit date: 2020-02-12 16:20, hash: `77d23b0bd7` Worked: 2.79b **Short description of error** Blender is freezing deeply when you are trying to add Subdivision Surface modifier on complex object. Other modeling programs and Blender 2.79b work without any lags. **Exact steps for others to reproduce the error** 1. Open subdiv_performance.blend{[F8368874](https://archive.blender.org/developer/F8368874/subdiv_performance.blend)} 2. Select the only object in the scene 3. Add Subdivision Surface from the modifiers stack 4. Wait [Download subdiv_performance.blend ](https://dev-files.blender.org/file/download/whtc5qj3bvjaeirip4pc/PHID-FILE-lgpdxnqhmxkz4ivft6oc/subdiv_performance.blend)

Added subscriber: @sunx35

Added subscriber: @sunx35

Hello. I began to discover the Blender 2.8 (used 2.7 sometime before). And get in stuck with this problem. My geometry, a little bit more complex than simple, give me 120 seconds to wait when I put a modifier on it.
I don't know. I think this more than normal priority to fix.
What we have for real. We can not do any high poly modelling now. Right?
Maybe we can see the previous version of this modifier if it is so hard to make it quick with new?

Hello. I began to discover the Blender 2.8 (used 2.7 sometime before). And get in stuck with this problem. My geometry, a little bit more complex than simple, give me 120 seconds to wait when I put a modifier on it. I don't know. I think this more than normal priority to fix. What we have for real. We can not do any high poly modelling now. Right? Maybe we can see the previous version of this modifier if it is so hard to make it quick with new?

Added subscriber: @adrenaline_hunter

Added subscriber: @adrenaline_hunter

Same problem here, this is a major limitation, when we will see any update? Thanks!

Same problem here, this is a major limitation, when we will see any update? Thanks!

Added subscriber: @ThunderStriker

Added subscriber: @ThunderStriker

I'm a bit confused on why this is a problem in the first place. I'm currently taking a Blender course on Udemy and I contacted one of the admins on the course, sent my file that has the same SUBSURF lag problem, and got feedback but surprisingly this admin didn't come across the same issue when he took a look at it after I sent him the file. Apparently this is a problem only some of us are having. Does the Quality value have something to do with it? Because all of us who are familiar with the 2.7 series are familiar and can recall that the SUBSURF modifier didn't have a quality value. What is the purpose of the Quality value? I've never really noticed anything better about it compared to when Blender didn't have it.

I'm a bit confused on why this is a problem in the first place. I'm currently taking a Blender course on Udemy and I contacted one of the admins on the course, sent my file that has the same SUBSURF lag problem, and got feedback but surprisingly this admin didn't come across the same issue when he took a look at it after I sent him the file. Apparently this is a problem only some of us are having. Does the Quality value have something to do with it? Because all of us who are familiar with the 2.7 series are familiar and can recall that the SUBSURF modifier didn't have a quality value. What is the purpose of the Quality value? I've never really noticed anything better about it compared to when Blender didn't have it.

Added subscriber: @NXSK

Added subscriber: @NXSK

When I'm working with a model that a bit complexer with a subdivision modifier, the editing becomes slow. This bothers me a lot because this is a very common situation. I think this performance issue should have a higher priority to solve.

When I'm working with a model that a bit complexer with a subdivision modifier, the editing becomes slow. This bothers me a lot because this is a very common situation. I think this performance issue should have a higher priority to solve.
Member

Added subscriber: @Kali-4

Added subscriber: @Kali-4

Added subscriber: @RedTopper

Added subscriber: @RedTopper

Added subscriber: @Fabricio-Lima

Added subscriber: @Fabricio-Lima

I am a little bit baffled this is an issue, I am considering making a jump to Blender, but this is, for me, a core issue, without it, not much else is useful, if we cant model without slowing it down.
But I also know that some people are not experiencing this... if we could at least discover what could be causing it?
Im on Windows 10 i7, 2 GTX 1080 GPU.

I am a little bit baffled this is an issue, I am considering making a jump to Blender, but this is, for me, a core issue, without it, not much else is useful, if we cant model without slowing it down. But I also know that some people are not experiencing this... if we could at least discover what could be causing it? Im on Windows 10 i7, 2 GTX 1080 GPU.

I'm not sure if I should open a new report with this .blend file:
bug subsurf and collapse.blend

You press M > Collapse, then Blender hangs for a long time, a simple CPU thread process is working. I must kill blender process. The same happens if you delete the subsurf modifier, collapse the edge loop, and then add subsurf modifier.
The problem occurs in Blender 2.8x and 2.90. The problem does not occur in Blender 2.7x
Using Kubuntu Linux

I'm not sure if I should open a new report with this .blend file: [bug subsurf and collapse.blend](https://archive.blender.org/developer/F8577635/bug_subsurf_and_collapse.blend) You press M > Collapse, then Blender hangs for a long time, a simple CPU thread process is working. I must kill blender process. The same happens if you delete the subsurf modifier, collapse the edge loop, and then add subsurf modifier. The problem occurs in Blender 2.8x and 2.90. The problem does not occur in Blender 2.7x Using Kubuntu Linux

Added subscriber: @breakingspell

Added subscriber: @breakingspell

Added subscribers: @PetrTarasov, @iss

Added subscribers: @PetrTarasov, @iss

Added subscriber: @BorutBalazek

Added subscriber: @BorutBalazek

This comment was removed by @BorutBalazek

*This comment was removed by @BorutBalazek*

Added subscriber: @Kyuumeitai

Added subscriber: @Kyuumeitai

Added subscriber: @Wovchick

Added subscriber: @Wovchick

Added subscriber: @jackiejake

Added subscriber: @jackiejake

Added subscriber: @STANN.co

Added subscriber: @STANN.co

Added subscriber: @ElementW

Added subscriber: @ElementW
Member

Added subscriber: @HDMaster84

Added subscriber: @HDMaster84
Member

@Mantissa can this issue be closed since D8413 adds the option to disable the Quality option again, that you mentioned as the cause here?

@Mantissa can this issue be closed since [D8413](https://archive.blender.org/developer/D8413) adds the option to disable the Quality option again, that you mentioned as the cause here?

In #58191#1206126, @HDMaster84 wrote:
@Mantissa can this issue be closed since D8413 adds the option to disable the Quality option again, that you mentioned as the cause here?

Performance issues are currently being tackled in another branch (subdivision work), the quality setting does improve performances but at a small scale only. Better wait for the developer to finish is work before closing this.

> In #58191#1206126, @HDMaster84 wrote: > @Mantissa can this issue be closed since [D8413](https://archive.blender.org/developer/D8413) adds the option to disable the Quality option again, that you mentioned as the cause here? Performance issues are currently being tackled in another branch (subdivision work), the quality setting does improve performances but at a small scale only. Better wait for the developer to finish is work before closing this.
Philipp Oeser removed the
Interest
Modeling
label 2023-02-09 15:29:59 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
46 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#58191
No description provided.