mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-21 11:05:46 +00:00
configure_graphics: Fix handling of broken Vulkan
The VSync combobox wouldn't populate if there was no Vulkan device, which caused issues with trying to set VSync on other backends. This also adds another layer to GetCurrentGraphicsBackend to check for broken Vulkan and return OpenGL instead of Vulkan.
This commit is contained in:
parent
83ec05d8af
commit
7d94588301
1 changed files with 16 additions and 12 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue