Borderless/Windowed Mode is broken (Not Respecting DWM Triple-Buffering)

TauntyArmordillo·2/26/2017, 7:53:28 PM·1 votes·1,261 views
G2's computers are lagging hard according to Ocelote * r/leagueoflegends

Bug: even with the "enable v-sync" flag deselected, the game appears to impose its own buffer swap chain on top of DWM's frame handler.

Expected behavior: in Windowed/Borderless mode, drawn frames should be presented to DWM directly.

This appears to be a symptom of lazy coding where the game always treats the output as a physical display, and unconditionally imposes its own buffer swap chain.

In effect, if you have the game running in Windowed/Borderless mode, rendered frames would be going through three redundant layers of buffering pipelines.

This is manifesting as having huge jitters/slow-motion-to-stutter cycles when FPS is uncapped and extremely high. The game's own swap chain is not discarding frames properly, and the already-stuttery sequence of frames is then presented to the DWM, even though DWM itself is handling framebuffering correctly.

Proposed short-term workaround: If Windowed/Borderless mode is selected, force enable the in-game V-sync, and grey-out the flag in the options menu. Frames would still go through redundant buffer pipelines, but it would resolve the jitter issue and be correctly synced to the DWM

0 Comments