fix: correct timestamps if cpu diff below resolution

Related-To: NEO-10615

Currently if cpu diff is equals to zero, gpu timestamp
will be decreased relatively to submit timestamp.
This commit fixes that so timestamps will be aligned.

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
Szymon Morek
2024-05-28 10:30:05 +00:00
committed by Compute-Runtime-Automation
parent e053f3a839
commit 387ec34207
2 changed files with 28 additions and 1 deletions

View File

@@ -285,11 +285,14 @@ void Event::setupRelativeProfilingInfo(ProfilingInfo &profilingInfo) {
auto gpuTicksDiff = static_cast<uint64_t>(timeDiff / resolution);
profilingInfo.gpuTimeInNs = submitTimeStamp.gpuTimeInNs + timeDiff;
profilingInfo.gpuTimeStamp = submitTimeStamp.gpuTimeStamp + std::max<uint64_t>(gpuTicksDiff, 1ul);
} else {
} else if (profilingInfo.cpuTimeInNs < submitTimeStamp.cpuTimeInNs) {
auto timeDiff = submitTimeStamp.cpuTimeInNs - profilingInfo.cpuTimeInNs;
auto gpuTicksDiff = static_cast<uint64_t>(timeDiff / resolution);
profilingInfo.gpuTimeInNs = submitTimeStamp.gpuTimeInNs - timeDiff;
profilingInfo.gpuTimeStamp = submitTimeStamp.gpuTimeStamp - std::max<uint64_t>(gpuTicksDiff, 1ul);
} else {
profilingInfo.gpuTimeInNs = submitTimeStamp.gpuTimeInNs;
profilingInfo.gpuTimeStamp = submitTimeStamp.gpuTimeStamp;
}
}