So how do I go about profiling the actual GPU usage (not frame time) of individual components of my game?
The best measure I have of how much of my GPU is my game using is MSI Afterburner (which actually gives me the total system usage, which includes anything I have open right now on the machine), but at the same time it can give me reasonable guesses on what uses a ton of GPU if I watch the graph and toggle stuff on and off.
The issue is that I get at best some vague ‘this seems to be about 8~12% usage’ which is not really all that helpful besides comparing to other components, but that can’t really be used to compare “Component A version 1 with Component A version 2” since the differences are bound to be very minimal. It is also very unreliable as stuff will start using the GPU randomly and I need to measure the bumps many times over to get any semblance of accuracy.
The “CPU Usage/Rendering” seems to be completely useless for that, since it likely only gets me how much the CPU spent dispatching stuff to the GPU, and I can’t figure out what the “GPU Usage” graph even means, since a clear 10% GPU usage shows in the graph as a conversion of Shadow/Depth to Opaque usage and a very minor total reduction on the GPU usage.
One way to test it might be disabling the frame rate limits and let it rip on my GPU and measure the max frame rate I can get, but my 2014 laptop tends to restart if I let the GPU usage go over 80% for longer than 2 minutes. So that’s not an option for me.
TLDR: How to accurately measure individual components of my game for Frame Time and GPU Usage? I want to lower both of those but I am not sure they are perfectly 1-1 equivalents.