diff options
Diffstat (limited to 'src/yuzu/configuration')
| -rw-r--r-- | src/yuzu/configuration/configure_graphics.cpp | 28 | ||||
| -rw-r--r-- | src/yuzu/configuration/shared_widget.cpp | 2 | 
2 files changed, 17 insertions, 13 deletions
| diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp index 8622dc184..fd6bebf0f 100644 --- a/src/yuzu/configuration/configure_graphics.cpp +++ b/src/yuzu/configuration/configure_graphics.cpp @@ -193,14 +193,10 @@ void ConfigureGraphics::PopulateVSyncModeSelection() {                              : vsync_mode_combobox_enum_map[current_index];      int index{};      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 -        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_enum_map.clear(); @@ -497,11 +493,19 @@ void ConfigureGraphics::RetrieveVulkanDevices() {  }  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;  } diff --git a/src/yuzu/configuration/shared_widget.cpp b/src/yuzu/configuration/shared_widget.cpp index 7721e58f9..d63093985 100644 --- a/src/yuzu/configuration/shared_widget.cpp +++ b/src/yuzu/configuration/shared_widget.cpp @@ -194,7 +194,7 @@ QWidget* Widget::CreateRadioGroup(std::function<std::string()>& serializer,          return group;      } -    const auto get_selected = [=]() -> u32 { +    const auto get_selected = [=]() -> int {          for (const auto& [id, button] : radio_buttons) {              if (button->isChecked()) {                  return id; | 
