Calibrated Timestamps

The source for this sample can be found in the Khronos Vulkan samples github repository.

This sample demonstrates the extension VK_EXT_calibrated_timestamps. The calibrated timestamps profiles any given portion of code, unlike timestamp queries, which only profiles an entire graphic queue.


To enable the VK_EXT_calibrated_timestamps extension, VK_KHR_get_physical_device_properties2 must be enabled.


This sample is built upon the framework of the Vulkan Sample HDR. We demonstrate using calibrated timestamps over the build_command_buffers function.

* Time domain, timestamp, timestamp period, and max deviation

A timestamp is being sampled via the calibrated timestamp extension. In general, one must take two timestamps in order to measure the time elapsed within a block of code.

Each time domain is different, and the measurement of their associated timestamp periods may vary. The precision of timestamps is calibrated by max deviations.

Get time domain and timestamps

A list of time domains can be extracted by using vkGetPhysicalDeviceCalibrateableTimeDomainsEXT. And the Vulkan time domain is defined by the enum VkTimeDomainEXT