Add FidelityFX SuperResolution to SteamVR games

Related tags

Game openvr_fsr
Overview

Modified OpenVR DLL with AMD FidelityFX SuperResolution Upscaler

This modified openvr_api.dll allows you to apply FidelityFX SuperResolution upscaling to many SteamVR games, as long as they use D3D11.

To install, find the location of the openvr_api.dll in the game's installation folder:

  • It might be located right next to the main executable (e.g. Skyrim, FO4).
  • For Unity games, look in: <GameDir>\<Game>_Data\Plugins
  • For Unreal 4 games, look in: <GameDir>\Engine\Binaries\ThirdParty\OpenVR\OpenVRvX_Y_Z

Rename the existing openvr_api.dll to openvr_api.orig.dll, then extract both the openvr_api.dll and the openvr_mod.cfg from the archive to this directory. You should now edit the openvr_mod.cfg to your liking and adjust the renderScale and sharpness parameters to your liking.

In case you want to uninstall the mod, simply remove the openvr_api.dll file again and rename the original openvr_api.orig.dll back to openvr_api.dll.

In case you run into issues, the log file (openvr_mod.log) may provide clues to what's going on.

Example results:

Important disclaimer

This is a best-effort experiment and hack to bring this upscaling technique to VR games which do not support it natively. Please understand that the approach taken here cannot guarantee the optimal quality that FSR might, in theory, be capable of. AMD has specific recommendations where and how FSR should be placed in the render pipeline. Due to the nature of this generic hack, I cannot guarantee nor control that all of these recommendations are actually met for any particular game. Please do not judge the quality of FSR solely by this mod :)

I intend to keep working on the performance, quality and compatibility of this mod, so do check back occasionally.

Known issues

  • Half Life: Alyx and Star Wars: Squadrons do not work, because they don't like you replacing their openvr_dll.api.
  • In rare cases, the rendering output may appear unnaturally dark when this mod is active. This is an issue with color space that I hope to be able to fix in a future release.
  • Please report any other game that isn't working, assuming that it is a SteamVR game and uses D3D11 for rendering.

OpenVR SDK

OpenVR is an API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting. This repository is an SDK that contains the API and samples. The runtime is under SteamVR in Tools on Steam.

Documentation

Documentation for the API is available on the GitHub Wiki

More information on OpenVR and SteamVR can be found on http://steamvr.com

