FEATURE PresentMon

Martin

HWiNFO Author
Staff member
HWiNFO64 starting with version 7.63 will integrate PresentMon.
PresentMon is a component that captures and analyzes various events related to graphics presentation. It's primary role is to retrieve metrics like Framerate (FPS), Frame Time (ms) and GPU Busy.

Some notes:
  • This feature is currently in Beta stage, so some issues or adjusting is expected.
  • PresentMon is fully integrated into HWiNFO64 so there are no additional prerequisites required (e.g. no need to install Intel PresentMon or its SDK).
    Statistics data are shown under a new sensor.
  • Integration into HWiNFO32 is currently not planned due to certain restrictions in legacy 32-bit applications
  • PresentMon constantly captures and analyzes a large amount of data for each process (and its swap chain) that performs graphics output via interfaces like D3D9 or DXGI.
  • Since each process/swap chain has its own metrics, the application needs to focus only on the "main" one. HWiNFO by default reports metrics belonging to the process with highest frame rate.
    It's possible to specify a specific process to be monitored using the "-pm_proc_name=<process_name>" command-line argument.
  • The evaluation of frame data requires keeping statistics for last-n frames and perform constant calculations (averaging, etc.), which can have some impact on performance.
    To minimize the performance and memory footprint impact of frame evaluation, HWiNFO currently keeps a fixed amount of last n-frames.
  • The metrics reported are calculated as an average of last-n statistics data over a certain time-window. A too small window means less math but also less accuracy due to less samples being averaged, a too large window might not properly reflect variable rates.
  • The evaluation time window is currently fixed to a reasonable value. It is planned to allow users to use a custom time window, but matching it with the main polling sensors period might be undesirable.
  • This feature can be disabled via main settings.
 
Last edited:
Martin,

It looks like this feature could be CPU heavy, I wonder if it needs to be enabled by default at all.
 
Hi Martin,

I love that you included GPU busy (presentmon) in sensors status tab.
But I have idea, can you also add GPU busy vs Frame time in %, not everyone is good in counting ms.
Than easy logic would be less than 90% you are probably limited by CPU/Mem ... and GPU is waiting.
Also kudos for reporting issue to intel ;)
 
Can you update hwinfo64 to support the latest presentmon data? (CPU Wait, CPU Busy, etc?)

They are very useful to have.
 
Would it be possible to link PresetMon to the OSD attached process? I just spent 20 minutes trying to figure out why the OSD was showing 75fps when the game it was rendered on was crawling, turns out it had picked up my time tracking app instead...

At least putting the PID/process name somewhere so it's clear that it may be different to what you expect would be extremely helpful.
 
Can you update hwinfo64 to support the latest presentmon data? (CPU Wait, CPU Busy, etc?)

They are very useful to have.
Would it be possible to link PresetMon to the OSD attached process? I just spent 20 minutes trying to figure out why the OSD was showing 75fps when the game it was rendered on was crawling, turns out it had picked up my time tracking app instead...

At least putting the PID/process name somewhere so it's clear that it may be different to what you expect would be extremely helpful.

Both requests will be added in the next build:

1718999067691.png
 
Last edited:
Dear Martin,

My PresentMon reading for the average Frame Time is less than the PresentMon reading for the average CPU Busy (351.77ms vs 592.69ms using the PresentMon sensor listings on the HWiNFO64 Sensors Status page). I'm confused: how can the processor be busy calculating a frame for a longer time than it takes to create the frame itself?

I am running HWiNFO64 v8.06-5500 and PresentMon v2.1.0.

What am I doing (or thinking) wrong?

Thanks. And my apologies if I have the wrong thread...

Dave, Newbie
 
Thanks for the fast response! After looking directly at PresentMon, I think it was my perception that was at fault. I didn't realize that the PresentMon readings were task-specific. I thought PresentMon measured the overall usage of the CPU or GPU. I unknowingly had it measuring a task that called for little, if any, graphics support; this may have caused the "CPU busy" measure to inaccurately define the span of time for generating a "frame". (?) Anyway, the problem seems not to be HWiNFO's. Sorry for using your time and thanks again for the quick support.

Dave
 
Back
Top