SteamVR Developer Hardware

SteamVR Developer Hardware

m0rgg Jun 20, 2020 @ 5:28pm
Display HMD vsync in GPUView
Hello,

I´m trying to profile the performance of an application with GPUView, but I can´t find the way to display the vsync events. If I use the default F8, it displays the monitor vsync events (60hz).
In the Event list I can see events from the custom GUID for VR (8c8f13b1-60eb-4b6a-a433-de86104115ac), which if I read correctly include .

How can I see or add that information into the graphs?

Thanks in advance!
< >
Showing 1-3 of 3 comments
adamcboyd Jun 22, 2020 @ 2:53pm 
I don't know but I sure as hell want to see what you do with it.
m0rgg Jun 28, 2020 @ 5:56am 
I am trying to identify the root cause of a performance drop in X-Wing Alliance VR mod when using SteamVR, compared to DirectSBS rendering.

I managed to display the vsync events, but only from the events registered by NVIDIA and captured by ovrlog.cmd (based on XPerf, same as GPUview default log.cmd), not the ones from SteamVR.

Oculus includes some scripts to install the required manifests to parse the generated events and be able to filter them.

Check the "Tutorial: Optimizing a sample application" from Oculus development, especially the latest part.

Once you know the events that you want to display (VR vsync) and can filter them in the Event Viewer of GPUview, you select them and click "Mark" button. They will appear as dark yellow vertical lines.

For NVIDIA events:
https://imgur.com/a/5xMWBew

For OpenVR events, there is no manifest, so they are not easy to filter:
https://imgur.com/gallery/ZUWlYSl

@aaron.leiby or anyone from Valve... is there a manifest for the OpenVR ETW provider available?

Thanks!




Last edited by m0rgg; Jun 28, 2020 @ 6:19am
aaron.leiby  [developer] Jul 6, 2020 @ 6:52pm 
I never made a manifest, no. If someone does make one, I can update the instructions here to point to it.

The reason the vsync events don't show up through the normal view is because the displays are hidden from Windows and presented through hardware vendor specific APIs (i.e. NvApi and LiquidVR).

For AMD, we have to spin up a thread to block on vsync and actually spit out an ETW event, but it's mixed in with all the other SteamVR events since we only use a single GUID.

For Nvidia, what I usually do is scroll down to the DxgKrnl Interrupts group, select all, then also turn on the normal vsync events so you can see which ones don't have matching events.

< >
Showing 1-3 of 3 comments
Per page: 1530 50

Date Posted: Jun 20, 2020 @ 5:28pm
Posts: 3