Frame Interpolation shader for Reshade

  • Posts: 39
2 years 7 months ago - 2 years 7 months ago #1 by Jesped
Some people have been using SVP ( www.svp-team.com ) with video streams from capture cards to play "pseudo 60fps" using Frame Interpolation for 30fps locked console games.


Which led me to think that a shader for Reshade could do a much better job, having the depth info and an uncompressed realtime source instead of an external captured video stream.


Is it possible to do this kind of Frame Interpolation shader for Reshade?

Please Log in or Create an account to join the conversation.

  • Posts: 3746
2 years 7 months ago #2 by crosire
You need both the current and the next frame for this to work. But when ReShade runs, the next frame is not even started yet, it runs at the same framerate as the game at the end of each frame. That's why interpolation techniques only work on video streams and not in realtime. You can't inject a new frame using information that doesn't exist yet.

Please Log in or Create an account to join the conversation.

  • Posts: 228
2 years 7 months ago - 2 years 7 months ago #3 by Uncle Crassius
I remember one guy at Lucas Arts (RIP) toying around with the idea. Sounded promising at that time. Eurogamer wrote about it . They mentioned issues, thoug. Had the problems been solved the technique would've been widely used by now I guess but that doesn't seem to be the case.
Other than that, wouldn't it be theoretically possible to do it with added input lag by not showing the latest frame?

Please Log in or Create an account to join the conversation.

  • Posts: 39
2 years 7 months ago #4 by Jesped

crosire wrote: You need both the current and the next frame for this to work. But when ReShade runs, the next frame is not even started yet, it runs at the same framerate as the game at the end of each frame. That's why interpolation techniques only work on video streams and not in realtime. You can't inject a new frame using information that doesn't exist yet.


Mmmm but you could take the previous frame and have a 1 frame lag, right?

I already tried the SVP method using an Elgato HD Pro hooked up to a PS4. Despite SVP not being designed for this kind of realtime use at all, it works pretty well when you set Processing Threads to 2 and use low impact settings. It just works. Tried Bloodborne, Uncharted 4, Driveclub, Horizon Zero Dawn and despite some frame inconsistencies and artifacts, it looks better with SVP than without it. Clean games with consistent 30fps like Last Guardian on the Pro look almost like real 60fps.

Please Log in or Create an account to join the conversation.

  • Posts: 3746
2 years 7 months ago #5 by crosire

Uncle Crassius wrote: Other than that, wouldn't it be theoretically possible to do it with added input lag by not showing the latest frame?

To some degree, depending on how busy the GPU. If the game is already pushing it to its limit, then you'll have a hard time scheduling additional work in the right moment (though it got easier on Windows 10 with GPU preemption). If the GPU is mostly idle, then sure, but in that case, you are better off with the "render # frames ahead" option in your driver control panel, which gives you input lag too, but a full frame and not some attempt at interpolating it.
The following user(s) said Thank You: Uncle Crassius

Please Log in or Create an account to join the conversation.

  • Posts: 39
2 years 7 months ago - 2 years 7 months ago #6 by Jesped

crosire wrote:

Uncle Crassius wrote: Other than that, wouldn't it be theoretically possible to do it with added input lag by not showing the latest frame?

To some degree, depending on how busy the GPU. If the game is already pushing it to its limit, then you'll have a hard time scheduling additional work in the right moment (though it got easier on Windows 10 with GPU preemption). If the GPU is mostly idle, then sure, but in that case, you are better off with the "render # frames ahead" option in your driver control panel, which gives you input lag too, but a full frame and not some attempt at interpolating it.


The whole point would be having smooth gameplay in 30fps locked games, or unlocked fps games where you want to go for max quality settings and supersampling. Which isn't possible now I think unles you pack a high $ SLI setup.

Please Log in or Create an account to join the conversation.

  • Posts: 39
2 years 7 months ago - 2 years 7 months ago #7 by Jesped

Uncle Crassius wrote: I remember one guy at Lucas Arts (RIP) toying around with the idea. Sounded promising at that time. Eurogamer wrote about it . They mentioned issues, thoug. Had the problems been solved the technique would've been widely used by now I guess but that doesn't seem to be the case.
Other than that, wouldn't it be theoretically possible to do it with added input lag by not showing the latest frame?


Really interesting article. I'm not aware that the final published game had this tech, played it on PC years ago.

At first I thought input lag would be prohibitive for realtime gaming, but SVP already works pretty fine. Depending on the game, it adds a bit of lag and a bit of motion artifacts but it's very acceptable.

And SVP is working blindly with a captured video stream, without Depth awareness or anything like that.

Please Log in or Create an account to join the conversation.

  • Posts: 228
2 years 7 months ago #8 by Uncle Crassius

Jesped wrote: Really interesting article. I'm not aware that the final published game had this tech, played it on PC years ago.


It think it was only a tech demo and scrapped for the full release.

Please Log in or Create an account to join the conversation.

  • Posts: 39
2 years 7 months ago #9 by Jesped

Uncle Crassius wrote: It think it was only a tech demo and scrapped for the full release.


There is a Siggraph tech paper detailing the whole process: and.intercon.ru/rtfrucvg_html_slides/

Please Log in or Create an account to join the conversation.

  • Posts: 161
2 years 2 months ago #10 by Fu-Bama
This shader captures previous frame to create interlaced effect.
reshade.me/forum/shader-troubleshooting/...et-at-one-pass#26471

Please Log in or Create an account to join the conversation.

  • Posts: 181
2 years 2 months ago #11 by klotim

crosire wrote:

Uncle Crassius wrote: Other than that, wouldn't it be theoretically possible to do it with added input lag by not showing the latest frame?

To some degree, depending on how busy the GPU. If the game is already pushing it to its limit, then you'll have a hard time scheduling additional work in the right moment (though it got easier on Windows 10 with GPU preemption). If the GPU is mostly idle, then sure, but in that case, you are better off with the "render # frames ahead" option in your driver control panel, which gives you input lag too, but a full frame and not some attempt at interpolating it.


Except V-sync, what else could one disable in gpu control panel to have less input lag?

Please Log in or Create an account to join the conversation.

  • Posts: 181
2 years 2 months ago #12 by klotim

crosire wrote:

Uncle Crassius wrote: Other than that, wouldn't it be theoretically possible to do it with added input lag by not showing the latest frame?

To some degree, depending on how busy the GPU. If the game is already pushing it to its limit, then you'll have a hard time scheduling additional work in the right moment (though it got easier on Windows 10 with GPU preemption). If the GPU is mostly idle, then sure, but in that case, you are better off with the "render # frames ahead" option in your driver control panel, which gives you input lag too, but a full frame and not some attempt at interpolating it.


bump

Please Log in or Create an account to join the conversation.