diff options
author | bunnei <bunneidev@gmail.com> | 2020-09-24 03:24:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-24 03:24:27 +0200 |
commit | d66b897a6d7a2a0bc0a3910fbdb7c1c6028c21d0 (patch) | |
tree | 7417466362259dae2d1a690d6aef8dcbc14a0b12 /src/video_core/renderer_opengl | |
parent | Merge pull request #4618 from german77/GcAdapterAutoMap (diff) | |
parent | vk_query_cache: Hack counter destructor to avoid reserving queries (diff) | |
download | yuzu-d66b897a6d7a2a0bc0a3910fbdb7c1c6028c21d0.tar yuzu-d66b897a6d7a2a0bc0a3910fbdb7c1c6028c21d0.tar.gz yuzu-d66b897a6d7a2a0bc0a3910fbdb7c1c6028c21d0.tar.bz2 yuzu-d66b897a6d7a2a0bc0a3910fbdb7c1c6028c21d0.tar.lz yuzu-d66b897a6d7a2a0bc0a3910fbdb7c1c6028c21d0.tar.xz yuzu-d66b897a6d7a2a0bc0a3910fbdb7c1c6028c21d0.tar.zst yuzu-d66b897a6d7a2a0bc0a3910fbdb7c1c6028c21d0.zip |
Diffstat (limited to 'src/video_core/renderer_opengl')
-rw-r--r-- | src/video_core/renderer_opengl/gl_query_cache.cpp | 8 | ||||
-rw-r--r-- | src/video_core/renderer_opengl/gl_query_cache.h | 11 |
2 files changed, 11 insertions, 8 deletions
diff --git a/src/video_core/renderer_opengl/gl_query_cache.cpp b/src/video_core/renderer_opengl/gl_query_cache.cpp index 2bb8ec2b8..1a3d9720e 100644 --- a/src/video_core/renderer_opengl/gl_query_cache.cpp +++ b/src/video_core/renderer_opengl/gl_query_cache.cpp @@ -32,10 +32,8 @@ constexpr GLenum GetTarget(VideoCore::QueryType type) { QueryCache::QueryCache(RasterizerOpenGL& rasterizer, Tegra::Engines::Maxwell3D& maxwell3d, Tegra::MemoryManager& gpu_memory) - : VideoCommon::QueryCacheBase< - QueryCache, CachedQuery, CounterStream, HostCounter, - std::vector<OGLQuery>>{static_cast<VideoCore::RasterizerInterface&>(rasterizer), - maxwell3d, gpu_memory}, + : VideoCommon::QueryCacheBase<QueryCache, CachedQuery, CounterStream, HostCounter>( + rasterizer, maxwell3d, gpu_memory), gl_rasterizer{rasterizer} {} QueryCache::~QueryCache() = default; @@ -91,6 +89,8 @@ u64 HostCounter::BlockingQuery() const { CachedQuery::CachedQuery(QueryCache& cache, VideoCore::QueryType type, VAddr cpu_addr, u8* host_ptr) : VideoCommon::CachedQueryBase<HostCounter>{cpu_addr, host_ptr}, cache{&cache}, type{type} {} +CachedQuery::~CachedQuery() = default; + CachedQuery::CachedQuery(CachedQuery&& rhs) noexcept : VideoCommon::CachedQueryBase<HostCounter>(std::move(rhs)), cache{rhs.cache}, type{rhs.type} {} diff --git a/src/video_core/renderer_opengl/gl_query_cache.h b/src/video_core/renderer_opengl/gl_query_cache.h index dd626b66b..82cac51ee 100644 --- a/src/video_core/renderer_opengl/gl_query_cache.h +++ b/src/video_core/renderer_opengl/gl_query_cache.h @@ -26,8 +26,8 @@ class RasterizerOpenGL; using CounterStream = VideoCommon::CounterStreamBase<QueryCache, HostCounter>; -class QueryCache final : public VideoCommon::QueryCacheBase<QueryCache, CachedQuery, CounterStream, - HostCounter, std::vector<OGLQuery>> { +class QueryCache final + : public VideoCommon::QueryCacheBase<QueryCache, CachedQuery, CounterStream, HostCounter> { public: explicit QueryCache(RasterizerOpenGL& rasterizer, Tegra::Engines::Maxwell3D& maxwell3d, Tegra::MemoryManager& gpu_memory); @@ -41,6 +41,7 @@ public: private: RasterizerOpenGL& gl_rasterizer; + std::array<std::vector<OGLQuery>, VideoCore::NumQueryTypes> query_pools; }; class HostCounter final : public VideoCommon::HostCounterBase<QueryCache, HostCounter> { @@ -63,10 +64,12 @@ class CachedQuery final : public VideoCommon::CachedQueryBase<HostCounter> { public: explicit CachedQuery(QueryCache& cache, VideoCore::QueryType type, VAddr cpu_addr, u8* host_ptr); - CachedQuery(CachedQuery&& rhs) noexcept; - CachedQuery(const CachedQuery&) = delete; + ~CachedQuery() override; + CachedQuery(CachedQuery&& rhs) noexcept; CachedQuery& operator=(CachedQuery&& rhs) noexcept; + + CachedQuery(const CachedQuery&) = delete; CachedQuery& operator=(const CachedQuery&) = delete; void Flush() override; |