diff --git a/src/common/settings.h b/src/common/settings.h index 8cd55bcdd3..2540282790 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -287,8 +287,6 @@ struct Values { true, &use_custom_cpu_ticks}; - SwitchableSetting vtable_bouncing{linkage, true, "vtable_bouncing", Category::Cpu}; - Setting cpuopt_page_tables{linkage, true, "cpuopt_page_tables", Category::CpuDebug}; Setting cpuopt_block_linking{linkage, true, "cpuopt_block_linking", Category::CpuDebug}; Setting cpuopt_return_stack_buffer{linkage, true, "cpuopt_return_stack_buffer", diff --git a/src/core/hle/kernel/physical_core.cpp b/src/core/hle/kernel/physical_core.cpp index 77cdab76d7..04f0010688 100644 --- a/src/core/hle/kernel/physical_core.cpp +++ b/src/core/hle/kernel/physical_core.cpp @@ -103,26 +103,12 @@ void PhysicalCore::RunThread(Kernel::KThread* thread) { const bool data_abort = True(hr & Core::HaltReason::DataAbort); const bool interrupt = True(hr & Core::HaltReason::BreakLoop); - bool may_abort = true; // Ignore aborting virtual functions (for debugging) - if (prefetch_abort && ::Settings::values.vtable_bouncing) { - auto& lock = m_kernel.GlobalSchedulerContext().SchedulerLock(); - lock.Lock(); - Kernel::Svc::ThreadContext ctx; - interface->GetContext(ctx); - LOG_WARNING(Core_ARM, "vtable bouncing {:016X}", ctx.lr); - ctx.pc = ctx.lr; - ctx.r[0] = 0; - interface->SetContext(ctx); - lock.Unlock(); - may_abort = false; - } - // Since scheduling may occur here, we cannot use any cached // state after returning from calls we make. // Notify the debugger and go to sleep if a breakpoint was hit, // or if the thread is unable to continue for any reason. - if (breakpoint || (prefetch_abort && may_abort)) { + if (breakpoint || prefetch_abort) { if (breakpoint) { interface->RewindBreakpointInstruction(); } diff --git a/src/qt_common/config/shared_translation.cpp b/src/qt_common/config/shared_translation.cpp index a0c4779b73..eda0fb2002 100644 --- a/src/qt_common/config/shared_translation.cpp +++ b/src/qt_common/config/shared_translation.cpp @@ -105,10 +105,6 @@ std::unique_ptr InitializeTranslations(QObject* parent) { "cause deadlocks. A range of 77-21000 is recommended.")); INSERT(Settings, cpu_backend, tr("Backend:"), QString()); - INSERT(Settings, vtable_bouncing, tr("Virtual Table Bouncing"), - tr("Bounces (by emulating a 0-valued return) any functions that triggers a prefetch " - "abort")); - // Cpu Debug // Cpu Unsafe diff --git a/src/yuzu/configuration/configure_cpu.cpp b/src/yuzu/configuration/configure_cpu.cpp index eee1c677b7..b31ca849a6 100644 --- a/src/yuzu/configuration/configure_cpu.cpp +++ b/src/yuzu/configuration/configure_cpu.cpp @@ -76,9 +76,7 @@ void ConfigureCpu::Setup(const ConfigurationShared::Builder& builder) { } else if (setting->Id() == Settings::values.cpu_backend.Id()) { backend_layout->addWidget(widget); backend_combobox = widget->combobox; - } else if (setting->Id() == Settings::values.fast_cpu_time.Id() || - setting->Id() == Settings::values.vtable_bouncing.Id() || - setting->Id() == Settings::values.cpu_ticks.Id()) { + } else if (setting->Id() == Settings::values.fast_cpu_time.Id() || setting->Id() == Settings::values.cpu_ticks.Id()) { ui->general_layout->addWidget(widget); } else { // Presently, all other settings here are unsafe checkboxes