Using a reshade black frame insertion shader fx?

Talk to software developers and aspiring geeks. Programming tips. Improve motion fluidity. Reduce input lag. Come Present() yourself!
Terryneitor
Posts: 5
Joined: 15 May 2020, 12:41

Re: Using a reshade black frame insertion shader fx?

Post by Terryneitor » 15 May 2020, 15:19

Chief Blur Buster wrote:
15 May 2020, 12:51
Terryneitor wrote:
15 May 2020, 12:47
Do you think its posible to use RTSS to implement a software BFI? I Think the last version has some scriting functions now, doing it directly from RTSS would work on exclusive fullscreen with even v-sync off using scanline sync.
RTSS is a frame-level system, not a refresh-cycle-level system.

Comfortable BFI needs to be achieved at the refresh cycle level, not at the frame level.

Technically it may work okay if framerate=Hz guaranteed, but that's hard to do.

The other showstopper is that RTSS historically doesn't have a capability to generate multiple frames from a single frame (yet), because you would need two frames per frame (one visible frame, and one black frame).

Once there is GPU-shader-scripted refresh-cycle-level opreation into RTSS, capable of spawning multiple frames per frame, that will have fantastic applications for a lot of projects.
Well, my particular case is a CRT pc monitor and my target is old school, retro games like emulators and indies. where frames can be set to 60 or 120 fps with RTSS and the resolution and exact 60/120hz frequencies can be set with CRU or crtEmuDrivers.

Terryneitor
Posts: 5
Joined: 15 May 2020, 12:41

Re: Using a reshade black frame insertion shader fx?

Post by Terryneitor » 15 May 2020, 15:21

My question is if were posible to simply use the OSD function of RTSS, set it fullscreen black, and script it in a way that would show one frame in and out.

User avatar
Chief Blur Buster
Site Admin
Posts: 7555
Joined: 05 Dec 2013, 15:44
Location: Toronto, Ontario, Canada
Contact:

Re: Using a reshade black frame insertion shader fx?

Post by Chief Blur Buster » 15 May 2020, 16:22

Terryneitor wrote:
15 May 2020, 15:21
My question is if were posible to simply use the OSD function of RTSS, set it fullscreen black, and script it in a way that would show one frame in and out.
OSD function is frame-level at this time. You'd be dropping 1 frame to get BFI. For example, 120 frames per second generating 60fps visible, 60fps black. Why throw away frames to get them blacked out, and still achieve the same persistence? Might as well keep the original frames.

If game was running at only 60fps, you'd only be able to do 30fps visible, 30fps black, with most current frame-level processors (RTSS, SweetFX, or whatever). One needs a refresh-cycle-level processor.

The only way to reduce motion blur is to add more frames (whether real frames or black frames), since persistence-based motion blur is based on pixel visibility time.

To do so, requires RTSS to output more frame rate than the game's frame rate.

Can RTSS do that yet; output more than one frame per game frame? Last I checked; it did not seem to be able to do that.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

       To support Blur Busters:
       • Official List of Best Gaming Monitors
       • List of G-SYNC Monitors
       • List of FreeSync Monitors
       • List of Ultrawide Monitors

Terryneitor
Posts: 5
Joined: 15 May 2020, 12:41

Re: Using a reshade black frame insertion shader fx?

Post by Terryneitor » 15 May 2020, 17:54

Chief Blur Buster wrote:
15 May 2020, 16:22
Terryneitor wrote:
15 May 2020, 15:21
My question is if were posible to simply use the OSD function of RTSS, set it fullscreen black, and script it in a way that would show one frame in and out.
OSD function is frame-level at this time. You'd be dropping 1 frame to get BFI. For example, 120 frames per second generating 60fps visible, 60fps black. Why throw away frames to get them blacked out, and still achieve the same persistence? Might as well keep the original frames.

If game was running at only 60fps, you'd only be able to do 30fps visible, 30fps black, with most current frame-level processors (RTSS, SweetFX, or whatever). One needs a refresh-cycle-level processor.

The only way to reduce motion blur is to add more frames (whether real frames or black frames), since persistence-based motion blur is based on pixel visibility time.

To do so, requires RTSS to output more frame rate than the game's frame rate.

Can RTSS do that yet; output more than one frame per game frame? Last I checked; it did not seem to be able to do that.
The emulators (and other games capped) are outputing 60fps, while the monitor is at 120hz, in reality i would not throw away any frames since its rendering one frame every 16.7ms or so. I already tested this with the DesktopBFI program from one user here before, and it works as intented. but the program sometime crashes and there is the multi monitor issue as well. maybe it can be done with the option scanline sync x2? or maybe you are right, and it can't be done yet in that way.

