configuration: Expose separate swap present modes

Previously, yuzu would try and guess which vsync mode to use given
different scenarios, but apparently we didn't always get it right. This
exposes the separate modes in a drop-down the user can select.

If a mode isn't available in Vulkan, it defaults to FIFO.
This commit is contained in:
lat9nq 2023-04-30 15:39:00 -04:00
parent 35b4802239
commit 581d8f34ee
11 changed files with 115 additions and 37 deletions

View file

@ -16,6 +16,12 @@
namespace Settings {
enum class VSyncMode : u32 {
Immediate,
FIFO,
Mailbox,
};
enum class RendererBackend : u32 {
OpenGL = 0,
Vulkan = 1,
@ -455,7 +461,8 @@ struct Values {
SwitchableSetting<NvdecEmulation> nvdec_emulation{NvdecEmulation::GPU, "nvdec_emulation"};
SwitchableSetting<bool> accelerate_astc{true, "accelerate_astc"};
SwitchableSetting<bool> async_astc{false, "async_astc"};
SwitchableSetting<bool> use_vsync{true, "use_vsync"};
Setting<VSyncMode, true> vsync_mode{VSyncMode::FIFO, VSyncMode::Immediate, VSyncMode::Mailbox,
"use_vsync"};
SwitchableSetting<ShaderBackend, true> shader_backend{ShaderBackend::GLSL, ShaderBackend::GLSL,
ShaderBackend::SPIRV, "shader_backend"};
SwitchableSetting<bool> use_asynchronous_shaders{false, "use_asynchronous_shaders"};