Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[Feature request] DLSSTweaker Support #132

Open
Battler624 opened this issue Apr 29, 2023 · 12 comments
Open

[Feature request] DLSSTweaker Support #132

Battler624 opened this issue Apr 29, 2023 · 12 comments
Labels
feature request New feature or request

Comments

@Battler624
Copy link

Battler624 commented Apr 29, 2023

If possible I want DLSS.Swapper to include features of DLSSTweaks for easier modifications.

so that it updates the DLSS and puts a DLSSTweaks config next to it that you can modify within DLSS Swapper.

@Battler624 Battler624 added the feature request New feature or request label Apr 29, 2023
@beeradmoore
Copy link
Owner

Hey @Battler624 , sorry for the late reply. I don't use DLSSTweaks, can you give me more info in what config it'd place and why?

@Rool-IO
Copy link

Rool-IO commented Dec 25, 2023

An easy and viable solution would be to have DLSS Swapper look for dlsstweaks.ini files in installed game folders and read their dll override settings so it can display the version with an asterisk or something next to it to indicate the dll files aren't swapped but pointed to by DLSSTweaks (currently it can override DLSS SR and FG dlls, I don't think RR is supported yet).

Apart from allowing direct editing of the dlsstweaks.ini files for DLSS "swapping" (=pointing), any more than that sounds out of the scope of DLSS Swapper.

Though a nice QoL addition would be DLSS Swapper allowing to launch the corresponding game's installed DLSSTweaksConfig.exe.

@beeradmoore
Copy link
Owner

Does DLSSTweaks replace the DLSS DLL with a file that then points to DLSS DLL located elsewhere? Is that what you mean by points? Eg. swapping that with DLSS Swapper will stop your DLSSTweaks from working?

Detection and editing should be possible. Will need the new game settings layout which 1.1 will bring.

@Rool-IO
Copy link

Rool-IO commented Dec 26, 2023

Almost (it's not a DLSS DLL)
Kind of (yes)
Definitely not (since it's not a dll DLSS Swapper can swap)

Though I'd recommend you to check DLSSTweaks Github page for actually precise information on how it works and better yet, try it out on your own if you must. That's certainly better than me with approximate answers since all I really understand about it is it will "tell" a game to use other DLSS DLL(s) by hooking into the game (using its own DLL to do that but it can have a bunch of names) and pointing the game to what it'll assume to be the file it expects.

Given dlsstweaks.ini contains the full path of the DLSS DLL(s) to use, DLSS Swapper could read that, then fetch version numbers and so on.

Ideally, together with the above basic idea, DLSS Swapper could also act as a local "repo" for DLSS DLLs to be "pointed" to by DLSSTweaks (though those would need to not be zipped) making downloading, swapping/pointing, testing, reverting far more user friendly and quicker :
New DLSS version, download it, click a game, choose "swap" or "override", if override then edit dlsstweaks.ini and save, use a dedicated clickable asterisk/mark/logo/button/whatever to open DLSSTweaksconfig.exe etc.

All this from DLSS Swapper, no need to use a file explorer even once. Happy DLSS Swappers !

Looking forward to that game settings layout, sounds interesting.

@Battler624
Copy link
Author

Rool-IO pretty much said everything I can say about this.

The whole idea is DLSSTweaks allows forcing DLAA in games that support DLSS (Even if they dont allow DLAA) and OfCourse you can switch DLSS presets which isn't as intriguing.

@Rool-IO
Copy link

Rool-IO commented Dec 31, 2023

Reading back the asterisk idea, it feels quite uninspired. I think the obvious and clearest way of adding an interactive indication is :

  • Display the word "Tweaks" between DLSS and the version on the card of the games which install folders contain at least both dlsstweaks.ini & DLSS Tweaks' DLL.
  • Use a shade of gray if no override is set/active in dlsstweaks.ini.
  • Use the same white as "DLSS" if an override is set/active in dlsstweaks.ini
  • If the game install folder contains a DLSSTweaksconfig.exe file, make the Tweaks "button" clickable to launch it.

The only potential problem I can think of is DLSS Swapper not reflecting manual changes users could do by only interacting with DLSS Tweaks on its own unless clicking Refresh but it's not so different from the current caveat of manually swapping DLLs or games being updated (files verified/overwritten) and DLSS Swapper still reflecting any found version as a Swap (even by clicking Refresh) but it has no way of knowing it's not anymore.

Users need the habit of Resetting DLLs before updating games to avoid mismatches and potentially wrong version Resets afterwards but that's yet another topic.

@Rool-IO
Copy link

Rool-IO commented Mar 23, 2024

To add some QoL, hovering on the "Tweaks" button could (should ?) display current dll override paths set in the dlsstweaks.ini in a little explorer-like overlay as a handy quick glance at a useful informative detail on current config.

Super Resolution => "path" [Overriding/Not Overriding]
Frame Generation => "path" |Overriding/Not Overriding]

User friendly, instantly legible and I would guess easy to implement :)

OT: Thinking of the eventual dlss swapper support of FG which dlsstweaks has already, I'm hoping both will end up supporting RR too even if it's only for a handful of games for now, both softs in tandem with full support would be a perfect QoL pair..

OT2: Have you read the FSR 3.1 announcements ? The launch of dedicated API and a DLL based update path opens the door to DLSS Swapper becoming DLL Swapper if you know what I mean ;) and are even remotely interested in supporting FSR's too, of course.

@beeradmoore
Copy link
Owner

Leaving this here as a note, via @alexismarret in #211

It would be great to be able to select a DLSS preset (A, B, C...) for a given DLSS version

@beeradmoore
Copy link
Owner

@Rool-IO , that may be possible it just all depends on how much integration with DLSSTweaks can be shoved in here before it becomes problematic. eg. I wouldn't want DLSS Swapper functionality to start failing because DLSSTweaks was updated and now is incompatible.

If it's just displaying the contents of dlsstweaks.ini on hover (assuming it's not a lot of data) is that enough or is it better to read the ini and display key info?

@Rool-IO
Copy link

Rool-IO commented Mar 27, 2024

@beeradmoore , It shouldn't be problematic unless Emoose changes how the ini is structured but it hasn't yet changed for the key infos afaik. The DLSS preset support could be integrated without the risks of updates breaking it, per-dll version sounds like a headache though - but would be great if you can figure out how to implement that.

There's a lot of commented lines in the ini so unfortunately DLSS Swapper would need to search for the two dll override lines which are "nvngx_dlss = path" and "nvngx_dlssg = path".

@Rool-IO
Copy link

Rool-IO commented Apr 9, 2024

emoose/DLSSTweaks#137 (comment)
DLSSTweaks or not, I believe this would be of interest to you for DLSS Swapper ;)

@beeradmoore
Copy link
Owner

Very interesting, thanks for sharing. NVIDIA have said for a long time that they will use DLSS that they distribute and update it on a per game basis (see #81) but I've never seen it actually do it. Maybe they are finally starting to do it.

If they do I doubt they will keep a whitelist updated for every version for every game. Even their auto game settings tool thing is broken for a bunch of games (shows settings that don't exist, doesn't show new settings that have been added, etc). Which means I wonder what happens if CP2077 comes with (hypothetical) DLSS 3.4, NVIDIA overrides it to 3.5, can DLSS Swapper still swap in 3.7.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
feature request New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants