diff options
| author | 2019-05-07 10:55:18 -0400 | |
|---|---|---|
| committer | 2019-06-20 21:36:11 -0300 | |
| commit | 6b0695b3cdd930b0157df8fd8f3c9d2dce328595 (patch) | |
| tree | dca0a5da667579e5836d019b75e84c87567e80da /src/video_core/rasterizer_interface.h | |
| parent | texture_cache: Remove execution context copies from the texture cache (diff) | |
| download | yuzu-6b0695b3cdd930b0157df8fd8f3c9d2dce328595.tar.gz yuzu-6b0695b3cdd930b0157df8fd8f3c9d2dce328595.tar.xz yuzu-6b0695b3cdd930b0157df8fd8f3c9d2dce328595.zip | |
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 d7b86df38..d5505ef9c 100644 --- a/src/video_core/rasterizer_interface.h +++ b/src/video_core/rasterizer_interface.h | |||
| @@ -10,6 +10,10 @@ | |||
| 10 | #include "video_core/engines/fermi_2d.h" | 10 | #include "video_core/engines/fermi_2d.h" |
| 11 | #include "video_core/gpu.h" | 11 | #include "video_core/gpu.h" |
| 12 | 12 | ||
| 13 | namespace Tegra { | ||
| 14 | class MemoryManager; | ||
| 15 | } | ||
| 16 | |||
| 13 | namespace VideoCore { | 17 | namespace VideoCore { |
| 14 | 18 | ||
| 15 | enum class LoadCallbackStage { | 19 | enum class LoadCallbackStage { |
| @@ -24,6 +28,8 @@ class RasterizerInterface { | |||
| 24 | public: | 28 | public: |
| 25 | virtual ~RasterizerInterface() {} | 29 | virtual ~RasterizerInterface() {} |
| 26 | 30 | ||
| 31 | virtual void InitMemoryMananger(Tegra::MemoryManager& memory_manager) = 0; | ||
| 32 | |||
| 27 | /// Draw the current batch of vertex arrays | 33 | /// Draw the current batch of vertex arrays |
| 28 | virtual void DrawArrays() = 0; | 34 | virtual void DrawArrays() = 0; |
| 29 | 35 | ||
| @@ -43,6 +49,10 @@ public: | |||
| 43 | /// and invalidated | 49 | /// and invalidated |
| 44 | virtual void FlushAndInvalidateRegion(CacheAddr addr, u64 size) = 0; | 50 | virtual void FlushAndInvalidateRegion(CacheAddr addr, u64 size) = 0; |
| 45 | 51 | ||
| 52 | /// Notify rasterizer that any caches of the specified region should be flushed to Switch memory | ||
| 53 | /// and invalidated | ||
| 54 | virtual void FlushAndInvalidateRegionEx(GPUVAddr gpu_addr, CacheAddr addr, u64 size) = 0; | ||
| 55 | |||
| 46 | /// Attempt to use a faster method to perform a surface copy | 56 | /// Attempt to use a faster method to perform a surface copy |
| 47 | virtual bool AccelerateSurfaceCopy(const Tegra::Engines::Fermi2D::Regs::Surface& src, | 57 | virtual bool AccelerateSurfaceCopy(const Tegra::Engines::Fermi2D::Regs::Surface& src, |
| 48 | const Tegra::Engines::Fermi2D::Regs::Surface& dst, | 58 | const Tegra::Engines::Fermi2D::Regs::Surface& dst, |