diff options
| author | 2022-10-06 21:29:53 +0200 | |
|---|---|---|
| committer | 2022-10-06 21:29:53 +0200 | |
| commit | 1effa578f12f79d7816e3543291f302f126cc1d2 (patch) | |
| tree | 14803b31b6817294d40d57446f6fa94c5ff3fe9a /src/video_core/rasterizer_interface.h | |
| parent | Merge pull request #9025 from FernandoS27/slava-ukrayini (diff) | |
| parent | vulkan_blitter: Fix pool allocation double free. (diff) | |
| download | yuzu-1effa578f12f79d7816e3543291f302f126cc1d2.tar.gz yuzu-1effa578f12f79d7816e3543291f302f126cc1d2.tar.xz yuzu-1effa578f12f79d7816e3543291f302f126cc1d2.zip | |
Merge pull request #8467 from FernandoS27/yfc-rel-1
Project yuzu Fried Chicken (Y.F.C.) Part 1
Diffstat (limited to 'src/video_core/rasterizer_interface.h')
| -rw-r--r-- | src/video_core/rasterizer_interface.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/video_core/rasterizer_interface.h b/src/video_core/rasterizer_interface.h index a04a76481..d2d40884c 100644 --- a/src/video_core/rasterizer_interface.h +++ b/src/video_core/rasterizer_interface.h | |||
| @@ -16,6 +16,9 @@ class MemoryManager; | |||
| 16 | namespace Engines { | 16 | namespace Engines { |
| 17 | class AccelerateDMAInterface; | 17 | class AccelerateDMAInterface; |
| 18 | } | 18 | } |
| 19 | namespace Control { | ||
| 20 | struct ChannelState; | ||
| 21 | } | ||
| 19 | } // namespace Tegra | 22 | } // namespace Tegra |
| 20 | 23 | ||
| 21 | namespace VideoCore { | 24 | namespace VideoCore { |
| @@ -59,7 +62,10 @@ public: | |||
| 59 | virtual void DisableGraphicsUniformBuffer(size_t stage, u32 index) = 0; | 62 | virtual void DisableGraphicsUniformBuffer(size_t stage, u32 index) = 0; |
| 60 | 63 | ||
| 61 | /// Signal a GPU based semaphore as a fence | 64 | /// Signal a GPU based semaphore as a fence |
| 62 | virtual void SignalSemaphore(GPUVAddr addr, u32 value) = 0; | 65 | virtual void SignalFence(std::function<void()>&& func) = 0; |
| 66 | |||
| 67 | /// Send an operation to be done after a certain amount of flushes. | ||
| 68 | virtual void SyncOperation(std::function<void()>&& func) = 0; | ||
| 63 | 69 | ||
| 64 | /// Signal a GPU based syncpoint as a fence | 70 | /// Signal a GPU based syncpoint as a fence |
| 65 | virtual void SignalSyncPoint(u32 value) = 0; | 71 | virtual void SignalSyncPoint(u32 value) = 0; |
| @@ -86,13 +92,13 @@ public: | |||
| 86 | virtual void OnCPUWrite(VAddr addr, u64 size) = 0; | 92 | virtual void OnCPUWrite(VAddr addr, u64 size) = 0; |
| 87 | 93 | ||
| 88 | /// Sync memory between guest and host. | 94 | /// Sync memory between guest and host. |
| 89 | virtual void SyncGuestHost() = 0; | 95 | virtual void InvalidateGPUCache() = 0; |
| 90 | 96 | ||
| 91 | /// Unmap memory range | 97 | /// Unmap memory range |
| 92 | virtual void UnmapMemory(VAddr addr, u64 size) = 0; | 98 | virtual void UnmapMemory(VAddr addr, u64 size) = 0; |
| 93 | 99 | ||
| 94 | /// Remap GPU memory range. This means underneath backing memory changed | 100 | /// Remap GPU memory range. This means underneath backing memory changed |
| 95 | virtual void ModifyGPUMemory(GPUVAddr addr, u64 size) = 0; | 101 | virtual void ModifyGPUMemory(size_t as_id, GPUVAddr addr, u64 size) = 0; |
| 96 | 102 | ||
| 97 | /// Notify rasterizer that any caches of the specified region should be flushed to Switch memory | 103 | /// Notify rasterizer that any caches of the specified region should be flushed to Switch memory |
| 98 | /// and invalidated | 104 | /// and invalidated |
| @@ -123,7 +129,7 @@ public: | |||
| 123 | [[nodiscard]] virtual Tegra::Engines::AccelerateDMAInterface& AccessAccelerateDMA() = 0; | 129 | [[nodiscard]] virtual Tegra::Engines::AccelerateDMAInterface& AccessAccelerateDMA() = 0; |
| 124 | 130 | ||
| 125 | virtual void AccelerateInlineToMemory(GPUVAddr address, size_t copy_size, | 131 | virtual void AccelerateInlineToMemory(GPUVAddr address, size_t copy_size, |
| 126 | std::span<u8> memory) = 0; | 132 | std::span<const u8> memory) = 0; |
| 127 | 133 | ||
| 128 | /// Attempt to use a faster method to display the framebuffer to screen | 134 | /// Attempt to use a faster method to display the framebuffer to screen |
| 129 | [[nodiscard]] virtual bool AccelerateDisplay(const Tegra::FramebufferConfig& config, | 135 | [[nodiscard]] virtual bool AccelerateDisplay(const Tegra::FramebufferConfig& config, |
| @@ -137,5 +143,11 @@ public: | |||
| 137 | /// Initialize disk cached resources for the game being emulated | 143 | /// Initialize disk cached resources for the game being emulated |
| 138 | virtual void LoadDiskResources(u64 title_id, std::stop_token stop_loading, | 144 | virtual void LoadDiskResources(u64 title_id, std::stop_token stop_loading, |
| 139 | const DiskResourceLoadCallback& callback) {} | 145 | const DiskResourceLoadCallback& callback) {} |
| 146 | |||
| 147 | virtual void InitializeChannel(Tegra::Control::ChannelState& channel) {} | ||
| 148 | |||
| 149 | virtual void BindChannel(Tegra::Control::ChannelState& channel) {} | ||
| 150 | |||
| 151 | virtual void ReleaseChannel(s32 channel_id) {} | ||
| 140 | }; | 152 | }; |
| 141 | } // namespace VideoCore | 153 | } // namespace VideoCore |