Separate Metrics Library query handle for each cl_event

Change-Id: I9a61eb351acb49f84d857290bf99f72ead5d919c
This commit is contained in:
Piotr Maciejewski
2020-06-19 10:57:01 +02:00
committed by sys_ocldev
parent 3ce64c8be1
commit 1b272852f9
11 changed files with 196 additions and 88 deletions

View File

@@ -129,6 +129,8 @@ Event::~Event() {
timeStampNode->returnTag();
}
if (perfCounterNode != nullptr) {
cmdQueue->getPerfCounters()->deleteQuery(perfCounterNode->tagForCpuAccess->query.handle);
perfCounterNode->tagForCpuAccess->query.handle = {};
perfCounterNode->returnTag();
}
cmdQueue->decRefInternal();
@@ -198,7 +200,9 @@ cl_int Event::getEventProfilingInfo(cl_profiling_info paramName,
if (!perfCountersEnabled) {
return CL_INVALID_VALUE;
}
if (!cmdQueue->getPerfCounters()->getApiReport(paramValueSize,
if (!cmdQueue->getPerfCounters()->getApiReport(perfCounterNode,
paramValueSize,
paramValue,
paramValueSizeRet,
updateStatusAndCheckCompletion())) {
@@ -741,7 +745,7 @@ TagNode<HwTimeStamps> *Event::getHwTimeStampNode() {
TagNode<HwPerfCounter> *Event::getHwPerfCounterNode() {
if (!perfCounterNode && cmdQueue->getPerfCounters()) {
const uint32_t gpuReportSize = cmdQueue->getPerfCounters()->getGpuReportSize();
const uint32_t gpuReportSize = HwPerfCounter::getSize(*(cmdQueue->getPerfCounters()));
perfCounterNode = cmdQueue->getGpgpuCommandStreamReceiver().getEventPerfCountAllocator(gpuReportSize)->getTag();
}
return perfCounterNode;