summaryrefslogtreecommitdiffstats
path: root/src/video_core/video_core.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-01-05 08:09:39 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2021-02-13 06:16:19 +0100
commit75ccd9959ca7aa78b71fbb800ed2127d8613e9dc (patch)
tree3b9b5c0779cff69ef135bb3394ae70a0d3a9804d /src/video_core/video_core.cpp
parenttests/buffer_base: Add cached CPU writes tests (diff)
downloadyuzu-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.cpp19
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) {