Measuring Input Latency with VK_EXT_present_timing
The article describes a side project using the Vulkan VK_EXT_present_timing extension to measure end-to-end input latency in graphics applications. The author explains how this extension allows precise timing of frame presentation, enabling developers to quantify the delay between user input and visible screen output.
Background
- VK_EXT_present_timing is a Vulkan graphics extension (a low-level GPU programming API) that lets developers accurately measure when frames actually appear on screen, not just when they're submitted to the GPU.
- Input latency ("lag") is the delay between a user action (e.g., a mouse click or key press) and the corresponding visual feedback on screen. It's a critical metric for gaming, VR, and real-time interactive applications.
- The author (The Maister, handle for Hans-Kristian Arntzen) is a prominent Vulkan and graphics driver developer who has contributed to open-source GPU software (e.g., Wine/DXVK, Mesa). This blog post documents a side project using a specialized hardware device to precisely measure end-to-end input latency (button press to photon) with the help of VK_EXT_present_timing.
- The post sits at the intersection of low-level GPU programming, display timing, and human-computer interaction — relevant to anyone building latency-sensitive software where every millisecond matters.