diff options
author | notaz | 2011-02-10 01:16:49 +0200 |
---|---|---|
committer | notaz | 2011-02-10 02:08:04 +0200 |
commit | f1bad6e15fb5d34fb7269936068fc2540b461a4f (patch) | |
tree | 0719fdfa82bed22c79464ad9108bd57946b62d28 /plugins | |
parent | 1df403c52368a3930b67dedabf8c0e1d522f1cc3 (diff) | |
download | pcsx_rearmed-f1bad6e15fb5d34fb7269936068fc2540b461a4f.tar.gz pcsx_rearmed-f1bad6e15fb5d34fb7269936068fc2540b461a4f.tar.bz2 pcsx_rearmed-f1bad6e15fb5d34fb7269936068fc2540b461a4f.zip |
dfxvideo: fix frameskip issue
if display is never moved/resized, it's never updated in
frameskip mode. Detect this.
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/dfxvideo/gpu.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/plugins/dfxvideo/gpu.c b/plugins/dfxvideo/gpu.c index 7372ba4..50d45d5 100644 --- a/plugins/dfxvideo/gpu.c +++ b/plugins/dfxvideo/gpu.c @@ -218,6 +218,8 @@ static void updateDisplay(void) // UPDATE DISPLAY bSkipNextFrame = FALSE; DoBufferSwap(); // -> swap } + + bDoVSyncUpdate=FALSE; // vsync done } //////////////////////////////////////////////////////////////////////// @@ -406,11 +408,14 @@ void CALLBACK GPUupdateLace(void) // VSYNC } else { - if(bDoVSyncUpdate && !UseFrameSkip) // some primitives drawn? - updateDisplay(); // -> update display + if((bDoVSyncUpdate && !UseFrameSkip) // some primitives drawn? + || bDoVSyncUpdate >= 8) // not syned for a while + updateDisplay(); // -> update display } } - bDoVSyncUpdate=FALSE; // vsync done + + if(bDoVSyncUpdate) // if display not synced + bDoVSyncUpdate++; // count how many times } //////////////////////////////////////////////////////////////////////// |