diff options
author | Rodrigo Locatti <reinuseslisp@airmail.cc> | 2020-04-02 06:38:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-02 06:38:25 +0200 |
commit | 825a6e2615f86742b2e5182af1329da4a2bae413 (patch) | |
tree | 0b5d26f82b65067f0562b14a65b0d34aba688e01 /src/video_core/gpu_thread.cpp | |
parent | Merge pull request #3591 from ReinUsesLisp/vk-wrapper-part2 (diff) | |
parent | Frontend: Don't call DoneCurrent if the context isnt already current (diff) | |
download | yuzu-825a6e2615f86742b2e5182af1329da4a2bae413.tar yuzu-825a6e2615f86742b2e5182af1329da4a2bae413.tar.gz yuzu-825a6e2615f86742b2e5182af1329da4a2bae413.tar.bz2 yuzu-825a6e2615f86742b2e5182af1329da4a2bae413.tar.lz yuzu-825a6e2615f86742b2e5182af1329da4a2bae413.tar.xz yuzu-825a6e2615f86742b2e5182af1329da4a2bae413.tar.zst yuzu-825a6e2615f86742b2e5182af1329da4a2bae413.zip |
Diffstat (limited to 'src/video_core/gpu_thread.cpp')
-rw-r--r-- | src/video_core/gpu_thread.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp index b1088af3d..270c7ae0d 100644 --- a/src/video_core/gpu_thread.cpp +++ b/src/video_core/gpu_thread.cpp @@ -5,7 +5,7 @@ #include "common/assert.h" #include "common/microprofile.h" #include "core/core.h" -#include "core/frontend/scope_acquire_context.h" +#include "core/frontend/emu_window.h" #include "video_core/dma_pusher.h" #include "video_core/gpu.h" #include "video_core/gpu_thread.h" @@ -14,8 +14,8 @@ namespace VideoCommon::GPUThread { /// Runs the GPU thread -static void RunThread(VideoCore::RendererBase& renderer, Tegra::DmaPusher& dma_pusher, - SynchState& state) { +static void RunThread(VideoCore::RendererBase& renderer, Core::Frontend::GraphicsContext& context, + Tegra::DmaPusher& dma_pusher, SynchState& state) { MicroProfileOnThreadCreate("GpuThread"); // Wait for first GPU command before acquiring the window context @@ -27,7 +27,7 @@ static void RunThread(VideoCore::RendererBase& renderer, Tegra::DmaPusher& dma_p return; } - Core::Frontend::ScopeAcquireContext acquire_context{renderer.GetRenderWindow()}; + auto current_context = context.Acquire(); CommandDataContainer next; while (state.is_running) { @@ -62,8 +62,11 @@ ThreadManager::~ThreadManager() { thread.join(); } -void ThreadManager::StartThread(VideoCore::RendererBase& renderer, Tegra::DmaPusher& dma_pusher) { - thread = std::thread{RunThread, std::ref(renderer), std::ref(dma_pusher), std::ref(state)}; +void ThreadManager::StartThread(VideoCore::RendererBase& renderer, + Core::Frontend::GraphicsContext& context, + Tegra::DmaPusher& dma_pusher) { + thread = std::thread{RunThread, std::ref(renderer), std::ref(context), std::ref(dma_pusher), + std::ref(state)}; } void ThreadManager::SubmitList(Tegra::CommandList&& entries) { |