Merge pull request #3946 from zhaowenlan1779/macos-no-hw-shader

citra_qt: disable hw shader by default for macos
This commit is contained in:
James Rowe 2018-07-18 10:07:12 -06:00 committed by GitHub
commit 7fa2076918
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 0 deletions

View file

@ -95,7 +95,14 @@ void Config::ReadValues() {
// Renderer // Renderer
Settings::values.use_hw_renderer = sdl2_config->GetBoolean("Renderer", "use_hw_renderer", true); Settings::values.use_hw_renderer = sdl2_config->GetBoolean("Renderer", "use_hw_renderer", true);
#ifdef __APPLE__
// Hardware shader is broken on macos thanks to poor drivers.
// We still want to provide this option for test/development purposes, but disable it by
// default.
Settings::values.use_hw_shader = sdl2_config->GetBoolean("Renderer", "use_hw_shader", false);
#else
Settings::values.use_hw_shader = sdl2_config->GetBoolean("Renderer", "use_hw_shader", true); Settings::values.use_hw_shader = sdl2_config->GetBoolean("Renderer", "use_hw_shader", true);
#endif
Settings::values.shaders_accurate_gs = Settings::values.shaders_accurate_gs =
sdl2_config->GetBoolean("Renderer", "shaders_accurate_gs", true); sdl2_config->GetBoolean("Renderer", "shaders_accurate_gs", true);
Settings::values.shaders_accurate_mul = Settings::values.shaders_accurate_mul =

View file

@ -83,7 +83,14 @@ void Config::ReadValues() {
qt_config->beginGroup("Renderer"); qt_config->beginGroup("Renderer");
Settings::values.use_hw_renderer = qt_config->value("use_hw_renderer", true).toBool(); Settings::values.use_hw_renderer = qt_config->value("use_hw_renderer", true).toBool();
#ifdef __APPLE__
// Hardware shader is broken on macos thanks to poor drivers.
// We still want to provide this option for test/development purposes, but disable it by
// default.
Settings::values.use_hw_shader = qt_config->value("use_hw_shader", false).toBool();
#else
Settings::values.use_hw_shader = qt_config->value("use_hw_shader", true).toBool(); Settings::values.use_hw_shader = qt_config->value("use_hw_shader", true).toBool();
#endif
Settings::values.shaders_accurate_gs = qt_config->value("shaders_accurate_gs", true).toBool(); Settings::values.shaders_accurate_gs = qt_config->value("shaders_accurate_gs", true).toBool();
Settings::values.shaders_accurate_mul = Settings::values.shaders_accurate_mul =
qt_config->value("shaders_accurate_mul", false).toBool(); qt_config->value("shaders_accurate_mul", false).toBool();

View file

@ -2,6 +2,9 @@
// Licensed under GPLv2 or any later version // Licensed under GPLv2 or any later version
// Refer to the license.txt file included. // Refer to the license.txt file included.
#ifdef __APPLE__
#include <QMessageBox>
#endif
#include "citra_qt/configuration/configure_graphics.h" #include "citra_qt/configuration/configure_graphics.h"
#include "core/core.h" #include "core/core.h"
#include "core/settings.h" #include "core/settings.h"
@ -26,6 +29,18 @@ ConfigureGraphics::ConfigureGraphics(QWidget* parent)
ui->hw_shader_group->setEnabled(ui->toggle_hw_shader->isChecked()); ui->hw_shader_group->setEnabled(ui->toggle_hw_shader->isChecked());
connect(ui->toggle_hw_shader, &QCheckBox::stateChanged, ui->hw_shader_group, connect(ui->toggle_hw_shader, &QCheckBox::stateChanged, ui->hw_shader_group,
&QWidget::setEnabled); &QWidget::setEnabled);
#ifdef __APPLE__
connect(ui->toggle_hw_shader, &QCheckBox::stateChanged, this, [this](int state) {
if (state == Qt::Checked) {
QMessageBox::warning(
this, tr("Hardware Shader Warning"),
tr("Hardware Shader support is broken on macOS, and will cause graphical issues "
"like showing a black screen.<br><br>The option is only there for "
"test/development purposes. If you experience graphical issues with Hardware "
"Shader, please turn it off."));
}
});
#endif
} }
ConfigureGraphics::~ConfigureGraphics() {} ConfigureGraphics::~ConfigureGraphics() {}