Playing any game in windowed mode forces Vsync enabled (unless somehow disabled at driver level) as Windows itself forces Vsync enabled for a smooth experience and windowed mode must ultimately render through Windows rather than directly presenting through DirectX--which allows direct access to hardware while in "exclusive" or "immediate" mode. Furthermore, you get all the benefits of newer versions of DirectX rather than just some of the benefits (for a DX9 game) as of course the Windows renderer uses the latest version of DirectX it supports. However, since the application no longer has direct control over graphical memory and rendering priority, Windows is free to assign that memory elsewhere whenever it feels like it, leading to problems if you're on a threshold where you're near running out of VRAM; what happens is that Windows can assign it elsewhere, THEN figure out "oh wait this game needs it", all too late leading to dropped frames. Windows is a generalized operating system, not designed for any one thing except general workstation and server usage, so when you let it take control it will have priorities you don't expect (process priority also affects this, which is why all Windows game systems, even high-end ones only running games in fullscreen, should use ProcessLasso; I've increased FPS by 10+ on taxxed systems compared to setting priority manually). On my current rig--I'm in-between high-end cards and using a GTX 560 Ti atm--Borderless Windowed on Windows 10 with Skyrim and FNV leads to much more instances of sub-60 performance than running it fullscreen.
I think what's confusing is that, AFAIK, Skyrim has one Vertical Sync variable called "iPresentInterval"--this being an integer makes me think it may be the one of the D3DPRESENT_INTERVAL_xxx D3D9 flags such as "1" == D3DPRESENT_INTERVAL_ONE--and disabling this causes all sorts of problems in scripting and elsewhere. This is probably because the game, being essentially single-threaded in key parts of its frame logic (AI isn't even enabled multi-threaded by default), is designed around the game engine simply blocking (busy wait) until the render is complete, and timings can get all out of whack. I know in Skyrim you can't even force Vsync in driver profiles and have it work right 100% with iPresentInterval set to 0, probably because its timings are so tight and dependent on that being enabled, perhaps causing stuff like race conditions it doesn't expect. Ever wonder why a game doesn't immediately respond to ALT+F4? If a lagging game doesn't respond immediately to ALT+F4 (such as all of the Gamebryo games I know of and most older games in general) then likely the the Windows "message pump" (event queue) is being blocked by something like just waiting for the game to finish rendering a frame. Ever wonder why a network game is so laggy in framerate with a bad connection? Same reason: it's likely blocking frames waiting on a network device. Some more technical info here: https://msdn.microso..._Considerations
Now what I don't know is whether the lack of multi-threadedness is due to the cross-platform Gamebryo engine--older cross-platform engines are generally extremely poor at multithreaded operations because some of their supporting consoles have convoluted ways of implementing them--or Bethesda's own adaptation of the licensed engine. But either way proper multi-threading in game engines is dark magic that is quite prohibitive to insane to implement on a cross-platform engine.
Oh, and one more thing:
"Fullscreen mode at non-native resolution means that instead of shifting graphics output to a rectangle on the screen (something relatively fast), your computer instead has to scale the picture from the game resolution to your native resolution with bicubic filtering or better (expensive!)."
This is true and untrue. Yes a non-native resolution needs to scale on a monitor for it not to show up in a box, but usually the monitor itself does the scaling unless you changed your GPU settings for your GPU to do it instead. The game engine can also do it however it wants and sometimes has its own function for scaling which will eat up more resources, usually to make things look consistent like the UI. AFAIK the TES/FO games don't do any scaling on its own and should show up in a box.
Edited by generalmx, 20 October 2016 - 02:44 AM.