diff --git a/GPU/GLES/DisplayListInterpreter.cpp b/GPU/GLES/DisplayListInterpreter.cpp index d87607b291..ead1c70679 100644 --- a/GPU/GLES/DisplayListInterpreter.cpp +++ b/GPU/GLES/DisplayListInterpreter.cpp @@ -338,7 +338,7 @@ void GLES_GPU::FastRunLoop(DisplayList &list) { u32 cmd = op >> 24; u32 diff = op ^ gstate.cmdmem[cmd]; - CheckFlushOp(op, diff); + CheckFlushOp(cmd, diff); gstate.cmdmem[cmd] = op; ExecuteOp(op, diff); @@ -346,8 +346,7 @@ void GLES_GPU::FastRunLoop(DisplayList &list) { } } -inline void GLES_GPU::CheckFlushOp(u32 op, u32 diff) { - u32 cmd = op >> 24; +inline void GLES_GPU::CheckFlushOp(int cmd, u32 diff) { if (flushBeforeCommand_[cmd] == 1 || (diff && flushBeforeCommand_[cmd] == 2)) { if (dumpThisFrame_) { @@ -358,7 +357,7 @@ inline void GLES_GPU::CheckFlushOp(u32 op, u32 diff) { } void GLES_GPU::PreExecuteOp(u32 op, u32 diff) { - CheckFlushOp(op, diff); + CheckFlushOp(op >> 24, diff); } void GLES_GPU::ExecuteOp(u32 op, u32 diff) { diff --git a/GPU/GLES/DisplayListInterpreter.h b/GPU/GLES/DisplayListInterpreter.h index 2235241211..944c7798a7 100644 --- a/GPU/GLES/DisplayListInterpreter.h +++ b/GPU/GLES/DisplayListInterpreter.h @@ -73,7 +73,7 @@ protected: private: void DoBlockTransfer(); void ApplyDrawState(int prim); - void CheckFlushOp(u32 op, u32 diff); + void CheckFlushOp(int cmd, u32 diff); void BuildReportingInfo(); FramebufferManager framebufferManager_; diff --git a/GPU/GLES/TransformPipeline.cpp b/GPU/GLES/TransformPipeline.cpp index 3577580d74..7a5aca3e26 100644 --- a/GPU/GLES/TransformPipeline.cpp +++ b/GPU/GLES/TransformPipeline.cpp @@ -1057,6 +1057,7 @@ u32 TransformDrawEngine::ComputeHash() { int vertexSize = dec_->GetDecVtxFmt().stride; // TODO: Add some caps both for numDrawCalls and num verts to check? + // It is really very expensive to check all the vertex data so often. for (int i = 0; i < numDrawCalls; i++) { if (!drawCalls[i].inds) { fullhash += CityHash32((const char *)drawCalls[i].verts, vertexSize * drawCalls[i].vertexCount); diff --git a/GPU/GeDisasm.cpp b/GPU/GeDisasm.cpp index 8fa9713388..441244b9ee 100644 --- a/GPU/GeDisasm.cpp +++ b/GPU/GeDisasm.cpp @@ -1074,7 +1074,7 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer) { if (data & ~0x7F) sprintf(buffer, "BONE #%i (extra %x)", data & 0x7F, data); else - sprintf(buffer, "BONE #%i", data & 0xF); + sprintf(buffer, "BONE #%i", data & 0x7F); break; case GE_CMD_BONEMATRIXDATA: