OpenVR fholger VR Perf Kit (FSR)

I have it hooked in still but unticked the VR shader I was using mainly for sharpening. I wanted to try the sharpen on the NIS side alone. I could use it for saturation though and will play with it later. You run both?

I tried that last night and at the time thought it overkill. At least in the Tomcat. I ended up toggling off Reshade. I think that you might be good with NIS only, but like you, want to tweak it a bit.

Donā€™t think I tried this after reinstalling every little one and zero I had on my computerā€¦
So, is this installer the way to go nowā€¦?

I havenā€™t used it, but the set-up is just dropping in the replacement openvr_api.dll (rename your existing one) and putting a openvr_mod.cfg text file in your DCS bin directory. e.g. D:\Games\DCS World OpenBeta\bin - so just the two things.

1 Like

Justā€¦ Itā€™s me youā€™re helping! :wink:

A peek at that installer, it seems handy if you have a lot of Steam games and youā€™re not sure where to place the files. If your DCS is stand-alone Iā€™m not sure it helps a lot.

It did remind me to perhaps try this puppy on XP11 though - it should work nicely there as well.

2 Likes

Hmā€¦ Wellā€¦?

Capture

Edit. Google tells me that I need to install Visual C++ to fix itā€¦

2 Likes

update run times

1 Like

Last time I timed it, I did 10Km just under an hourā€¦ Iā€™m faster on skis, though.

Not what you meant? :wink:

Shouldnā€™t windows update take care of thisā€¦?

1 Like

im faster on skates

1 Like

Not on snow, youā€™re notā€¦ :wink:

1 Like

Did you happen to install Windows during a Solar Flare episode or something? :wink:

I would nuke it from orbit, itā€™s the only way to be sureā€¦

1 Like

That, or Iā€™m incompetentā€¦ Nah, probably a solar flare! :wink:

Here We Go Again GIF by HULU

1 Like

Installing the latest VC++ redistributable fixed this problem, and the problem I had with OpenXR.

So I followed @fearlessfrogā€™s excellent advice, once again, and set up the OpenVR.cfg as per above andā€¦

Reaction GIF

Oh my, oh myā€¦ This is the good stuff!

3 Likes

FYI, I checked the GetHub site for FSR/NIS for SteamVR that @fearlessfrog linked in the OP, and there is a more recent version of the mod, v2.1.1. The cool thing about this version is the ability to use hotkeys to toggle between AMDā€™s upscaling method, FSR, and Nvidiaā€™s method, NIS, on the fly. You can also increase/decrease sharpening and sharpening radius, take screenshots, and toggle debugging. This is much handier than editing the openvr_mod.cfg file each time you want to test a setting.

FWIW, I think that I like the softer look of FSR, but tend to use NIS because it makes reading a HUD in bright sunlight easier. I couldnā€™t detect a difference in FPS between the two methods.

My version of openvr_mod.cfg if anyone needs a sample. This enables hotkeys using Shift+F1 through Shift+F7 for minimal conflicts with default DCS key bindings.

