summaryrefslogtreecommitdiffstats
path: root/src/video_core/rasterizer_cache.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-11-11 17:20:27 +0100
committerGitHub <noreply@github.com>2018-11-11 17:20:27 +0100
commitc82bccab5600fe013580d264dfd0a1729de34201 (patch)
tree65dfb31af2c99f5157297e20faf2bff607e33d93 /src/video_core/rasterizer_cache.h
parentMerge pull request #1648 from FernandoS27/texs-3-array (diff)
parentrasterizer_cache: Remove reliance on the System singleton (diff)
downloadyuzu-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.h7
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;
};