wasteful interface

So I’ve been using a rather old laptop for animation lately, and I have to playback at roughly 3fps for a 20k rigged model. So I looked for ways to speed up… and strangely found only one thing to do: close parts of the interface.
Closing the graph editor and timeline both tremendously helped in the video playback. by closing them I reached 7-8fps.
Not trusting that puny intel atom processor I changed to my desktop station. By default, animation playback in the animation-screen-layout was an incredible 10-12fps. By closing down everything but the 3D viewport I was able to reach 22-24fps.

Now, I know that anything takes resources, especially stuff that’s calculated each frame, like the position of the current frame pointer, but isn’t this a bit much. Or is this an internal OS conflict? I’m running Windows 7 on both machines.

Greets,
kiriri

seems like they could fix this by “disabling the other view-port panels” while the animation is running.

something like (“while render animation”) If “timeline” and “graph editor” are visible
(during animation only recognize viewport window) or something like that.

(but they should figure out why its doing this…)

seems like they could fix this by “disabling the other view-port panels” while the animation is running.
In the timeline window in the Playback menu turn off Animation Editors

yes that works, but I still wonder why it should ever take that much CPU to draw a line once every frame.

Intel Atom, Ubuntu, 25FPS, limited to 25FPS.

20k rigged model is a very amateurish thing

@abc123
not if you’re a gameartist… I just couldn’t get in the required silouhette detail with a subD
@juancarlospaco
wow while it is a fact that blender runs faster on linux, I didn’t think even viewport performance would differ so much…

Have you also tried disabling the ‘pretty’ things in the program options? Text antialiasing, button shading, etc? VBO’s (Vertex Buffer Objects) might help in this case. Might not, I don’t really use that option.

On that note, has anyone compiled a non OS specific list yet of everything that will help a stock version of Blender run faster?

Have you tried replacing your rig’s mesh with proxy objects? That should give you noticeable improvement in performance without requiring you to do weird things with your interface.

One thing i remember that eat a lot of performance while playback animation is the outliner (mostly for scenes with many objects), make sure you don’t have the outliner in the layout you are using for playback.

I take it you turned off any sub-d modifiers?

This must be a problem specific to your setup, I certainly haven’t encountered such bad performance from the UI alone. (I use Windows)
Please provide an example blend file and a step-by-step on exactly how to reproduce this behaviour. Also, provide detailed information on the hardware/software setup(s) you are using. It’s possible that this is worth a bug report.
Also there are four different window redraw methods under System->OpenGL, one of which might work better for you. Lastly, try disabling Windows Aero (if you have it active).

As ffar as I know VBO only works with massive amounts of instances… whatever it is, it doesn’t render a noticable difference in fps. Nor does any other thing like AA or text AA.

It does improve my performance when I’ve got the graph-editor (or other such windows) open and active, but it does not improve the fps if all I’ve got opened up is the 3D view. (at least not noticably) I’ll post the numbers at the bottom of this post…

+1 for individual problems. I do agree that the outliner slows down the playback, but it’s only a little compared to what the graph editor does to me :S

I did, although that’s not the issue, my current ratio is 3:1 Just-the-3D-view:default-animation-layout, no matter what. More about that at the bottom of this post.

The default, automatic, works best for me on both machines. And I already disabled Aero from the start, if you ask me, it’s the most horrible thing windows ever did and it messed with a lot of programs before…

Now, created a new scene from factory settings, shift + F1 'ed just a model and a rig in, and did some tests. But first of all, here’s the example file. If you run ,like, an 8 core or something, and actually reach 120fps, just turn up the subD, the ratio should remain roughly the same.
By default, my desktop machine runs the animation (which I skewed up along the way, sorry for that) at 60fps.
Switching to the animation layout it runs the animation at 15fps
Disabling the graph editor and action editor it runs at roughly 40fps
with subD on it’s 8fps vs 6fps vs 7fps
and without the mesh it’s 60 in all

I’m using blender 2.62 trunk. My processor is an intel duo 3.4ghz (don’t laugh, I know it’s outdated!). My graphics card is a 560ti. I got 16gb of ddr3.

And I already disabled Aero from the start, if you ask me, it’s the most horrible thing windows ever did and it messed with a lot of programs before…
You may actually see better performance when using Aero.

sorry, that only slowed it down by an average of .5 fps ( I think, it’s hard to see since the fps ain’t steady)

Looks like the drawing of the curves is fairly expensive, and you have a crapload of them. I’ve run it through gDEBugger: Drawing a single curve takes about 500 calls to deprecated OpenGL functions such as glVertex2f. In your example this adds up to about 200.000 calls per frame. (out of a total of 400.000)
So it’s not technically a bug but there’s certainly room for improvement here…

Did some testing with the official build:

(animation screen layout)

  • everything selected (including dopesheet, curves and objects in 3d view): 13.20fps
  • everything selected (including dopesheet, curves and objects in 3d view) with high quality drawing off in curves (view menu): 16 fps
  • everything deselected: 48fps

Now with playback turned off in animation editors:

  • all selected: 71fps
  • none selected: 76fps
    without the timeline showing: 100fps, even with all objects and the rig selected.

Right, next time I am animating my characters I’ll make sure to turn off the timeline and playback for the animation editors. I can make do with the dopesheet and curves as it is!

However, it is ridiculous that the timeline view causes an impact of 25% playback speed loss on the animation playback. I can understand with either the dopesheet or curve editor open (since a lot of properties are involved), but the timeline shouldn’t have such a detrimental impact - it’s plain silly, and reeks of inefficient programming.

Sigh… more deprecated opengl functions called? And here I was thinking we just had to deal with gl_select :wink:

I feel it’s about time Ton and the devs did a round-table discussion to sift through the code to remove these calls to any deprecated opengl function, and replace those with more efficient (modern?) code. It is starting to affect Blender basic performance in a variety of areas (viewport performance, modeling, character animation, selection, complex scene management, and so on).

Of course, I am not a opengl/C++ developer myself, and as far as I know working around such deprecated opengl functions can be a pita.

without the timeline showing: 100fps, even with all objects and the rig selected.
Are you sure you mean the timeline, not the F-Curve editor? Disabling the timeline makes no difference.

yes that works, but I still wonder why it should ever take that much CPU to draw a line once every frame.
It doesn’t draw one line, it draws all the lines

Sigh… more deprecated opengl functions called? And here I was thinking we just had to deal with gl_select :wink:
The calls themselves aren’t necessarily the problem (200k isn’t that much), but they are probably called from even more expensive functions. I was just illustrating how much is going on. Most of blender is deprecated OpenGL, that doesn’t mean it needs to be a problem.

In my case it does - Tested again, and frame rate increases about 20 frames when I switch from, let’s say the timeline to the image editor. Might be an ATI/AMD thing.