New to the forums? Click here to read the "How To" Guide.

Developer? Click here to go to the Developer Forums.

Oculus Link Resolution with v12

volgaksoyvolgaksoy Posts: 74 Oculus Staff
With the release of v12 for the Oculus PC runtime, we now allow overriding the default Oculus Link Resolution using the Oculus Debug Tool (ODT) which is located under the .\Support\oculus-diagnostics\ folder of the Oculus PC runtime install path (e.g. c:\program Files\Oculus). Keep in mind, this is not the final solution for performance tuning of Oculus Link. It is recommended that only advanced users with powerful GPUs experiment with the ODT settings as changing them without a good understanding could potentially lead to a poor VR experience.

In ODT, find the "Oculus Link" section with "Encode Resolution Width" and "Distortion Curvature". Also note the "Pixels Per Display Pixel Override" (short "Pixel Density") value up top.
  • For most fields in ODT, 0 or "Default" means "do not override the value".
  • Changes to the "Oculus Link" values require an Oculus Server restart to take effect, which can be done directly inside the ODT menu option, or from the "Beta" tab in the Oculus desktop application.
  • Depending on the VR app, changes to the "Pixels Density" might require the VR app to be restarted, but won't require the Oculus Server to be restarted.
  • "Oculus Link" fields will persist after the Oculus Server is restarted.
  • "Pixel Density" will not persist after the Oculus Server is restarted.

Initial tuning recommendations - start with these and adjust as needed:
NVidia RTX 2070+ or comparable GPUs - Curvature "Low", Encode Resolution "2912", Pixel Density "1.2"
NVidia GTX 1070+ or comparable GPUs - Curvature "High", Encode Resolution "2352", Pixel Density "1.1"
NVidia GTX 970+ or comparable GPUs - Curvature "Default", Encode Resolution "2016", Pixel Density "1.0"

When tuning, keep in mind:
  • "Pixel Density" is per-dimension. e.g. a setting of 1.2x means 1.44x in 2D, which means 44% more rendered pixels. 2.0x means 300% more rendered pixels.
  • Higher "Pixel Density" can cause dropped VR app frames and will vary based on the performance characteristics of the VR app.
  • Higher "Encoder Resolution" can lead to dropped compositor frames as well as visible tearing. This is mostly tied to the encoding capabilities of the PC GPU and Quest.
  • Higher resolutions in general can also lead to higher latency.
  • Unnecessarily high resolutions (especially "Encode Resolution") can lead to aliasing artifacts (i.e. pixel crawling) on high frequency details.
  • To revert changes, set them back to 0 or "Default" where applicable.
Tagged:
«134

