So RTSS has this scanline sync feature that syncs up fps limit to the monitor’s refresh rate, and it works much better for me than limiting the fps to 120 (for 120hz) because with scanline sync I can adjust the tearline and basically get rid of it without having vsync on. Is there such an equivalent for special k? Or some way to tweak the settings to give the same affect?
Kaldaien said this on Steam:
That’s fundamentally incompatible with flip model. Tearing in flip model is an entirely different kind of artifact. There wouldn’t be much benefit to scanline sync either way, though. My framerate limiter in flip model is capable of starting a new frame without causing any waiting. It’s basically VSYNC without the penalties of VSYNC. Scanline sync would only be helpful in fullscreen exclusive mode, and I don’t see any reason to support that.
So there’s no way to get rid of a tearline with special k other than enabling vsync?
Flip Model runs in Borderless Windowed mode, which already has V-Sync enabled no matter what you set it to anywhere else. There won’t be any tearing.
Flip Model + Borderless Windowed > Exclusive Fullscreen
That’s if you have the dwm enabled, I’ve got it disabled though.
Does special k remove the input latency introduced by dwm?
Yes, special K with flip model has better latency than exclusive fullscreen.
Try the version linked here and test with the new low latency mode in the framerate limiter
I did some tests and the input lag is the same if not worse than with RTSS, even with the input lag mode. Also, it doesn’t bypass dwm’s latency overhead at all, so it’s still better to play with dwm off, or in exclusive fullscreen wherein hopefully it will disable the dwm, but in the case with special k, I am unable to adjust the tearline like I can with rtss.
I am on windows 8.1 though.
DXGI_SWAP_EFFECT_FLIP_DISCARD was introduced with Windows 10. Windows 8.1 is still limited to at best using DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL, which I guess might not be as performant as flip discard.
Special K basically makes use of the very latest features of Windows 10 to enable low latency in window mode.
It’s actually DWM Tearing that distinguishes Windows 8.1 and Windows 10 here.
Setting Presentation Interval to 0 in Windows 8.1 does not disable VSYNC in windowed mode. The ability to turn VSYNC off in windowed mode was added in Windows 10 Creator’s Update.
Is that windows 10 1909 or the newer 20xx?
There is no DWM latency in flip model when you have the game properly setup with a framebuffer resolution that matches the desktop and don’t have any stupid push notifications, etc. drawing over top your game.
As soon as the game’s window is setup correctly it’s a straight shot into the memory that had previously been reserved for the DWM. Compositing is disabled, game renders directly to backbuffer for scan-out on the next refresh cycle.
It’s indistinguishable from fullscreen exclusive, except that it’s 1) more stable, 2) faster, 3) more flexible, with latency tuning options that fullscreen exclusive does not have.
This is fundamentally wrong, though:
EFS with custom limiter or no limit (VSYNC OFF) will always have the lowest possible delay. And “just” enabling FLIP mode does not any magic - there are at least 4 different types of flip mode and depending which is used for your window you can get composition delay OR/AND framerate limitations.
New FSO mode on WIn10 is a virtual equivalent of EFS but it NEVER will be faster (just equal) by definition when we talk VSYNC OFF.
That being said, you are free to entertain me and explain how can you be physically faster than this model:
Control the render queue length dynamically, the way that flip model allows. Render latency drops a good 20-50 ms.
And how is that gonna be faster than FSE with MaxRenderFrameQueue=1? How do you even drop latency by 20ms when you run at 300FPS in FSE where frame-to-frame latency already sub 5ms?
Unless you talk about dropping/discarding frame then I’m not sure it is good idea:
Who runs at 300 FPS in Fullscreen Exclusive? Why are they doing that?
And more to the point, why do you think that 300 FPS in windowed mode is somehow any different? I assume the way you’re getting to that numbr is by turning VSYNC off. You can do that in windowed mode too on modern versions of Windows.
Frame-to-frame latency is not a good measure of anything, those frames still have to go through a render queue befor they get scanned out or dropped. Back pressure on that queue increases latency, just by optimizing the delivery time you can get a frame presented at the exact time it scans out and now your queue length is 0.
It is all started with @Darktalon quote where he stated you can ge faster than best case scenarion with FSE:
Here’s the dirty secret about V-Sync off… it doesn’t care when frames are delivered, the turn-around time for an action making it to screen is higher than if you optimize for screen refresh.
CPU’s working 3 frames ahead of the GPU here, framerate is higher, but latency is also higher.
CPU’s being kept from working too far ahead of GPU and latency is much tigher despite the lower framerate.