yuzu-emu
/
yuzu
Archived
1
0
Fork 0

kernel: reinitialize after dram layout change

This commit is contained in:
Liam 2022-10-30 11:01:22 -04:00
parent ccfdb7c1af
commit 8f00c59462
1 changed files with 8 additions and 1 deletions

View File

@ -137,6 +137,7 @@ struct System::Impl {
device_memory = std::make_unique<Core::DeviceMemory>(); device_memory = std::make_unique<Core::DeviceMemory>();
is_multicore = Settings::values.use_multi_core.GetValue(); is_multicore = Settings::values.use_multi_core.GetValue();
extended_memory_layout = Settings::values.use_extended_memory_layout.GetValue();
core_timing.SetMulticore(is_multicore); core_timing.SetMulticore(is_multicore);
core_timing.Initialize([&system]() { system.RegisterHostThread(); }); core_timing.Initialize([&system]() { system.RegisterHostThread(); });
@ -166,13 +167,18 @@ struct System::Impl {
} }
void ReinitializeIfNecessary(System& system) { void ReinitializeIfNecessary(System& system) {
if (is_multicore == Settings::values.use_multi_core.GetValue()) { const bool must_reinitialize =
is_multicore != Settings::values.use_multi_core.GetValue() ||
extended_memory_layout != Settings::values.use_extended_memory_layout.GetValue();
if (!must_reinitialize) {
return; return;
} }
LOG_DEBUG(Kernel, "Re-initializing"); LOG_DEBUG(Kernel, "Re-initializing");
is_multicore = Settings::values.use_multi_core.GetValue(); is_multicore = Settings::values.use_multi_core.GetValue();
extended_memory_layout = Settings::values.use_extended_memory_layout.GetValue();
Initialize(system); Initialize(system);
} }
@ -521,6 +527,7 @@ struct System::Impl {
bool is_multicore{}; bool is_multicore{};
bool is_async_gpu{}; bool is_async_gpu{};
bool extended_memory_layout{};
ExecuteProgramCallback execute_program_callback; ExecuteProgramCallback execute_program_callback;
ExitCallback exit_callback; ExitCallback exit_callback;