cancel
Showing results for 
Search instead for 
Did you mean: 

Revive performance and other related musings.

pyroth309
Visionary
So continuing from Rune's comments on page 59 of Index thread about Steam Vs Oculus Vs Revive performance which I'll quote the main post here.


RuneSR2 said:

Seems no-one is testing this rather important
subject - so I sat down today and downloaded Nefertari from both the
Oculus Store and Steam. I use Revive 1.9.2. Note this is kinda a worst
case scenario, Nefertari is 12GB for rooms that might be the equivalent
of 0.1% of Alyx, lol:

 https://youtu.be/cMNC8ZtwCig

These
are my results - standing the exact same place, Epic settings (OTT
performance and pixel density hud used for CV1, FpsVR used for Index):

CV1 ss 2.0 (Oculus Store version) = 22.5 fps 
Index res 100% (Oculus Store version) = 45 fps
Index res 200% (Oculus Store version) = 30 fps
Index res 200% (Steam version) = 45 fps 

It's
really amazing how much better the Index looks and performs using
native Steam drivers. Getting 100% better performance using native Steam
drivers - and using res 200 % - compared to Rift CV1 ss 2.0 was not
exactly what I expected. Also note that Revive res 200% actually worked
better than CV1 ss 2.0 too. 
This kinda puts the awesome performance I'm getting in Alyx into some perspective - but I'd need to test that more thoroughly. 


I decided to do some crude benchmarking to see how it is for WMR these days using my Odyssey+ on my GTX 1080 with an I7 7700 CPU and 16 gigs of Ram. Using Revive Version 2.1.1 and SteamVR Beta branch as well as WMR for Steam beta branch.



I ran Aircar and I disabled motion vectoring and motion smoothing and put all settings
to max on 4 in game. In game SS to 1.0. Steam VR at 200% supersampling. I
left in game AA to 0.2.

First test I got
90 fps entire time on Steam version. Frame times were around 10-11ms
with GPU load going from 85-92%. It looks and plays amazing tbh. 

Oculus
version - I can't seem to disable Motion Vector, stuck at 45 FPS
despite it being off everywhere. GPU load of only 50% and a cpu of 40%
and a GPU frametime of 18-19ms. pretty terrible performance. Rip. I wanted Motion Vector off so I could see exactly how many fps I was producing. Just seeing the 45 could mean I'm producing 46 or 89. Big difference. The game is playable like this but with those frame times, prolly going to get nauseous after awhile.



That
got me wondering if something changed with Revive or if it was just limited to this game or what. So I loaded up Asgard's
Wrath. I went
in with Motion Vector/Motion smoothing all disabled and I actually got
really good performance at 200% supersampling or 2040 x 2552. Holding a steady 80 FPS on the default settings and Motion Vector is off as it should be. GPU frametimes of around 12ms.

I decided to start tinkering and see what I can do to get the most out of this game as I've wanted to play it since it released but I didn't really want to experience it on my CV1 with SDE and the last time I tried with O+ performance wasn't acceptable. Amazingly, I'm pretty impressed.

I switched my O+ to 60hz mode, left motion vector off. Dropped supersampling to 190% or 1988 x 2488 and went to Epic settings in game and this game looks pretty amazing. I'm dipping down to 40 fps in the tavern though with these settings so I further dropped shadows and effects and view distance to High and now I'm holding pretty much a solid 60 fps everywhere which is actually pretty comfortable. No nausea yet and no unpleasantness that is noticeable. I'm actually super excited now to play this game. My GPU frame times are around 12 and my GPU usage is going up to 96-97% lol. Getting every drop of performance out of that 1080. I'm out of time for today to test how it is with Motion Vectoring but I'll follow up with those results.

Anyways this is just a start and I thought I'd share. At some point I will test some other games, especially want to see what I can do with Stormlands over Revive and I'll bump this. I also want to finish getting a better comparison of performance loss of using Revive vs Steam version since my Aircar test was bugged. I own a few games on both so I will install them and test.  Feel free to share any of your own performance results on any headset.
88 REPLIES 88

pyroth309
Visionary
ArchAngel -
Steam Version - 200% SS, 90 FPS. Easily held 90 fps the entire time. GPU loading hovered around 75% mostly with going as low as 50 and as high as 90 in intense firefights. Frame times between 7ms and 10 ms depending on how much the GPU was working. I forgot how great this game looks as well. Or rather maybe I never realized it because I only played it on my CV1 and Index. It looks really really good in O+ and crisp. Some minor aliasing and screen flickering in parts but nothing major. Once you get out of the hangar and out into the open, it really looks fantastic. I don't mind wave shooters and really like this game. Has a solid story.

