dlss-swapper icon indicating copy to clipboard operation
dlss-swapper copied to clipboard

[Feature request] Add better detection for FSR

Open vunhanky opened this issue 10 months ago • 14 comments

For most game i see it detects all XESS and DLSS, but FSR doesn't get detected in most games Thank you!

vunhanky avatar Feb 08 '25 09:02 vunhanky

There are games with FSR 3.1 that are not detected? Because only games with FSR 3.1 are in dll form and therefore are interchangeable.

Versions lower than 3.1 cannot be changed

moi952 avatar Feb 08 '25 21:02 moi952

Yep pretty much what @moi952 said.

On top of that it is also possible for developers to compile their own version of FSR 3.1 which is not in dll form that we are expecting.

In either of those cases we can't swap them anyway.

Can you list some games that you expect it to show so I can double check if they simply don't have it or if it is missing?

beeradmoore avatar Feb 09 '25 04:02 beeradmoore

okay Black Myth Wukong

Image

vunhanky avatar Feb 10 '25 09:02 vunhanky

@vunhanky Black Myth: Wukong uses an older FSR 3.1 version that cannot be easily upgraded manually and lacks FG decoupling. Most of the latest PlayStation ports by Nixxes use the upgradeable version.

Arstidir avatar Feb 10 '25 11:02 Arstidir

According to DLSS Swapper (1.1.7), none of my FSR games are swappable, including Nixxes ports (Ragnarok, Zero Dawn Remastered, etc). The FSR field displays "not found". I'm pretty sure some of them like Zero Dawn are supposed to be FSR 3.1.

Ryusennin avatar May 08 '25 19:05 Ryusennin

Horizon Zero Dawn Remastered is swappable for me.

Image

For me amd_fidelityfx_dx12.dll is in the root of the games folder. Clicking open folder button in DLSS Swapper should show it for you. I have the game installed via Steam. There is no amd_fidelityfx_vk.dll so DLSS Swapper will only show DLL on one part of FSR selector. Can you confirm your game is updated and the file exists?

beeradmoore avatar May 08 '25 23:05 beeradmoore

I confirm this indeed. Yet the DLL doesn't appear in the GUI.

Image

The only FSR 3.1 game that is detected on my config by DLSS Swapper is AC Shadows. For info, I'm running Windows 10.

Ryusennin avatar May 17 '25 22:05 Ryusennin

Can you let me know the full path of the DLL listed in the comment above?

beeradmoore avatar May 17 '25 23:05 beeradmoore

For my installation of HZD Remastered, the path would be:

D:\Games\Steam\steamapps\common\Horizon Zero Dawn Remastered\amd_fidelityfx_dx12.dll (v1.0.0.36752)

Not sure if this is relevant, but my GPU is a Radeon 6650 XT. I'm using DLSS libs through OptiScaler. Detecting and swapping DLSS/XeSS libraries works without any problem.

Ryusennin avatar May 18 '25 17:05 Ryusennin

That is odd. The only thing that comes to mind is if the file isn't really there and is a symbolic link created by Optiscaler, but I don't think that's how it works.

Just to sanity check if you open D:\Games\Steam\steamapps\common\Horizon Zero Dawn Remastered\ in Windows Terminal and type dir if it is a powershell terminal or dir /a if it is a cmd prompt window. For amd_fidelityfx_dx12.dll does it say anything funky like

amd_fidelityfx_dx12.dll [some/other/path/amd_fidelityfx_dx12.dll]

or

amd_fidelityfx_dx12.dll -> some/other/path/amd_fidelityfx_dx12.dll

Something else to try is on the settings page change logging to verbose, restart DLSS Swapper, hit reload on the games page, and then go back to settings page to locate the latest log file to upload.

beeradmoore avatar May 19 '25 08:05 beeradmoore

The AMD DLL is correctly listed in the game's folder when using the command line.

I've tried switching a few options on and off (allow untrusted, allow debug, only show downloaded DLLs) and refreshing the game's list each time. At some point, HZD finally started displaying the FSR 3.1 library! Not sure which option made the difference, since I reverted to my original settings (allow untrusted off, allow debug off, only show on) and the DLL now still appears in the game's profile. Maybe force-refreshing the list was enough.

Thanks anyway for your support!

Ryusennin avatar May 19 '25 10:05 Ryusennin

That is all very odd and I'm not sure what is happening.

Did FSR get added to the game at some point or has it been there longer than you've had DLSS Swapper?

It should load games, load there files, and then cache that. Then in next launch use the cache and check if the known files are changed. But I guess if the game updates and adds FSR it might not detect it until a full refresh happens.

Edit: if that is the issue I could add a reload/refesh (or "check for DLLs" button on the game view page to force a full reload. User may be more likely to hit that than the full reload.

I will see what other fixes could happen though.

beeradmoore avatar May 19 '25 11:05 beeradmoore

Horizon Remastered was released last October, with FSR 3.1 + framegen included (according to PS Blog).

At that time I was already using DLSS Swapper, although I seem to remember that FSR 3.1 detection/swapping was not implemented before v1.1.

Ryusennin avatar May 19 '25 22:05 Ryusennin

Ah yes! That would play a huge part. I think if the game had DLSS vX.Y and we load it from cache and confirm that yes vX.Y is still there and is the same version it does not bother me checking for anything because it loaded from cache.

But if FSR vA.B or XeSS vC.D (or even DLSS FG vE.F) were added in an update they would be skipped.

There isn't much point doing a full scan for upscalers except the ones we know about as that is the same performance cost as doing all.

I think in the v1.1.7.1 update I can have a small workaround of per game full reload button on the individual game page. And then later in v1.2 (or v1.2.1) look into some method of detecting when things have likely changed (maybe monitor full executable file for last modified or something as we will be tracking main executable in v1.2 for DLSS Presets).

beeradmoore avatar May 19 '25 22:05 beeradmoore

I have addd a reload button on the game page for v1.2. A more major detection system would likely benifit from improved loading such as what we could do when reading MFT (discussed in #143). I am closing this ticket for now as it has a workaround,if/when MFT reading is added I'll do my best to make this more automatic.

beeradmoore avatar Jul 06 '25 03:07 beeradmoore