Page MenuHome

Graph editor extrapolation make cyclic very slow
Closed, ResolvedPublic

Description

System Information
Operating system: Windows-10-10.0.17134 64 Bits
Graphics card: GeForce GTX 970M/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 388.43

Blender Version
Broken: version: 2.80 (sub 57), branch: master, commit date: 2019-04-14 19:18, hash: rB860a9f979d60
Worked: (optional)

Short description of error
In the Graph Editor, when clicking on Channel - Extrapolation - Make Cyclic, the frame rate drops a lot.

Exact steps for others to reproduce the error

In pose mode, select all bones, go into the graph editor in order to make all the animation cycle. Select all curves, go to Channel - Extrapolation Mode - Make Cyclic.
Everything is cyclic as wanted, except that the frame rate is divided by 5 on my computer. It makes it very impracticle to edit the curves and see the result in real time.
What makes me think this is a bug is the fact that one simple fix I found is to simply close the graph editor window, or change it to another panel. Then the frame rate is back to normal and the animation cycles just fine.

Details

Type
Bug

Event Timeline

Sebastian Parborg (zeddb) triaged this task as Confirmed, Medium priority.

I'm guessing that it is the curve drawing that it making this very slow. As pointed out, the playback is fast when the curve editor is not shown.

@Clément Foucault (fclem) Is this something we could optimize?

Looks like this is something we can optimize:

The allocation was introduced in rBfe00175c35.

@Jacques Lucke (JacquesLucke) I mesured the same thing. Is this something you want to tackle? I'm pretty sure using a GHash here is overkill. Also we could only allocate once for all points.

Will try to refactor that a bit to avoid the allocation for every evaluation. :)

rB81ce3801b improves the situation quite a bit. However, drawing the graph editor is still the bottleneck in that scene.
Unfortunately, that optimization is outside of the scope of the bug tracker, so I'm closing this.