Nukem9 / dlssg-to-fsr3

Adds AMD FSR 3 Frame Generation to games by replacing Nvidia DLSS-G Frame Generation (nvngx_dlssg).
GNU General Public License v3.0
4.36k stars 163 forks source link

Latency issues in Witcher 3 #324

Open Dampfinchen opened 11 months ago

Dampfinchen commented 11 months ago

Witcher 3 has big issues with latency and frame generation for some reason (likely dx11todx12 related)

It fluctuates regularly between acceptable and unacceptable latency. Now i must admit I'm using it to get a solid 60 fps in Witcher 3 with RT enabled and I realize FG is not the best tech for that as FG needs a high base framerate. However, the latency of 30 fps is already acceptable for me and this feels way worse than running the game at 30 fps. This is why I'm reporting it as an issue here.

In Cyberpunk and using the same low base framerate, this doesn't happen and it's perfectly playable which leads me to believe it's an integration issue with the dx11 to dx12 wrapper the game uses.

Dravic commented 11 months ago

Do you have a G-Sync Compatible display (VRR display)?

Dampfinchen commented 11 months ago

Do you have a G-Sync Compatible display (VRR display)?

No, it's a 60 Hz monitor without VRR.

Dravic commented 11 months ago

Do you have a G-Sync Compatible display (VRR display)?

No, it's a 60 Hz monitor without VRR.

That's unfortunate. You need a new display with a good VRR implementation to fully take advantage of the VRR goodness, it's one of the biggest gaming advancements of the last decade in my opinion.

