How to find the cause of framedrops

Started by
16 comments, last by Paulpetk123 8 years, 1 month ago

Use gpuview, if your frame times are typically 5-6ms then the cause of dropped frames isn't going to show up nicely in a playback tool.

Advertisement

One possible cause of stalls is that drivers tend to upload textures (and other resources like shaders) on first use.

This can cause a noticeable stall if a large number of things get used for the first time on one frame.

From: https://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-1/

Incidentally, this is also the reason why you’ll often see a delay the first time you use a new shader or resource; a lot of the creation/compilation work is deferred by the driver and only executed when it’s actually necessary (you wouldn’t believe how much unused crap some apps create!). Graphics programmers know the other side of the story – if you want to make sure something is actually created (as opposed to just having memory reserved), you need to issue a dummy draw call that uses it to “warm it up”. Ugly and annoying, but this has been the case since I first started using 3D hardware in 1999 – meaning, it’s pretty much a fact of life by this point, so get used to it. :)

do you experience any of the framedrops if nothing changes? (I mean, if you draw exactly the same every frame)

Just tried this and I do see occasional framedrops when I do this, but very rare and not in the kind of pattern I see during normal gameplay.

have you tried to run another application (some tutorial) to check whether it happens just in your game? Maybe it's some anti-virus or some power saving feature or just some random application ...

might want to check further into the types of stalls mentioned by Adam_42. they're definitely a possible culprit.

maybe even try warm up draw calls. doesn't sound like you even have to present(), just blit every texture once first.

i get slowdowns when i startup caveman and skyrim. in the case of caveman, i assume its from realtime terrain chunk and collision map generation as it first fills the terrain chunk and collision map caches. in skyrim, i assume its still loading assets. but in both cases part of it might be just using a bunch of textures for the first time all at once when you first render the scene.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

Hi Oogst!

Learn to use GPUView (also check this out). It's scary at first, but it's an invaluable tool at discovering stutters like the one you're facing.

if you first start the game, and immediately look around in a 360, and its slow at first, i'd almost bet a dollar its textures - given that you're not paging assets.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

Have you compiled release version, without dx debug runtime libraries linked, debugging disabled, and possibly code optimization enabled?

Without code optimization, you can sometimes face ridiculous cache breaks etc.

Do that, and you can also start windows in safe mode, start your release version, with possibly dx redistributable drivers deployed up again.

Sorry. I wrote it in wrong topic.

This topic is closed to new replies.

Advertisement