From 73c8b1ada9145b7b54a016e8faac25d1237adb8f Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 6 Dec 2020 15:59:15 +0200 Subject: [PATCH] Toggle warp mode frame skip between 10 and 11 frames. --- od-win32/direct3d.cpp | 4 +++- od-win32/direct3d11.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/od-win32/direct3d.cpp b/od-win32/direct3d.cpp index bd73dbe0..83e4c7ce 100644 --- a/od-win32/direct3d.cpp +++ b/od-win32/direct3d.cpp @@ -3924,9 +3924,11 @@ static void xD3D_showframe (int monid) if (currprefs.turbo_emulation) { if ((!(d3d->dpp.PresentationInterval & D3DPRESENT_INTERVAL_IMMEDIATE) || d3d->variablerefresh) && d3d->wasstilldrawing_broken) { static int frameskip; + static int toggle; if (currprefs.turbo_emulation && frameskip-- > 0) return; - frameskip = 10; + frameskip = 10 + toggle; + toggle = !toggle; } D3D_showframe2 (d3d, false); } else { diff --git a/od-win32/direct3d11.cpp b/od-win32/direct3d11.cpp index 2ab11c26..31045b2e 100644 --- a/od-win32/direct3d11.cpp +++ b/od-win32/direct3d11.cpp @@ -3256,9 +3256,11 @@ static void do_present(struct d3d11struct *d3d) d3d->syncinterval = syncinterval; if (currprefs.turbo_emulation) { static int skip; + static int toggle; if (--skip > 0) return; - skip = 10; + skip = 10 + toggle; + toggle = !toggle; if (os_win8) presentFlags |= DXGI_PRESENT_DO_NOT_WAIT; syncinterval = 0; -- 2.47.3