diff options
author | bunnei <bunneidev@gmail.com> | 2018-11-11 17:20:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-11 17:20:27 +0100 |
commit | c82bccab5600fe013580d264dfd0a1729de34201 (patch) | |
tree | 65dfb31af2c99f5157297e20faf2bff607e33d93 /src/video_core/rasterizer_cache.h | |
parent | Merge pull request #1648 from FernandoS27/texs-3-array (diff) | |
parent | rasterizer_cache: Remove reliance on the System singleton (diff) | |
download | yuzu-c82bccab5600fe013580d264dfd0a1729de34201.tar yuzu-c82bccab5600fe013580d264dfd0a1729de34201.tar.gz yuzu-c82bccab5600fe013580d264dfd0a1729de34201.tar.bz2 yuzu-c82bccab5600fe013580d264dfd0a1729de34201.tar.lz yuzu-c82bccab5600fe013580d264dfd0a1729de34201.tar.xz yuzu-c82bccab5600fe013580d264dfd0a1729de34201.tar.zst yuzu-c82bccab5600fe013580d264dfd0a1729de34201.zip |
Diffstat (limited to 'src/video_core/rasterizer_cache.h')
-rw-r--r-- | src/video_core/rasterizer_cache.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/video_core/rasterizer_cache.h b/src/video_core/rasterizer_cache.h index d999c92fa..6d41321fa 100644 --- a/src/video_core/rasterizer_cache.h +++ b/src/video_core/rasterizer_cache.h @@ -10,10 +10,8 @@ #include <boost/range/iterator_range_core.hpp> #include "common/common_types.h" -#include "core/core.h" #include "core/settings.h" #include "video_core/rasterizer_interface.h" -#include "video_core/renderer_base.h" class RasterizerCacheObject { public: @@ -66,6 +64,8 @@ class RasterizerCache : NonCopyable { friend class RasterizerCacheObject; public: + explicit RasterizerCache(VideoCore::RasterizerInterface& rasterizer) : rasterizer{rasterizer} {} + /// Write any cached resources overlapping the specified region back to memory void FlushRegion(Tegra::GPUVAddr addr, size_t size) { const auto& objects{GetSortedObjectsFromRegion(addr, size)}; @@ -111,14 +111,12 @@ protected: void Register(const T& object) { object->SetIsRegistered(true); object_cache.add({GetInterval(object), ObjectSet{object}}); - auto& rasterizer = Core::System::GetInstance().Renderer().Rasterizer(); rasterizer.UpdatePagesCachedCount(object->GetAddr(), object->GetSizeInBytes(), 1); } /// Unregisters an object from the cache void Unregister(const T& object) { object->SetIsRegistered(false); - auto& rasterizer = Core::System::GetInstance().Renderer().Rasterizer(); rasterizer.UpdatePagesCachedCount(object->GetAddr(), object->GetSizeInBytes(), -1); // Only flush if use_accurate_gpu_emulation is enabled, as it incurs a performance hit @@ -179,4 +177,5 @@ private: ObjectCache object_cache; ///< Cache of objects u64 modified_ticks{}; ///< Counter of cache state ticks, used for in-order flushing + VideoCore::RasterizerInterface& rasterizer; }; |