Hello. I’m making a 3D with MonoGame, and up until now I’ve had the window size set to a nice 640x480, and the FPS when unrestricted has always been above 60 FPS, regardless of how much I had going on at once:
My game has 3D collisions, as well as animations, so there are quite a few calculations being done at once. However, even after I filled the room with much more actors than the game would ever have (shown in snapshot), the framerate didn’t get too seriously affected (still keeping above 60 FPS). When I tried to set my resolution to 800x600 to get a hi-res snapshot, the frame rate dropped tremendously (it could barely reach 50).
What could be causing this? I’ve tried not rendering the animated skeleton and running an empty room and I still got the same slowdown.
In Visual Studio you can profile the CPU instructions or general performance impact of instructions.
However, it seems this is a GPU problem, since performance scales with Resolution. If it were a CPU problem, it might be that you create new renderTargets or stuff like that every frame by accident.
Your PC in general is good, right? Able to run most games, right?
In that case it’s sadly a GPU problem and that is harder to debug.
I woudl recommend using tools like Intel GPA and make a screencap of the current frame and check what part in the pipeline is causing so much overhead.
Yup, it was that. The issue was that when I build and ran my game from Visual Studio, it wasn’t using my NVIDIA graphics card. I just had to go to NVIDIA Control panel and change my “Global Settings” to “High Performance” (they were set to not use my card by default for some reason). So yeah, I think it’s good now, thanks (better than good, its reaching frame-rates of 1189 FPS!).