diff options
Diffstat (limited to 'Source/Core/VideoCommon/Src/BPStructs.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Src/BPStructs.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/Source/Core/VideoCommon/Src/BPStructs.cpp b/Source/Core/VideoCommon/Src/BPStructs.cpp index e330e984cb..171bfc5147 100644 --- a/Source/Core/VideoCommon/Src/BPStructs.cpp +++ b/Source/Core/VideoCommon/Src/BPStructs.cpp @@ -27,15 +27,20 @@ #include "OpcodeDecoding.h" #include "VertexLoader.h" #include "VertexShaderManager.h" +#include "Thread.h" using namespace BPFunctions; +// FIXME: Hangs load-state, but should fix graphic-heavy games state loading +//Common::CriticalSection s_bpCritical; + void BPInit() { memset(&bpmem, 0, sizeof(bpmem)); bpmem.bpMask = 0xFFFFFF; } + // ---------------------------------------------------------------------------------------------------------- // Write to the Bypass Memory (Bypass Raster State Registers) /* ------------------ @@ -73,6 +78,9 @@ void BPWritten(const Bypass& bp) //default: break; //} + // FIXME: Hangs load-state, but should fix graphic-heavy games state loading + //s_bpCritical.Enter(); + FlushPipeline(); ((u32*)&bpmem)[bp.address] = bp.newvalue; @@ -605,10 +613,11 @@ void BPWritten(const Bypass& bp) default: WARN_LOG(VIDEO, "Unknown BP opcode: address = 0x%08x value = 0x%08x", bp.address, bp.newvalue); break; - } - - } - + } } + + // FIXME: Hangs load-state, but should fix graphic-heavy games state loading + //s_bpCritical.Leave(); +} } |
