mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-20 17:35:46 +00:00
Deglobalize Memory Manager on texture cahe and Implement Invalidation and Flushing using GPUVAddr
This commit is contained in:
parent
05f039e9fb
commit
e8ac8ab2f5
4 changed files with 20 additions and 1 deletions
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue