@@ -5105,6 +5105,8 @@ pi_result piEventGetProfilingInfo(pi_event Event, pi_profiling_info ParamName,
5105
5105
Event->Queue
5106
5106
? Event->Queue ->Device ->ZeDeviceProperties ->timerResolution
5107
5107
: Event->Context ->Devices [0 ]->ZeDeviceProperties ->timerResolution ;
5108
+ // Get timestamp frequency
5109
+ const double ZeTimerFreq = 1E09 / ZeTimerResolution;
5108
5110
5109
5111
ReturnHelper ReturnValue (ParamValueSize, ParamValue, ParamValueSizeRet);
5110
5112
@@ -5113,11 +5115,8 @@ pi_result piEventGetProfilingInfo(pi_event Event, pi_profiling_info ParamName,
5113
5115
switch (ParamName) {
5114
5116
case PI_PROFILING_INFO_COMMAND_START: {
5115
5117
ZE_CALL (zeEventQueryKernelTimestamp, (Event->ZeEvent , &tsResult));
5116
-
5117
- uint64_t ContextStartTime = tsResult.context .kernelStart ;
5118
- ContextStartTime *= ZeTimerResolution;
5119
-
5120
- return ReturnValue (uint64_t {ContextStartTime});
5118
+ uint64_t ContextStartTime = tsResult.context .kernelStart * ZeTimerFreq;
5119
+ return ReturnValue (ContextStartTime);
5121
5120
}
5122
5121
case PI_PROFILING_INFO_COMMAND_END: {
5123
5122
ZE_CALL (zeEventQueryKernelTimestamp, (Event->ZeEvent , &tsResult));
@@ -5136,9 +5135,8 @@ pi_result piEventGetProfilingInfo(pi_event Event, pi_profiling_info ParamName,
5136
5135
(1LL << Device->ZeDeviceProperties ->kernelTimestampValidBits ) - 1 ;
5137
5136
ContextEndTime += TimestampMaxValue - ContextStartTime;
5138
5137
}
5139
- ContextEndTime *= ZeTimerResolution;
5140
-
5141
- return ReturnValue (uint64_t {ContextEndTime});
5138
+ ContextEndTime *= ZeTimerFreq;
5139
+ return ReturnValue (ContextEndTime);
5142
5140
}
5143
5141
case PI_PROFILING_INFO_COMMAND_QUEUED:
5144
5142
case PI_PROFILING_INFO_COMMAND_SUBMIT:
0 commit comments