performance: allow waiting for OOQ timestamps in clEnqueueWaitForEvents

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
Dunajski, Bartosz
2023-07-13 15:48:26 +00:00
committed by Compute-Runtime-Automation
parent d74bba95c4
commit 815b37bf3a
9 changed files with 59 additions and 14 deletions

View File

@@ -1276,9 +1276,14 @@ WaitStatus CommandQueue::waitForAllEngines(bool blockedQueue, PrintfHandler *pri
}
auto waitStatus = WaitStatus::NotReady;
auto waitedOnTimestamps = waitForTimestamps(activeBcsStates, taskCount, waitStatus, this->timestampPacketContainer.get(), this->deferredTimestampPackets.get());
if (waitStatus == WaitStatus::GpuHang) {
return WaitStatus::GpuHang;
bool waitedOnTimestamps = false;
// TSP for OOQ dispatch is optional. We need to wait for task count.
if (!isOOQEnabled()) {
waitedOnTimestamps = waitForTimestamps(activeBcsStates, waitStatus, this->timestampPacketContainer.get(), this->deferredTimestampPackets.get());
if (waitStatus == WaitStatus::GpuHang) {
return WaitStatus::GpuHang;
}
}
waitStatus = waitUntilComplete(taskCount, activeBcsStates, flushStamp->peekStamp(), false, cleanTemporaryAllocationsList, waitedOnTimestamps);