{
  "fsr": {
    // enable image upscaling through AMD's FSR or NVIDIA's NIS
    "enabled": true,

    // if enabled, uses NVIDIA's Image Scaling instead of the default
    // AMD FidelityFX SuperResolution. Both algorithms work similarly, but produce
    // somewhat different results. You may want to experiment switching between the
    // two to determine which one you like better for a particular game.
    "useNIS": true,

    // Per-dimension render scale. If <1, will lower the game's render resolution
    // accordingly and afterwards upscale to the "native" resolution set in SteamVR.
    // If >1, the game will render at its "native" resolution, and afterwards the
    // image is upscaled to a higher resolution as per the given value.
    // If =1, effectively disables upsampling, but you'll still get the sharpening stage.
    // AMD presets:
    //   Ultra Quality => 0.77
    //   Quality       => 0.67
    //   Balanced      => 0.59
    //   Performance   => 0.50
    "renderScale": 0.8,

    // tune sharpness, values range from 0 to 1
    "sharpness": 0.9,
    
    // Only apply FSR/NIS to the given radius around the center of the image.
    // Anything outside this radius is upscaled by simple bilinear filtering,
    // which is cheaper and thus saves a bit of performance. Due to the design
    // of current HMD lenses, you can experiment with fairly small radii and may
    // still not see a noticeable difference.
    // Sensible values probably lie somewhere between [0.2, 1.0]. However, note
    // that, since the image is not spheric, even a value of 1.0 technically still
    // skips some pixels in the corner of the image, so if you want to completely
    // disable this optimization, you can choose a value of 2.
    // IMPORTANT: if you face issues like the view appearing offset or mismatched
    // between the eyes, turn this optimization off by setting the value to 2.0
    "radius": 0.5,

    // if enabled, applies a negative LOD bias to texture MIP levels
    // should theoretically improve texture detail in the upscaled image
    // IMPORTANT: if you experience issues with rendering like disappearing
    // textures or strange patterns in the rendering, try turning this off
    // by setting the value to false.
    "applyMIPBias": true,
    
    // If enabled, will visualize the radius to which FSR/NIS is applied.
    // Will also periodically log the GPU cost for applying FSR/NIS in the
    // current configuration.
    "debugMode": false,

    "hotkeys": {
      // If enabled, you can change certain settings of the mod on the fly by
      // pressing certain hotkeys. Good to see the visual difference. But you
      // may want to turn off hotkeys during regular play to prevent them from
      // interfering with game hotkeys.
      "enabled": true,

      // if enabled, must also be holding CTRL key to use hotkeys
      "requireCtrl": false,

      // if enabled, must also be holding ALT key to use hotkeys
      "requireAlt": false,

      // if enabled, must also be holding SHIFT key to use hotkeys
      "requireShift": true,

      // Below, you can see what hotkey functions are available and also configure
      // the hotkey for it. To configure the hotkey, you need to use the corresponding
      // virtual key code, which you can look up on this page:
      // https://cherrytree.at/misc/vk.htm

      // switch between FSR and NIS (default key: F1 - 112)
      "toggleUseNIS": 112,

      // toggle debug mode on or off (default key: F2 - 113)
      "toggleDebugMode": 113,

      // decrease sharpness by 0.05 (default key: F3 - 114)
      "decreaseSharpness": 114,

      // increase sharpness by 0.05 (default key: F4 - 115)
      "increaseSharpness": 115,

      // decrease sharpening radius by 0.05 (default key: F5 - 116)
      "decreaseRadius": 116,

      // increase sharpening radius by 0.05 (default key: F6 - 117)
      "increaseRadius": 117,

      // take a screenshot of the final output sent to the HMD (default key: F7 - 118)
      "captureOutput": 118
    }
  }
}

3 Likes

It looks like itā€™s been renamed?

Iā€™ll update the first post for any stragglers.

4 Likes

Haha! I saw the title and started reading it from the beginning, thinking ā€œanother OpenVR solution?? How come I havenā€™t heard of this?ā€ before I realized it was the same thread somehow, and scrolled down to here. :joy:

1 Like

Thatā€™s great news. Iā€™m thrilled for the continued development, the usual caveats applying, like hoping that it doesnā€™t attain unmanageable feature bloat. I dig the lightweight nature of its current form.

1 Like

Me too. The keyboard shortcuts are great; the only additional feature I would like is the ability to turn it on/off completely, and adjust the upsampling (upscaling?) on the fly. You can turn off the sharpening and adjust it, but it would be neat to be able to play with the upscaling in game and fine-tune your results. Not sure if thatā€™s technically feasible, but since you can switch between NIS/FSR on the fly (I find Iā€™m preferring FSR since itā€™s a little softer and doesnā€™t make the grass shimmer like NIS), I would imagine you could turn it on/off too.

The new config file has some shiny toys to try out. I might give the fixed foveated with VRS a go, although I wouldnā€™t expect miracles in terms of perf gain.

