Memory: Add function to flush a virtual range from the rasterizer cache
This is slightly more ergonomic to use, correctly handles virtual regions which are disjoint in physical addressing space, and checks only regions which can be cached by the rasterizer.
This commit is contained in:
@@ -190,6 +190,19 @@ void RasterizerFlushRegion(PAddr start, u32 size);
|
||||
*/
|
||||
void RasterizerFlushAndInvalidateRegion(PAddr start, u32 size);
|
||||
|
||||
enum class FlushMode {
|
||||
/// Write back modified surfaces to RAM
|
||||
Flush,
|
||||
/// Write back modified surfaces to RAM, and also remove them from the cache
|
||||
FlushAndInvalidate,
|
||||
};
|
||||
|
||||
/**
|
||||
* Flushes and invalidates any externally cached rasterizer resources touching the given virtual
|
||||
* address region.
|
||||
*/
|
||||
void RasterizerFlushVirtualRegion(VAddr start, u32 size, FlushMode mode);
|
||||
|
||||
/**
|
||||
* Dynarmic has an optimization to memory accesses when the pointer to the page exists that
|
||||
* can be used by setting up the current page table as a callback. This function is used to
|
||||
|
Reference in New Issue
Block a user