I think this was mostly fixed last year [1], but it looks like VK_PRESENT_MODE_FIFO_KHR has unusual stutters when the application generates frames very quickly.
Steps to reproduce:
- System: Intel(R) Core(TM) i7-5930K CPU
- GPU: EVGA GeForce GTX TITAN X
- OS: Linux Mint 18
- Driver: Tested on 375.39 and 375.27.14
- Clone and build https://github.com/saschawillems/vulkan
- Modify base/vulkanswapchain.hpp to replace if (!vsync) with
if (0 && !vsync), forcing the app to use VK_PRESENT_MODE_FIFO_KHR.
// The VK_PRESENT_MODE_FIFO_KHR mode must always be present as per spec // This mode waits for the vertical blank ("v-sync") VkPresentModeKHR swapchainPresentMode = VK_PRESENT_MODE_FIFO_KHR; // If v-sync is not requested, try to find a mailbox mode // It's the lowest latency non-tearing present mode available if (0 && !vsync)
- Rebuild
- Run bin/triangle
Expected results:
Frame times remain very close to 16 ms.
Actual results:
This vktrace shows frame times jumping to 66 ms. This was captured with driver 375.39.
[1] This comment seems to indicate a bugfix was made around August 2016 / driver version 370 which made VK_PRESENT_MODE_FIFO_KHR better: https://github.com/Novum/vkQuake/issues/61#issuecomment-240520054