# Upscaling: render the game at a lower resolution (thus saving performance),
# then upscale the image to the target resolution to regain some of the lost
# visual fidelity.
upscaling:
  # enable (true) or disable (false) upscaling
  enabled: true
  # method to use for upscaling. Available options (all of them work on all GPUs):
  # - fsr (AMD FidelityFX Super Resolution)
  # - nis (NVIDIA Image Scaling)
  # - cas (AMD FidelityFX Contrast Adaptive Sharpening)
  method: fsr
  # control how much the render resolution is lowered. The renderScale factor is
  # applied to both width and height. So if renderScale is set to 0.5 and you
  # have a resolution of 2000x2000 configured in SteamVR, the resulting render
  # resolution is 1000x1000.
  # NOTE: this is different from how render scale works in SteamVR! A SteamVR
  # render scale of 0.5 would be equivalent to renderScale 0.707 in this mod!
  renderScale: 0.77
  # configure how much the image is sharpened during upscaling.
  # This parameter works differently for each of the upscaling methods, so you
  # will have to tweak it after you have chosen your preferred upscaling method.
  sharpness: 0.7
  # Performance optimization: only apply the (more expensive) upscaling method
  # to an inner area of the rendered image and use cheaper bilinear sampling on
  # the rest of the image. The radius parameter determines how large the area
  # with the more expensive upscaling is. Upscaling happens within a circle
  # centered at the projection centre of the eyes. You can use debugMode (below)
  # to visualize the size of the circle.
  # Note: to disable this optimization entirely, choose an arbitrary high value
  # (e.g. 100) for the radius.
  radius: 0.6
  # when enables, applies a MIP bias to texture sampling in the game. This will
  # make the game treat texture lookups as if it were rendering at the higher
  # target resolution, which can improve image quality a little bit. However,
  # it can also cause render artifacts in rare circumstances. So if you experience
  # issues, you may want to turn this off.
  applyMipBias: true

# Fixed foveated rendering: continue rendering the center of the image at full
# resolution, but drop the resolution when going to the edges of the image.
# There are four rings whose radii you can configure below. The inner ring/circle
# is the area that's rendered at full resolution and reaches from the center to innerRadius.
# The second ring reaches from innerRadius to midRadius and is rendered at half resolution.
# The third ring reaches from midRadius to outerRadius and is rendered at 1/4th resolution.
# The final fourth ring reaches from outerRadius to the edges of the image and is rendered
# at 1/16th resolution.
# Fixed foveated rendering is achieved with Variable Rate Shading. This technique is only
# available on NVIDIA RTX and GTX 16xx cards.
fixedFoveated:
  # enable (true) or disable (false) fixed foveated rendering
  enabled: false
  # configure the end of the inner circle, which is the area that will be rendered at full resolution
  innerRadius: 0.6
  # configure the end of the second ring, which will be rendered at half resolution
  midRadius: 0.8
  # configure the end of the third ring, which will be rendered at 1/4th resolution
  outerRadius: 1.0
  # the remainder of the image will be rendered at 1/16th resolution

# Enabling debugMode will visualize the radius to which upscaling is applied (see above).
# It will also output additional log messages and regularly report how much GPU frame time
# the post-processing costs.
debugMode: false

# Hotkeys allow you to modify certain settings of the mod on the fly, which is useful
# for direct comparsions inside the headset. Note that any changes you make via hotkeys
# are not currently persisted in the config file and will reset to the values in the
# config file when you next launch the game.
hotkeys:
  # enable or disable hotkeys; if they cause conflicts with ingame hotkeys, you can either
  # configure them to different keys or just turn them off
  enabled: true
  # toggles debugMode
  toggleDebugMode: ["ctrl", "f1"]
  # cycle through the available upscaling methods
  cycleUpscalingMethod: ["ctrl", "f2"]
  # increase the upscaling circle's radius (see above) by 0.05
  increaseUpscalingRadius: ["ctrl", "f3"]
  # decrease the upscaling circle's radius (see above) by 0.05
  decreaseUpscalingRadius: ["ctrl", "f4"]
  # increase the upscaling sharpness (see above) by 0.05
  increaseUpscalingSharpness: ["ctrl", "f5"]
  # decrease the upscaling sharpness (see above) by 0.05
  decreaseUpscalingSharpness: ["ctrl", "f6"]
  # toggle the application of MIP bias (see above)
  toggleUpscalingApplyMipBias: ["ctrl", "f7"]
  # take a screen grab of the final (post-processed, upscaled) image.
  # The screen grab is stored as a dds file next to the DLL.
  captureOutput: ["ctrl", "f8"]
  # toggle fixed foveated rendering
  toggleFixedFoveated: ["alt", "f1"]

Original here - https://raw.githubusercontent.com/fholger/vrperfkit/master/vrperfkit.yml

1 Like