diff options
| author | 2020-05-08 18:53:13 -0400 | |
|---|---|---|
| committer | 2020-06-27 11:36:14 -0400 | |
| commit | 467d43570e10b98fa33067352d35fe62ceb3cb9e (patch) | |
| tree | 830b0a3b6bc7675ce3c988c86d000f1a4287214c /src | |
| parent | ARMInterface/Externals: Update dynarmic and fit to latest version. (diff) | |
| download | yuzu-467d43570e10b98fa33067352d35fe62ceb3cb9e.tar.gz yuzu-467d43570e10b98fa33067352d35fe62ceb3cb9e.tar.xz yuzu-467d43570e10b98fa33067352d35fe62ceb3cb9e.zip | |
Clang Format.
Diffstat (limited to 'src')
| -rw-r--r-- | src/common/atomic_ops.cpp | 14 | ||||
| -rw-r--r-- | src/common/atomic_ops.h | 2 | ||||
| -rw-r--r-- | src/common/thread.cpp | 30 | ||||
| -rw-r--r-- | src/core/arm/unicorn/arm_unicorn.cpp | 4 | ||||
| -rw-r--r-- | src/core/arm/unicorn/arm_unicorn.h | 4 | ||||
| -rw-r--r-- | src/core/core.h | 2 | ||||
| -rw-r--r-- | src/core/hle/kernel/mutex.cpp | 11 | ||||
| -rw-r--r-- | src/core/hle/kernel/mutex.h | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/physical_core.h | 7 | ||||
| -rw-r--r-- | src/core/hle/kernel/server_session.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/bootmanager.cpp | 1 | ||||
| -rw-r--r-- | src/yuzu/bootmanager.h | 3 | ||||
| -rw-r--r-- | src/yuzu/debugger/wait_tree.cpp | 5 | ||||
| -rw-r--r-- | src/yuzu/main.cpp | 9 |
14 files changed, 49 insertions, 48 deletions
diff --git a/src/common/atomic_ops.cpp b/src/common/atomic_ops.cpp index 65cdfb4fd..6b2236114 100644 --- a/src/common/atomic_ops.cpp +++ b/src/common/atomic_ops.cpp | |||
| @@ -35,26 +35,26 @@ bool AtomicCompareAndSwap(u64 volatile* pointer, u64 value, u64 expected) { | |||
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | bool AtomicCompareAndSwap(u64 volatile* pointer, u128 value, u128 expected) { | 37 | bool AtomicCompareAndSwap(u64 volatile* pointer, u128 value, u128 expected) { |
| 38 | return _InterlockedCompareExchange128((__int64*)pointer, value[1], value[0], (__int64*)expected.data()) != 0; | 38 | return _InterlockedCompareExchange128((__int64*)pointer, value[1], value[0], |
| 39 | (__int64*)expected.data()) != 0; | ||
| 39 | } | 40 | } |
| 40 | 41 | ||
| 41 | |||
| 42 | #else | 42 | #else |
| 43 | 43 | ||
| 44 | bool AtomicCompareAndSwap(u8 volatile* pointer, u8 value, u8 expected) { | 44 | bool AtomicCompareAndSwap(u8 volatile* pointer, u8 value, u8 expected) { |
| 45 | return __sync_bool_compare_and_swap (pointer, value, expected); | 45 | return __sync_bool_compare_and_swap(pointer, value, expected); |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | bool AtomicCompareAndSwap(u16 volatile* pointer, u16 value, u16 expected) { | 48 | bool AtomicCompareAndSwap(u16 volatile* pointer, u16 value, u16 expected) { |
| 49 | return __sync_bool_compare_and_swap (pointer, value, expected); | 49 | return __sync_bool_compare_and_swap(pointer, value, expected); |
| 50 | } | 50 | } |
| 51 | 51 | ||
| 52 | bool AtomicCompareAndSwap(u32 volatile* pointer, u32 value, u32 expected) { | 52 | bool AtomicCompareAndSwap(u32 volatile* pointer, u32 value, u32 expected) { |
| 53 | return __sync_bool_compare_and_swap (pointer, value, expected); | 53 | return __sync_bool_compare_and_swap(pointer, value, expected); |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | bool AtomicCompareAndSwap(u64 volatile* pointer, u64 value, u64 expected) { | 56 | bool AtomicCompareAndSwap(u64 volatile* pointer, u64 value, u64 expected) { |
| 57 | return __sync_bool_compare_and_swap (pointer, value, expected); | 57 | return __sync_bool_compare_and_swap(pointer, value, expected); |
| 58 | } | 58 | } |
| 59 | 59 | ||
| 60 | bool AtomicCompareAndSwap(u64 volatile* pointer, u128 value, u128 expected) { | 60 | bool AtomicCompareAndSwap(u64 volatile* pointer, u128 value, u128 expected) { |
| @@ -62,7 +62,7 @@ bool AtomicCompareAndSwap(u64 volatile* pointer, u128 value, u128 expected) { | |||
| 62 | unsigned __int128 expected_a; | 62 | unsigned __int128 expected_a; |
| 63 | std::memcpy(&value_a, value.data(), sizeof(u128)); | 63 | std::memcpy(&value_a, value.data(), sizeof(u128)); |
| 64 | std::memcpy(&expected_a, expected.data(), sizeof(u128)); | 64 | std::memcpy(&expected_a, expected.data(), sizeof(u128)); |
| 65 | return __sync_bool_compare_and_swap ((unsigned __int128*)pointer, value_a, expected_a); | 65 | return __sync_bool_compare_and_swap((unsigned __int128*)pointer, value_a, expected_a); |
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | #endif | 68 | #endif |
diff --git a/src/common/atomic_ops.h b/src/common/atomic_ops.h index 22cb3a402..e6181d521 100644 --- a/src/common/atomic_ops.h +++ b/src/common/atomic_ops.h | |||
| @@ -8,7 +8,7 @@ | |||
| 8 | 8 | ||
| 9 | namespace Common { | 9 | namespace Common { |
| 10 | 10 | ||
| 11 | bool AtomicCompareAndSwap(u8 volatile * pointer, u8 value, u8 expected); | 11 | bool AtomicCompareAndSwap(u8 volatile* pointer, u8 value, u8 expected); |
| 12 | bool AtomicCompareAndSwap(u16 volatile* pointer, u16 value, u16 expected); | 12 | bool AtomicCompareAndSwap(u16 volatile* pointer, u16 value, u16 expected); |
| 13 | bool AtomicCompareAndSwap(u32 volatile* pointer, u32 value, u32 expected); | 13 | bool AtomicCompareAndSwap(u32 volatile* pointer, u32 value, u32 expected); |
| 14 | bool AtomicCompareAndSwap(u64 volatile* pointer, u64 value, u64 expected); | 14 | bool AtomicCompareAndSwap(u64 volatile* pointer, u64 value, u64 expected); |
diff --git a/src/common/thread.cpp b/src/common/thread.cpp index 33c8437f5..8e5935e6a 100644 --- a/src/common/thread.cpp +++ b/src/common/thread.cpp | |||
| @@ -31,21 +31,21 @@ void SetCurrentThreadPriority(ThreadPriority new_priority) { | |||
| 31 | auto handle = GetCurrentThread(); | 31 | auto handle = GetCurrentThread(); |
| 32 | int windows_priority = 0; | 32 | int windows_priority = 0; |
| 33 | switch (new_priority) { | 33 | switch (new_priority) { |
| 34 | case ThreadPriority::Low: | 34 | case ThreadPriority::Low: |
| 35 | windows_priority = THREAD_PRIORITY_BELOW_NORMAL; | 35 | windows_priority = THREAD_PRIORITY_BELOW_NORMAL; |
| 36 | break; | 36 | break; |
| 37 | case ThreadPriority::Normal: | 37 | case ThreadPriority::Normal: |
| 38 | windows_priority = THREAD_PRIORITY_NORMAL; | 38 | windows_priority = THREAD_PRIORITY_NORMAL; |
| 39 | break; | 39 | break; |
| 40 | case ThreadPriority::High: | 40 | case ThreadPriority::High: |
| 41 | windows_priority = THREAD_PRIORITY_ABOVE_NORMAL; | 41 | windows_priority = THREAD_PRIORITY_ABOVE_NORMAL; |
| 42 | break; | 42 | break; |
| 43 | case ThreadPriority::VeryHigh: | 43 | case ThreadPriority::VeryHigh: |
| 44 | windows_priority = THREAD_PRIORITY_HIGHEST; | 44 | windows_priority = THREAD_PRIORITY_HIGHEST; |
| 45 | break; | 45 | break; |
| 46 | default: | 46 | default: |
| 47 | windows_priority = THREAD_PRIORITY_NORMAL; | 47 | windows_priority = THREAD_PRIORITY_NORMAL; |
| 48 | break; | 48 | break; |
| 49 | } | 49 | } |
| 50 | SetThreadPriority(handle, windows_priority); | 50 | SetThreadPriority(handle, windows_priority); |
| 51 | } | 51 | } |
diff --git a/src/core/arm/unicorn/arm_unicorn.cpp b/src/core/arm/unicorn/arm_unicorn.cpp index 9f9690454..35e8f42e8 100644 --- a/src/core/arm/unicorn/arm_unicorn.cpp +++ b/src/core/arm/unicorn/arm_unicorn.cpp | |||
| @@ -63,8 +63,8 @@ static bool UnmappedMemoryHook(uc_engine* uc, uc_mem_type type, u64 addr, int si | |||
| 63 | return false; | 63 | return false; |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | ARM_Unicorn::ARM_Unicorn(System& system, CPUInterrupts& interrupt_handlers, | 66 | ARM_Unicorn::ARM_Unicorn(System& system, CPUInterrupts& interrupt_handlers, bool uses_wall_clock, |
| 67 | bool uses_wall_clock, Arch architecture, std::size_t core_index) | 67 | Arch architecture, std::size_t core_index) |
| 68 | : ARM_Interface{system, interrupt_handlers, uses_wall_clock}, core_index{core_index} { | 68 | : ARM_Interface{system, interrupt_handlers, uses_wall_clock}, core_index{core_index} { |
| 69 | const auto arch = architecture == Arch::AArch32 ? UC_ARCH_ARM : UC_ARCH_ARM64; | 69 | const auto arch = architecture == Arch::AArch32 ? UC_ARCH_ARM : UC_ARCH_ARM64; |
| 70 | CHECKED(uc_open(arch, UC_MODE_ARM, &uc)); | 70 | CHECKED(uc_open(arch, UC_MODE_ARM, &uc)); |
diff --git a/src/core/arm/unicorn/arm_unicorn.h b/src/core/arm/unicorn/arm_unicorn.h index 9b7d7f6c2..8ace8b86f 100644 --- a/src/core/arm/unicorn/arm_unicorn.h +++ b/src/core/arm/unicorn/arm_unicorn.h | |||
| @@ -20,8 +20,8 @@ public: | |||
| 20 | AArch64, // 64-bit ARM | 20 | AArch64, // 64-bit ARM |
| 21 | }; | 21 | }; |
| 22 | 22 | ||
| 23 | explicit ARM_Unicorn(System& system, CPUInterrupts& interrupt_handlers, | 23 | explicit ARM_Unicorn(System& system, CPUInterrupts& interrupt_handlers, bool uses_wall_clock, |
| 24 | bool uses_wall_clock, Arch architecture, std::size_t core_index); | 24 | Arch architecture, std::size_t core_index); |
| 25 | ~ARM_Unicorn() override; | 25 | ~ARM_Unicorn() override; |
| 26 | 26 | ||
| 27 | void SetPC(u64 pc) override; | 27 | void SetPC(u64 pc) override; |
diff --git a/src/core/core.h b/src/core/core.h index 87df79d57..d2d1fcc5b 100644 --- a/src/core/core.h +++ b/src/core/core.h | |||
| @@ -148,8 +148,6 @@ public: | |||
| 148 | */ | 148 | */ |
| 149 | ResultStatus Pause(); | 149 | ResultStatus Pause(); |
| 150 | 150 | ||
| 151 | |||
| 152 | |||
| 153 | /** | 151 | /** |
| 154 | * Step the CPU one instruction | 152 | * Step the CPU one instruction |
| 155 | * @return Result status, indicating whether or not the operation succeeded. | 153 | * @return Result status, indicating whether or not the operation succeeded. |
diff --git a/src/core/hle/kernel/mutex.cpp b/src/core/hle/kernel/mutex.cpp index 32dc1ffae..8f6c944d1 100644 --- a/src/core/hle/kernel/mutex.cpp +++ b/src/core/hle/kernel/mutex.cpp | |||
| @@ -9,7 +9,6 @@ | |||
| 9 | #include "common/assert.h" | 9 | #include "common/assert.h" |
| 10 | #include "common/logging/log.h" | 10 | #include "common/logging/log.h" |
| 11 | #include "core/core.h" | 11 | #include "core/core.h" |
| 12 | #include "core/core.h" | ||
| 13 | #include "core/hle/kernel/errors.h" | 12 | #include "core/hle/kernel/errors.h" |
| 14 | #include "core/hle/kernel/handle_table.h" | 13 | #include "core/hle/kernel/handle_table.h" |
| 15 | #include "core/hle/kernel/kernel.h" | 14 | #include "core/hle/kernel/kernel.h" |
| @@ -126,11 +125,11 @@ ResultCode Mutex::TryAcquire(VAddr address, Handle holding_thread_handle, | |||
| 126 | 125 | ||
| 127 | std::pair<ResultCode, std::shared_ptr<Thread>> Mutex::Unlock(std::shared_ptr<Thread> owner, | 126 | std::pair<ResultCode, std::shared_ptr<Thread>> Mutex::Unlock(std::shared_ptr<Thread> owner, |
| 128 | VAddr address) { | 127 | VAddr address) { |
| 129 | // The mutex address must be 4-byte aligned | 128 | // The mutex address must be 4-byte aligned |
| 130 | if ((address % sizeof(u32)) != 0) { | 129 | if ((address % sizeof(u32)) != 0) { |
| 131 | LOG_ERROR(Kernel, "Address is not 4-byte aligned! address={:016X}", address); | 130 | LOG_ERROR(Kernel, "Address is not 4-byte aligned! address={:016X}", address); |
| 132 | return {ERR_INVALID_ADDRESS, nullptr}; | 131 | return {ERR_INVALID_ADDRESS, nullptr}; |
| 133 | } | 132 | } |
| 134 | 133 | ||
| 135 | auto [new_owner, num_waiters] = GetHighestPriorityMutexWaitingThread(owner, address); | 134 | auto [new_owner, num_waiters] = GetHighestPriorityMutexWaitingThread(owner, address); |
| 136 | if (new_owner == nullptr) { | 135 | if (new_owner == nullptr) { |
diff --git a/src/core/hle/kernel/mutex.h b/src/core/hle/kernel/mutex.h index bce06ecea..3b81dc3df 100644 --- a/src/core/hle/kernel/mutex.h +++ b/src/core/hle/kernel/mutex.h | |||
| @@ -29,7 +29,8 @@ public: | |||
| 29 | Handle requesting_thread_handle); | 29 | Handle requesting_thread_handle); |
| 30 | 30 | ||
| 31 | /// Unlocks a mutex for owner at address | 31 | /// Unlocks a mutex for owner at address |
| 32 | std::pair<ResultCode, std::shared_ptr<Thread>> Unlock(std::shared_ptr<Thread> owner, VAddr address); | 32 | std::pair<ResultCode, std::shared_ptr<Thread>> Unlock(std::shared_ptr<Thread> owner, |
| 33 | VAddr address); | ||
| 33 | 34 | ||
| 34 | /// Releases the mutex at the specified address. | 35 | /// Releases the mutex at the specified address. |
| 35 | ResultCode Release(VAddr address); | 36 | ResultCode Release(VAddr address); |
diff --git a/src/core/hle/kernel/physical_core.h b/src/core/hle/kernel/physical_core.h index 751b994a7..85f6dec05 100644 --- a/src/core/hle/kernel/physical_core.h +++ b/src/core/hle/kernel/physical_core.h | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #include "core/arm/cpu_interrupt_handler.h" | 10 | #include "core/arm/cpu_interrupt_handler.h" |
| 11 | 11 | ||
| 12 | namespace Common { | 12 | namespace Common { |
| 13 | class SpinLock; | 13 | class SpinLock; |
| 14 | } | 14 | } |
| 15 | 15 | ||
| 16 | namespace Kernel { | 16 | namespace Kernel { |
| @@ -27,9 +27,8 @@ namespace Kernel { | |||
| 27 | 27 | ||
| 28 | class PhysicalCore { | 28 | class PhysicalCore { |
| 29 | public: | 29 | public: |
| 30 | PhysicalCore(Core::System& system, std::size_t id, | 30 | PhysicalCore(Core::System& system, std::size_t id, Kernel::Scheduler& scheduler, |
| 31 | Kernel::Scheduler& scheduler, | 31 | Core::CPUInterruptHandler& interrupt_handler); |
| 32 | Core::CPUInterruptHandler& interrupt_handler); | ||
| 33 | ~PhysicalCore(); | 32 | ~PhysicalCore(); |
| 34 | 33 | ||
| 35 | PhysicalCore(const PhysicalCore&) = delete; | 34 | PhysicalCore(const PhysicalCore&) = delete; |
diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp index e988a3f22..7b23a6889 100644 --- a/src/core/hle/kernel/server_session.cpp +++ b/src/core/hle/kernel/server_session.cpp | |||
| @@ -17,9 +17,9 @@ | |||
| 17 | #include "core/hle/kernel/hle_ipc.h" | 17 | #include "core/hle/kernel/hle_ipc.h" |
| 18 | #include "core/hle/kernel/kernel.h" | 18 | #include "core/hle/kernel/kernel.h" |
| 19 | #include "core/hle/kernel/process.h" | 19 | #include "core/hle/kernel/process.h" |
| 20 | #include "core/hle/kernel/scheduler.h" | ||
| 20 | #include "core/hle/kernel/server_session.h" | 21 | #include "core/hle/kernel/server_session.h" |
| 21 | #include "core/hle/kernel/session.h" | 22 | #include "core/hle/kernel/session.h" |
| 22 | #include "core/hle/kernel/scheduler.h" | ||
| 23 | #include "core/hle/kernel/thread.h" | 23 | #include "core/hle/kernel/thread.h" |
| 24 | #include "core/memory.h" | 24 | #include "core/memory.h" |
| 25 | 25 | ||
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp index 5f93bd432..4bfce48a4 100644 --- a/src/yuzu/bootmanager.cpp +++ b/src/yuzu/bootmanager.cpp | |||
| @@ -71,7 +71,6 @@ void EmuThread::run() { | |||
| 71 | 71 | ||
| 72 | gpu.ReleaseContext(); | 72 | gpu.ReleaseContext(); |
| 73 | 73 | ||
| 74 | |||
| 75 | // Holds whether the cpu was running during the last iteration, | 74 | // Holds whether the cpu was running during the last iteration, |
| 76 | // so that the DebugModeLeft signal can be emitted before the | 75 | // so that the DebugModeLeft signal can be emitted before the |
| 77 | // next execution step | 76 | // next execution step |
diff --git a/src/yuzu/bootmanager.h b/src/yuzu/bootmanager.h index 768568b3e..6c59b4d5c 100644 --- a/src/yuzu/bootmanager.h +++ b/src/yuzu/bootmanager.h | |||
| @@ -62,7 +62,8 @@ public: | |||
| 62 | if (!running) { | 62 | if (!running) { |
| 63 | running_wait.Set(); | 63 | running_wait.Set(); |
| 64 | /// Wait until effectively paused | 64 | /// Wait until effectively paused |
| 65 | while (running_guard); | 65 | while (running_guard) |
| 66 | ; | ||
| 66 | } | 67 | } |
| 67 | } | 68 | } |
| 68 | 69 | ||
diff --git a/src/yuzu/debugger/wait_tree.cpp b/src/yuzu/debugger/wait_tree.cpp index 0226ae2e2..9bb0a0109 100644 --- a/src/yuzu/debugger/wait_tree.cpp +++ b/src/yuzu/debugger/wait_tree.cpp | |||
| @@ -127,11 +127,12 @@ std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeCallstack::GetChildren() cons | |||
| 127 | return list; | 127 | return list; |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | auto backtrace = Core::ARM_Interface::GetBacktraceFromContext(Core::System::GetInstance(), thread.GetContext64()); | 130 | auto backtrace = Core::ARM_Interface::GetBacktraceFromContext(Core::System::GetInstance(), |
| 131 | thread.GetContext64()); | ||
| 131 | 132 | ||
| 132 | for (auto& entry : backtrace) { | 133 | for (auto& entry : backtrace) { |
| 133 | std::string s = fmt::format("{:20}{:016X} {:016X} {:016X} {}", entry.module, entry.address, | 134 | std::string s = fmt::format("{:20}{:016X} {:016X} {:016X} {}", entry.module, entry.address, |
| 134 | entry.original_address, entry.offset, entry.name); | 135 | entry.original_address, entry.offset, entry.name); |
| 135 | list.push_back(std::make_unique<WaitTreeText>(QString::fromStdString(s))); | 136 | list.push_back(std::make_unique<WaitTreeText>(QString::fromStdString(s))); |
| 136 | } | 137 | } |
| 137 | 138 | ||
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index f1d9ec326..53790c89c 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp | |||
| @@ -534,7 +534,8 @@ void GMainWindow::InitializeWidgets() { | |||
| 534 | if (emulation_running) { | 534 | if (emulation_running) { |
| 535 | return; | 535 | return; |
| 536 | } | 536 | } |
| 537 | bool is_async = !Settings::values.use_asynchronous_gpu_emulation || Settings::values.use_multi_core; | 537 | bool is_async = |
| 538 | !Settings::values.use_asynchronous_gpu_emulation || Settings::values.use_multi_core; | ||
| 538 | Settings::values.use_asynchronous_gpu_emulation = is_async; | 539 | Settings::values.use_asynchronous_gpu_emulation = is_async; |
| 539 | async_status_button->setChecked(Settings::values.use_asynchronous_gpu_emulation); | 540 | async_status_button->setChecked(Settings::values.use_asynchronous_gpu_emulation); |
| 540 | Settings::Apply(); | 541 | Settings::Apply(); |
| @@ -552,7 +553,8 @@ void GMainWindow::InitializeWidgets() { | |||
| 552 | return; | 553 | return; |
| 553 | } | 554 | } |
| 554 | Settings::values.use_multi_core = !Settings::values.use_multi_core; | 555 | Settings::values.use_multi_core = !Settings::values.use_multi_core; |
| 555 | bool is_async = Settings::values.use_asynchronous_gpu_emulation || Settings::values.use_multi_core; | 556 | bool is_async = |
| 557 | Settings::values.use_asynchronous_gpu_emulation || Settings::values.use_multi_core; | ||
| 556 | Settings::values.use_asynchronous_gpu_emulation = is_async; | 558 | Settings::values.use_asynchronous_gpu_emulation = is_async; |
| 557 | async_status_button->setChecked(Settings::values.use_asynchronous_gpu_emulation); | 559 | async_status_button->setChecked(Settings::values.use_asynchronous_gpu_emulation); |
| 558 | multicore_status_button->setChecked(Settings::values.use_multi_core); | 560 | multicore_status_button->setChecked(Settings::values.use_multi_core); |
| @@ -1958,7 +1960,8 @@ void GMainWindow::OnConfigure() { | |||
| 1958 | 1960 | ||
| 1959 | dock_status_button->setChecked(Settings::values.use_docked_mode); | 1961 | dock_status_button->setChecked(Settings::values.use_docked_mode); |
| 1960 | multicore_status_button->setChecked(Settings::values.use_multi_core); | 1962 | multicore_status_button->setChecked(Settings::values.use_multi_core); |
| 1961 | Settings::values.use_asynchronous_gpu_emulation = Settings::values.use_asynchronous_gpu_emulation || Settings::values.use_multi_core; | 1963 | Settings::values.use_asynchronous_gpu_emulation = |
| 1964 | Settings::values.use_asynchronous_gpu_emulation || Settings::values.use_multi_core; | ||
| 1962 | async_status_button->setChecked(Settings::values.use_asynchronous_gpu_emulation); | 1965 | async_status_button->setChecked(Settings::values.use_asynchronous_gpu_emulation); |
| 1963 | 1966 | ||
| 1964 | #ifdef HAS_VULKAN | 1967 | #ifdef HAS_VULKAN |