diff options
Diffstat (limited to 'src/video_core/gpu_thread.h')
| -rw-r--r-- | src/video_core/gpu_thread.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/video_core/gpu_thread.h b/src/video_core/gpu_thread.h index 2f8210cb9..64628d3e3 100644 --- a/src/video_core/gpu_thread.h +++ b/src/video_core/gpu_thread.h | |||
| @@ -15,7 +15,9 @@ | |||
| 15 | 15 | ||
| 16 | namespace Tegra { | 16 | namespace Tegra { |
| 17 | struct FramebufferConfig; | 17 | struct FramebufferConfig; |
| 18 | class DmaPusher; | 18 | namespace Control { |
| 19 | class Scheduler; | ||
| 20 | } | ||
| 19 | } // namespace Tegra | 21 | } // namespace Tegra |
| 20 | 22 | ||
| 21 | namespace Core { | 23 | namespace Core { |
| @@ -34,8 +36,10 @@ namespace VideoCommon::GPUThread { | |||
| 34 | 36 | ||
| 35 | /// Command to signal to the GPU thread that a command list is ready for processing | 37 | /// Command to signal to the GPU thread that a command list is ready for processing |
| 36 | struct SubmitListCommand final { | 38 | struct SubmitListCommand final { |
| 37 | explicit SubmitListCommand(Tegra::CommandList&& entries_) : entries{std::move(entries_)} {} | 39 | explicit SubmitListCommand(s32 channel_, Tegra::CommandList&& entries_) |
| 40 | : channel{channel_}, entries{std::move(entries_)} {} | ||
| 38 | 41 | ||
| 42 | s32 channel; | ||
| 39 | Tegra::CommandList entries; | 43 | Tegra::CommandList entries; |
| 40 | }; | 44 | }; |
| 41 | 45 | ||
| @@ -112,10 +116,10 @@ public: | |||
| 112 | 116 | ||
| 113 | /// Creates and starts the GPU thread. | 117 | /// Creates and starts the GPU thread. |
| 114 | void StartThread(VideoCore::RendererBase& renderer, Core::Frontend::GraphicsContext& context, | 118 | void StartThread(VideoCore::RendererBase& renderer, Core::Frontend::GraphicsContext& context, |
| 115 | Tegra::DmaPusher& dma_pusher); | 119 | Tegra::Control::Scheduler& scheduler); |
| 116 | 120 | ||
| 117 | /// Push GPU command entries to be processed | 121 | /// Push GPU command entries to be processed |
| 118 | void SubmitList(Tegra::CommandList&& entries); | 122 | void SubmitList(s32 channel, Tegra::CommandList&& entries); |
| 119 | 123 | ||
| 120 | /// Swap buffers (render frame) | 124 | /// Swap buffers (render frame) |
| 121 | void SwapBuffers(const Tegra::FramebufferConfig* framebuffer); | 125 | void SwapBuffers(const Tegra::FramebufferConfig* framebuffer); |
| @@ -131,6 +135,8 @@ public: | |||
| 131 | 135 | ||
| 132 | void OnCommandListEnd(); | 136 | void OnCommandListEnd(); |
| 133 | 137 | ||
| 138 | void TickGPU(); | ||
| 139 | |||
| 134 | private: | 140 | private: |
| 135 | /// Pushes a command to be executed by the GPU thread | 141 | /// Pushes a command to be executed by the GPU thread |
| 136 | u64 PushCommand(CommandData&& command_data, bool block = false); | 142 | u64 PushCommand(CommandData&& command_data, bool block = false); |