diff options
Diffstat (limited to 'src/video_core/gpu.h')
| -rw-r--r-- | src/video_core/gpu.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index 7e84b0d2f..c1a538257 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h | |||
| @@ -93,6 +93,10 @@ namespace Control { | |||
| 93 | struct ChannelState; | 93 | struct ChannelState; |
| 94 | } | 94 | } |
| 95 | 95 | ||
| 96 | namespace Host1x { | ||
| 97 | class Host1x; | ||
| 98 | } // namespace Host1x | ||
| 99 | |||
| 96 | class MemoryManager; | 100 | class MemoryManager; |
| 97 | 101 | ||
| 98 | class GPU final { | 102 | class GPU final { |
| @@ -124,11 +128,19 @@ public: | |||
| 124 | [[nodiscard]] u64 RequestFlush(VAddr addr, std::size_t size); | 128 | [[nodiscard]] u64 RequestFlush(VAddr addr, std::size_t size); |
| 125 | 129 | ||
| 126 | /// Obtains current flush request fence id. | 130 | /// Obtains current flush request fence id. |
| 127 | [[nodiscard]] u64 CurrentFlushRequestFence() const; | 131 | [[nodiscard]] u64 CurrentSyncRequestFence() const; |
| 132 | |||
| 133 | void WaitForSyncOperation(u64 fence); | ||
| 128 | 134 | ||
| 129 | /// Tick pending requests within the GPU. | 135 | /// Tick pending requests within the GPU. |
| 130 | void TickWork(); | 136 | void TickWork(); |
| 131 | 137 | ||
| 138 | /// Gets a mutable reference to the Host1x interface | ||
| 139 | [[nodiscard]] Host1x::Host1x& Host1x(); | ||
| 140 | |||
| 141 | /// Gets an immutable reference to the Host1x interface. | ||
| 142 | [[nodiscard]] const Host1x::Host1x& Host1x() const; | ||
| 143 | |||
| 132 | /// Returns a reference to the Maxwell3D GPU engine. | 144 | /// Returns a reference to the Maxwell3D GPU engine. |
| 133 | [[nodiscard]] Engines::Maxwell3D& Maxwell3D(); | 145 | [[nodiscard]] Engines::Maxwell3D& Maxwell3D(); |
| 134 | 146 | ||
| @@ -174,8 +186,6 @@ public: | |||
| 174 | 186 | ||
| 175 | void RegisterSyncptInterrupt(u32 syncpoint_id, u32 value); | 187 | void RegisterSyncptInterrupt(u32 syncpoint_id, u32 value); |
| 176 | 188 | ||
| 177 | bool CancelSyncptInterrupt(u32 syncpoint_id, u32 value); | ||
| 178 | |||
| 179 | [[nodiscard]] u64 GetTicks() const; | 189 | [[nodiscard]] u64 GetTicks() const; |
| 180 | 190 | ||
| 181 | [[nodiscard]] bool IsAsync() const; | 191 | [[nodiscard]] bool IsAsync() const; |
| @@ -184,6 +194,9 @@ public: | |||
| 184 | 194 | ||
| 185 | void RendererFrameEndNotify(); | 195 | void RendererFrameEndNotify(); |
| 186 | 196 | ||
| 197 | void RequestSwapBuffers(const Tegra::FramebufferConfig* framebuffer, | ||
| 198 | Service::Nvidia::NvFence* fences, size_t num_fences); | ||
| 199 | |||
| 187 | /// Performs any additional setup necessary in order to begin GPU emulation. | 200 | /// Performs any additional setup necessary in order to begin GPU emulation. |
| 188 | /// This can be used to launch any necessary threads and register any necessary | 201 | /// This can be used to launch any necessary threads and register any necessary |
| 189 | /// core timing events. | 202 | /// core timing events. |