|
@@ -193,14 +193,10 @@ void ConfigureGraphics::PopulateVSyncModeSelection() {
|
|
|
: vsync_mode_combobox_enum_map[current_index];
|
|
: vsync_mode_combobox_enum_map[current_index];
|
|
|
int index{};
|
|
int index{};
|
|
|
const int device{vulkan_device_combobox->currentIndex()}; //< current selected Vulkan device
|
|
const int device{vulkan_device_combobox->currentIndex()}; //< current selected Vulkan device
|
|
|
- if (device == -1) {
|
|
|
|
|
- // Invalid device
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
const auto& present_modes = //< relevant vector of present modes for the selected device or API
|
|
const auto& present_modes = //< relevant vector of present modes for the selected device or API
|
|
|
- backend == Settings::RendererBackend::Vulkan ? device_present_modes[device]
|
|
|
|
|
- : default_present_modes;
|
|
|
|
|
|
|
+ backend == Settings::RendererBackend::Vulkan && device > -1 ? device_present_modes[device]
|
|
|
|
|
+ : default_present_modes;
|
|
|
|
|
|
|
|
vsync_mode_combobox->clear();
|
|
vsync_mode_combobox->clear();
|
|
|
vsync_mode_combobox_enum_map.clear();
|
|
vsync_mode_combobox_enum_map.clear();
|
|
@@ -497,11 +493,19 @@ void ConfigureGraphics::RetrieveVulkanDevices() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
Settings::RendererBackend ConfigureGraphics::GetCurrentGraphicsBackend() const {
|
|
Settings::RendererBackend ConfigureGraphics::GetCurrentGraphicsBackend() const {
|
|
|
- if (!Settings::IsConfiguringGlobal() && !api_restore_global_button->isEnabled()) {
|
|
|
|
|
- return Settings::values.renderer_backend.GetValue(true);
|
|
|
|
|
|
|
+ const auto selected_backend = [=]() {
|
|
|
|
|
+ if (!Settings::IsConfiguringGlobal() && !api_restore_global_button->isEnabled()) {
|
|
|
|
|
+ return Settings::values.renderer_backend.GetValue(true);
|
|
|
|
|
+ }
|
|
|
|
|
+ return static_cast<Settings::RendererBackend>(
|
|
|
|
|
+ combobox_translations.at(Settings::EnumMetadata<Settings::RendererBackend>::Index())
|
|
|
|
|
+ .at(api_combobox->currentIndex())
|
|
|
|
|
+ .first);
|
|
|
|
|
+ }();
|
|
|
|
|
+
|
|
|
|
|
+ if (selected_backend == Settings::RendererBackend::Vulkan &&
|
|
|
|
|
+ UISettings::values.has_broken_vulkan) {
|
|
|
|
|
+ return Settings::RendererBackend::OpenGL;
|
|
|
}
|
|
}
|
|
|
- return static_cast<Settings::RendererBackend>(
|
|
|
|
|
- combobox_translations.at(Settings::EnumMetadata<Settings::RendererBackend>::Index())
|
|
|
|
|
- .at(api_combobox->currentIndex())
|
|
|
|
|
- .first);
|
|
|
|
|
|
|
+ return selected_backend;
|
|
|
}
|
|
}
|