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.66k stars 154 forks source link

Selecting adapter NVIDIA GeForce GTX 970, overlay only reports "basic" telemetry (dual dGPU desktop) #256

Closed tim-rex closed 2 months ago

tim-rex commented 4 months ago

I have a dual GPU desktop. I can capture just fine when I explicitly select the Radeon RX 580 Series device, for any set of metrics (regardless of which GPU is being targeted by the application)

If I switch to capture from the NVIDIA GeForce GTX 970 it appears I can only capture the "basic" preset. Switching to any other capture profile at runtime has no effect (basic capture continues to be rendered in the overlay).

If I attempt to restart a capture in any mode other than "basic", no overlay is presented until I revert to "basic" No change between windowed mode or overlay mode

However, a capture CSV report seems to suggest it is capturing, it's just the overlay that is not presented pmcap-DX12_fullscreen_portrait_repro.exe-240621-094923.csv pmcap-DX12_fullscreen_portrait_repro.exe-240621-094923-stats.csv

Side question: Is it expected that I should be able to capture using the AMD device, for an application targeting the nVidia device? And should such metrics be considered reliable? (this seems to work, regardless of which device is considered the 'primary' desktop device)

DxDiag report attached if at all helpful DxDiag.txt

planetchili commented 3 months ago

Hi, thanks for your feedback. Could we get a few points of clarification?

You mention when you switch "from the NVIDIA GeForce GTX 970" (to?), you can only capture the basic preset? You also mention "a capture CSV report seems to suggest it is capturing".

Just to clarify, is the issue relating to "Capture" (i.e. generating the CSV file), or related to the realtime overlay?

tim-rex commented 3 months ago

You mention when you switch "from the NVIDIA GeForce GTX 970" (to?), you can only capture the basic preset?

Apologies for not being clear. I simply meant, "when capturing the NVIDIA GeForce GTX 970" it will only capture the basic preset. Changing to other presets (or custom) has no effect

You also mention "a capture CSV report seems to suggest it is capturing". Just to clarify, is the issue relating to "Capture" (i.e. generating the CSV file), or related to the realtime overlay?

The issue is related only to the realtime overlay. The attached CSV report confirms all stats are being measured

planetchili commented 3 months ago

Thank you for the clarification. The Basic preset has 1 graph widget displaying Frame Time, whereas the other presets each have a graph displaying FPS metrics as their 1st graph widget. Can you confirm that the graph is only displaying Frame Time no matter what preset is being selected?

tim-rex commented 2 months ago

Apologies for the delay

I can confirm, the the basic present graph widget displays without issue. Other presets will continue to only display the basic preset when the nVidia GPU adapter is selected

See attached demonstration presentmon_overlay_nvidia

planetchili commented 2 months ago

Thank you for your continued help! We can reproduce the issue reliably now and we have a good idea about the root cause. We will have a fix for this in an upcoming release, either 2.1.1 due within a week or so, or if it doesn't make it into that release, the one after (2.1.2 or 2.2).