flightlessmango / MangoHud

A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. Discord: https://discordapp.com/invite/Gj5YmBb
MIT License
6.28k stars 272 forks source link

[Feature Request] Provide GPU_busy related metrics for benchmarking #1267

Closed november781 closed 5 months ago

november781 commented 5 months ago

Fairly recently Intel added GPU_busy to presentmon which is a useful metric for finding bottlenecks in system performance and scoping in on possible hardware issues. From what I understand from looking into this metric, its mostly counting the time between the graphics engine present call and the GPU displaying the frame. Specifically Nvidia Frameview calls this MsRenderPresentLatency

I could be wrong in how GPU_busy is calculated since I haven't really had the time to dig into presentmon to find out just yet but that would be another very useful metric that the benchmarking applications on the windows side are unlikely to bring to linux.

For anyone interested in looking into GPU_busy, presentmon's source is available here

flightlessmango commented 5 months ago

You mean specifically for intel? this is already implemented

november781 commented 5 months ago

No, I'm meaning for other GPUs, frankly I didn't know it was implemented for intel already. I'm unsure if its even possible tho (again I haven't had the time to look at this too much).

flightlessmango commented 5 months ago

This is just gpu utilization which we've always tracked

november781 commented 5 months ago

This is just gpu utilization which we've always tracked

then maybe I'm misunderstanding something here and need to re-word and re-think this.

but on windows, Nvidia logs the time between engine present call and the GPU finishing work on that frame which is mostly what I'm interested in. Frameview offers this functionality for intel, Nvidia, and AMD GPUs.

november781 commented 5 months ago

I'm gonna close this until I can find a better way to work it and explain exactly what it is I'm looking for

rKsanu2MMYvypWePtQWM commented 2 weeks ago

I'm gonna close this until I can find a better way to work it and explain exactly what it is I'm looking for

GPU_busy shows how long the GPU was working for the current frame in milliseconds. afterwards you can compare this number with the overall frametime to see if GPU was working hard or was it waiting for CPU.