summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/core.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index 40a610435..d8934be52 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -137,6 +137,7 @@ struct System::Impl {
137 device_memory = std::make_unique<Core::DeviceMemory>(); 137 device_memory = std::make_unique<Core::DeviceMemory>();
138 138
139 is_multicore = Settings::values.use_multi_core.GetValue(); 139 is_multicore = Settings::values.use_multi_core.GetValue();
140 extended_memory_layout = Settings::values.use_extended_memory_layout.GetValue();
140 141
141 core_timing.SetMulticore(is_multicore); 142 core_timing.SetMulticore(is_multicore);
142 core_timing.Initialize([&system]() { system.RegisterHostThread(); }); 143 core_timing.Initialize([&system]() { system.RegisterHostThread(); });
@@ -166,13 +167,18 @@ struct System::Impl {
166 } 167 }
167 168
168 void ReinitializeIfNecessary(System& system) { 169 void ReinitializeIfNecessary(System& system) {
169 if (is_multicore == Settings::values.use_multi_core.GetValue()) { 170 const bool must_reinitialize =
171 is_multicore != Settings::values.use_multi_core.GetValue() ||
172 extended_memory_layout != Settings::values.use_extended_memory_layout.GetValue();
173
174 if (!must_reinitialize) {
170 return; 175 return;
171 } 176 }
172 177
173 LOG_DEBUG(Kernel, "Re-initializing"); 178 LOG_DEBUG(Kernel, "Re-initializing");
174 179
175 is_multicore = Settings::values.use_multi_core.GetValue(); 180 is_multicore = Settings::values.use_multi_core.GetValue();
181 extended_memory_layout = Settings::values.use_extended_memory_layout.GetValue();
176 182
177 Initialize(system); 183 Initialize(system);
178 } 184 }
@@ -521,6 +527,7 @@ struct System::Impl {
521 527
522 bool is_multicore{}; 528 bool is_multicore{};
523 bool is_async_gpu{}; 529 bool is_async_gpu{};
530 bool extended_memory_layout{};
524 531
525 ExecuteProgramCallback execute_program_callback; 532 ExecuteProgramCallback execute_program_callback;
526 ExitCallback exit_callback; 533 ExitCallback exit_callback;