diff options
| author | Lioncash <mathew1800@gmail.com> | 2019-04-09 14:02:00 -0400 |
|---|---|---|
| committer | Lioncash <mathew1800@gmail.com> | 2019-04-11 22:11:40 -0400 |
| commit | 6d0551196d90af7f1233c655fd3b979811a14708 (patch) | |
| tree | 9e91a2a79d5351360efaca57cc49be7801c7faf3 /src/video_core/video_core.cpp | |
| parent | f2331a804a2fa300d9a7dc0d012e3242b7accdaf (diff) | |
video_core/gpu: Create threads separately from initialization
Like with CPU emulation, we generally don't want to fire off the threads
immediately after the relevant classes are initialized, we want to do
this after all necessary data is done loading first.
This splits the thread creation into its own interface member function
to allow controlling when these threads in particular get created.
Diffstat (limited to 'src/video_core/video_core.cpp')
| -rw-r--r-- | src/video_core/video_core.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/video_core/video_core.cpp b/src/video_core/video_core.cpp index cb82ecf3f..60cda0ca3 100644 --- a/src/video_core/video_core.cpp +++ b/src/video_core/video_core.cpp @@ -5,6 +5,8 @@ #include <memory> #include "core/core.h" #include "core/settings.h" +#include "video_core/gpu_asynch.h" +#include "video_core/gpu_synch.h" #include "video_core/renderer_base.h" #include "video_core/renderer_opengl/renderer_opengl.h" #include "video_core/video_core.h" @@ -16,6 +18,14 @@ std::unique_ptr<RendererBase> CreateRenderer(Core::Frontend::EmuWindow& emu_wind return std::make_unique<OpenGL::RendererOpenGL>(emu_window, system); } +std::unique_ptr<Tegra::GPU> CreateGPU(Core::System& system) { + if (Settings::values.use_asynchronous_gpu_emulation) { + return std::make_unique<VideoCommon::GPUAsynch>(system, system.Renderer()); + } + + return std::make_unique<VideoCommon::GPUSynch>(system, system.Renderer()); +} + u16 GetResolutionScaleFactor(const RendererBase& renderer) { return static_cast<u16>( Settings::values.resolution_factor |
