cdozdil / OptiScaler

OptiScaler is middleware that enables various upscaling technologies in DLSS2-only games. It allows non-Nvidia users to use upscaling by applying DLSS2 inputs to XeSS, FSR2, or FSR3.
MIT License
565 stars 12 forks source link

DLSS v1 games support? #7

Open mirh opened 5 months ago

mirh commented 5 months ago

Yes, of course v1 is nothing like v2. But presumably you still have all the interfaces to hook up the game available? In particular, temporal data may not have been a big thing back in 2019 but it was already somewhat used. And a cursory look at the old dlls, shows that even nvngx_dlss_1.0.0.0 still has a lot of the newer versions exports exposed.

cdozdil commented 5 months ago

Just checked online for sources but could not find any info about DLSSv1 interface and how it's working.

Do you have any resources on this?

mirh commented 5 months ago

I just used CFF explorer to open the dll, and saw pretty much the usual functions. Alas I don't think the SDK is available anywhere, given how they had to train each game individually. It was theoretically part of NGX, but back then it was in "closed beta" and only available on request.

Though they do indeed suggest upgrades could be made in-place without any need for game recompilation (the revision history of the DLSS programing guide shows they even had instructions for the transition between v1 and v2 but unfortunately they dropped the section after versions 2.0.x). I even checked the leaked nvidia code, but it only had more or less the same version 2.2 that you can already find officially. Maybe if you are a registered developer you could have better luck scavenging their private branches?

mirh commented 5 months ago

Btw these are the interested products (except those that later updated, like idk day one metro exodus or SOTTR):

And despite their "per-game training" I did read they should be mostly swappable between each other.

Ryusennin commented 3 months ago

Metro Exodus (non-RT) uses DLSS 1.2.14. An interesting candidate for pre-RX6000 users.