settings: Add new graphics setting for use_asynchronous_gpu_emulation.
This commit is contained in:
@@ -392,6 +392,7 @@ struct Values {
|
|||||||
bool use_frame_limit;
|
bool use_frame_limit;
|
||||||
u16 frame_limit;
|
u16 frame_limit;
|
||||||
bool use_accurate_gpu_emulation;
|
bool use_accurate_gpu_emulation;
|
||||||
|
bool use_asynchronous_gpu_emulation;
|
||||||
|
|
||||||
float bg_red;
|
float bg_red;
|
||||||
float bg_green;
|
float bg_green;
|
||||||
|
|||||||
@@ -160,6 +160,8 @@ TelemetrySession::TelemetrySession() {
|
|||||||
AddField(Telemetry::FieldType::UserConfig, "Renderer_FrameLimit", Settings::values.frame_limit);
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_FrameLimit", Settings::values.frame_limit);
|
||||||
AddField(Telemetry::FieldType::UserConfig, "Renderer_UseAccurateGpuEmulation",
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_UseAccurateGpuEmulation",
|
||||||
Settings::values.use_accurate_gpu_emulation);
|
Settings::values.use_accurate_gpu_emulation);
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_UseAsynchronousGpuEmulation",
|
||||||
|
Settings::values.use_asynchronous_gpu_emulation);
|
||||||
AddField(Telemetry::FieldType::UserConfig, "System_UseDockedMode",
|
AddField(Telemetry::FieldType::UserConfig, "System_UseDockedMode",
|
||||||
Settings::values.use_docked_mode);
|
Settings::values.use_docked_mode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -372,6 +372,8 @@ void Config::ReadValues() {
|
|||||||
Settings::values.frame_limit = qt_config->value("frame_limit", 100).toInt();
|
Settings::values.frame_limit = qt_config->value("frame_limit", 100).toInt();
|
||||||
Settings::values.use_accurate_gpu_emulation =
|
Settings::values.use_accurate_gpu_emulation =
|
||||||
qt_config->value("use_accurate_gpu_emulation", false).toBool();
|
qt_config->value("use_accurate_gpu_emulation", false).toBool();
|
||||||
|
Settings::values.use_asynchronous_gpu_emulation =
|
||||||
|
qt_config->value("use_asynchronous_gpu_emulation", true).toBool();
|
||||||
|
|
||||||
Settings::values.bg_red = qt_config->value("bg_red", 0.0).toFloat();
|
Settings::values.bg_red = qt_config->value("bg_red", 0.0).toFloat();
|
||||||
Settings::values.bg_green = qt_config->value("bg_green", 0.0).toFloat();
|
Settings::values.bg_green = qt_config->value("bg_green", 0.0).toFloat();
|
||||||
@@ -630,6 +632,8 @@ void Config::SaveValues() {
|
|||||||
qt_config->setValue("use_frame_limit", Settings::values.use_frame_limit);
|
qt_config->setValue("use_frame_limit", Settings::values.use_frame_limit);
|
||||||
qt_config->setValue("frame_limit", Settings::values.frame_limit);
|
qt_config->setValue("frame_limit", Settings::values.frame_limit);
|
||||||
qt_config->setValue("use_accurate_gpu_emulation", Settings::values.use_accurate_gpu_emulation);
|
qt_config->setValue("use_accurate_gpu_emulation", Settings::values.use_accurate_gpu_emulation);
|
||||||
|
qt_config->setValue("use_asynchronous_gpu_emulation",
|
||||||
|
Settings::values.use_asynchronous_gpu_emulation);
|
||||||
|
|
||||||
// Cast to double because Qt's written float values are not human-readable
|
// Cast to double because Qt's written float values are not human-readable
|
||||||
qt_config->setValue("bg_red", (double)Settings::values.bg_red);
|
qt_config->setValue("bg_red", (double)Settings::values.bg_red);
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ void ConfigureGraphics::setConfiguration() {
|
|||||||
ui->toggle_frame_limit->setChecked(Settings::values.use_frame_limit);
|
ui->toggle_frame_limit->setChecked(Settings::values.use_frame_limit);
|
||||||
ui->frame_limit->setValue(Settings::values.frame_limit);
|
ui->frame_limit->setValue(Settings::values.frame_limit);
|
||||||
ui->use_accurate_gpu_emulation->setChecked(Settings::values.use_accurate_gpu_emulation);
|
ui->use_accurate_gpu_emulation->setChecked(Settings::values.use_accurate_gpu_emulation);
|
||||||
|
ui->use_asynchronous_gpu_emulation->setChecked(Settings::values.use_asynchronous_gpu_emulation);
|
||||||
bg_color = QColor::fromRgbF(Settings::values.bg_red, Settings::values.bg_green,
|
bg_color = QColor::fromRgbF(Settings::values.bg_red, Settings::values.bg_green,
|
||||||
Settings::values.bg_blue);
|
Settings::values.bg_blue);
|
||||||
ui->bg_button->setStyleSheet(
|
ui->bg_button->setStyleSheet(
|
||||||
@@ -88,6 +89,8 @@ void ConfigureGraphics::applyConfiguration() {
|
|||||||
Settings::values.use_frame_limit = ui->toggle_frame_limit->isChecked();
|
Settings::values.use_frame_limit = ui->toggle_frame_limit->isChecked();
|
||||||
Settings::values.frame_limit = ui->frame_limit->value();
|
Settings::values.frame_limit = ui->frame_limit->value();
|
||||||
Settings::values.use_accurate_gpu_emulation = ui->use_accurate_gpu_emulation->isChecked();
|
Settings::values.use_accurate_gpu_emulation = ui->use_accurate_gpu_emulation->isChecked();
|
||||||
|
Settings::values.use_asynchronous_gpu_emulation =
|
||||||
|
ui->use_asynchronous_gpu_emulation->isChecked();
|
||||||
Settings::values.bg_red = static_cast<float>(bg_color.redF());
|
Settings::values.bg_red = static_cast<float>(bg_color.redF());
|
||||||
Settings::values.bg_green = static_cast<float>(bg_color.greenF());
|
Settings::values.bg_green = static_cast<float>(bg_color.greenF());
|
||||||
Settings::values.bg_blue = static_cast<float>(bg_color.blueF());
|
Settings::values.bg_blue = static_cast<float>(bg_color.blueF());
|
||||||
|
|||||||
@@ -55,6 +55,13 @@
|
|||||||
<string>Use accurate GPU emulation (slow)</string>
|
<string>Use accurate GPU emulation (slow)</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="use_asynchronous_gpu_emulation">
|
||||||
|
<property name="text">
|
||||||
|
<string>Use asynchronous GPU emulation</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
|||||||
@@ -352,6 +352,8 @@ void Config::ReadValues() {
|
|||||||
static_cast<u16>(sdl2_config->GetInteger("Renderer", "frame_limit", 100));
|
static_cast<u16>(sdl2_config->GetInteger("Renderer", "frame_limit", 100));
|
||||||
Settings::values.use_accurate_gpu_emulation =
|
Settings::values.use_accurate_gpu_emulation =
|
||||||
sdl2_config->GetBoolean("Renderer", "use_accurate_gpu_emulation", false);
|
sdl2_config->GetBoolean("Renderer", "use_accurate_gpu_emulation", false);
|
||||||
|
Settings::values.use_asynchronous_gpu_emulation =
|
||||||
|
sdl2_config->GetBoolean("Renderer", "use_asynchronous_gpu_emulation", true);
|
||||||
|
|
||||||
Settings::values.bg_red = (float)sdl2_config->GetReal("Renderer", "bg_red", 0.0);
|
Settings::values.bg_red = (float)sdl2_config->GetReal("Renderer", "bg_red", 0.0);
|
||||||
Settings::values.bg_green = (float)sdl2_config->GetReal("Renderer", "bg_green", 0.0);
|
Settings::values.bg_green = (float)sdl2_config->GetReal("Renderer", "bg_green", 0.0);
|
||||||
|
|||||||
@@ -114,6 +114,10 @@ frame_limit =
|
|||||||
# 0 (default): Off (fast), 1 : On (slow)
|
# 0 (default): Off (fast), 1 : On (slow)
|
||||||
use_accurate_gpu_emulation =
|
use_accurate_gpu_emulation =
|
||||||
|
|
||||||
|
# Whether to use asynchronous GPU emulation
|
||||||
|
# 0 : Off (slow), 1 (default): On (fast)
|
||||||
|
use_asynchronous_gpu_emulation =
|
||||||
|
|
||||||
# The clear color for the renderer. What shows up on the sides of the bottom screen.
|
# The clear color for the renderer. What shows up on the sides of the bottom screen.
|
||||||
# Must be in range of 0.0-1.0. Defaults to 1.0 for all.
|
# Must be in range of 0.0-1.0. Defaults to 1.0 for all.
|
||||||
bg_red =
|
bg_red =
|
||||||
|
|||||||
Reference in New Issue
Block a user