Deglobalize Memory Manager on texture cahe and Implement Invalidation and Flushing using GPUVAddr

This commit is contained in:
Fernando Sahmkow
2019-05-07 10:55:18 -04:00
committed by ReinUsesLisp
parent 6c410104f4
commit 6b0695b3cd
4 changed files with 20 additions and 1 deletions

View File

@ -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,