From 2736012719973dddeecf202835246f0a17c35c65 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sun, 23 Dec 2012 23:12:53 -0800 Subject: [PATCH] Cleanup some state on reset in the GPU code. --- GPU/GLES/DisplayListInterpreter.cpp | 2 ++ GPU/GPUState.cpp | 2 ++ GPU/Null/NullGpu.cpp | 7 +++++++ GPU/Null/NullGpu.h | 2 +- 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/GPU/GLES/DisplayListInterpreter.cpp b/GPU/GLES/DisplayListInterpreter.cpp index b5bab73b78..40c44a7fd2 100644 --- a/GPU/GLES/DisplayListInterpreter.cpp +++ b/GPU/GLES/DisplayListInterpreter.cpp @@ -191,6 +191,8 @@ GLES_GPU::~GLES_GPU() delete (*iter); } vfbs_.clear(); + + delete flushBeforeCommand; } void GLES_GPU::InitClear() diff --git a/GPU/GPUState.cpp b/GPU/GPUState.cpp index 2f60deb5d6..4eb3fcb33c 100644 --- a/GPU/GPUState.cpp +++ b/GPU/GPUState.cpp @@ -56,6 +56,8 @@ void InitGfxState() memcpy(gstate.boneMatrix + i * 12, identity4x3, 12 * sizeof(float)); } + gpuStats.reset(); + switch (PSP_CoreParameter().gpuCore) { case GPU_NULL: gpu = new NullGPU(); diff --git a/GPU/Null/NullGpu.cpp b/GPU/Null/NullGpu.cpp index 3dd5228a02..c7668b0fb6 100644 --- a/GPU/Null/NullGpu.cpp +++ b/GPU/Null/NullGpu.cpp @@ -46,6 +46,13 @@ static bool finished; static int dlIdGenerator = 1; +NullGPU::NullGPU() +{ + interruptsEnabled_ = true; + dlIdGenerator = 1; + dlQueue.clear(); +} + bool NullGPU::ProcessDLQueue() { std::vector::iterator iter = dlQueue.begin(); diff --git a/GPU/Null/NullGpu.h b/GPU/Null/NullGpu.h index 93e9de9488..a642ac11f8 100644 --- a/GPU/Null/NullGpu.h +++ b/GPU/Null/NullGpu.h @@ -24,7 +24,7 @@ class ShaderManager; class NullGPU : public GPUInterface { public: - NullGPU() : interruptsEnabled_(true) {} + NullGPU(); virtual void InitClear() {} virtual u32 EnqueueList(u32 listpc, u32 stall); virtual void UpdateStall(int listid, u32 newstall);