QueryCache: Flush queries in order of running.

This commit is contained in:
Fernando Sahmkow 2021-09-24 01:13:42 +02:00
parent 326a449ef0
commit 8fdb51ab46

View file

@ -257,9 +257,9 @@ private:
void AsyncFlushQuery(VAddr addr) { void AsyncFlushQuery(VAddr addr) {
if (!uncommitted_flushes) { if (!uncommitted_flushes) {
uncommitted_flushes = std::make_shared<std::unordered_set<VAddr>>(); uncommitted_flushes = std::make_shared<std::vector<VAddr>>();
} }
uncommitted_flushes->insert(addr); uncommitted_flushes->push_back(addr);
} }
static constexpr std::uintptr_t PAGE_SIZE = 4096; static constexpr std::uintptr_t PAGE_SIZE = 4096;
@ -275,8 +275,8 @@ private:
std::array<CounterStream, VideoCore::NumQueryTypes> streams; std::array<CounterStream, VideoCore::NumQueryTypes> streams;
std::shared_ptr<std::unordered_set<VAddr>> uncommitted_flushes{}; std::shared_ptr<std::vector<VAddr>> uncommitted_flushes{};
std::list<std::shared_ptr<std::unordered_set<VAddr>>> committed_flushes; std::list<std::shared_ptr<std::vector<VAddr>>> committed_flushes;
}; };
template <class QueryCache, class HostCounter> template <class QueryCache, class HostCounter>