User avatar
Chief Blur Buster
Site Admin
Posts: 7555
Joined: 05 Dec 2013, 15:44
Location: Toronto, Ontario, Canada
Contact:

Re: Using a reshade black frame insertion shader fx?

Post by Chief Blur Buster » 16 May 2020, 00:30

Terryneitor wrote:
15 May 2020, 17:54
The emulators (and other games capped) are outputing 60fps, while the monitor is at 120hz, in reality i would not throw away any frames since its rendering one frame every 16.7ms or so. I already tested this with the DesktopBFI program from one user here before, and it works as intented. but the program sometime crashes and there is the multi monitor issue as well. maybe it can be done with the option scanline sync x2? or maybe you are right, and it can't be done yet in that way.
RTSS would have to be re-architectured to output more than one frame per frame, because BFI is a refresh-cycle-level operation, rather than a frame-level operation. So you need 60 visible frames and 60 black frames for a grand total of 120 frames per second temporally 8.3ms apart, despite the game outputting frames every 16.7ms apart.

RTSS currently cannot, as far as I know, output 2 frames per frame at this time, and the OSD compositor is at the per-frame level. However, theoretically, RTSD can be reprogrammed/source code modified to generate multiple frames per frame.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

       To support Blur Busters:
       • Official List of Best Gaming Monitors
       • List of G-SYNC Monitors
       • List of FreeSync Monitors
       • List of Ultrawide Monitors

Terryneitor
Posts: 5
Joined: 15 May 2020, 12:41

Re: Using a reshade black frame insertion shader fx?

Post by Terryneitor » 19 May 2020, 06:52

Chief Blur Buster wrote:
16 May 2020, 00:30
Terryneitor wrote:
15 May 2020, 17:54
The emulators (and other games capped) are outputing 60fps, while the monitor is at 120hz, in reality i would not throw away any frames since its rendering one frame every 16.7ms or so. I already tested this with the DesktopBFI program from one user here before, and it works as intented. but the program sometime crashes and there is the multi monitor issue as well. maybe it can be done with the option scanline sync x2? or maybe you are right, and it can't be done yet in that way.
RTSS would have to be re-architectured to output more than one frame per frame, because BFI is a refresh-cycle-level operation, rather than a frame-level operation. So you need 60 visible frames and 60 black frames for a grand total of 120 frames per second temporally 8.3ms apart, despite the game outputting frames every 16.7ms apart.

RTSS currently cannot, as far as I know, output 2 frames per frame at this time, and the OSD compositor is at the per-frame level. However, theoretically, RTSD can be reprogrammed/source code modified to generate multiple frames per frame.
I undertand that now, thanks. I was talking a general use case, but I forgot to say that in my case, I found a hack/methot for the emulator to output 120fps. that is way the desktopBFI app worked but it crashes randomly (setting compatibility mode to win 7, kinds of makes it a better i think) and works only windewd mode and its a hustle to make it work on multimonitor set ups, that is why I wondered if there is a way to use OSD of rtss?

User avatar
Chief Blur Buster
Site Admin
Posts: 7555
Joined: 05 Dec 2013, 15:44
Location: Toronto, Ontario, Canada
Contact:

Re: Using a reshade black frame insertion shader fx?

Post by Chief Blur Buster » 20 May 2020, 16:21

Terryneitor wrote:
19 May 2020, 06:52
I undertand that now, thanks. I was talking a general use case, but I forgot to say that in my case, I found a hack/methot for the emulator to output 120fps.
That could allow RTSS, Reshade and SweetFX scripts to work, assuming the scripting language had a way to add a black frame to every other frame (preferably the latter duplicate frame, not earlier frame, to prevent input lag that is created if you black out the first instead of second frame repeat).

You'd have to ensure perfect 120fps at 120Hz, to avoid erratic BFI flicker caused by the frames-vs-refreshes dissonance. To prevent erratic BFI flicker during erratic frame rates, requires refresh-cycle-level processing rather than frame-level processing.

Refresh-cycle-level processing is required on many algorithms such as software emulated VRR (like www.testufo.com/vrr), software overdrive, and software BFI.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

       To support Blur Busters:
       • Official List of Best Gaming Monitors
       • List of G-SYNC Monitors
       • List of FreeSync Monitors
       • List of Ultrawide Monitors

Post Reply