summaryrefslogtreecommitdiff
path: root/src/video_core/gpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/gpu.h')
-rw-r--r--src/video_core/gpu.h19
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 {
93struct ChannelState; 93struct ChannelState;
94} 94}
95 95
96namespace Host1x {
97class Host1x;
98} // namespace Host1x
99
96class MemoryManager; 100class MemoryManager;
97 101
98class GPU final { 102class 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.