Scanline sync hitching

Discussion in 'Rivatuner Statistics Server (RTSS) Forum' started by emperorsfist, Sep 3, 2018.

  1. emperorsfist

    emperorsfist Ancient Guru

    Messages:
    1,972
    Likes Received:
    1,074
    GPU:
    AORUS RTX 3070 8Gb
    Hello, new user reporting in!

    I have an observation regarding the new scanline sync in the latest RTSS beta (no. 4, I believe). I've been testing it the past few evenings and have observed something that has not been mentioned here (yet). When using this method, some games start dipping periodically from 60 to about 58 fps for a split second, creating this "hitching" effect when moving around. What's more interesting is that, according to RTSS, this happens even if everything is still (as in I'm not moving around at all in game). I've tested this in RAGE (opengl - IdTech5), Grim Dawn (dx9, I believe), Wolfenstein 2009 (opengl - IdTech4) and Risen 3 (dx11). On the other hand, Starcraft (the new Battlenet release), has no issues at all. This is happening when using the normal "Sync scanline" method. Sync scanline x2 doesn't do this, and nothing similar happens on /2.

    Is this something to look into, or is it the proverbial "nature of the beast"?
    Thanks in advance!
     
  2. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    I have this issue too at some games, RTSS fault, without it the games run as they should, the problem is the frame time at some. By the way, have you had any other version of RivaTuner that did not have this issue? If you remember the version you were using before this one or other earlier ones, please tell me to try the fps cap to see if the issue is related to RTSS latest version.
     
    Last edited: Sep 18, 2018
  3. emperorsfist

    emperorsfist Ancient Guru

    Messages:
    1,972
    Likes Received:
    1,074
    GPU:
    AORUS RTX 3070 8Gb
    The scanline sync is so far exclusive to the newest betas, previous versions didn't have it. Beta no. 4 had it implemented into the GUI. Beta 5 has a different problem for me where the scanline syncing stops working after I alt-tab. It works great when it's not hitching. Maybe it will get improved upon later. So far we can only experiment with the frame-timing and see what works the best. I've tried sifting through all the available documentation for this feature, but to no avail.
     
  4. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    I guess the better is to wait, since the latest version is still on Beta they are probably testing it deeply. I think the best right now is to experiment with different fps caps to see which one gives the smoother gameplay experience.

    I doubt older versions will be compatible with modern games anyway, such as the upcoming Forza Horizon 4; latest RTSS version works with the game without a problem, with RTSS fps cap works wonderfully, however other games hate the fps cap and just becomes a stutter mess. Far Cry: Primal for example if you use RTSS fps cap the game becomes a stutter fest; however the game has perfect frame time without any programs, which is quite remarkable, good one by Ubisoft. If I remember, older versions of RTSS had less issues with the games.

    I am also experiencing a number of issues with the Witcher 3, but to be honest I don't know if a driver is screwed up in my computer or some program is creating this problem, the other games run fine, so I don't know. Witcher 3 with RTSS fps cap, ugh, a mixture between good and bad, still, way better than no fps cap on that game since Witcher 3 frame time is a disaster in every sense of the word. From 21.2 ms to 30 ms to 15.5 ms, good one CDPR, not giving a single f*** about the frametime on your game and having players fixing it with 3rd party programs. They can't even help people on their forums because the moderators in there don't even know the word "frametime". Shame for such an amazing game to be so badly coded. Give it to any other dev and they'd to a better job.
     
    Last edited: Sep 21, 2018

  5. RealNC

    RealNC Ancient Guru

    Messages:
    4,959
    Likes Received:
    3,235
    GPU:
    4070 Ti Super
    Scanline sync requires a very fast GPU, and also requires that the game does not use much GPU. It works best with games that are very light on the GPU.

    If you lower your resolution and set all graphics settings to lowest so that you get very low GPU usage, does it improve scanline sync?

    The sync/2 option will give you 30FPS, which decreases GPU load of course, which is why it works better when using that.
     
    BlindBison likes this.
  6. emperorsfist

    emperorsfist Ancient Guru

    Messages:
    1,972
    Likes Received:
    1,074
    GPU:
    AORUS RTX 3070 8Gb
    I guess you're right. The first Half Life doesn't hitch, for example. As for sync/2, I am actually satisfied with the results, since it helps in games that are by nature limited only to 30fps (Battle for Middle Earth and the like), where it makes the games much more responsive. 30 fps on a non-gsync/freesync monitor will never be as "good" as it is on consoles and TVs, but scanline syncing helps a lot.
     
    Amoda likes this.
  7. emperorsfist

    emperorsfist Ancient Guru

    Messages:
    1,972
    Likes Received:
    1,074
    GPU:
    AORUS RTX 3070 8Gb
    Strange that you mention Far Cry: Primal. I've used RTSS with it a few months ago and had no problems with it (this was when the scanline syncing option wasn't a thing, though. As for your troubles with Witcher 3, I have no other advice to try and give you. You seem to be having far more serious issues with it than I ever had. You are correct that the ingame framelimiter and vsync are quite bad, but RTSS helped me in this regard. Maybe it's also dependent on the type of GPU and Monitor we use, but I digress. Although I have one more idea. Have you tried to play the game in a window, faking fullscreen with some of the fake fullscreen utilities like borderless gaming? That used to work better for me when I wasn't using RTSS. You get triple-buffered syncing via Windows Aero, and in my experience it was far better than using ingame v-sync.
     
  8. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    I tried borderless gaming but I didn't see much change. For the program to work correctly, the game must be on Windowed and then I should run the program, right? Maybe I am not using it correctly.

    As for the Witcher 3, I can only blame the issue on the fact that I have a VGA monitor but I use an HDMI adapter to be able to use the GTX 1060, why do I say this? Because I have seen Youtube videos of the Witcher 3 with my hardware and the game runs smooth for those people or at least better than it does for me. Seems that for the moment setting max pre-rendered frames to 2 and limiting the fps a bit below the monitor HZ with RTSS gives me a more stable experience.
     
  9. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,414
    Likes Received:
    1,141
    GPU:
    RTX 3070
    @RealNC

    I'm a little late here, but -- what does the Scanline Sync feature actually do?

    Does it prevent screen tearing without having traditional V-sync also enabled?

    Or, does it reduce latency when you already have traditional V-sync enabled?

    If it requires less than half GPU load to work correctly, would that make it obsolete for the vast majority of titles? What percentage of GPU load is being aimed for here to make this function correctly? Just enough to never dip below target framerate?

    I assume if it does what it sounds like you would have to cap your framerate, but is it supposed to be capped just under refresh like the low lag V-sync guides or would it be to the exact monitor refresh?

    I''m sorry for the trouble -- I know that's a lot of questions. Makes me think a write up/guide for using that feature would be fantastic.

    Thanks a lot, I appreciate it.
     
    Last edited: Oct 4, 2018
  10. RealNC

    RealNC Ancient Guru

    Messages:
    4,959
    Likes Received:
    3,235
    GPU:
    4070 Ti Super
    Yes. It prevents tearing without using vsync. In fact, you must disable vsync completely for scanline sync to work correctly.

    It might also work with fast sync, but I haven't experimented with that much. It might work better actually with fast sync on older GPUs, but input lag will be higher.

    It does that by timing the frame limiter in exactly the right way at to hide the tearline outside the visible display area. The end effect is the same as g-sync with locked FPS.

    However, you need a very fast GPU for this to work. For modern games, pretty much a GTX 1080 Ti is needed. A lower-end GPU will probably only work with very old games. In any event, if the GPU is not fast enough, the tearline cannot be hidden correctly, as the GPU is not fast enough to flush the frame buffer within the needed time.

    On my 980 Ti, if GPU load is higher than about 30-40%, it doesn't work correctly. In the majority of modern games, I cannot get the GPU load that low, unless I play in 720p or set all graphics details to low. With non-demanding games it works great. Though I don't actually need it, since g-sync achieves the same thing.

    Scanline sync is a cap in itself. When you enable it, FPS is capped to exactly what's needed in order to hide tearing.
     
    Last edited: Oct 4, 2018
    BlindBison likes this.

  11. emperorsfist

    emperorsfist Ancient Guru

    Messages:
    1,972
    Likes Received:
    1,074
    GPU:
    AORUS RTX 3070 8Gb
    Scanline syncing works instead of Vsync, so disable any ingame (or driver based) sync method you might have activated for that game. Scanline Sync's latency is nearly on Vsync Off level anyway.

    I still primarily use the Blur Busters' method of low lag Vsync (the NativeRefreshRate - 0,1 method), and have used this with Scanline Sync as well (I didn't notice much difference between 59,99 and 60 fps).

    As for how much GPU power it needs, I can't tell you. I have no idea, since I didn't really test it. Starcraft Brood War (on Battlenet) works great with it, but for most games I get the hitching that I've mentioned on the original post of this thread. It needs to be said, however, that I haven't spent much time testing and tweaking it, since I usually don't have much time for tinkering when I get home from work (I am just lazy after that xD).
     
  12. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,414
    Likes Received:
    1,141
    GPU:
    RTX 3070
    @RealNC

    You mentioned that using Scanline Sync is a framerate cap in and of itself.

    Does this mean it operates as though it is unlocked?

    So, for example, does it run a variable unlocked framerate (potentially hundreds of fps on a 60 hz panel) that holds frames when needed to hide the scanline or, does it roughly cap to your monitor refresh rate with some variation when needed to hide the scanlines? I expect it's the latter there so one would not need to set their own manual cap if using this setting.

    Thanks for explaining all of that there, that's very helpful. This seems like a really cool feature. I suppose I could test this for myself at some point, but at the moment I don't have a GPU nearly powerful enough to make use of it presently.

    I asked you previously how you think some console games (like Breath of the Wild) which appear fully V-synced achieve such low latency and I wonder if something like this is ever being done on consoles. I doubt it though going by the GPU cost -- more likely I would guess they're simply reading input very close to frame delivery or something like we talked about before.
     
    Last edited: Oct 4, 2018
  13. RealNC

    RealNC Ancient Guru

    Messages:
    4,959
    Likes Received:
    3,235
    GPU:
    4070 Ti Super
    No. It synchronizes the frame limiter to a display scanline position. The monitor displays images line by line (aka "scanlines") and every time the target line is displayed, the frame limiter allows the next frame to go through. So on a 60Hz monitor, you get a 60FPS cap. Unless you use the x/2 mode, which only syncs every other scanline, giving 30FPS (analogous to 1/2 vsync.) In x*2 mode, it will sync against two scanlines, giving 120FPS, and you get two tearlines, not just one.

    In normal mode, and with a perfect GPU, if you play at 1080p, you have about 1080 scanlines (actually it's more, but let's ignore that here.) If you sync against scanline 540, that would give you 60FPS, with a constant tear in the middle of the screen. That tear will not be moving. It will stay exactly at scanline 540, which is the middle of the screen. If you instead sync against scanline 1080, then the tearing becomes invisible and you get tear-free vsync off.

    GPUs aren't perfect though, so there is jitter. The scanline will dance around a bit. But fortunately, there's more scanlines than just the display height. At 1080p, you have about 1200 scanlines total. Scanlines higher than 1080 are invisible, they exist only for timing purposes. So if you put the tearline within this out-of-screen regions of scanlines, you will get a tear-free image, even with a jittery tear line. The faster the GPU (or the lighter the game is on the GPU,) the lower the tearline jitter will be.

    Testing all this is very easy, and you should be able to see the behavior of the tearline yourself, as you increase/decrease the scanline to sync against. It works best in DX10 and DX11 games with SyncFlush=1 in the RTSS profile file. DX9 and DX12 do not support SyncFlush=1.
     
    Last edited: Oct 4, 2018
    BlindBison likes this.
  14. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,414
    Likes Received:
    1,141
    GPU:
    RTX 3070
    Thanks a lot, that's helpful.

    Bummer DX12 (and I expect other APIs) don't support features like this. I've always felt getting a "Proper" low-latency 30 fps on PC in a similar way to how it often is on console (I don't know how they do it, but many 30 fps console games I've played seem to be properly V-synced while having almost no noticeable input lag) is very difficult to achieve if not outright impossible on the platform.

    Of course there's the Blur Busters guide and steps one can take to drop latency, but at the end of the day, it looks like G-sync is really the only practical solution for getting similar results at low framerates.

    It's tough to comment on stuff like the Scanline Sync since I don't know the programming/technology end behind such a feature, but I would think Rivatuner still has lots of room to grow and experiment between features like that or what we talked about previously regarding framerate caps and moving input reading closer to frame delivery.
     
  15. RealNC

    RealNC Ancient Guru

    Messages:
    4,959
    Likes Received:
    3,235
    GPU:
    4070 Ti Super
    They do. But only SyncFlush=2. If you use SyncFlush=1 in a DX9, DX12 or Vulkan game, it will use SyncFlush=2 instead.

    In that mode, a forced flush is performed. This makes the accuracy of the syncing much better, but it also requires a fast GPU. If the GPU can't keep up, you will get rather severe stutter, where with SyncFlush=1 you instead get random tearing instead of stutter. SyncFlush=2 works best with games where you get very low GPU utilization. In something like Half Life 2 for example, and generally games from that era, it should work perfectly fine even on slower GPUs.

    Forced flush (synchronous flush, to be more correct) is enabled with SyncFlush=2 and it works with all APIs. Asynchronous flush, enabled with SyncFlush=1, only works with DX10, DX11 and OpenGL.

    Some analysis videos of console games suggest some tearline control is going on with 30FPS games on consoles, where there's some tearing sometimes at the very top of the screen. There seems to be some combination of adaptive vsync and vsync-aware frame limiting. This kind of thing is better done by the game itself though. Using an external tool for this has drawbacks.
     
    yobooh likes this.

  16. Amoda

    Amoda Guest

    Messages:
    1
    Likes Received:
    0
    GPU:
    Rtx 2080ti
    Hello
    Hello

    I have rtx 2080ti and playing on 4k (60 hz) TV.

    I set rtss scanline to x/2 and put -30 value.

    What i observe is no tearing at first but there come times while playing AC Odyssey at 2160p (4k) resolution for example when tearing becomes visible(random tearings) and then disappears.

    Although i have rtx 2080ti but i prefer to play ac games at 30 fps mainly.

    The gpu usage never exceeds 58% and tearing becomes visible randomly even when lowering the resolution to (1440p) for example, same thing happens, random tearing.

    Am i missing something?

    Is this the correct way to use rtss scanline sync x/2 for 4k TV playing at 4k resolution at 30 fps?

    Thank you
     
  17. RealNC

    RealNC Ancient Guru

    Messages:
    4,959
    Likes Received:
    3,235
    GPU:
    4070 Ti Super
    @Amoda

    Scanline sync works best when there's not much load on the GPU. So it's difficult for it to work correctly all the time in modern games, especially at 4K.
     

Share This Page