diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2019-05-07 10:55:18 -0400 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-06-20 21:36:11 -0300 |
commit | 6b0695b3cdd930b0157df8fd8f3c9d2dce328595 (patch) | |
tree | dca0a5da667579e5836d019b75e84c87567e80da /src/video_core/rasterizer_interface.h | |
parent | 6c410104f4f6953ac37095aa5e65804bf115c026 (diff) |
Deglobalize Memory Manager on texture cahe and Implement Invalidation and Flushing using GPUVAddr
Diffstat (limited to 'src/video_core/rasterizer_interface.h')
-rw-r--r-- | src/video_core/rasterizer_interface.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/video_core/rasterizer_interface.h b/src/video_core/rasterizer_interface.h index d7b86df388..d5505ef9c8 100644 --- a/src/video_core/rasterizer_interface.h +++ b/src/video_core/rasterizer_interface.h @@ -10,6 +10,10 @@ #include "video_core/engines/fermi_2d.h" #include "video_core/gpu.h" +namespace Tegra { +class MemoryManager; +} + namespace VideoCore { enum class LoadCallbackStage { @@ -24,6 +28,8 @@ class RasterizerInterface { public: virtual ~RasterizerInterface() {} + virtual void InitMemoryMananger(Tegra::MemoryManager& memory_manager) = 0; + /// Draw the current batch of vertex arrays virtual void DrawArrays() = 0; @@ -43,6 +49,10 @@ public: /// and invalidated virtual void FlushAndInvalidateRegion(CacheAddr addr, u64 size) = 0; + /// Notify rasterizer that any caches of the specified region should be flushed to Switch memory + /// and invalidated + virtual void FlushAndInvalidateRegionEx(GPUVAddr gpu_addr, CacheAddr addr, u64 size) = 0; + /// Attempt to use a faster method to perform a surface copy virtual bool AccelerateSurfaceCopy(const Tegra::Engines::Fermi2D::Regs::Surface& src, const Tegra::Engines::Fermi2D::Regs::Surface& dst, |