Does “Windowed Mode” force Fast Sync style Triple Buffering OR Linear style triple buffering?

Discussion in 'Videocards - NVIDIA GeForce Drivers Section' started by BlindBison, Jul 14, 2021.

  1. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,414
    Likes Received:
    1,141
    GPU:
    RTX 3070
    For example, we have several different types of V-Sync that exist:

    1) traditional double buffering
    2) linear triple buffering like what you can force via the Nvidia control panel in OpenGL games (this one does not toss out frames and doesn’t look as stuttery as Fast Sync, but of course fast sync has lower input delay and can run at arbitrary FPS above monitor refresh)
    3) fast sync style triple buffering (sometimes called “true” triple buffering for some reason like in the Digital Foundry video on V-Sync)
    4) Adaptive V-Sync, but that’s irrelevant to this question

    My question is the title, namely does Windowed mode force fast sync style triple buffering where frames are lost/thrown out or does it force linear style triple buffering like they found in the Nvidia control panel?

    For me, Fast Sync is a hard no-go due to how stuttery it makes everything look and since windowed mode runs at arbitrary framerates above monitor refresh it seems to me that’s what Windowed mode is doing — fast sync style triple buffering I mean, but correct me if I’m wrong there of course.

    Have I got that right? Thanks! From a pure performance standpoint I’d think you’d be better served by enabling exclusive full screen mode and forcing fast sync via the control panel over using Windowed mode since windowed mode incurs a small performance penalty from what I’ve read. Somewhat related I wish you could force the linear style triple buffering where frames are not dropped via the control panel in modern games, not just OpenGL ones, but alas it’s not to be.
     
  2. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,414
    Likes Received:
    1,141
    GPU:
    RTX 3070
    @RealNC sorry to bother you, but historically you’ve been a wealth of knowledge for this kind of thing. Thanks!
     
  3. aufkrawall2

    aufkrawall2 Ancient Guru

    Messages:
    4,363
    Likes Received:
    1,822
    GPU:
    7800 XT Hellhound
    Windowed mode is worse than Fast Sync, as the game and DWM compete for resources and you get additional frame drops under high GPU load. It's bad, don't bother.
     
    DaRkL3AD3R and BlindBison like this.
  4. Astyanax

    Astyanax Ancient Guru

    Messages:
    17,016
    Likes Received:
    7,355
    GPU:
    GTX 1080ti
    majority of games will create a dxgi factory at the maximum capabilities of the OS unless specifically limited in the code, on windows 10 most stuff will bypass the desktop compositor similar to FSO presentation and background DWM is suspended, presenting directly to the display with the uppermost composited window.

    Windowed presentation is unlinked double buffered vsynced composition with the application presenting each frame directly as its finished, exceeding the refresh rate will still get you a latency penalty when the flip occurs between the application buffer and the compositor buffer, a frame limit beneath refresh (or at the average framerate) will achieve the best latency in the same way as fullscreen before flip discard was a thing.
     
    Last edited: Jul 14, 2021
    Smough, Kelutrel and BlindBison like this.

  5. RealNC

    RealNC Ancient Guru

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

    In Windowed mode, DWM will pick the latest available frame from the game and compose that into the screen. So it works like fast sync, except with more lag, since DWM has its own frame buffers on top of the ones from the game.

    This is only true if you select "borderless windowed mode" in the game though. If you select fullscreen mode in a DX11 game and have FSO enabled, the resulting windowed mode is not doing any of that. The game gets direct control of the screen just like exclussive fullscreen does.

    Things get more complicated with MPO though (multiplane overlay.) This is supported by recent nvidia drivers (since 461.09, IIRC) and when MPO is possible, then windowed mode, even with borders, can give a game more direct control of the screen, with tearing and all. Not sure when this is possible and when not. Could be specific to DX12.

    So it's a mess. You always need to test each game yourself.

    I haven't found any games that do this. If I select "borderless windowed mode" in any game, DWM is never bypassed.
     
    Last edited: Jul 15, 2021
  6. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,414
    Likes Received:
    1,141
    GPU:
    RTX 3070
    Thanks all, that's really helpful, much appreciated
     
  7. MrBonk

    MrBonk Guest

    Messages:
    3,385
    Likes Received:
    283
    GPU:
    Gigabyte 3080 Ti
    I've been able to get MPO to work on a few titles. UE4 seems to support it properly as now on games where I was unable to get UE4 to properly recognize DSR and switch to those resolutions, even if set in in the Ini files and with the desktop set to that resolution. Using borderless +DSR Resolution set as desktop and then using the drivers to force Vsync off works fine.
    I've also tested it on a few other titles like some Unity games that dont' support FSE at all and it worked.
    I tried PCSX2 and it does not work sadly. (You can use the EnableVsyncWindowFlag=true setting in pcsx2ui.ini with OGL to get proper vsync. But you have to have it set to stretch to window. Which either means a widescreen hack, or a custom 4:3 resolution first. And depending on the game, using MTVU or instant VU speedhacks will actually cause slowdown with Vysnc)
    It also does not work with Phantasy Star Online 2's new DX11 client (Which performs like hot garbage borderless with tons of stutter and frame pacing issues. Only way to fix that is to use DXVK which gets you slightly more input lag and it doesn't like RTSS at all)

    Easiest way to see if it works is just to force Vsync Off or 1/2 refresh in a given title.
     
  8. aufkrawall2

    aufkrawall2 Ancient Guru

    Messages:
    4,363
    Likes Received:
    1,822
    GPU:
    7800 XT Hellhound
    DXVK doesn't cause input lag when comparing apples to apples (prerenderlimit 1 via driver and DXVK config) and recent (beta) versions of RTSS work better with DXVK then it used to. It also recently got improvements for lower latency with vsync in at least some titles.
    I use DXVK with scanline sync in HotS and it works well.
     
  9. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,414
    Likes Received:
    1,141
    GPU:
    RTX 3070
    Sorry, what's MPO? Thanks,
     
  10. MrBonk

    MrBonk Guest

    Messages:
    3,385
    Likes Received:
    283
    GPU:
    Gigabyte 3080 Ti
    In PSO2 specifically I can tell there is *some* latency when in FSE mode with Vsync enabled (Even with RTSS framerate limit trick) compared to it's default DX11 windowed + Scanline Sync in Windows 7. And also compared to the old DX9 render + FSE mode and Vsync on (+ RTSS frame limit trick) It's not a lot but it's noticeable to me. I played the game for 500 hours on the old engine, so i'm kind of used to how it felt. The camera feels worse regardless because for whatever reason they increased the deadzone on an analog stick compared to the DX9 engine for god knows why.

    RTSS works fine in this game as long as you don't have the OSD showing, otherwise the game will lock up/crash when the new engine is trying to switch to base PSO2.
    https://devblogs.microsoft.com/directx/dxgi-flip-model/
    Nvidia added support for this recently in Drivers on W10, allowing a game to bypass the compositor in Windowed/borderless. (Will behave the same as FSE essentially and get proper frame pacing,etc)
     
    BlindBison likes this.

  11. BlindBison

    BlindBison Ancient Guru

    Messages:
    2,414
    Likes Received:
    1,141
    GPU:
    RTX 3070
    Thanks, that's great to know
     
  12. Mda400

    Mda400 Maha Guru

    Messages:
    1,089
    Likes Received:
    200
    GPU:
    4070Ti 3GHz/24GHz
    Correct me if i'm wrong but I interpret MPO as something different, like for example you have a toast notification from Windows shown over a fullscreen application that is already bypassing the compositor (and tearing as a result).

    With MPO, the toast notification wouldn't force the fullscreen application that bypasses the compositor, to become synchronized with the display while the notification is on-screen (which can cause delay otherwise).

    I know that some applications that use fullscreen optimizations (like borderlands 2), allow tearing if they are set to a borderless window mode (which has been happening ever since fullscreen optimizations was a visible toggle somewhere around the Windows 10 April 2018 update).
     
    Last edited: Jul 23, 2021
  13. MrBonk

    MrBonk Guest

    Messages:
    3,385
    Likes Received:
    283
    GPU:
    Gigabyte 3080 Ti
    As far as I could read up the MPO supporting application gets it's own dedicated space alpha blended back into the main view port.
    It's different than Fullscreen Optimizaitons because FSO requires the game support Full Screen Exclusive to begin with, because the whole point of it was to get FSE mode to behave similar to Borderless with it's benefits.
    MPO is about letting Windowed or Borderless applications directly sync with the display (Or not Sync if chosen) independent of whatever else is happening on screen.
    Previously attempting to Force Vsync on or off in these scenarios never worked at least in my experience as they were always bound by whatever DWM wanted to do with the output. In applications where MPO works you can get full control and forcing Vsync On or Off works in addition to things like Fast Sync/Scanline Sync(If you force Vsync Off) or 1/2 refresh rate vsync to get proper frame pacing for a 30hz game.

    I'm no programmer though so I could be reading it wrong.
     
    Mda400 and BlindBison like this.
  14. tsunami231

    tsunami231 Ancient Guru

    Messages:
    14,725
    Likes Received:
    1,855
    GPU:
    EVGA 1070Ti Black
    I read most this and just came away scratching my head what mess. I think FSO is enabled for everything for me and for most part I use Windowed (fullscreen) if it option other I use Fullscreen.

    Vsync is alway enabled either via NVCP or in game reguardless of window/fullscreen
     

Share This Page