summaryrefslogtreecommitdiffstats
path: root/src/video_core
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2019-01-21 21:18:09 +0100
committerbunnei <bunneidev@gmail.com>2019-03-07 03:09:09 +0100
commitac51d048a91593a3da124aeea32dc5b0898f1dd6 (patch)
tree91094e0615aea42b1541209fc00a3da6708f9bd1 /src/video_core
parentgpu: Refactor to take RendererBase instead of RasterizerInterface. (diff)
downloadyuzu-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.cpp10
-rw-r--r--src/video_core/gpu.h15
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: