aboutsummaryrefslogtreecommitdiff
path: root/plugins/dfxvideo/gpu.c
diff options
context:
space:
mode:
authornotaz2011-02-10 01:16:49 +0200
committernotaz2011-02-10 02:08:04 +0200
commitf1bad6e15fb5d34fb7269936068fc2540b461a4f (patch)
tree0719fdfa82bed22c79464ad9108bd57946b62d28 /plugins/dfxvideo/gpu.c
parent1df403c52368a3930b67dedabf8c0e1d522f1cc3 (diff)
downloadpcsx_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/dfxvideo/gpu.c')
-rw-r--r--plugins/dfxvideo/gpu.c11
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
}
////////////////////////////////////////////////////////////////////////