Page MenuHome

OpenSubdiv on the CPU is multiple times slower in 2.8x compared to 2.7x
Closed, DuplicatePublic

Description

System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce RTX 2080 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 441.87

Blender Version
Broken: version: 2.83 (sub 2), branch: master, commit date: 2020-02-11 23:45, hash: rB7e99e396a999
Worked: 2.79

Short description of error
In 2.8x, we now rely on OpenSubdiv, which promises to get us higher frame rates for animation. However, the OpenSubdiv implementation in 2.8x is multiple times slower than it was in 2.79, even just on the CPU. Of course porting it to the GPU will be faster, but even on top of that it is slower in apples-to-apples comparisons (both using CPU)

Exact steps for others to reproduce the error

  • Open this file in 2.79. I get 24 fps.

  • Open the same file in 2.8x. I get around 5 fps.

You can disable the Subdivision Surface modifier in 2.8x and get back to full speed - which shows that it indeed is the OpenSubdiv implementation that is slower, not generic animation playback.

Event Timeline

note: If I set viewport subdivisions in that file to 2, 2.8x goes to 2fps (!). 2.79 is still 24 fps then. The higher the subdivision, the higher the performance difference between the two.

Closing this myself after chatting to developers on blender.chat. Apparently, OSD tessellation was always on the GPU in 2.7x, even if OSD was set to CPU. So it's not an apples-to-apples comparison after all.