Help with RTSS Scanline Sync

Everything about latency. Tips, testing methods, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
Post Reply
phufbq
Posts: 6
Joined: 31 Jan 2019, 03:50

Help with RTSS Scanline Sync

Post by phufbq » 31 Jan 2019, 04:00

Hello Blur Busters forum,

I was reading up on RTSS new scanline sync feature. I think I get the general principles around how it works. The issue that I am having is configuring it so I can see what is going on?

How do I configure RTSS to show me the scan line locations?

How do I make it so I can see the tear lines in game?

I cannot edit the C:\Program Files (x86)\RivaTuner Statistics Server\Profiles\* files. Even though I am administrator, and I open sublime text as an admin. I am unable to save the files. The error is: "Access is denied".

I only managed to edit the file by copying it into another location, editing it, and then dragging it into position. Windows asks for admin permissions to do this though.

I edited the Global file, with SyncHotkeys=1. But the hotkeys don't seem to be working.

Regards,
Phil

User avatar
RealNC
Site Admin
Posts: 3757
Joined: 24 Dec 2013, 18:32
Contact:

Re: Help with RTSS Scanline Sync

Post by RealNC » 31 Jan 2019, 04:40

phufbq wrote:How do I configure RTSS to show me the scan line locations?
I don't know what you mean by that. You already know where they are. Scanline 1 is at the top of the screen, scanline 1080 is the last at the bottom of the screen (on a 1080p display.) The remaining scanlines don't exist on the display and thus don't correspond to a position on the screen (you could they they exist below the bottom of the screen.)
How do I make it so I can see the tear lines in game?
Sync against a scanline that is some distance above the bottom of the screen. For example, -600 should show the tearline being somewhere near the middle of the screen, depending on your resolution.
I cannot edit the C:\Program Files (x86)\RivaTuner Statistics Server\Profiles\* files. Even though I am administrator, and I open sublime text as an admin. I am unable to save the files. The error is: "Access is denied".
To get around all such issues, I install all my games, as well as game-related tools into C:\Games. Everything in there will be owned by your user account, not by some Windows system account.
I edited the Global file, with SyncHotkeys=1. But the hotkeys don't seem to be working.
It seems the hotkeys only work when scanline sync is disabled (meaning entering "0" in the scanline entry box.)
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

phufbq
Posts: 6
Joined: 31 Jan 2019, 03:50

Re: Help with RTSS Scanline Sync

Post by phufbq » 31 Jan 2019, 06:07

Ok, I have made progress!

My RTSS performance profile and scan information are now showing up in the OSD. That is the first step completed.

The main next issue that I am having is that I cannot see the tear lines. I should be able to see the screen tearing if I move my mouse around in fast circles?

I have completely turned off Freesync on my monitor, I have turned off V-Sync in both AMD Radeon Settings, and in-game. I have turned off motion blur reduction on my monitor as well.

How do I calibrate scanline sync to make the tearing really visible?
I feel like it should be:

[Framerate]
SyncScanline0=1000 (Should be near the bottom of a 1080p screen?)
SyncScanline1=0
SyncPeriods=0
SyncHotkeys=1
SyncFlush=0 (Should cause tearing to be more visible?)

phufbq
Posts: 6
Joined: 31 Jan 2019, 03:50

Re: Help with RTSS Scanline Sync

Post by phufbq » 31 Jan 2019, 06:08

Based on your reply I will try moving the ScanLine0 to a position of -600. I'll see if that means I can see any tearing happening.

User avatar
RealNC
Site Admin
Posts: 3757
Joined: 24 Dec 2013, 18:32
Contact:

Re: Help with RTSS Scanline Sync

Post by RealNC » 31 Jan 2019, 07:14

Yeah, 1000 is way too much. The driver has some delay anyway. Usually about 50-80 scanlines. So when you use 1000, in reality it's going to sync to lower scanline than that.

If you want to make the tearing visible, use something that would put the tearing somewhere in the middle. -600, -800, something like that. If you want to make the tearing invisible, start using numbers like -100, -60, etc, until the tearing disappears at the bottom.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

phufbq
Posts: 6
Joined: 31 Jan 2019, 03:50

Re: Help with RTSS Scanline Sync

Post by phufbq » 31 Jan 2019, 07:37

Ok, I seem to have settled on something that looks and feels pretty good.

