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

@ -41,6 +41,10 @@ namespace Core::Frontend {
class EmuWindow;
}
namespace Tegra {
class MemoryManager;
}
namespace OpenGL {
struct ScreenInfo;
@ -53,12 +57,16 @@ public:
ScreenInfo& info);
~RasterizerOpenGL() override;
void InitMemoryMananger(Tegra::MemoryManager& memory_manager) override;
void DrawArrays() override;
void Clear() override;
void FlushAll() override;
void FlushRegion(CacheAddr addr, u64 size) override;
void InvalidateRegion(CacheAddr addr, u64 size) override;
void InvalidateRegionEx(GPUVAddr gpu_addr, CacheAddr addr, u64 size);
void FlushAndInvalidateRegion(CacheAddr addr, u64 size) override;
void FlushAndInvalidateRegionEx(GPUVAddr gpu_addr, CacheAddr addr, u64 size) override;
bool AccelerateSurfaceCopy(const Tegra::Engines::Fermi2D::Regs::Surface& src,
const Tegra::Engines::Fermi2D::Regs::Surface& dst,
const Common::Rectangle<u32>& src_rect,