diff --git a/neo/libs/optick/optick_gpu.h b/neo/libs/optick/optick_gpu.h index a3c83364..8134ca6d 100644 --- a/neo/libs/optick/optick_gpu.h +++ b/neo/libs/optick/optick_gpu.h @@ -62,7 +62,7 @@ namespace Optick int64_t GetCPUTimestamp(int64_t gpuTimestamp) { // SRS - Improve accuracy of GPU to CPU timestamp conversion by using floating point doubles - return timestampCPU + std::llround(double(gpuTimestamp - timestampGPU) * (double)frequencyCPU / (double)frequencyGPU); + return timestampCPU + (int64_t)(double(gpuTimestamp - timestampGPU) * (double)frequencyCPU / (double)frequencyGPU); } ClockSynchronization() : frequencyCPU(0), frequencyGPU(0), timestampCPU(0), timestampGPU(0) {} diff --git a/neo/libs/optick/optick_gpu.vulkan.cpp b/neo/libs/optick/optick_gpu.vulkan.cpp index 10296d8d..d9ce25b7 100644 --- a/neo/libs/optick/optick_gpu.vulkan.cpp +++ b/neo/libs/optick/optick_gpu.vulkan.cpp @@ -452,7 +452,7 @@ namespace Optick clock.frequencyCPU = GetHighPrecisionFrequency(); VkPhysicalDeviceProperties Properties; (*vulkanFunctions.vkGetPhysicalDeviceProperties)(nodePayloads[nodeIndex]->physicalDevice, &Properties); - clock.frequencyGPU = std::llround(1000000000.0 / (double)Properties.limits.timestampPeriod); + clock.frequencyGPU = (int64_t)(1000000000.0 / (double)Properties.limits.timestampPeriod); // SRS - Reset entire query pool to clear clock sync query + any leftover queries from previous run (*vulkanFunctions.vkBeginCommandBuffer)(CB, &commandBufferBeginInfo);