AMD & NVIDIA GPU VR Performance: Trickster VR

Arm yourself with a bow and arrows, a magic sword that flies, or if you prefer, a handful of throwing darts. Then get ready to take on the procedurally generated fantasy world full of cartoonish Orcs, and more Orcs, and some other Orcs. Headshots count as well as chaining your shots so aim is critical. Did I mention the Orcs?

continued...

How We Got Our Trickster VR Results

Our regular readers know that we are not "benchmark" guys and like to validate PC gaming hardware by actually using it for gaming. I know, call us crazy...and some folks still do. Today’s results reflect exactly that, real world gameplay.

In its current iteration, Trickster VR is played on a small contained island...in the sky and has waves of Orcs that are coming to break into the portal in the center of the map. The Orcs will also come to kill you as well. Your goal is to kill all the Orcs and save the portal, which I am not sure if that is actually possible. Anyway.

There are no Image Quality settings in this VR game to tinker with.

For our data collection, we simply played through the first 7 waves of the game. Each runthrough lasts approximately 4.5 to 5.5 minutes.

Article Image

Every Graph is the "Same"

Given how dynamic Trickster VR is, as it is procedurally generated, I expected it to be hard to pull off comparable gaming runthroughs. That turned out not to be the case. My first three test runthroughs recorded average GPU Render Times within 10 thousandths of a millisecond of each other! And it turns out that the game is not as intensive as I had thought it was going to be. The game has been developed to run very efficiently on a wide variety of hardware, although playing the game it would seem to take a lot more GPU horsepower than it does.

Talking to the game's developer, Daniel (@ChiselyDev), we asked him if he was using any special AMD LiquidVR or NVIDIA VRWorks techniques to have his game more efficiently. He had this to say:

And to answer your first question - I'm not using any of those. I'm developing Trickster on a single 770gtx to make sure it runs smoothly and offers consistent experience on any hardware that supports VR.

Once you see our GPU Render Time graphs, you will see that these results are very flat compared to what we have seen in our previous VR reviews. Given that game ran so smoothly, it certainly made it easier for us to get solid comparable results.


Every VR Framerate is the Same, 45 or 90, unless You Count Reprojection

You have likely heard this already. VR headsets, and I will be talking particularly about Vive technology here, although Rift does the "same thing" when looking at the big picture, all run at 90 frames per second. Your first thought is probably, "Why?" This simple answer is that if they do not run at 90fps, you will get motion sickness, and blow chunks. Seriously. But why would you not just run at 89fps instead of dropping to 45fps? Good question. The answer is tearing. Tearing frames is totally unacceptable in a VR game, whereas we may put up with it without consequence on the desktop. So there are some "V-sync" things at work with these new head-mounted displays that leaves us with 90fps, or 45fps if the hardware can’t keep up, and 45fps leaves you with lunch on your shoes, so something had to be done.

Both Vive and Rift have technologies to combat the dreaded 45fps. (I have been told by several people that if you get drunk before you play, that 45fps is a lot more acceptable to users, but I have not tried this. Please send me mail.) Rift’s is Timewarp, and Vive’s is Reprojection. For the use of this article we are going to call these technologies the "same," however these are not. But they do solve the same common problem in much the same manner.

When your Vive is not able to keep a 90fps pace while you are playing a VR game, Reprojection technology kicks in and tells your hardware to render at 45fps and let Steam VR tech fill in every other frame. Pretty slick eh? So in effect, your eyes are still seeing 90fps and therefore you should not vomit on your shoes. The caveat is that Reprojection technologies do have some drawbacks as artifacting can be present in your game. I think Reprojection for the Vive is likely to be a game to game thing. Remember how I said "Reprojection technologies" just above there? That is because there are several ways of doing Reprojection, so your mileage may vary from game to game. Today we are talking about Raw Data and overall, I could tell the game was a lot snappier when my Vive was not in Reprojection, but honestly, I could play for long periods of time with it in Reprojection and it did not bother me. So 90fps is better than Reprojection, and Reprojection is better than 45fps...even though Reprojection is running at 45fps as far as your GPU is concerned but the Vive hardware makes it look as much like 90fps as it can.

In our graphing, and I will remind you of this as we move along, when you see the red line at 1, that mean NO Reprojection is happening. When you see the red line at 2, that means that the system is using Reprojection. You could say Reprojection is "bad," but it is certainly not as bad as 45fps. Trust me. We will call Reprojection "not ideal" instead of give it a bad rap as it is surely there to help us out.

Dropped Frames

On our graphs you will also see a yellow line, this tells you how many dropped frames there were. There will be some argument about how this is shown, because when I show you 200 dropped frame across an X axis that has 50,000 data points on it, we simply cannot draw the lines small enough to actually represent how small of an event this really is. So on some graphs, you will see a lot of yellow and think, "holy crap, this GPU was sucking bad" when it comes to rendering VR frames. Well, the way it is graphed can make it look much, much, much worse than it is. This is why we give you the actual number of frames dropped along with how many actual frames that were drawn. And of course we will discuss that as well.

The Meat, the Taters, the Milliseconds

We have saved the best for last and that is GPU Render Time shown in milliseconds. Since we know that our hardware has to render frames at either 45fps, but hopefully 90fps, how do we really measure what the hell is going on with our GPU. We have examined this from a few ways, and the VR purist will probably tell you that the VR experience must not allow the system to go into Reprojection mode with the Vive, or Timewarp with the Rift. And that would probably be correct, but the fact of the matter is that is simply not going to happen at this early stage in the VR game, if ever. The person a step down from that would probably tell you that Reprojection, with minimal dropped frames is acceptable from an experience point of view. I am probably in this group right now. The next person down the stack would likely tell you, "Turn off Reprojection/Timewarp and ride it out like nature intended." That person is likely not the one you want to listen to in my experience. Seriously, different folks react to these technologies differently, so there is not telling what you might find acceptable gameplay. The only way to do that is to figure it out for yourself.

At 90 frames per second your GPU must render a new frame every 11.1 milliseconds. You will see our graphing has hash lines at 5.55ms, 11.1ms, up to 22.2ms. If the GPU takes more than 11.1ms for a couple of concurrent frames, it turns on Reprojection like we talked about above. If you do not have Reprojection turned on, it will cut your display rendering to 45Hz, since frame tearing is totally unacceptable (I have never seen tearing on a VR headset, but I just guess it is horrible.), then you puke.

But really 11.1ms is not the real number either. Once the Vive hardware and Steam VR software see that you are getting close to busting 90% of 11.1ms, the software starts having the hardware make changes. My explanations here have already gotten too long, but there are 1000s of pages of documentation that you can wade through to figure out for yourself online that will very likely put a lot of things about VR into perspective. I would highly suggest watching this lecture given by Alex Vlachos of Valve on Advanced VR Rendering Performance as it will give you a lot of insight as to what we have discussed here if you need more information.

So to sum it up.....we want 90 frames per second always. To get 90 frames per second always, our GPU must be able to render that frame in less than 11.1 milliseconds. If our GPU does not render a frame in less than 11.1 milliseconds, it is going to turn on Reprojection in the Vive, and Timewarp in the Rift. If the GPU is still having trouble keeping up, it is going to start dropping a lot of frames. And Reprojection with dropped frames is BAD.