buffer_cache: reset cached write bits after flushing invalidations

master
Liam 2022-03-23 20:59:01 +07:00
parent fb4d80b169
commit dea5de91d2
1 changed files with 2 additions and 1 deletions

@ -212,7 +212,7 @@ public:
void FlushCachedWrites() noexcept { void FlushCachedWrites() noexcept {
flags &= ~BufferFlagBits::CachedWrites; flags &= ~BufferFlagBits::CachedWrites;
const u64 num_words = NumWords(); 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 untracked_words = Array<Type::Untracked>();
u64* const cpu_words = Array<Type::CPU>(); u64* const cpu_words = Array<Type::CPU>();
for (u64 word_index = 0; word_index < num_words; ++word_index) { 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); NotifyRasterizer<false>(word_index, untracked_words[word_index], cached_bits);
untracked_words[word_index] |= cached_bits; untracked_words[word_index] |= cached_bits;
cpu_words[word_index] |= cached_bits; cpu_words[word_index] |= cached_bits;
cached_words[word_index] = 0;
} }
} }