Tool Validation – Hardware vs Software Capture

In the description above, part of the development process of FCAT VR was the need to validate any metrics it would provide in a software-only environment with both experiential and hardware-based capture data points. Playing a game in the headset and correlating with performance data is a substantial part of making sure FCAT VR works, but more critical to confirmation is the hardware-based video capture of the VR headset input, with appropriate placed indicator overlays, to post-process analyze the video and allow us to clearly see effects of features and performance.

Running both a hardware and a software capture on a VR game at the same time is very possible but requires the use of multiple keyboards or multiple people. Perfectly matching up the data sets requires the use of the FCAT VR Analyzer software’s ability to shift and crop data, giving us the best chance to correlate the collections.

Click to Enlarge

In the above graph, the green line is the hardware-based capture and the green line is the software-based capture. First notice that the green line only shows frame times at either 11ms, 22ms or 33ms (slightly rounding). Because the images going to the headset always have vertical sync enabled, we do not get instantaneous frame rates or frame time that vary from this pattern.  The blue line looks more like a frametime graph we utilize during performance evaluation of hardware on PC Perspective and it is calculated using the data from Oculus and SteamVR APIs. It adds up the relevant render times, including CPU and GPU workloads, and presents that information for each frame.

After doing some slight adjustment to the placement of the data, the two data sets match up. When we see spikes in the hardware captured data we almost always see corresponding spikes in the software captured data. Delivered frame rates of 45 and 90 FPS can be identified when the frame time exceeds some value at or near 11ms. Look at the transition that occurs between 8s-10s on the time line: the frame time is hovering around 16ms and then decreases to 10ms, and when it crosses a threshold (which will be slightly different for every game) you see the hardware captured frametime drop from 22ms (45 FPS) to 11ms (90 FPS). Other than a few spikes during testing, the GTX 1060 running Obduction can maintain a 90 FPS mark through rising frametimes until we hit the 30s mark when it jumps back to 45 FPS.

Click to Enlarge

When we add in the interval plot graphs things get a bit more crowded, but also more interesting. Remember that the interval plots are a representation of the experienced frame rate provided by the game through the platform hardware. It attempts to measure new frames, dropped frames and “synthetic” frames that are generated by the software (of which only Oculus currently performs). Clearly, we see that the game beings at the 45 FPS mark, increases to 90 FPS at 9s, and then drops back to 45 FPS at 30s. While the upper interval plot shows these sections in red, the lower interval plot does so in mostly yellow. Why? The hardware capture (top) is unable to discern the difference between a dropped frame that has been reprojected and a frame that has been synthesized/created by the Oculus run time. Because of that it assumes all are drops. The software capture plot (bottom) has the knowledge of this created frame from the Oculus API and can note the difference between them. There can be (and still are) dropped frames in the software capture results.

Click to Enlarge

The FCAT VR Analyzer tool allows us to zoom in on any section of the data as well for a closer look. In this section covering about 10 seconds, it allows us to see that the software captured data shows a slight step pattern down from 45 FPS to 90 FPS and a dropped frame directly before the transition occurs (which we see happens very consistently in our testing with the Rift). The interval plots ability to express the perceived experience of the VR game at any point is valuable and helps us compare different data and hardware.

Let’s have a look at another data collection, this time from the Radeon RX 480 in Chronos (Rift).

Click to Enlarge

In this graph the red line is the RX 480 in hardware capture while the purple line is the RX 480 in software capture. Again, after some manual alignment in the analyzer tool, you can see the matching of spikes and frame rates. The results also show a clear threshold when the frame rate jumps from 90 FPS to 45 FPS and back. Both data sets, and numerous others we have generated over the last several months with the tool, continue to emphasize the accuracy of reporting that FCAT VR provides for both primary GPU hardware vendors.

Click to Enlarge

In the above screen shot I have added the interval plots for both RX 480 data sets; again they match up as expected with the red/yellow color difference existing because of the ability for the on-system software version to understand when a synthesized frame has been created.

Click to Enlarge

Finally, another zoomed in view to get added detail from the frametime and interval plots.

« PreviousNext »