Device time


Other APIs support timestamp query on the CPU side so that it’s possible to anchor the GPU side timestamps to a common time line. (ie, glGetInteger64v(GL_TIMESTAMP, …), grCalibrateGpuTimestamp(…), ID3D12CommandQueue::GetClockCalibration ) It would be nice if something like this was added to Vulkan.

Meanwhile I’ve rolled my own version using a separate thread that blocks on a fence from a command buffer with a single timestamp write. This works reasonably well to get an overview of where the GPU is in relation to the CPU. The jitter is in the < 50us range most of the time. I’m guessing IHVs are able to do this with better accuracy/efficiency though.