diff options
Diffstat (limited to 'src/video_core/rasterizer_interface.h')
| -rw-r--r-- | src/video_core/rasterizer_interface.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/video_core/rasterizer_interface.h b/src/video_core/rasterizer_interface.h index 8ae5b9c4e..603f61952 100644 --- a/src/video_core/rasterizer_interface.h +++ b/src/video_core/rasterizer_interface.h | |||
| @@ -49,15 +49,33 @@ public: | |||
| 49 | /// Records a GPU query and caches it | 49 | /// Records a GPU query and caches it |
| 50 | virtual void Query(GPUVAddr gpu_addr, QueryType type, std::optional<u64> timestamp) = 0; | 50 | virtual void Query(GPUVAddr gpu_addr, QueryType type, std::optional<u64> timestamp) = 0; |
| 51 | 51 | ||
| 52 | /// Signal a GPU based semaphore as a fence | ||
| 53 | virtual void SignalSemaphore(GPUVAddr addr, u32 value) = 0; | ||
| 54 | |||
| 55 | /// Signal a GPU based syncpoint as a fence | ||
| 56 | virtual void SignalSyncPoint(u32 value) = 0; | ||
| 57 | |||
| 58 | /// Release all pending fences. | ||
| 59 | virtual void ReleaseFences() = 0; | ||
| 60 | |||
| 52 | /// Notify rasterizer that all caches should be flushed to Switch memory | 61 | /// Notify rasterizer that all caches should be flushed to Switch memory |
| 53 | virtual void FlushAll() = 0; | 62 | virtual void FlushAll() = 0; |
| 54 | 63 | ||
| 55 | /// Notify rasterizer that any caches of the specified region should be flushed to Switch memory | 64 | /// Notify rasterizer that any caches of the specified region should be flushed to Switch memory |
| 56 | virtual void FlushRegion(VAddr addr, u64 size) = 0; | 65 | virtual void FlushRegion(VAddr addr, u64 size) = 0; |
| 57 | 66 | ||
| 67 | /// Check if the the specified memory area requires flushing to CPU Memory. | ||
| 68 | virtual bool MustFlushRegion(VAddr addr, u64 size) = 0; | ||
| 69 | |||
| 58 | /// Notify rasterizer that any caches of the specified region should be invalidated | 70 | /// Notify rasterizer that any caches of the specified region should be invalidated |
| 59 | virtual void InvalidateRegion(VAddr addr, u64 size) = 0; | 71 | virtual void InvalidateRegion(VAddr addr, u64 size) = 0; |
| 60 | 72 | ||
| 73 | /// Notify rasterizer that any caches of the specified region are desync with guest | ||
| 74 | virtual void OnCPUWrite(VAddr addr, u64 size) = 0; | ||
| 75 | |||
| 76 | /// Sync memory between guest and host. | ||
| 77 | virtual void SyncGuestHost() = 0; | ||
| 78 | |||
| 61 | /// Notify rasterizer that any caches of the specified region should be flushed to Switch memory | 79 | /// Notify rasterizer that any caches of the specified region should be flushed to Switch memory |
| 62 | /// and invalidated | 80 | /// and invalidated |
| 63 | virtual void FlushAndInvalidateRegion(VAddr addr, u64 size) = 0; | 81 | virtual void FlushAndInvalidateRegion(VAddr addr, u64 size) = 0; |