Non-VRR screens are just fundamentally hard to work with (they're basically outdated at this point), especially for things like Frame Generation.

ForthtuN commented 11 months ago

VRR will never lower the latency of playing non-vsync. So to test if it even would help just use non-vsync. There is a reason why any kind of Vsync/VRR is a big no no in competitive games, cause it introduces latency. However im also using VRR (Gsync atm) since i was testing it, i will turn it off and test also since i don't really need it.

Im currently playing Warzone for some days with this (yes i know about that it is potentially bannable) and with framegen, there is huge latency that is feelable when playing these fast games. Even in Ready or Not which is kinda slower, you can still feel that it introduces latency. And in both games im already quite high in fps (~120 base fps in Warzone). I don't know how this would compare in Warzone against Nvidias own FG. I think there could be a bit less latency with it. Hopefully it will get better with time.

So yes, with framegen in fast paced games, there is a feelable latency issue.

Dravic commented 11 months ago

There is a reason why any kind of Vsync/VRR is a big no no in competitive games, cause it introduces latency.

Using VRR and VSync ON in tandem with a framerate limiter a few frames below your screen's refresh rate does NOT significantly increase your latency and yet it gives you a better experience.

blurbusters.com/gsync/gsync101-input-lag-tests-and-settings/14/

blurbusters.com/gsync/gsync101-input-lag-tests-and-settings/15/

As for Frame Generation:

The best way to play with DLSS3 is Reflex + Variable Refresh Rate (G-Sync Compatible) Display + Nvidia Control Panel VSYNC ON.

You get no frametime variance induced screen tearing thanks to VSync ON and there's no input latency penalty from VSync due to the framerate limit automatically imposed by Reflex. You don't want your own framerate limiter, really - just let Reflex cook.

DLSS3 is way more optimized for latency on RTX40 cards, of course, but I can't imagine how this would be any different with FSR3 on any other Nvidia card. According to my testing you still want Reflex ON, you still want VRR, you still want Reflex to framerate limit for you.

ForthtuN commented 10 months ago

That is so wrong info. He have problem with latency/input lag, the info you are telling him is to make it even higher.

Best for latency will always be with VRR and Vsync off, next to that is just to use VRR, and worst is to use VRR + Vsync as you are recommending him to do, which give the highest of all, its self saying that using all those techniques that always hightens the latency, they are not there to reduce latency at all, thats whats negative about them. Reflex will always be recommended to use and will always give its boost in reducing latency whetever or not using VRR or Vsync. And again, he is not asking about help to use Vsync and INCREASE latency but to reduce it. Which that recommendation never will do.

https://www.youtube.com/watch?v=1OQjqWOm1uA

Combining Gsync and vsync just gives horrible latency. And again, thats why NO COMPETITIVE PLAYER is using that what-so-ever.

The info you are reffering to is old and much has happend between then and now, the tests today are much better with more knowledge, new hardware and using NVIDIA Reflex Analyzer ie. Blurbusters was used ages ago i remember. Also limiting fps will increase the latency. Which only would benefit the VRR by doing it lower than monitor refresh rate, not without VRR + without frame limit, which they aren't even testing.

Also to add, one of the most famous in doing the tests, although 3 years old, even said back then that Gsync should only be used without Vsync as competetive as can be seen https://www.youtube.com/watch?v=Gub1bI12ODY 4 minutes in the video

And also, here you can really see the results of testing all combinations. As it shows, unlimited fps limit and without any kind of VRR (we should not even mention vsync since its HORRIBLE latency): https://www.youtube.com/watch?v=zv2UTb1BllM

So to sum it up, as he asked about the lowest latency (and just to be clear, im talking about Vsync in game, not Vsync in driver, i have not looked at it enough but i think its almost as bad as Vsync in-game)

Best: ABSOLUTELY NO VSYNC, No VRR, and have no limiter on fps Middle: Gsync (VRR) + limit fps below refresh rate of monitor Worse: Vsync Worst: Vsync and VRR

Dampfinchen commented 10 months ago

In any case, I would just like this mod to work as well in Witcher 3 as it does in Cyberpunk.

Dravic commented 10 months ago

Worse [latency]: Vsync [THE] Worst [latency]: Vsync and VRR

That's such an insane claim. At no point in these videos was there conclusive proof of such a claim being true -- because it is not, obviously, if you know what Nvidia VSYNC does when VRR is active and framerate is limited. Nvidia's VSYNC then helps prevent screen tearing frametime variance that can occur despite VRR.

It's NOT the same as VSYNC when hitting your display's refresh rate. That's terrible for your latency and does not happen thanks to framerate limiting.

In general I find people like you who claim that seeing SCREEN TEARING = "lower latency" to be funny. I don't get why you're so in love with seeing your screen tear and how you find it useful in real life usage. I absolutely hate it and I thank the VRR Gods for saving me from it while keeping latency to minimum.

Regardless, OP does not have a VRR screen so there's no point in me further discussing VRR and how amazing its benefits are in real life gaming experience.

PS Everyone knows that uncapped framerate is lowest latency, DUH. But playing like that with screen tearing is a strange concept to me when you can have VRR at huge refresh rates nowadays if you buy the right display.

GreyTheImp commented 10 months ago

If you don't have a G-sync monitor here's your bet.

Enable VSYNC in Nvidia Pannel and Enable frame limiter in Nvidia Pannel to 58FPS if you have a 60Hz display.

Be sure to have enough FPS in normal gameplay or the FrameGen gona have a bad time.

Work for me, no more latency, perfect game experience ! :)

Enjoy !

Dampfinchen commented 10 months ago

If you don't have a G-sync monitor here's your bet.

Enable VSYNC in Nvidia Pannel and Enable frame limiter in Nvidia Pannel to 58FPS if you have a 60Hz display.

Be sure to have enough FPS in normal gameplay or the FrameGen gona have a bad time.

Work for me, no more latency, perfect game experience ! :)

Enjoy !

Wow, that works indeed. Perfect latency!

AnnoOllow commented 10 months ago

If you don't have a G-sync monitor here's your bet.

Enable VSYNC in Nvidia Pannel and Enable frame limiter in Nvidia Pannel to 58FPS if you have a 60Hz display.

Be sure to have enough FPS in normal gameplay or the FrameGen gona have a bad time.

Work for me, no more latency, perfect game experience ! :)

Enjoy !

Its not working for me i am getting lot of tearing.. i uninstalled gpu driver with ddu and reinstalled from website but vsync in control panel not working...

Dravic commented 10 months ago

If you don't have a G-sync monitor here's your bet. Enable VSYNC in Nvidia Pannel and Enable frame limiter in Nvidia Pannel to 58FPS if you have a 60Hz display. Be sure to have enough FPS in normal gameplay or the FrameGen gona have a bad time. Work for me, no more latency, perfect game experience ! :) Enjoy !

Its not working for me i am getting lot of tearing.. i uninstalled gpu driver with ddu and reinstalled from website but vsync in control panel not working...

If your display does not have Variable Refresh Rate, VSync will only work properly if your framerate reaches the refresh rate of your display.

AnnoOllow commented 10 months ago

If you don't have a G-sync monitor here's your bet. Enable VSYNC in Nvidia Pannel and Enable frame limiter in Nvidia Pannel to 58FPS if you have a 60Hz display. Be sure to have enough FPS in normal gameplay or the FrameGen gona have a bad time. Work for me, no more latency, perfect game experience ! :) Enjoy !

Its not working for me i am getting lot of tearing.. i uninstalled gpu driver with ddu and reinstalled from website but vsync in control panel not working...

If your display does not have Variable Refresh Rate, VSync will only work properly if your framerate reaches the refresh rate of your display.

I am getting 70 to 80 fps when fps is more than 60 there is no tearing but it not looks smooth something like laggish.. when i cap framerate to 60 then its look smooth but then tearing comes..

Dravic commented 10 months ago

If you don't have a G-sync monitor here's your bet. Enable VSYNC in Nvidia Pannel and Enable frame limiter in Nvidia Pannel to 58FPS if you have a 60Hz display. Be sure to have enough FPS in normal gameplay or the FrameGen gona have a bad time. Work for me, no more latency, perfect game experience ! :) Enjoy !

Its not working for me i am getting lot of tearing.. i uninstalled gpu driver with ddu and reinstalled from website but vsync in control panel not working...

If your display does not have Variable Refresh Rate, VSync will only work properly if your framerate reaches the refresh rate of your display.

I am getting 70 to 80 fps when fps is more than 60 there is no tearing but it not looks smooth something like laggish.. when i cap framerate to 60 then its look smooth but then tearing comes..

Nvidia Control Panel's VSync set to ON wouldn't let you exceed screen's refresh rate (which I assume is 60Hz for you). You may want to check what you set it to, because that doesn't sound like "On".

GreyTheImp commented 10 months ago

And you need to cap at 58FPS not 60FPS

GreyTheImp commented 10 months ago

This method work for several people on the nexus page including myself you certainly doing something wrong or you monitor is beyond 60Hz max

AnnoOllow commented 10 months ago

If you don't have a G-sync monitor here's your bet. Enable VSYNC in Nvidia Pannel and Enable frame limiter in Nvidia Pannel to 58FPS if you have a 60Hz display. Be sure to have enough FPS in normal gameplay or the FrameGen gona have a bad time. Work for me, no more latency, perfect game experience ! :) Enjoy !

Its not working for me i am getting lot of tearing.. i uninstalled gpu driver with ddu and reinstalled from website but vsync in control panel not working...

If your display does not have Variable Refresh Rate, VSync will only work properly if your framerate reaches the refresh rate of your display.

I am getting 70 to 80 fps when fps is more than 60 there is no tearing but it not looks smooth something like laggish.. when i cap framerate to 60 then its look smooth but then tearing comes..

Nvidia Control Panel's VSync set to ON wouldn't let you exceed screen's refresh rate (which I assume is 60Hz for you). You may want to check what you set it to, because that doesn't sound like "On".

Yes i had vsync set to on but its not working i reinstalled driver

AnnoOllow commented 10 months ago

And you need to cap at 58FPS not 60FPS

Tried nothing works