aboutsummaryrefslogtreecommitdiff
path: root/src/core/core.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-10-30 23:16:35 -0700
committerbunnei <bunneidev@gmail.com>2020-11-01 01:52:38 -0700
commit7d2839d7a32fcefb66e1d5b1e0305da760c09eb0 (patch)
treee2380c7a71d1d024e38bc6e6ed9febf100285fbc /src/core/core.cpp
parente67b8678f8f261b582ff8449fff90058a9a7b901 (diff)
core: Initialize GPU before services.
Diffstat (limited to 'src/core/core.cpp')
-rw-r--r--src/core/core.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index fde2ccc096..2427960084 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -179,16 +179,18 @@ struct System::Impl {
arp_manager.ResetAll();
telemetry_session = std::make_unique<Core::TelemetrySession>();
+
+ gpu_core = VideoCore::CreateGPU(emu_window, system);
+ if (!gpu_core) {
+ return ResultStatus::ErrorVideoCore;
+ }
+
service_manager = std::make_shared<Service::SM::ServiceManager>(kernel);
Service::Init(service_manager, system);
GDBStub::DeferStart();
interrupt_manager = std::make_unique<Core::Hardware::InterruptManager>(system);
- gpu_core = VideoCore::CreateGPU(emu_window, system);
- if (!gpu_core) {
- return ResultStatus::ErrorVideoCore;
- }
// Initialize time manager, which must happen after kernel is created
time_manager.Initialize();