diff options
author | bunnei <bunneidev@gmail.com> | 2019-01-21 21:18:09 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2019-03-07 03:09:09 +0100 |
commit | ac51d048a91593a3da124aeea32dc5b0898f1dd6 (patch) | |
tree | 91094e0615aea42b1541209fc00a3da6708f9bd1 /src/video_core | |
parent | gpu: Refactor to take RendererBase instead of RasterizerInterface. (diff) | |
download | yuzu-ac51d048a91593a3da124aeea32dc5b0898f1dd6.tar yuzu-ac51d048a91593a3da124aeea32dc5b0898f1dd6.tar.gz yuzu-ac51d048a91593a3da124aeea32dc5b0898f1dd6.tar.bz2 yuzu-ac51d048a91593a3da124aeea32dc5b0898f1dd6.tar.lz yuzu-ac51d048a91593a3da124aeea32dc5b0898f1dd6.tar.xz yuzu-ac51d048a91593a3da124aeea32dc5b0898f1dd6.tar.zst yuzu-ac51d048a91593a3da124aeea32dc5b0898f1dd6.zip |
Diffstat (limited to 'src/video_core')
-rw-r--r-- | src/video_core/gpu.cpp | 10 | ||||
-rw-r--r-- | src/video_core/gpu.h | 15 |
2 files changed, 22 insertions, 3 deletions
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 08abf8ac9..b0f3310e5 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp @@ -65,6 +65,16 @@ const DmaPusher& GPU::DmaPusher() const { return *dma_pusher; } +void GPU::PushGPUEntries(Tegra::CommandList&& entries) { + dma_pusher->Push(std::move(entries)); + dma_pusher->DispatchCalls(); +} + +void GPU::SwapBuffers( + std::optional<std::reference_wrapper<const Tegra::FramebufferConfig>> framebuffer) { + renderer.SwapBuffers(std::move(framebuffer)); +} + u32 RenderTargetBytesPerPixel(RenderTargetFormat format) { ASSERT(format != RenderTargetFormat::NONE); diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index ac7aec6a4..62649bd6e 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -200,6 +200,13 @@ public: std::array<u32, NUM_REGS> reg_array; }; } regs{}; + + /// Push GPU command entries to be processed + void PushGPUEntries(Tegra::CommandList&& entries); + + /// Swap buffers (render frame) + void SwapBuffers( + std::optional<std::reference_wrapper<const Tegra::FramebufferConfig>> framebuffer); private: void ProcessBindMethod(const MethodCall& method_call); @@ -207,11 +214,13 @@ private: void ProcessSemaphoreRelease(); void ProcessSemaphoreAcquire(); - // Calls a GPU puller method. + /// Calls a GPU puller method. void CallPullerMethod(const MethodCall& method_call); - // Calls a GPU engine method. + + /// Calls a GPU engine method. void CallEngineMethod(const MethodCall& method_call); - // Determines where the method should be executed. + + /// Determines where the method should be executed. bool ExecuteMethodOnEngine(const MethodCall& method_call); private: |