summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/BPStructs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon/BPStructs.cpp')
-rw-r--r--Source/Core/VideoCommon/BPStructs.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/BPStructs.cpp b/Source/Core/VideoCommon/BPStructs.cpp
index cd6f84f446..204c637b94 100644
--- a/Source/Core/VideoCommon/BPStructs.cpp
+++ b/Source/Core/VideoCommon/BPStructs.cpp
@@ -285,6 +285,8 @@ static void BPWritten(const BPCmd& bp)
if (g_bRecordFifoData)
FifoRecorder::GetInstance().UseMemory(addr, tlutXferCount, MemoryUpdate::TMEM);
+ TextureCacheBase::InvalidateAllBindPoints();
+
return;
}
case BPMEM_FOGRANGE: // Fog Settings Control
@@ -397,6 +399,7 @@ static void BPWritten(const BPCmd& bp)
return;
case BPMEM_TEXINVALIDATE:
// TODO: Needs some restructuring in TextureCacheBase.
+ TextureCacheBase::InvalidateAllBindPoints();
return;
case BPMEM_ZCOMPARE: // Set the Z-Compare and EFB pixel format
@@ -499,6 +502,8 @@ static void BPWritten(const BPCmd& bp)
if (g_bRecordFifoData)
FifoRecorder::GetInstance().UseMemory(src_addr, bytes_read, MemoryUpdate::TMEM);
+
+ TextureCacheBase::InvalidateAllBindPoints();
}
return;
@@ -582,10 +587,12 @@ static void BPWritten(const BPCmd& bp)
// ------------------------
case BPMEM_TX_SETMODE0: // (0x90 for linear)
case BPMEM_TX_SETMODE0_4:
+ TextureCacheBase::InvalidateAllBindPoints();
return;
case BPMEM_TX_SETMODE1:
case BPMEM_TX_SETMODE1_4:
+ TextureCacheBase::InvalidateAllBindPoints();
return;
// --------------------------------------------
// BPMEM_TX_SETIMAGE0 - Texture width, height, format
@@ -602,6 +609,7 @@ static void BPWritten(const BPCmd& bp)
case BPMEM_TX_SETIMAGE2_4:
case BPMEM_TX_SETIMAGE3:
case BPMEM_TX_SETIMAGE3_4:
+ TextureCacheBase::InvalidateAllBindPoints();
return;
// -------------------------------
// Set a TLUT
@@ -609,6 +617,7 @@ static void BPWritten(const BPCmd& bp)
// -------------------------------
case BPMEM_TX_SETTLUT:
case BPMEM_TX_SETTLUT_4:
+ TextureCacheBase::InvalidateAllBindPoints();
return;
default: