summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/BPStructs.cpp
diff options
context:
space:
mode:
authorPierre Bourdon <delroth@gmail.com>2012-05-18 23:13:53 +0200
committerPierre Bourdon <delroth@gmail.com>2012-05-18 23:13:53 +0200
commit5a77cae2e3434fa5cbb3710f183328e36620fa5f (patch)
tree5ee73dd013e8da678bfaa9762990bd966276c504 /Source/Core/VideoCommon/Src/BPStructs.cpp
parent1bc5f41e40e604ef6c1d1e84617c13fdf40e04d1 (diff)
Check if BP and XF changes actually change values before flushing
Diffstat (limited to 'Source/Core/VideoCommon/Src/BPStructs.cpp')
-rw-r--r--Source/Core/VideoCommon/Src/BPStructs.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/Source/Core/VideoCommon/Src/BPStructs.cpp b/Source/Core/VideoCommon/Src/BPStructs.cpp
index d59523e117..84f2426f26 100644
--- a/Source/Core/VideoCommon/Src/BPStructs.cpp
+++ b/Source/Core/VideoCommon/Src/BPStructs.cpp
@@ -128,7 +128,17 @@ void BPWritten(const BPCmd& bp)
FlushPipeline();
}
} // END ZTP SPEEDUP HACK
- else FlushPipeline();
+ else
+ {
+ if (((s32*)&bpmem)[bp.address] != bp.newvalue)
+ {
+ FlushPipeline();
+ }
+ else if (bp.address == BPMEM_TRIGGER_EFB_COPY
+ || bp.address == BPMEM_CLEARBBOX1
+ || bp.address == BPMEM_CLEARBBOX2)
+ FlushPipeline();
+ }
((u32*)&bpmem)[bp.address] = bp.newvalue;