diff --git a/src/video_core/query_cache/query_cache.h b/src/video_core/query_cache/query_cache.h index 6bed91a53e..ae68e045eb 100644 --- a/src/video_core/query_cache/query_cache.h +++ b/src/video_core/query_cache/query_cache.h @@ -287,6 +287,7 @@ void QueryCacheBase::CounterReport(GPUVAddr addr, QueryType counter_type u32 value = static_cast(query_base->value); std::memcpy(pointer, &value, sizeof(value)); } + query_base->flags |= QueryFlagBits::IsGuestSynced; if (!is_synced) [[likely]] { impl->pending_unregister.push_back(query_location); } @@ -569,10 +570,12 @@ bool QueryCacheBase::SemiFlushQueryDirty(QueryCacheBase::QueryLo auto* ptr = impl->device_memory.template GetPointer(query_base->guest_address); if (True(query_base->flags & QueryFlagBits::HasTimestamp)) { std::memcpy(ptr, &query_base->value, sizeof(query_base->value)); + query_base->flags |= QueryFlagBits::IsGuestSynced; return false; } u32 value_l = static_cast(query_base->value); std::memcpy(ptr, &value_l, sizeof(value_l)); + query_base->flags |= QueryFlagBits::IsGuestSynced; return false; } return True(query_base->flags & QueryFlagBits::IsHostManaged) &&