diff --git a/renderdoc/driver/vulkan/vk_counters.cpp b/renderdoc/driver/vulkan/vk_counters.cpp index c39321f41..6aea2bf32 100644 --- a/renderdoc/driver/vulkan/vk_counters.cpp +++ b/renderdoc/driver/vulkan/vk_counters.cpp @@ -134,7 +134,16 @@ void VulkanReplay::convertKhrCounterResult(CounterResult &rdcResult, if(khrUnit == VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR) { RDCASSERT(type == CompType::Double); - rdcResult.value.d /= 1000.0 * 1000.0 * 1000.0; + + if((khrStorage == VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR) || + (khrStorage == VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR)) + { + rdcResult.value.d = rdcResult.value.d / (1000.0 * 1000.0 * 1000.0); + } + else + { + rdcResult.value.d = (double)(rdcResult.value.u64) / (1000.0 * 1000.0 * 1000.0); + } } }