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
commit0e90fce8d476d7790edc8d7716ab3ad7fe262cd2 (patch)
treee2380c7a71d1d024e38bc6e6ed9febf100285fbc /src/core/core.cpp
parent57f20d0d708caba8a9c2129551d012c25d146c5b (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();