summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon
diff options
context:
space:
mode:
authornitsuja <nitsuja-@hotmail.com>2012-01-01 13:52:31 -0800
committerskidau <skidau@gmail.com>2012-05-26 13:18:08 +1000
commitae242e5675b71c6c7019b31bde0abd61ba8be875 (patch)
tree131a9f47d6938e759fe66132bd6a8b0b6ed2828b /Source/Core/VideoCommon
parent2be579e8bad372e7a7433a7d6300939ecef4c654 (diff)
added some missing VideoBackendHardware data to savestates. I think this makes savestates more stable (fewer "GFX FIFO: Unknown Opcode" errors) in dual core mode.
also added some extra verification markers around here, to potentially give better info on future version mismatches
Diffstat (limited to 'Source/Core/VideoCommon')
-rw-r--r--Source/Core/VideoCommon/Src/MainBase.cpp8
-rw-r--r--Source/Core/VideoCommon/Src/VideoState.cpp19
2 files changed, 24 insertions, 3 deletions
diff --git a/Source/Core/VideoCommon/Src/MainBase.cpp b/Source/Core/VideoCommon/Src/MainBase.cpp
index 4df2361ea9..df29fef606 100644
--- a/Source/Core/VideoCommon/Src/MainBase.cpp
+++ b/Source/Core/VideoCommon/Src/MainBase.cpp
@@ -186,6 +186,14 @@ void VideoBackendHardware::InitializeShared()
void VideoBackendHardware::DoState(PointerWrap& p)
{
VideoCommon_DoState(p);
+ p.DoMarker("VideoCommon");
+
+ p.Do(s_swapRequested);
+ p.Do(s_efbAccessRequested);
+ p.Do(s_beginFieldArgs);
+ p.Do(s_accessEFBArgs);
+ p.Do(s_AccessEFBResult);
+ p.DoMarker("VideoBackendHardware");
// Refresh state.
if (p.GetMode() == PointerWrap::MODE_READ)
diff --git a/Source/Core/VideoCommon/Src/VideoState.cpp b/Source/Core/VideoCommon/Src/VideoState.cpp
index 5a677a2460..8b1045b71f 100644
--- a/Source/Core/VideoCommon/Src/VideoState.cpp
+++ b/Source/Core/VideoCommon/Src/VideoState.cpp
@@ -31,29 +31,42 @@ static void DoState(PointerWrap &p)
{
// BP Memory
p.Do(bpmem);
- // CP Memory
+ p.DoMarker("BP Memory");
+
+ // CP Memory
p.DoArray(arraybases, 16);
p.DoArray(arraystrides, 16);
p.Do(MatrixIndexA);
p.Do(MatrixIndexB);
p.Do(g_VtxDesc.Hex);
p.DoArray(g_VtxAttr, 8);
+ p.DoMarker("CP Memory");
// XF Memory
p.Do(xfregs);
p.DoArray(xfmem, XFMEM_SIZE);
- // Texture decoder
+ p.DoMarker("XF Memory");
+
+ // Texture decoder
p.DoArray(texMem, TMEM_SIZE);
+ p.DoMarker("texMem");
// FIFO
Fifo_DoState(p);
+ p.DoMarker("Fifo");
CommandProcessor::DoState(p);
- PixelEngine::DoState(p);
+ p.DoMarker("CommandProcessor");
+
+ PixelEngine::DoState(p);
+ p.DoMarker("PixelEngine");
// the old way of replaying current bpmem as writes to push side effects to pixel shader manager doesn't really work.
PixelShaderManager::DoState(p);
+ p.DoMarker("PixelShaderManager");
+
VertexShaderManager::DoState(p);
+ p.DoMarker("VertexShaderManager");
// TODO: search for more data that should be saved and add it here
}