Performance monitor shows large delays in "Draw Touch UI"

So, my scene is only rendering at about 12fps (if it’s not fullscreen and i just look at it in the render TOP’s viewer). If i make it borderless, it runs at 10fps (I’d have expected it to run faster). If I examine the performance monitor,each frame takes about 100ms to render. This makes sense, for about 10fps. However, it takes around 84ms to “Draw Touch UI.” The remaining 16 ms is spent rendering. If this is true I should have no problem achieving close to 60fps when it goes fullscreen, but my performance actually degrades.

I’ve attached a screenshot. You can see to the right in the render the output of the perform CHOP (it reads about 12 fps).

Can you email me your file so I can take a look?

Sure. I sent it to you.
Thanks,
Michael

Hey, the short answer is that the models have too many vertices. I’ll make a bigger writeup tomorrow.

You can check out: derivative.ca/wiki/index.php?title=Optimize

To get some tips on how to track down why things are slow.

A large Draw Touch UI entry in the performance monitor often means the GPU is overworked, and its stalling playback. The fact that it’s stalling playback in the Draw Touch UI mostly arbitrary, you can often see this large slowdown jump around the performance monitor if you have a lot of TOPs cooking.

To determine that the slowdown was the vertex count I first turned down the resolution of the Render TOP. If the speed increased then it meant that you were hitting a pixel shader bottleneck, since it didn’t it means the slowdown was elsewhere. (Also note that a 1920x1080 32x Antialias buffer takes up 256 megs of GPU RAM, so I don’t think you want to have those settings quite so high. I dont even know if your card supports 32x antialiasing, so you may not be getting the results you think you are, stick with 16x max if you can).

So I turned down the Render TOP to 64x64 with no antialias, and the speed remained the same. Next I turned off the render flag for 13 of the 14 characters, the speed increased. This could mean a lot of things (like it could indicate a pixel shader bottleneck, since we are drawing less pixels now). However we’ve already ruled that out, so it means it’s tied to the geometry. Next I reduced the vertex count of the geometry and the speed increased.

If you triangle strip the geometry (using the Tri Strip SOP) the vertex count goes down by 1/2, and the speed doubles. This shows the direct relationship between the vertex count and the speed in this case (its rare for vertex count to be a limiting factor actually).