diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-01-05 08:09:39 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-02-13 06:16:19 +0100 |
commit | 75ccd9959ca7aa78b71fbb800ed2127d8613e9dc (patch) | |
tree | 3b9b5c0779cff69ef135bb3394ae70a0d3a9804d /src/video_core/video_core.cpp | |
parent | tests/buffer_base: Add cached CPU writes tests (diff) | |
download | yuzu-75ccd9959ca7aa78b71fbb800ed2127d8613e9dc.tar yuzu-75ccd9959ca7aa78b71fbb800ed2127d8613e9dc.tar.gz yuzu-75ccd9959ca7aa78b71fbb800ed2127d8613e9dc.tar.bz2 yuzu-75ccd9959ca7aa78b71fbb800ed2127d8613e9dc.tar.lz yuzu-75ccd9959ca7aa78b71fbb800ed2127d8613e9dc.tar.xz yuzu-75ccd9959ca7aa78b71fbb800ed2127d8613e9dc.tar.zst yuzu-75ccd9959ca7aa78b71fbb800ed2127d8613e9dc.zip |
Diffstat (limited to 'src/video_core/video_core.cpp')
-rw-r--r-- | src/video_core/video_core.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/video_core/video_core.cpp b/src/video_core/video_core.cpp index 53444e945..e1b38c6ac 100644 --- a/src/video_core/video_core.cpp +++ b/src/video_core/video_core.cpp @@ -38,19 +38,18 @@ namespace VideoCore { std::unique_ptr<Tegra::GPU> CreateGPU(Core::Frontend::EmuWindow& emu_window, Core::System& system) { const bool use_nvdec = Settings::values.use_nvdec_emulation.GetValue(); - std::unique_ptr<Tegra::GPU> gpu = std::make_unique<Tegra::GPU>( - system, Settings::values.use_asynchronous_gpu_emulation.GetValue(), use_nvdec); - + const bool use_async = Settings::values.use_asynchronous_gpu_emulation.GetValue(); + auto gpu = std::make_unique<Tegra::GPU>(system, use_async, use_nvdec); auto context = emu_window.CreateSharedContext(); - const auto scope = context->Acquire(); - - auto renderer = CreateRenderer(system, emu_window, *gpu, std::move(context)); - if (!renderer->Init()) { + auto scope = context->Acquire(); + try { + auto renderer = CreateRenderer(system, emu_window, *gpu, std::move(context)); + gpu->BindRenderer(std::move(renderer)); + return gpu; + } catch (const std::runtime_error& exception) { + LOG_ERROR(HW_GPU, "Failed to initialize GPU: {}", exception.what()); return nullptr; } - - gpu->BindRenderer(std::move(renderer)); - return gpu; } u16 GetResolutionScaleFactor(const RendererBase& renderer) { |