Oculus Version Through Revive - More of the same pattern. Slightly worse performance. Slightly higher Frame time. I was getting 11-13ms and GPU load sitting around 80% and 90 fps the entire time. Fully playable, feels great and already looks fantastic at 200%. Still a lot of headroom here. Fantastic optimization but I"m not surprised since it's a PSVR port.

pyroth309
Visionary

Robinson The Journey

So I ran into an issue with this one. SteamVR can't super sample it. Fortunately it has a built in pixel density adjustment. I'm not familiar with how to calculate pixel density. In SteamVR with the linear adjustment the resolution is 1440x1804 at 100% and it's 2040 x 2552 at 200%. Do I just multiply the 100% numbers? IE for 1.4 pixel density (1.4)1440 x (1.4)1804 = 2016 x 2525? which would be the closest if that's the case. Perhaps @kojack can enlighten.

In the meantime... this game looks blurry as hell at 1.4 because of the TAA.....but it looks NUTS at 2.0 pixel density in the Odyssey+ which I am assuming would be 2880 x 3608.

Performance on SteamVR - 50-60 FPS at 2.0 PD. Frame times of 18ms lol. GPU about to explode hitting 98% most of the time...but man does it look sick. It's like playing Crysis in VR lol.

Performance on oculus through revive - surprisingly it's no different. Hovering around 60 fps and similar frame times at 2.0 pixel density.

kojack
MVP
MVP

pyroth309 said:

So I ran into an issue with this one. SteamVR can't super sample it. Fortunately it has a built in pixel density adjustment. I'm not familiar with how to calculate pixel density. In SteamVR with the linear adjustment the resolution is 1440x1804 at 100% and it's 2040 x 2552 at 200%. Do I just multiply the 100% numbers? IE for 1.4 pixel density (1.4)1440 x (1.4)1804 = 2016 x 2525? which would be the closest if that's the case. Perhaps @kojack can enlighten.


Let's consider a hypothetical headset which has a native resolution of around 80x80 and a PD1.0 and SteamVR 100% resolution of 100x100.
Oculus PD multiplies each axis. So 100x100 (10000 pixels) at 1.0 becomes 200x200 (40000 pixels) at 2.0.
SteamVR multiplies the pixel count. So 100x100 (10000 pixels) at 100% becomes 141x141 (20000 pixels) at 200%.

So doubling the pixel density doubles the resolution and quadruples the pixel count. Doubling the SteamVR scale doubles the pixel count and multiplies resolution by square root of 2.



Author: Oculus Monitor,  Auto Oculus Touch,  Forum Dark Mode, Phantom Touch Remover,  X-Plane Fixer
Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
Headsets: Wrap 1200VR, DK1, DK2, CV1, Rift-S, GearVR, Go, Quest, Quest 2, Reverb G2

pyroth309
Visionary

kojack said:


pyroth309 said:

So I ran into an issue with this one. SteamVR can't super sample it. Fortunately it has a built in pixel density adjustment. I'm not familiar with how to calculate pixel density. In SteamVR with the linear adjustment the resolution is 1440x1804 at 100% and it's 2040 x 2552 at 200%. Do I just multiply the 100% numbers? IE for 1.4 pixel density (1.4)1440 x (1.4)1804 = 2016 x 2525? which would be the closest if that's the case. Perhaps @kojack can enlighten.


Let's consider a hypothetical headset which has a native resolution of around 80x80 and a PD1.0 and SteamVR 100% resolution of 100x100.
Oculus PD multiplies each axis. So 100x100 (10000 pixels) at 1.0 becomes 200x200 (40000 pixels) at 2.0.
SteamVR multiplies the pixel count. So 100x100 (10000 pixels) at 100% becomes 141x141 (20000 pixels) at 200%.

So doubling the pixel density doubles the resolution and quadruples the pixel count. Doubling the SteamVR scale doubles the pixel count and multiplies resolution by square root of 2.




Thanks for the detailed explanation. That's pretty much what I had figured in my head. So provided that my 100% values are good, I should be pretty close by multiplying each side of the resolution by the desired PD. 

On a related note, to push as many pixels as a CV1 at 2.0 I'd need to run around 326-328% on my O+ in SteamVR to be a similar comparison for ASW to Motion Vector and Motion Smoothing. I may circle around to that when I'm done testing games/current version of Revive.


kojack
MVP
MVP
As you discovered with Robinson, not all games can be changed by the debug tool or steamvr.
The resolution used for pixel density or super sampling is purely optional. In the Oculus SDK there's a function you can call, give it the pixel density and it returns a recommended resolution. It's what the debug tool modifies. But games don't have to call it and can ignore any value they get from it if they do call it. It's the game that decides what resolution to run at, steamvr and oculus have zero control over that, they can just make recommendations.
Most games would be crazy to ignore it though, since it takes into account the actual headset properties and the distortion algorithms.

Another fun little thing, because SteamVR runs on top of the Oculus SDK (for Rifts), the values combine. SteamVR 100% is based on the Oculus PD 1.0 value. But if you use the debug tool to set PD 2.0, then SteamVR 100% is now equal to PD 2.0 resolution and multiplies from that.
So for anybody jumping between the two on a Rift, make sure to reset PD back to 1.0 before messing with SteamVR scaling.
Author: Oculus Monitor,  Auto Oculus Touch,  Forum Dark Mode, Phantom Touch Remover,  X-Plane Fixer
Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
Headsets: Wrap 1200VR, DK1, DK2, CV1, Rift-S, GearVR, Go, Quest, Quest 2, Reverb G2

pyroth309
Visionary

kojack said:


Another fun little thing, because SteamVR runs on top of the Oculus SDK (for Rifts), the values combine. SteamVR 100% is based on the Oculus PD 1.0 value. But if you use the debug tool to set PD 2.0, then SteamVR 100% is now equal to PD 2.0 resolution and multiplies from that.
So for anybody jumping between the two on a Rift, make sure to reset PD back to 1.0 before messing with SteamVR scaling.


Been there, Done that quite a few times on my CV1 lol.

Yea Robinson actually isn't the first time I encountered that but it's the first time I needed to know how to compare PD to SteamVR lol. I've had this happen in a few unreal engine VR games. In the past, I just modified the PD until my GPU was loaded and went on my way. It's pretty easy to tell with a tool like FPSVR. If your frame times and gpu load are low,supersampling probably isn't happening. Definitely isn't if they aren't changing after you change values.

pyroth309
Visionary

Steam version - I played around in the lobby and then did the First mission. All settings to epic including AA. Same SS 200%, got 90 fps the whole time. Frame times of mostly 9ms sometimes 10. GPU loading around 85-90% so may drop under 90 in the later/busier stages where things get crazy. There's some bad aliasing in the lobby and I was getting some really bad frame time spikes of 20ms. I think it's maybe network lag from people joining the lobby. Surprisingly though, very little aliasing in the actual mission. This game is an oldie but still looks good. They've added some things since I played it. Cool new intro and an Archer and such.

I did notice that this game doesn't allow you to change supersampling at all from in game with SteamVR but the internal PD works. In all of these tests I always go in at 200% and test that first for consistency and then change the SS to see if it affects visuals at all. Had to reload this game 4 times (2 on steam 2 on rift) to tinker and it's quite a slow loading game lol.

Oculus Version - Same trend. Mostly around 10ms frame time so a little bit worse than the Steam Version. Otherwise, same performance.

pyroth309
Visionary
I think I will stop here. It's clear that for the
most part revive only runs slightly worse than Steam performance wise
mostly with the 1-4ms added to frame times. I will move on to seeing
what I can do with Oculus Exclusives with Revive.

I have to say my impressions after doing this is that Revive performance is better than ever these days. I don't know if that's from the OpenXR work or what but I like it. It's inspiring me to jump into my backlog.

Zenbane
MVP
MVP
This is great info! Really awesome that you took the time to put this together, buddy!
❤️

RuneSR2
Grand Champion

pyroth309 said:

Seeking Dawn -



Steam VR Version - I went through the beginning tutorial part in both versions, went through the bridge and then got out into the first stage. Killed a few mobs and repeated it on Oculus. Went in with 200% SS/90hz all settings on max with Anti Aliasing on. In Game pixel density to 1.0 and I was getting 45-60 fps, GPU loading of 96-98% CPU around 50 and frame times of 18-21ms. Unfortunately, there's more pixel crawling going on in this game than Elite dangerous. I tried turning anti-aliasing on and off no difference. I went up to 250% SS and again no real change in the flicker. I went down to 150% and flickering was reduced...but the blur was unbearable. Not sure what would need to be done to make this game enjoyable graphically.

Oculus version through Revive - Pretty much the same performance wise. I did see a flat 40fps which I didn't on the steam version so probably slightly worse. Frame times were again a few ms higher with a peak of 24ms. Same problems with flickering.

Honestly it's a shame that a game of this graphical quality has these issues. This could be one of the best VR games around if the devs were better at optimizing.



This game is problematic, or at leadt has been. My OTT global ss value is always multiplied with the in-game value. The in-game value only goes to 1.2 or 1.4 I think. I'm using global ss 2.0 and in-game 0.8 to get 1.6. It may be very important to constantly use the OTT pixel density hud to be sure which ss you're getting... Dunno if this goes for the Steam version too...

Oculus Rift CV1, Valve Index & PSVR2, Asus Strix OC RTX™ 3090, i9-10900K (5.3Ghz), 32GB 3200MHz, 16TB SSD
"Ask not what VR can do for you, but what you can do for VR"