I'm using:
Monitor @ 144hz
Scansync Mode: 1x
Scansync position: -25 (According to my monitor the vertical space is 1130 (-1080) = 50. So I went straight into the middle.
This means that I'm getting a tear-free and responsive experience. However, my frame-time is not perfectly smooth.
Now in PUBG @ 2560x1080 I can get between 90-120fps from an RX480, with occasional dips below that. So I don't get a perfectly smooth frametime.

If I set:
Scansync mode: x/2. Then my frames are halved to 72, and the framerate/time is smoother. However, I don't prefer it.

What do you think? Any suggestions?

User avatar
RealNC
Site Admin
Posts: 3757
Joined: 24 Dec 2013, 18:32
Contact:

Re: Help with RTSS Scanline Sync

Post by RealNC » 31 Jan 2019, 08:00

When you can't maintain full FPS (144FPS in this case), s-sync will have severe stutter issues. You can try and set "SyncTimeout=1" in the profile file, which will try and disable s-sync for frame times higher than 1000/144.

But you said you have freesync? Why are you using s-sync then? s-sync is basically "poor man's freesync." Meaning freesync does everything s-sync does, but does it much better.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

phufbq
Posts: 6
Joined: 31 Jan 2019, 03:50

Re: Help with RTSS Scanline Sync

Post by phufbq » 31 Jan 2019, 08:09

Partly it was just curiosity. I just looked like something fun to play around with. I was hoping to achieve smoother frame times, something that I can do with the frame limiter in RTSS (but I guess I should be using PUBG's in-game frame limiter).

Essentially I was looking for something that might even the frame-times a bit, but not force me to reduce my FPS to say 90 out of 144hz.

The only major reason I have for using this though is my monitor. My monitor doesn't allow "Freesync" to run at the same time as the "1ms Motion Blur Reduction" feature. So if I start using s-sync, I can also use the 1ms motion blur reduction.

What does SyncTimeout=0,1,2 actually do? Is SyncTimeout=0 the default?

User avatar
RealNC
Site Admin
Posts: 3757
Joined: 24 Dec 2013, 18:32
Contact:

Re: Help with RTSS Scanline Sync

Post by RealNC » 31 Jan 2019, 08:15

synctimeout=1 means "automatic" disabling of s-sync for slow frames. 0 means this mechanism is disabled. Any other value is interpreted as the amount of microseconds to wait for each frame before disabling s-sync for that frame.

Basically, synctimeout=1 should make it behave like adaptive sync. It will sync frames that are 144FPS or above, it will tear frames that are below 144FPS.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

phufbq
Posts: 6
Joined: 31 Jan 2019, 03:50

Re: Help with RTSS Scanline Sync

Post by phufbq » 01 Feb 2019, 15:36

Discussion on SyncTimeout setting

https://www.reddit.com/user/xyGvot
SyncTimeout=[0,1,specific frametime value] adds functionality similar to NVIDIA’s Adaptive Sync, meaning that you may forcibly disable synchronization when framerate drops below the refresh rate. 0 does not apply the functionality, 1 does it automatically by detecting the monitor's refreshrate (i.e. 16.667ms for 60hz, 13.333ms for 75hz and so forth) or a specific value (i.e. 16667 for 16.667ms).

I am not convinced that SyncTimeout=0 does not apply the functionality. I personally think that SyncTimeout=0 tries to do the automatic calibration.

viewtopic.php?f=2&t=4173#p33330
SyncTimeout – allows adjusting timeout for scanline synchronization. The timeout provides functionality similar to NVIDIA’s Adaptive Sync, meaning that you may forcibly disable synchronization when framerate drops below the refresh rate. Timeout can be specified either explicitly in microseconds (e.g. SyncTimeout=16667 for 60Hz refresh rate) or you can let RTSS to benchmark and calibrate it automatically and set it to 1/N of refresh time when SyncTimeout=N is in [1,8] range).

SyncTimeout=0 - This mode seems to interpolate what my current framerate is, and reduce the FPS (almost like a frame rate limiter)). This seems to be in an attempt to keep the frame time variation lower. It feels a bit like FPS smoothing.

SyncTimeout=1 - I do think this mode behaves closely to what you say. It doesn't reduce the FPS as much, instead keeps it closer to what my FPS would be with s-sync off. However, it does seem to cause a bit more stutter (only a little bit). I think this is trying to set your SyncTimeout (which is a target frame-time to what your native monitor refresh is). Ie 1/144hz = 6.944ms. I think it does deactivate if your GPU cannot exceed the refresh rate (which would explain the less even frame-time.

SyncTimeout=2 - So I've read online that this was meant to calibrate my frame-time automatically. It feels similar to SyncTimeout=1 but seems to not cause as much stuttering.

So I think this is what the settings do:

SyncTimeout=0 - I believe this automatic sync timeout calibration

SyncTimeout=1 - I believe this causes s-sync to turn off if your FPS drops below your native refresh rate.
I.e. N=1
1/N = 1 So for 144hz monitor s-sync turns off when you are less than 144fps. For 60hz monitor this would be if your FPS drops below 60fps

SyncTimeout=2 - Same calculation.
N=2; RefreshRate=144Hz
1/N = 0.5
0.5 X 144Hz = 72Hz. So s-sync will turn off if your FPS drops below 72Hz? But if your frame rate stays above 72fps, then s-sync will try to stay on as long as your FPS stays above 72fps.

What about setting it to an integer frame-time. I think this is like a cut off for s-sync to work. So if my frames are not being delivered faster than X number of milliseconds. Then I will turn off s-sync.
I.e. Let's target 60hz. 1/60 = 16.667ms = 16667ns. So if the GPU cannot delivery frames faster than 16667ns, I think it is turning off s-sync, and tearing will start to occur.

Now I would love to get the actual developer, or perhaps the Chief Blur Buster to correct my reckoning here. I don't want to give false information. I'm not saying there is no documentation, but the documentation is fragmented.

Post Reply