Paused the video thread while a save state was being created or loaded. Performed the save state operation after the fifo became idle. Saved the interrupt status of the video thread into the save state. This helps stabilise the save states in dual core mode in games like Super Mario Galaxy.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7112 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
skidau committed 2011-02-08 10:37:47 +00:00
1 parent 90bae5d57f
commit 855f97841d
9 files changed
+52 -27

No files matched your search

+8 -3
View File
@@ -179,7 +179,8 @@ static volatile struct
// Depending on the threading mode (DC/SC) this can be called
// from either the GPU thread or the CPU thread
static void check_DoState() {
void VideoFifo_CheckStateRequest()
{
if (Common::AtomicLoadAcquire(s_doStateRequested))
{
// Clear all caches that touch RAM
@@ -215,14 +216,18 @@ void VideoBackendHLE::DoState(PointerWrap& p)
Common::YieldCPU();
}
else
check_DoState();
VideoFifo_CheckStateRequest();
}
void VideoBackendHLE::RunLoop(bool enable)
{
VideoCommon_RunLoop(enable);
}
void VideoFifo_CheckAsyncRequest()
{
VideoFifo_CheckSwapRequest();
VideoFifo_CheckEFBAccess();
check_DoState();
}
void VideoBackend::Video_GatherPipeBursted()