GameTechDev / PresentMon

Capture and analyze the high-level performance characteristics of graphics applications on Windows.
https://game.intel.com/story/intel-presentmon/
MIT License
1.62k stars 149 forks source link

[suggestion] Add metrics for disk use #175

Open cgtrout opened 1 year ago

cgtrout commented 1 year ago

Starfield is an example of a game that seems to be 'data-bound' where SSD usage spikes and causes an increase of frame-time (along with lower GPU use). Being able to see graphs/metrics for disk use may be useful to have to identify IO bound scenarios.

fdutheil commented 1 year ago

rofl. There is tons of utilities for this. Why ask this feature on a graphic pipeline monitoring tool?

cgtrout commented 1 year ago

"PresentMon traces key performance metrics such as the CPU, GPU, and Display frame durations and latencies; and works across different graphics API such as DirectX, OpenGL, and Vulkan, different hardware configurations, and for both desktop and UWP applications."

This seems to suggest it is used for more than GPU monitoring.

Future games will increasingly be streaming data from SSDs and thus many games will have bottlenecks created by this. Having SSD metrics alongside would be useful in the same way that having CPU metrics alongside the GPU metrics is useful.

cgtrout commented 1 year ago

And part of it is about having a tool that will show it in the same place. It is hard to correlate the data when multiple tools have to be used.

fdutheil commented 1 year ago

This seems to suggest it is used for more than GPU monitoring.

"graphic pipeline monitoring tool" != GPU monitoring. That's why "PM does a bit more than monitor a GPU". GPU in not the only component involved in graphic rendering. Some other hints are visible in the text you quote, like APIs PM focuses on. If you manage to get DirectX, OpenGL, and Vulkan run on your SSD controller, let the world know, I always wanted to see if we can SLI SSDs "RAID 0-style".

More seriously, if you really wanna do correlation and serious monitoring (I/Os, etc.) , get up some time series plateform to centralize your data. You'll be able to have proper visualization tools as a bonus.

cgtrout commented 1 year ago

A quote from Intels site:

Innovative new “GPU Busy” metric shows real time CPU + GPU balance and how the resources in your machine are being utilized, allowing you to better evaluate computing bottlenecks in your games.

This suggests this tool is intended for evaluating bottlenecks in games.

The old idea that a game is either CPU bottlenecked or GPU bottlenecked is [over-simplified] and tools like these need to cover the data side of things to give the full picture since it is undeniable that future next generation games will be data-bound a good portion of the time. Look at the design of the PS5. It was designed completely around streaming data off a fast SSD as quickly as possible.

We need to know why the frame times spike and the old way of monitoring things does not cover the data side of things.

Edit: changed one word (in [] brackets)

JeffersonMontgomery-Intel commented 1 year ago

Let me just say this is a perfectly reasonable request, and we'll consider this for our future roadmap.

Our current focus is on making the CPU and GPU metrics as efficient, correct, and useful as possible but there will always be the next level of information that would help analyze a particular situation. I agree there is value in having a single tool to help collect and visualize everything, but we also have to draw a line somewhere and we're still trying to figure that out.

Please only add constructive comments here.