Comments

  • Kung-Foo-KamelKung-Foo-Kamel Posts: 36
    Brain Burst
    Couple of questions.

    1. I assume that pixel density is similar to SS in Steam?
    2. Is there any point to increasing the video encoding resolution without increasing the pixel density?
    3. Would it be better to match the encoding resolution with the rendered resolution?
    4. Does the height scale with width and I assume that the encode resolution is both eyes combined?
    5. What pixel density or rendered resolution does the Oculus Rift software use by default?
    6. Is there anyway to lock in the pixel density?

    I just tested the following

    Low, 3648, 1.3 with native Rift games and performs perfectly
    Low, 3648, 1.3 with 2 x SS in SteamVR and Pavlov ran perfectly, no lag or issues perceived, played for about 30mins

    I noticed a massive improvement to viewing things further away and everything up close looks possible better than my WMR headset, really impressed with the image quality.

    If the Rift software is rendering the game by default at 1440 x 1600 per eye, then I would assume we would want to encode at 2880 at a minimum.

    SteamVR at 1 x SS (100%) seems to be rendering at 1800 x 2000, is the default it detects from the Rift software?

    My System:

    Ryzen 7 @ 3800mhz Per Core
    16GB DDR4 3000mhz
    Nvidia GTX 1080 TI HOF



  • volgaksoyvolgaksoy Posts: 74 Oculus Staff
    edited December 2019
    - I assume that pixel density is similar to SS in Steam?
    I don't know if Steam's SS is per-dimension or full 2D. Do not change both SteamVR and Oculus values though. Otherwise I suspect the effect will be combined.

    - Is there any point to increasing the video encoding resolution without increasing the pixel density?
    In general, no. However, in some circumstances, it can help shrink the video compression artifacts if that is a concern.

    - Would it be better to match the encoding resolution with the rendered resolution?
    A form of fixed-foveated distortion is applied before generating the encoded buffer. So the app render resolution and encode resolutions should definitely not be the same. That would be a waste of performance and bandwidth as well as potentially hurting the final quality. See our "AADT" section in the blog post for more info here:
     
    - Does the height scale with width and I assume that the encode resolution is both eyes combined?
    That is correct.

    - What pixel density or rendered resolution does the Oculus Rift software use by default?
    Pixel density is a multiplier on the base app resolution defined per-HMD type. So the runtime by default is always set to 1.0x.

    - Is there anyway to lock in the pixel density?
    There isn't a way to lock pixel density via ODT. Some games such as Elite Dangerous provide this option in their graphics settings. I've heard the unofficial "Oculus Tray Tool" might do this but haven't tried it myself. While we could expose a way to lock the app render resolution via ODT, we are planning to streamline resolution & performance tuning which will eliminate the need for using ODT.

    - If the Rift software is rendering the game by default at 1440 x 1600 per eye, then I would assume we would want to encode at 2880 at a minimum.
    - SteamVR at 1 x SS (100%) seems to be rendering at 1800 x 2000, is the default it detects from the Rift software?
    Per my comment above about "AADT", by default the Rift software is not rendering the game at 1440x1600 per-eye, but at the resolution SteamVR is showing.

  • Shadowmask72Shadowmask72 Posts: 4,045 Valuable Player
    Would be great to hear some feedback from users how much of an impact this has on visual quality & performance.


    System Specs: RTX 2080 ti , i9 9900K CPU, 16 GB DDR 4 RAM, Win 10 64 Bit OS.
  • Kung-Foo-KamelKung-Foo-Kamel Posts: 36
    Brain Burst
    Thank you for the detail reply volgaksoy, much appreciated, when I get more time I will play more and post my results.

    Shadowmask72, For me, no impact so far on performance, but visuals are hugely improved with just Low, 2912 and 1.2, I can aim much better with distant shots in Pavlov, so its winner for me, I noticed the clarity straight away.
  • TurinTurambarTurinTurambar Posts: 11
    NerveGear
    Could you explain a bit better the curvature setting? I guess Low is better than High, less curvature, less reduction of resolution in the outside area. But What's the difference between High and Default? Is 'Default' value being something like 'very High' ?
  • volgaksoyvolgaksoy Posts: 74 Oculus Staff
    Could you explain a bit better the curvature setting? I guess Low is better than High, less curvature, less reduction of resolution in the outside area. But What's the difference between High and Default? Is 'Default' value being something like 'very High' ?

    Yes, "low" is better than "high". At the moment, "Default" curvature is the same as "High". However, in the future this won't necessarily be the case.
  • Kung-Foo-KamelKung-Foo-Kamel Posts: 36
    Brain Burst
    I find the Low setting fantastic when looking at the edge of your FOV, things are much clearer now, the work you guys have done on this is like pure magic, the only thing that could make the Link better is Unlink (Wireless Link :smile:)
  • GingerMcAleGingerMcAle Posts: 10
    NerveGear
    edited December 2019
    Thank you for this detailed explanation and recommendations.

    I got one additional question, how did you come up with Encode Resolution "2912" for Pixel Density "1.2"? Is there a ratio you apply based on Encode Resolution "2016", Pixel Density "1.0"?

    Thanks.
  • volgaksoyvolgaksoy Posts: 74 Oculus Staff
    I got one additional question, how did you come up with Encode Resolution "2912" for Pixel Density "1.2"? Is there a ratio you apply based on Encode Resolution "2016", Pixel Density "1.0"?
    There are certainly ratios involved, but also the distortion curvature modifies said ratios. These particular values are derived to achieve roughly a 1:1 app-render-to-encode-pixel-density at the center of the display when addressing the resolution of the Quest display while also accounting for chroma subsampling.

  • Ferrero64Ferrero64 Posts: 1
    NerveGear
    edited December 2019
    is there a way to track the actual latency in real time?
  • hideinlighthideinlight Posts: 2
    NerveGear
    I'm loving the overall clarity with the settings you provided for the 1080ti. 
    I had to install the latest Nvidia driver though to get rid of the stutter I was experiencing in 12.0 first, before I decided to play with the settings. 

  • volgaksoyvolgaksoy Posts: 74 Oculus Staff
    Ferrero64 said:
    is there a way to track the actual latency in real time?
    Yes. Run the "Performance HUD" which can be brought up in the Oculus Debug Tool. The HUD will show up in the HMD. If you look at the "Latency Timings" pane, you'll see a relatively detailed break down of timing.

  • devin.lunsdevin.luns Posts: 1
    NerveGear
    edited December 2019
    Tried this out earlier and it is hard for me to gauge rather or not this is worth the performance dip.

    Ryzen 3600 + GTX 1080 + 16GB ram

    Performance takes a huge hit when using the NVIDIA GTX 1070+ or Comparable settings. Normally I would run most games flawlessly at high settings but when enabling this I have to drop everything to low, particularly in Asgard's Wrath and Echo VR. Maybe it is just me but I just do not see the increased sharpness or resolution when everything is dropped so low and my screen is still pretty soft. 

    Maybe I am doing something wrong, like a sequence of events or something, or maybe my PC just isn't strong enough (which kinda seems surprising) but overall I am a bit underwhelmed and it's not as night and day as I had hoped. This also might be my own doing with my own expectations and a bunch of user error mixed in.

    All my drivers are up to date, including graphics drivers, and I am on the public test channel.
  • Greekspartan121Greekspartan121 Posts: 27
    Brain Burst
    Just had another update last night.Version 12.0.0.226.496

    The only thing I noticed was a Facebook link.

    Will update later.
  • Sofian75Sofian75 Posts: 61
    Hiro Protagonist
    @volgaksoy

    Is it possible to make the display brighter when using Link?
    No reason to save battery when connected to our PC.
  • dburnedburne Posts: 3,220 Valuable Player
    It would be nice if you added this capability to Rift S as well.
    Don

    EVGA Z390 Dark MB | I9 9900k| EVGA 2080Ti FTW3 Ultra |32 GB G Skill 3200 cl14 ram | Warthog Throttle | VKB Gunfighter Pro/MCG Pro grip | Crosswind Pedals | EVGA DG 87 Case| Rift S | Quest |
  • nalex66nalex66 Posts: 5,275 Volunteer Moderator
    dburne said:
    It would be nice if you added this capability to Rift S as well.
    You can already use the same tool to adjust pixel density for Rift S. Obviously encoding resolution and curvature are not relevant to Rift S, because it uses direct video feed rather than encoding a compressed data stream. 
    i7 5820K @ 4.25GHz | EVGA GTX 1080 SC | Gigabyte GA-X99-UD4 | Corsair DDR4 3000 32GB | Corsair HX 750W
    SSDs: Intel 660p M.2 2TB, Samsung 860 Evo 1TB, 850 Evo 1TB, 840 Evo 1TB | Startech 4 controller PCIe USB 3.0
  • dburnedburne Posts: 3,220 Valuable Player
    nalex66 said:
    dburne said:
    It would be nice if you added this capability to Rift S as well.
    You can already use the same tool to adjust pixel density for Rift S. Obviously encoding resolution and curvature are not relevant to Rift S, because it uses direct video feed rather than encoding a compressed data stream. 
    Ah ok thanks - yeah I was familiar with PD being there but did not realize that about resolution.
    Don

    EVGA Z390 Dark MB | I9 9900k| EVGA 2080Ti FTW3 Ultra |32 GB G Skill 3200 cl14 ram | Warthog Throttle | VKB Gunfighter Pro/MCG Pro grip | Crosswind Pedals | EVGA DG 87 Case| Rift S | Quest |
  • DrachenherzDrachenherz Posts: 111
    Art3mis
    edited December 2019
    If I mainly play SteamVR games like Elite Dangerous and Boneworks, and use the automatic supersampling settings steamVR supplies, I guess it‘s better to leave the pixel densitiy settings at default?
  • dburnedburne Posts: 3,220 Valuable Player
    If I mainly play SteamVR games like Elite Dangerous and Boneworks, and use the automatic supersampling settings steamVR supplies, I guess it‘s better to leave the pixel densitiy settings at default?
    I would think so. Or you could use the Oculus settings and not use them in Steam VR.
    Don

    EVGA Z390 Dark MB | I9 9900k| EVGA 2080Ti FTW3 Ultra |32 GB G Skill 3200 cl14 ram | Warthog Throttle | VKB Gunfighter Pro/MCG Pro grip | Crosswind Pedals | EVGA DG 87 Case| Rift S | Quest |
  • DrachenherzDrachenherz Posts: 111
    Art3mis
    dburne said:
    If I mainly play SteamVR games like Elite Dangerous and Boneworks, and use the automatic supersampling settings steamVR supplies, I guess it‘s better to leave the pixel densitiy settings at default?
    I would think so. Or you could use the Oculus settings and not use them in Steam VR.
    It‘s just that I got good settings already in the steamVR games I want to play (Elite, Boneworks) and I‘d rather be playing instead of tinkering, given that I have limited playtime. 
  • BopdrummerBopdrummer Posts: 4
    NerveGear
    I am struggling to see any change at all. Is there away to compare results in real time? I noticed if i change settings in virtual desktop via link home and change the setting I see there is some effect, maybe im trying to look too closely at it buy idk i cant tell....also Stormland is the best... 
  • DrachenherzDrachenherz Posts: 111
    Art3mis
    dburne said:
    If I mainly play SteamVR games like Elite Dangerous and Boneworks, and use the automatic supersampling settings steamVR supplies, I guess it‘s better to leave the pixel densitiy settings at default?
    I would think so. Or you could use the Oculus settings and not use them in Steam VR.
    It‘s just that I got good settings already in the steamVR games I want to play (Elite, Boneworks) and I‘d rather be playing instead of tinkering, given that I have limited playtime. (Thanks to family and kids haha).
  • HDHNTERHDHNTER Posts: 2
    NerveGear
    Is there anyway to lock in the pixel density?




    Yes, you can lock in the pixel density setting by running Oculus Tray Tool in conjunction w/ Debug. As long as Tray Tool is running, your settings for Pixel Density will remain in Debug.

    https://forums.oculusvr.com/community/discussion/47247/oculus-traytool-supersampling-profiles-hmd-disconnect-fixes-hopefully/p1

  • richardking01richardking01 Posts: 5
    NerveGear
    Thanks for the share.
  • Kung-Foo-KamelKung-Foo-Kamel Posts: 36
    Brain Burst
    HDHNTER said:
    Is there anyway to lock in the pixel density?




    Yes, you can lock in the pixel density setting by running Oculus Tray Tool in conjunction w/ Debug. As long as Tray Tool is running, your settings for Pixel Density will remain in Debug.

    https://forums.oculusvr.com/community/discussion/47247/oculus-traytool-supersampling-profiles-hmd-disconnect-fixes-hopefully/p1

    Yep found the tool already, when setting the pixel density to 1.2 it ups the resolution reported to steam from 1800 x 2000 to something like 2200 x 2400, so the tool pushes it quite high quite fast, I found the 1800 x 2000 with increased encoding resolution and setting curvature to low, perfectly acceptable, makes all games instantly clearer, I dont think going any higher on the pixel density is worth the hit in performance.
  • TravisaaronTravisaaron Posts: 1
    NerveGear
    Hi guys!  Do you recommend a setting for msi gtx 1080 gaming oc and cpu i5 6600K?
    Are the settings kept in memory or do I need to redo debug every time?
    Tnx
  • Yobiwan29Yobiwan29 Posts: 95
    Hiro Protagonist
    I notice compression artifacts in Oculus Home when applying these tweaks.
    Oculus Quest - MSI MPG Z390 Gaming Edge - i7 8700 - 32GB Corsair Vengeance LPX 3200 MHz - Aorus GTX 1080Ti - Crucial MX300 500Go + 1To - Corsair RM650X 80+ gold
  • DiegoSalaDiegoSala Posts: 5
    NerveGear
    I'm new to VR and I'm using Oculus Link with an Oculus Quest with a notebook RTX 2060 / I7 9650H / 16GB RAM.
    What settings would you recommend?

    Newbie question: why should I manually tweak the settings for improving overall graphic quality? I mean, why does the Oculus software not optimize them automatically?
  • nalex66nalex66 Posts: 5,275 Volunteer Moderator
    DiegoSala said:
    I'm new to VR and I'm using Oculus Link with an Oculus Quest with a notebook RTX 2060 / I7 9650H / 16GB RAM.
    What settings would you recommend?

    Newbie question: why should I manually tweak the settings for improving overall graphic quality? I mean, why does the Oculus software not optimize them automatically?
    Automatic optimization is probably the eventual plan, this just lets people play with the settings in the mean time. You certainly don’t have to tweak anything manually, the out-of-the-box quality and performance is quite good. On PC, people tend to complain if they don’t get a chance to tinker with settings. 
    i7 5820K @ 4.25GHz | EVGA GTX 1080 SC | Gigabyte GA-X99-UD4 | Corsair DDR4 3000 32GB | Corsair HX 750W
    SSDs: Intel 660p M.2 2TB, Samsung 860 Evo 1TB, 850 Evo 1TB, 840 Evo 1TB | Startech 4 controller PCIe USB 3.0
Sign In or Register to comment.