mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-03 12:12:06 +00:00
Save more of the GPU's state, fix a crash.
Well, ReapplyGfxState() seems kinda dangerous now...
This commit is contained in:
parent
1d9f27f3e3
commit
ea9f0be28a
@ -33,9 +33,11 @@ void __GeDoState(PointerWrap &p)
|
||||
{
|
||||
p.Do(gstate);
|
||||
p.Do(gstate_c);
|
||||
p.Do(gpuStats);
|
||||
|
||||
ReapplyGfxState();
|
||||
gpu->InvalidateCache(0, -1);
|
||||
gpu->DoState(p);
|
||||
p.DoMarker("sceGe");
|
||||
}
|
||||
|
||||
|
@ -1057,7 +1057,7 @@ void GLES_GPU::ExecuteOp(u32 op, u32 diff) {
|
||||
break;
|
||||
|
||||
default:
|
||||
DEBUG_LOG(G3D,"DL Unknown: %08x @ %08x", op, currentList->pc);
|
||||
DEBUG_LOG(G3D,"DL Unknown: %08x @ %08x", op, currentList == NULL ? 0 : currentList->pc);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -117,4 +117,10 @@ bool GPUCommon::ProcessDLQueue()
|
||||
|
||||
void GPUCommon::PreExecuteOp(u32 op, u32 diff) {
|
||||
// Nothing to do
|
||||
}
|
||||
}
|
||||
|
||||
void GPUCommon::DoState(PointerWrap &p) {
|
||||
p.Do(dlIdGenerator);
|
||||
p.Do<DisplayList>(dlQueue);
|
||||
p.DoMarker("GPUCommon");
|
||||
}
|
||||
|
@ -19,6 +19,7 @@ public:
|
||||
virtual void UpdateStall(int listid, u32 newstall);
|
||||
virtual u32 EnqueueList(u32 listpc, u32 stall, bool head);
|
||||
virtual int listStatus(int listid);
|
||||
virtual void DoState(PointerWrap &p);
|
||||
|
||||
protected:
|
||||
typedef std::deque<DisplayList> DisplayListQueue;
|
||||
|
@ -18,6 +18,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "../Globals.h"
|
||||
#include "../Common/ChunkFile.h"
|
||||
#include <deque>
|
||||
|
||||
enum DisplayListStatus
|
||||
@ -75,6 +76,7 @@ public:
|
||||
|
||||
virtual void DeviceLost() = 0;
|
||||
virtual void Flush() = 0;
|
||||
virtual void DoState(PointerWrap &p) = 0;
|
||||
|
||||
// Debugging
|
||||
virtual void DumpNextFrame() = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user