I'm pretty sure double buffered vsync to get a 30 fps cap on a 60hz screen is sadly straight up impossible on vulkan right now. I think both dxvk and vkd3d-proton use a cpu based frame limiter to "emulate" dxgi present interval = 2.
When the monitor runs faster than the FPS limiter, there is no extra latency added by FIFO buffering in general.
You can use VKD3D_SWAPCHAIN_LATENCY_FRAMES=1 to try reduce things, and =0 as a super aggressive case that will probably cause performance issues.
@HansKristian-Work thank you! now in the converse, what if i want to run things at 60fps, 60hz but want to mitigate vsync stutter (at the cost of input latency) when frames drop? i believe triple buffering solves this. However, vulkan only provides mailbox sync which drops unused frames that can cause animation inconsistencies. Is there a way to get FIFO with triple buffers?
Basically is there a way to get double buffered vsync when frames are not missing vblank but use triple buffering at the cost of input latency only when frames drop without any anomalies like in regular mailbox sync?
VKD3D_SWAPCHAIN_LATENCY_FRAMES=1
also i believe this is the same as max pre-rendered frames?
I think both dxvk and vkd3d-proton use a cpu based frame limiter to "emulate" dxgi present interval = 2
@mbriar so in theory if i use VKD3D_FRAME_RATE or DXVK_FRAME_RATE, it "emulates" this? but in practice, despite emulation, it achieves the same end result right? or are there any drawbacks?
Is there a way to get FIFO with triple buffers?
That is the default.
No further action required.
DXVK_FRAME_RATEx1 2025-05VKD3D_FRAME_RATEx1 2025-05VKD3D_SWAPCHAIN_LATENCY_FRAMES=1```x1 2025-05VKD3D_SWAPCHAIN_LATENCY_FRAMES=1`x1 2025-05
Description
I want to play some games at 30fps in a 60hz monitor with minimal input latency. As per my understanding VK_PRESENT_MODE_FIFO_KHR uses 2 back buffers but this means that there will be significant input latency at 30fps, 60hz.
What i want
I want to adjust the backbuffer count to 1 so that double buffered vsync is used with a 30fps cap which means much less input. Is there a way to do this on vkd3d-proton? Thank you!
Additional Information
NVIDIA Driver v570.144