Comments
  • FSR radius out of sweetspot on wide Pimax headsets.

    FSR radius out of sweetspot on wide Pimax headsets.

    On Pimax headsets the radius setting seems to be inverted, causing the use of bilinear upscaling in the sweetspot of the lens while fsr is applied outside of the specified radius. Disabling the radius (setting radius to 2) appears to function as intended however. This seems to be the case regardless of fovated rendering. I set the sharpening to 1, radius to 0.6, and renderScale to 0.77 to highlight the effect I'm talking about.

    fsr pimax right eye anotated This is an anotated screenshot of the steamvr headset view of the right eye.

    20210719232536_1_vr This is a screenshot taken by steamvr.

    Here's my log if it helps.

    openvr_mod.log

    opened by RamesTheGeneric 43
  • Euro/American Truck Simulator 2 not working

    Euro/American Truck Simulator 2 not working

    Both Euro and American truck simulator does not work,

    VR mode starts and work fine, but FSR is not doing anything, this is the log i got for both

    Initializing hooks...
    Requested interface FnTable:IVRSystem_021
    Requested interface FnTable:IVRCompositor_026
    Shutting down hooks.
    
    opened by hgouveia 27
  • Only works with Pavlov of the modern steam games

    Only works with Pavlov of the modern steam games"

    Other than Skyrim and Fallout 4 , all of the games I've tried PCars2 , Dİrt Rally, Half-life Alyx (which gives error if dll is changed) only Pavlov works with this, I can see it working ingame and also got the log on the dll directory. Is this normal at this moment ?

    opened by patientx 16
  • Projection/inclination correction (so far only observed in IL-2 Sturmovik)

    Projection/inclination correction (so far only observed in IL-2 Sturmovik)

    Thanks for your work - I know it's only meant for some specific games, however:

    I gave it a spin in IL2 Sturmovik using an HP Reverb G2 and although the game loads fine and FSR is doing its thing, there seems to be some sort of problem in the projection of the image - looks like the images on the screens are too wide-apart or something and there seems to be some slight distortion when pitching the view.

    Any tips on what to check on correcting this?

    opened by firdimigdi 14
  • List for verified games

    List for verified games

    Hi FHolger

    can you please enable the wiki of this project to document all tested games?

    for example:

    Game|Engine|dll location|extra notes|tested down to ---|---|---|---|--- Project Wingman|Unreal 4|%steam app / common% /Project Wingman/Engine/Binaries/ThirdParty/OpenVR/OpenVRv1_5_17/Win64/ |below balanced "small" text is unreadable|rx 480 DCS World|Custom?|%steam app / common% /DCSWorld/bin/ |below quality UI text is unreadable|rx 480

    opened by DFOXpro 11
  • Not Working as Expected in HellBlade Senua' Sacrifice VR

    Not Working as Expected in HellBlade Senua' Sacrifice VR

    I've applied this mod to Hellblade VR and the resolution scaling doesn't seem to work. The sharpening seems to do something because image looks to be a little sharper but performance is slightly worse than it would be without the mod by about 10FPS on my system.

    opened by VWP92 11
  • Issues with Revive

    Issues with Revive

    so this mod is awesome and I would really love it to work with Revive and it does work to an extent i.e. if I replace the openvr_api32/64 dlls with the one from this mod it technically works but for some reason the games are super dark and unplayable.

    have tested with Lone Echo and Stormland and get the same issue.

    would be awesome if this worked as i could finally play these games without having to turn everything to LOW , and with the mod enabled I get playable FPS at higher settings. it's just too dark to enjoy them.

    have tried fiddling with brightness settings in steamvr and using things like FPSVR but nothing works

    opened by CelticSpike 10
  • Image very bright in DCS 2.7.3 Open Beta

    Image very bright in DCS 2.7.3 Open Beta

    I've just updated to RC1 and it appears to have affected the brightness/gamma in DCS 2.7.3 Open Beta. The image is now very bright. This seems to be the opposite of issue #10 sadly.

    The image looks normal/as expected in the mirror. I faked up some images which I can attach if you want, but "looks too bright" really does cover it.

    (Excellent work, btw. Thank you!)

    opened by fooksca 10
  • Dirt 2 very dark

    Dirt 2 very dark

    I have tried the mod in Dirt 2 and it works but the dashboard of the car leaves it very dark and I have tried various sharpness values ​​but nothing varies. Without the same car and circuit mod, the dashboard looks much brighter and looks perfectly. Do you know why it can be?

    opened by jordanpucela 10
  • Upscaling not happening at all?

    Upscaling not happening at all?

    Hello!

    I've been having some difficulty getting this to run properly (using an RTX 3080 and Index). I'm convinced the DLL is working, because the "renderScale" value in the config is affecting the output resolution, although FSR does not appear to be occuring at all. (wasn't seeing anything weird in the log file either)

    I've tried messing with the radius setting, and I've been unable to destinguish any difference between the center and edges of the image (even when looking at it in the deskop view), it all just looks low resolution.

    I've tested this with Revive (by swapping it's DLL instead of a specific game), and in a basic example with Beat Saber, and have gotten the same results.

    Is it possible I'm doing something wrong, or maybe just over thinking how good FSR should look? So far it's just looked identical as if I were to just run at that resolution.

    Thanks!

    opened by CircuitLord 9
  • AMS2 works excellently with full detail via the Oculus Link :-D

    AMS2 works excellently with full detail via the Oculus Link :-D

    AMS2 works excellently with full detail via the Oculus Link with the AMD 6900XT and a 5800X ..... 90 FPS without problems (0.77 FSR). When I try to play wirelessly via Virtual Desktop, I get an error message.

    Thanks for the MOD :-D

    opened by Mavy1704 9
  • Cap radius at 2 and sharpness at 1 when adjusting with hotkeys

    Cap radius at 2 and sharpness at 1 when adjusting with hotkeys

    While spamming hotkeys I accidentally ended up with sharpness at 2.5 or so. Decreasing the value again resulted in no change .. obviously. Felt weird for the hotkey to not do anything. So I capped the values ... for both radius and sharpness

    opened by mrmaffen 0
  • Feature request: UI label when pressing hotkeys while in-game

    Feature request: UI label when pressing hotkeys while in-game

    Would be nice to have a short message text saying which value was changed to what. I tried optimizing sharpness and radius in-game but once finished I had no way of knowing which actual values I arrived at. So I had to memorize my starting values and counting +/- 0.05 in my head whenever I pressed a hotkey ... a bit cumbersome

    Or just make it so that values are saved in openvr_mod.cfg when pressing the hotkeys?

    opened by mrmaffen 0
  • Blade and sorcery scale issues

    Blade and sorcery scale issues

    The api works for blade and sorcery, but theres something off about the scale, it looks like a 360 youtube video for some reason (like everything looks massive, but the game thinks its normal sized). idk what to do about this

    opened by floppydonkey05 2
  • 2.1.1 not working at all - Blade & Sorcery

    2.1.1 not working at all - Blade & Sorcery

    Am having difficulty getting this to work with Blade & Sorcery on the latest full release. I have renamed the original .dll file as required and have set the render scale to 0.50.

    When running the game I see no visual difference or performance difference. When pressing F1 to change between fsr and nis nothing happens, same when pressing F2 to enable debug mode which leads me to believe it is simply not running.

    I have tried running the game in Steamvr mode and Oculusvr mode as I have a Quest 2, but can’t see it working.

    opened by Maddo3 1
  • While using hotkey how to know which Upscaling i'm using currently?

    While using hotkey how to know which Upscaling i'm using currently?

    There is no text or anything in vr. How to know which upscaling i'm using?

    When i enable hotkey and press F1 there is different result. But when i change "useNIS": true or false i don't get different result.

    opened by kameronfox 1
Releases(fsr_v2.1.1)
  • fsr_v2.1.1(Dec 27, 2021)

  • fsr_v2.1(Dec 26, 2021)

    Changelog:

    • add customizable hotkeys to adjust some of the mod's config parameters on the fly. For example, you can switch between FSR and NIS and also toggle debug mode on or off. Refer to the updated config file for available hotkeys and how to configure them.
    • add possibility to take a screenshot of the final output image that gets sent to the headset. Screenshot is stored as a .dds file right next to the DLL. You can open them with e.g. Paint.Net.
    • added some missing function exports in newer OpenVR versions. Might theoretically enable some additional games to run with the mod.
    Source code(tar.gz)
    Source code(zip)
    openvr_fsr_v2.1.zip(113.80 KB)
  • fsr_v2.0(Nov 17, 2021)

    This release adds NVIDIA's Image Scaling (NIS) as an alternative to AMD's FidelityFX SuperResolution (FSR). You can choose which algorithm you want to use by setting the new parameter useNIS in the config either to false (FSR, default) or true (NIS).

    Both algorithms work similarly and take a similar amount of time, but the output is sufficiently different that it's worth experimenting which one you like better for a particular game.

    Source code(tar.gz)
    Source code(zip)
    openvr_fsr_v2.0.zip(100.22 KB)
  • fsr_v1.3(Oct 30, 2021)

  • fsr_v1.2(Oct 24, 2021)

  • fsr_v1.1(Aug 11, 2021)

    Changelog:

    • Fixed projection center for the radius application of FSR. The radius where FSR is applied should now give proper stereo overlap on all headsets.
    • Added a debugMode option that, when enabled, visualizes the FSR radius and also periodically logs the GPU cost of the FSR application.
    • Be a bit more conservative when overriding sampler LOD bias. Might (or might not) prevent some rendering issues when applyMipBias is enabled.
    Source code(tar.gz)
    Source code(zip)
    openvr_fsr_v1.1.zip(89.11 KB)
  • fsr_v1.0(Jul 27, 2021)

  • fsr_rc2(Jul 17, 2021)

  • fsr_rc1(Jul 16, 2021)

    Changelog:

    • fix for IL2 and possibly other games
    • apply a negative LOD bias for texture MIP levels, as per AMD's recommendations. Might result in a bit more texture detail, hard to tell the difference, honestly
    • "fixed foveated" optimization: FSR is now only applied to a configurable radius from the image centre, any pixels outside the radius are upscaled by cheaper bilinear filter. Even with a fairly small radius, it is often hard to tell the difference due to the current HMD lenses. Feel free to experiment with it and gain a few additional usecs for your frametime budget :)
    Source code(tar.gz)
    Source code(zip)
    openvr_fsr_rc1.zip(86.79 KB)
  • fsr_alpha1.2(Jul 8, 2021)

  • fsr_alpha1.1(Jul 6, 2021)

  • fsr_alpha1(Jul 4, 2021)

Owner
Holger Frydrych
Holger Frydrych
This is a list of different open-source video games and commercial video games open-source remakes.

This is a list of different open-source video games and commercial video games open-source remakes.

Ivan Bobev 108 Sep 27, 2022
crwusiz branch is comma.ai devel-staging base xx979xx HKG_community source add

crwusiz openpilot crwusiz branch is comma.ai devel-staging base xx979xx HKG_community source add v0.8.9 [ allow white panda and gray panda, OP3T suppo

Lee Jong Mun 30 Sep 18, 2022
Open-source, cross-platform, C++ game engine for creating 2D/3D games.

GamePlay v3.0.0 GamePlay is an open-source, cross-platform, C++ game framework/engine for creating 2D/3D mobile and desktop games. Website Wiki API De

gameplay3d 3.8k Oct 2, 2022
A C math library targeted at games

Kazmath Kazmath is a simple 3D maths library written in C. It was initially coded for use in my book, Beginning OpenGL Game Programming - Second editi

Luke Benstead 505 Sep 24, 2022
3D games console based on RP2040 and iCE40 UP5k

PicoStation 3D This is an unfinished, untested project to develop a 3D games console based on an RP2040 microcontroller and an iCE40 UP5k FPGA. Quick

Luke Wren 37 Sep 12, 2022
A set of libraries and tools to make MSX games using the C programming language.

ubox MSX lib This is a set of libraries and tools to make MSX games using the C programming language. There are three main components: ubox: thin wrap

Juan J. Martínez 42 May 30, 2022
TIC-80 is a fantasy computer for making, playing and sharing tiny games.

TIC-80 is a fantasy computer for making, playing and sharing tiny games.

Vadim Grigoruk 3.6k Sep 30, 2022
Enfusion Artifical Intelligence for DayZ and future Bohemia Interactive games.

Enfusion AI Project (eAI) This mod adds headless player units under the control of a script on the server. Although the script is very rudimentary now

William Bowers 58 Sep 23, 2022
Game engine behind Sea Dogs, Pirates of the Caribbean and Age of Pirates games.

Game engine behind Sea Dogs, Pirates of the Caribbean and Age of Pirates games.

Storm Devs 656 Sep 26, 2022
null 5.1k Oct 1, 2022
Cute Framework (CF for short) is the cutest framework available for making 2D games in C/C++

Cute Framework (CF for short) is the cutest framework available for making 2D games in C/C++. CF comprises of different features, where the various features avoid inter-dependencies. In this way using CF is about picking and choosing which pieces are needed for your game

null 249 Sep 20, 2022
Modding (hacking) il2cpp games by classes, methods, fields names.

ByNameModding Modding (hacking) il2cpp games by classes, methods, fields names. Status: Ready to use Why did I do it 1. In order not to update the off

null 88 Sep 24, 2022
OGRE is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce games and demos utilising 3D hardware.

OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce games and demos utilising 3D hardware. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes.

null 3k Oct 5, 2022
Insomniac games cache simulation tool plugin for UE4

Insomniac Games CacheSim plugin for UE4 This plugin for Unreal Engine 4 lets you use the Insomniac Games Cache Simulation tool to detect cache misses

Toni Rebollo Berná 29 Aug 27, 2022
Bounce is a 3D physics engine for games.

Bounce Welcome! Bounce is a 3D physics engine for games. Features Common Efficient data structures with no use of STL Fast memory allocators Built-in

Irlan Robson 72 Aug 3, 2022
Project DELTA - An open-source trainer built on the Void Engine for Toby Fox's games and their spin-offs.

Project DELTA v3 Project DELTA - An open-source, modular mod menu for Toby Fox's games and their spin-offs. Important note to Grossley: Yes, it is out

Archie 7 Apr 20, 2022
Speedrun plugin for Source engine games.

Features Automatic demo recording Accurate session timing Speedrun timer with complex custom rule system Tools for segmented and tool-assisted speedru

Portal 2 Speedrunning 57 Sep 16, 2022
A single-header C++ library for making simple 2D games

A single-header C++ library for making simple 2D games PLATFORM: Windows LANGUAGE: C++ ENVIRONMENT: Visual Studio Why? Learning C++ is often seen as d

Sumo Digital Academy 56 Oct 2, 2022
Stream Raspberry Pi games to the GBA via the Link Cable

gba-remote-play video-only.mp4 This software streams games from a Raspberry Pi to a Game Boy Advance, through its Link Port. Video and audio are compr

Rodrigo Alfonso 352 Sep 28, 2022