diff options
| author | MerryMage <MerryMage@users.noreply.github.com> | 2020-07-11 16:25:49 +0100 | 
|---|---|---|
| committer | MerryMage <MerryMage@users.noreply.github.com> | 2020-07-11 16:38:38 +0100 | 
| commit | 505aa3a4c1eb2384ab5a46aecf6431db239b74e3 (patch) | |
| tree | 8576d3b825f7cd85122b857f5b10c6f9eae1b87e /src/yuzu | |
| parent | 0193202964449ba7a6ae46d614a63bf5caa589a7 (diff) | |
configure_cpu: Show/Hide debugging options
Diffstat (limited to 'src/yuzu')
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 6 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_cpu.cpp | 22 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_cpu.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_cpu.ui | 48 | 
4 files changed, 78 insertions, 0 deletions
| diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index f28e345a5..430e78e5f 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -635,6 +635,9 @@ void Config::ReadCpuValues() {      qt_config->beginGroup(QStringLiteral("Cpu"));      if (global) { +        Settings::values.cpu_accuracy = static_cast<Settings::CPUAccuracy>( +            ReadSetting(QStringLiteral("cpu_accuracy"), 0).toInt()); +          Settings::values.cpuopt_page_tables =              ReadSetting(QStringLiteral("cpuopt_page_tables"), true).toBool();          Settings::values.cpuopt_block_linking = @@ -1125,6 +1128,9 @@ void Config::SaveCpuValues() {      qt_config->beginGroup(QStringLiteral("Cpu"));      if (global) { +        WriteSetting(QStringLiteral("cpu_accuracy"), +                     static_cast<int>(Settings::values.cpu_accuracy), 0); +          WriteSetting(QStringLiteral("cpuopt_page_tables"), Settings::values.cpuopt_page_tables,                       true);          WriteSetting(QStringLiteral("cpuopt_block_linking"), Settings::values.cpuopt_block_linking, diff --git a/src/yuzu/configuration/configure_cpu.cpp b/src/yuzu/configuration/configure_cpu.cpp index 28e010b6b..4fc392a7e 100644 --- a/src/yuzu/configuration/configure_cpu.cpp +++ b/src/yuzu/configuration/configure_cpu.cpp @@ -15,6 +15,9 @@ ConfigureCpu::ConfigureCpu(QWidget* parent) : QWidget(parent), ui(new Ui::Config      ui->setupUi(this);      SetConfiguration(); + +    connect(ui->accuracy, qOverload<int>(&QComboBox::currentIndexChanged), this, +            &ConfigureCpu::UpdateGroups);  }  ConfigureCpu::~ConfigureCpu() = default; @@ -22,6 +25,10 @@ ConfigureCpu::~ConfigureCpu() = default;  void ConfigureCpu::SetConfiguration() {      const bool runtime_lock = !Core::System::GetInstance().IsPoweredOn(); +    ui->accuracy->setEnabled(runtime_lock); +    ui->accuracy->setCurrentIndex(static_cast<int>(Settings::values.cpu_accuracy)); +    UpdateGroups(static_cast<int>(Settings::values.cpu_accuracy)); +      ui->cpuopt_page_tables->setEnabled(runtime_lock);      ui->cpuopt_page_tables->setChecked(Settings::values.cpuopt_page_tables);      ui->cpuopt_block_linking->setEnabled(runtime_lock); @@ -40,7 +47,22 @@ void ConfigureCpu::SetConfiguration() {      ui->cpuopt_reduce_misalign_checks->setChecked(Settings::values.cpuopt_reduce_misalign_checks);  } +void ConfigureCpu::UpdateGroups(int index) { +    switch (index) { +    case 0: +    default: +        ui->group_safe->setVisible(false); +        break; +    case 1: +        ui->group_safe->setVisible(true); +        break; +    } +} +  void ConfigureCpu::ApplyConfiguration() { +    Settings::values.cpu_accuracy = +        static_cast<Settings::CPUAccuracy>(ui->accuracy->currentIndex()); +      Settings::values.cpuopt_page_tables = ui->cpuopt_page_tables->isChecked();      Settings::values.cpuopt_block_linking = ui->cpuopt_block_linking->isChecked();      Settings::values.cpuopt_return_stack_buffer = ui->cpuopt_return_stack_buffer->isChecked(); diff --git a/src/yuzu/configuration/configure_cpu.h b/src/yuzu/configuration/configure_cpu.h index a4c6e5f20..cf55980b0 100644 --- a/src/yuzu/configuration/configure_cpu.h +++ b/src/yuzu/configuration/configure_cpu.h @@ -25,6 +25,8 @@ private:      void changeEvent(QEvent* event) override;      void RetranslateUI(); +    void UpdateGroups(int index); +      void SetConfiguration();      std::unique_ptr<Ui::ConfigureCpu> ui; diff --git a/src/yuzu/configuration/configure_cpu.ui b/src/yuzu/configuration/configure_cpu.ui index d04cfb2d5..27bd4aa42 100644 --- a/src/yuzu/configuration/configure_cpu.ui +++ b/src/yuzu/configuration/configure_cpu.ui @@ -19,6 +19,54 @@       <item>        <widget class="QGroupBox">         <property name="title"> +        <string>General</string> +       </property> +       <layout class="QVBoxLayout"> +        <item> +         <layout class="QHBoxLayout"> +          <item> +           <widget class="QLabel"> +            <property name="text"> +             <string>Accuracy:</string> +            </property> +           </widget> +          </item> +          <item> +           <widget class="QComboBox" name="accuracy"> +            <item> +             <property name="text"> +              <string>Accurate</string> +             </property> +            </item> +            <item> +             <property name="text"> +              <string>Debugging Mode (Debugging ONLY)</string> +             </property> +            </item> +           </widget> +          </item> +         </layout> +        </item> +        <item> +         <widget class="QLabel"> +          <property name="wordWrap"> +            <bool>1</bool> +          </property> +          <property name="text"> +           <string>We recommend setting accuracy to "Accurate".</string> +          </property> +         </widget> +        </item> +       </layout> +      </widget> +     </item> +    </layout> +   </item> +   <item> +    <layout class="QVBoxLayout"> +     <item> +      <widget class="QGroupBox" name="group_safe"> +       <property name="title">          <string>Safe CPU Optimizations</string>         </property>         <layout class="QVBoxLayout"> | 
