Search Unity

GPU Debugging of an Old Windows Laptop

Discussion in 'General Graphics' started by djfrail, May 8, 2021.

  1. djfrail

    djfrail

    Joined:
    Jan 16, 2014
    Posts:
    124
    So I've picked this old Dell Windows laptop as my lowest specs for running the 2D game I'm working on. I can run it on the laptop and the Unity Profiler/Frame Debugger can see it over the network, and it says I'm getting around 40FPS 1200x800 fullscreen, I'd like to improve that.

    The Profiler says that 21ms is being spent in Gfx.WaitForPresent, which I believe just means that the laptop's GPU is what's taking so long on a frame. So then I try to look at the "GPU Usage" Profiler and that says "GPU Profiling is not supported by the graphics driver," which I guess is not surprising since it's an old laptop, but I'm left wondering what my options are for figuring out what the GPU is spending so much time on.

    Some stats:
    - The laptop is WindowsXP, DirectX9.0c, Intel Core2 Duo @1.83GHZ, Mobile Intel 865 Express Chipset.
    - I don't seem to have a CPU problem, there's only 24 draw calls and 8300 vertices.
    - Scripts take around 3ms to execute.
    - I tested an empty scene on the laptop (except for FPS counter on a small textmesh) and it gets 125FPS at 1200x800 fullscreen. Does that sound slow or about right?
    - For a test in the game, I deactivated everything (not being rendered) except for one big sprite that covers most of the screen. When I then deactivate that, I get about a 20FPS increase. The sprite is using a simple solid/opaque sprite shader. What's going on exactly that drawing this sprite costs so much GPU time? Is that really just how slow that laptop GPU is?
    - I don't have any lights or shadows in the scene.​

    So I'm looking for advice on how one would go about figuring out the slowdown areas, or just some general advice/knowledge/thoughts about graphics debugging an old pc.

    I set up some hotkeys to turn different groups of sprites on/off and can see the FPS changes, so that's one technique I'm using to see who's causing trouble. Any other ideas?

    Thanks!