emoose / DLSSTweaks

Tweak DLL for NVIDIA DLSS, force DLAA on DLSS-supported titles, tweak scaling ratios & DLSS 3.1 presets, override DLSS versions without overwriting game files.
MIT License
1.3k stars 21 forks source link

frame generation on supported games for rtx 2 3 series? #16

Open saha1914 opened 1 year ago

saha1914 commented 1 year ago

is it possible to add an option to enable dlss frame generation on supported games for rtx 2 3 series?

saha1914 commented 1 year ago

PLZ emoose dont let nvidia buy u a so to speak a coffee and not making this possible:)i do appreciate u making this mode greatly and i would have buy u more than a coffee myself if i could sadly im in a country that its not possible but a lot of people it means a lot to them if this is possible

darkanubis0100 commented 1 year ago

I support the idea of trying to add some way to force the use of Frame Generation. There is a reddit user who did it and saw a slight performance improvement, although not equivalent to the RTX 40 but getting 5 more FPS can make a big difference.

Treemcgee324 commented 1 year ago

@darkanubis0100 Are you talking about the redditor mentioned in this article? https://www.extremetech.com/gaming/340298-redditor-enables-dlss-3-on-turing-gpu-with-simple-config-file

If so you have to keep in mind that the original comment has now been deleted, the user did not provide evidence that they got it working, and the explanation mentioned in the article on how they enabled it ("removing a VRAM overhead") seems unlikely. I'm highly doubtful that Nvidia is using VRAM to check if your GPU supports frame generation, at least not now with public versions of Frame Generation.

I'm not saying that it's impossible to get Frame Generation, or something like it running on older generations of hardware, I'm just saying the comment from the redditor that "got it working" is really sketchy and I'm doubtful they got it working, or if they did get it working, I'm highly doubtful the method they used will work with current versions of Frame Generation.

There is also currently no public programming guide on how to use and interface with Frame Generation, which could make it much harder for emoose to get this working if they were to look into it. At least until the programming guide is released.

There's also a large collection of things Nvidia could do to make enabling frame generation on older hardware extremely difficult or near impossible.

Treemcgee324 commented 1 year ago

@saha1914 are you able to provide a link to this tweet?

doktorsleepelss commented 1 year ago

He's probably thinking of someone saying there's been dedicated hardware for optical flow since Turing, but only the 40xx series has optical flow hardware fast enough to use for DLSS3.

saha1914 commented 1 year ago

@saha1914 are you able to provide a link to this tweet?

i read it on a site but didnt find to post it here sorry deleted the comment.it would be great to see emoose say

liamcos commented 1 year ago

@saha1914 are you able to provide a link to this tweet?

https://twitter.com/ctnzr/status/1572358120130871297

Treemcgee324 commented 1 year ago

Thanks for providing the link @liamcos , however the take away from those tweets are different from what was originally said by Saha. (saha had something along the lines of how Frame Generation had been part of DLSS since version 1, although that could be me misunderstanding/mis-remembering what they said, or them mis-remebering the tweet, both honest mistakes)

Anyway, I am hopefully something like frame generation can come to users of older generations of hardware (assuming the quality and performance isn't too bad, like the tweets suggest they might if Frame generation in it's current form was to be run on older hardware). I just don't think DLSS tweak, without large modifications, is the tool that will do it, assuming Nvidia has put effort into locking Frame Generation to the 40 series.

janos666 commented 1 year ago

What bugs me is their supposed reasons to use the OFA at all since all DLSS 2.x supported game engines should provide motion vectors to DLSS. It's purpose before frame interpolation was to help DLSS not to produce blurred garbage from moving objects (especially things like a rotating fan blade behind a grid, etc). Once you already have those, it would seem logical to me to utilize those motion vectors to extrapolate frames (which should not add any significant amount of latency) instead of interpolating between two rendered frames (which obviously adds some latency, since you delay the I+1 frame to display the I frame after I-1). So yes, frame extrapolation sounds something trivially logical to start appearing in DLSS 2.x already (as soon as they already established the motion vector requirements). So why rely on the OFA (which is more likely to create "garbage" frames) and choose a method which incurs a latency penalty? Well, unless it's really something that had "slept" there since DLSS 1.x (from before they asked game devs for motion vectors, so they really needed something like the OFA) and they didn't care to re-base it on the motion vector data (or just "augmented" it with them).

But I am not sure if they really use interpolation instead of extrapolation or if those motion vectors are detailed enough for frame extrapolation. These are just my guesses. Maybe the latency penalty comes from somewhere else. And maybe the motion vectors are insufficient for some reason.

Treemcgee324 commented 1 year ago

@janos666, DLSS Frame Generation uses a combination of motion vectors and Optical flow to get new frames.

From my understanding they use motion vectors as the base, then use optical flow to pick out areas where the motion vectors are wrong. For example, the movement in reflections, shadows on moving objects, and animated textures are not included in the motion vector pass. And so if Nvidia used only motion vectors, there would be some issues with those effects. So Nvidia seems to generate a optical flow pass, compare it against the motion vectors to try and detect where the motion vectors are noticeably wrong, and use the optifcal flow pass from before to try fix them.

boludoz commented 1 year ago

Probablemente esté pensando en alguien que diga que ha habido hardware dedicado para el flujo óptico desde Turing, pero solo la serie 40xx tiene hardware de flujo óptico lo suficientemente rápido como para usarlo para DLSS3.

https://www.youtube.com/watch?v=bmKVlqOZRYA Bla bla bla

snakeeater4526 commented 1 year ago

If AMD fluid motion frames or fsr 3 goes open, it would be cool to see some moders putting it in all dlss/fsr supported games