summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2022-03-23 20:59:01 -0400
committerLiam <byteslice@airmail.cc>2022-03-23 20:59:01 -0400
commitdea5de91d250887c39520fd3846ae9d8865b5e3e (patch)
treee3bce723abdbfb06be3f8b0ab4e9b191a5b97142 /src
parentfb4d80b169d2b3a6ad7286f4cb412b29c0aa70d8 (diff)
buffer_cache: reset cached write bits after flushing invalidations
Diffstat (limited to 'src')
-rw-r--r--src/video_core/buffer_cache/buffer_base.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/video_core/buffer_cache/buffer_base.h b/src/video_core/buffer_cache/buffer_base.h
index be2113f5a..10975884b 100644
--- a/src/video_core/buffer_cache/buffer_base.h
+++ b/src/video_core/buffer_cache/buffer_base.h
@@ -212,7 +212,7 @@ public:
void FlushCachedWrites() noexcept {
flags &= ~BufferFlagBits::CachedWrites;
const u64 num_words = NumWords();
- const u64* const cached_words = Array<Type::CachedCPU>();
+ u64* const cached_words = Array<Type::CachedCPU>();
u64* const untracked_words = Array<Type::Untracked>();
u64* const cpu_words = Array<Type::CPU>();
for (u64 word_index = 0; word_index < num_words; ++word_index) {
@@ -220,6 +220,7 @@ public:
NotifyRasterizer<false>(word_index, untracked_words[word_index], cached_bits);
untracked_words[word_index] |= cached_bits;
cpu_words[word_index] |= cached_bits;
+ cached_words[word_index] = 0;
}
}