diff --git a/src/citra_qt/configuration/configure_graphics.cpp b/src/citra_qt/configuration/configure_graphics.cpp index 03f62657b..f167d3742 100644 --- a/src/citra_qt/configuration/configure_graphics.cpp +++ b/src/citra_qt/configuration/configure_graphics.cpp @@ -19,13 +19,22 @@ ConfigureGraphics::ConfigureGraphics(QWidget* parent) &QSpinBox::setEnabled); ui->layoutBox->setEnabled(!Settings::values.custom_layout); + + ui->hw_renderer_group->setEnabled(ui->toggle_hw_renderer->isChecked()); + connect(ui->toggle_hw_renderer, &QCheckBox::stateChanged, ui->hw_renderer_group, + &QWidget::setEnabled); + ui->hw_shader_group->setEnabled(ui->toggle_hw_shader->isChecked()); + connect(ui->toggle_hw_shader, &QCheckBox::stateChanged, ui->hw_shader_group, + &QWidget::setEnabled); } ConfigureGraphics::~ConfigureGraphics() {} void ConfigureGraphics::setConfiguration() { ui->toggle_hw_renderer->setChecked(Settings::values.use_hw_renderer); - ui->resolution_factor_combobox->setEnabled(Settings::values.use_hw_renderer); + ui->toggle_hw_shader->setChecked(Settings::values.use_hw_shader); + ui->toggle_accurate_gs->setChecked(Settings::values.shaders_accurate_gs); + ui->toggle_accurate_mul->setChecked(Settings::values.shaders_accurate_mul); ui->toggle_shader_jit->setChecked(Settings::values.use_shader_jit); ui->resolution_factor_combobox->setCurrentIndex(Settings::values.resolution_factor); ui->toggle_vsync->setChecked(Settings::values.use_vsync); @@ -37,6 +46,9 @@ void ConfigureGraphics::setConfiguration() { void ConfigureGraphics::applyConfiguration() { Settings::values.use_hw_renderer = ui->toggle_hw_renderer->isChecked(); + Settings::values.use_hw_shader = ui->toggle_hw_shader->isChecked(); + Settings::values.shaders_accurate_gs = ui->toggle_accurate_gs->isChecked(); + Settings::values.shaders_accurate_mul = ui->toggle_accurate_mul->isChecked(); Settings::values.use_shader_jit = ui->toggle_shader_jit->isChecked(); Settings::values.resolution_factor = static_cast(ui->resolution_factor_combobox->currentIndex()); diff --git a/src/citra_qt/configuration/configure_graphics.ui b/src/citra_qt/configuration/configure_graphics.ui index 765b303a4..330a5fb82 100644 --- a/src/citra_qt/configuration/configure_graphics.ui +++ b/src/citra_qt/configuration/configure_graphics.ui @@ -7,7 +7,7 @@ 0 0 400 - 300 + 427 @@ -15,188 +15,261 @@ - - - - - Graphics - - + + + General + + + + + + Enable V-Sync + + + + + - + - Enable hardware renderer + Limit Speed Percent - - - Enable shader JIT + + + % + + + 1 + + + 9999 + + + 100 - - - - Enable V-Sync - - - - - - - - - Limit Speed Percent - - - - - - - % - - - 1 - - - 9999 - - - 100 - - - - - - - - - - - Internal Resolution: - - - - - - - - Auto (Window Size) - - - - - Native (400x240) - - - - - 2x Native (800x480) - - - - - 3x Native (1200x720) - - - - - 4x Native (1600x960) - - - - - 5x Native (2000x1200) - - - - - 6x Native (2400x1440) - - - - - 7x Native (2800x1680) - - - - - 8x Native (3200x1920) - - - - - 9x Native (3600x2160) - - - - - 10x Native (4000x2400) - - - - - - - - - + + + + + + + + Renderer + + + + + + <html><head/><body><p>Use OpenGL to accelerate rendering.</p><p>Disable to debug graphics-related problem.</p></body></html> + + + Enable Hardware Renderer + + + + + + + + 16 + + + 0 + + + 0 + + + 0 + + + + + + + Internal Resolution + + + + + + + + Auto (Window Size) + + + + + Native (400x240) + + + + + 2x Native (800x480) + + + + + 3x Native (1200x720) + + + + + 4x Native (1600x960) + + + + + 5x Native (2000x1200) + + + + + 6x Native (2400x1440) + + + + + 7x Native (2800x1680) + + + + + 8x Native (3200x1920) + + + + + 9x Native (3600x2160) + + + + + 10x Native (4000x2400) + + + + + + + + + + <html><head/><body><p>Use OpenGL to accelerate shader emulation.</p><p>Requires a relatively powerful GPU for better performance.</p></body></html> + + + Enable Hardware Shader + + + + + + + + 16 + + + 0 + + + 0 + + + 0 + + + + + <html><head/><body><p>Correctly handle all edge cases in multiplication operation in shaders. </p><p>Some games requires this to be enabled for the hardware shader to render properly.</p><p>However this would reduce performance in most games.</p></body></html> + + + Accurate Multiplication + + + + + + + <html><head/><body><p>Force to fall back to software shader emulation when geometry shaders are used. </p><p>Some games require this to be enabled for the hardware shader to render properly.</p><p>However this might reduce performance in some games</p></body></html> + + + Accurate Geometry Shader + + + + + + + + + + + + + <html><head/><body><p>Use the JIT engine instead of the interpreter for software shader emulation. </p><p>Enable this for better performance.</p></body></html> + + + Enable Shader JIT + + + + + Layout - + - + - - - - - Screen Layout: - - - - - - - - Default - - - - - Single Screen - - - - - Large Screen - - - - - Side by Side - - - - - - - - + - Swap Screens + Screen Layout: + + + + + Default + + + + + Single Screen + + + + + Large Screen + + + + + Side by Side + + + + + + + + Swap Screens + + + @@ -216,12 +289,5 @@ - - - toggle_hw_renderer - toggled(bool) - resolution_factor_combobox - setEnabled(bool) - - +