mirror of
https://github.com/intel/compute-runtime.git
synced 2025-11-10 05:49:51 +08:00
Fix multi os context profiling data
Change-Id: I89f31fc53e1604a4f9b63bc0fbbfcc7e3c2751fa Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com> Related-To: NEO-4653
This commit is contained in:
@@ -251,24 +251,43 @@ bool Event::calcProfilingData() {
|
||||
if (!dataCalculated && !profilingCpuPath) {
|
||||
if (timestampPacketContainer && timestampPacketContainer->peekNodes().size() > 0) {
|
||||
const auto timestamps = timestampPacketContainer->peekNodes();
|
||||
auto isMultiOsContextCapable = this->getCommandQueue()->getGpgpuCommandStreamReceiver().isMultiOsContextCapable();
|
||||
|
||||
auto contextStartTS = timestamps[0]->tagForCpuAccess->packets[0].contextStart;
|
||||
uint64_t contextEndTS = timestamps[0]->tagForCpuAccess->packets[0].contextEnd;
|
||||
auto globalStartTS = timestamps[0]->tagForCpuAccess->packets[0].globalStart;
|
||||
if (isMultiOsContextCapable) {
|
||||
auto globalStartTS = timestamps[0]->tagForCpuAccess->packets[0].globalStart;
|
||||
uint64_t globalEndTS = timestamps[0]->tagForCpuAccess->packets[0].globalEnd;
|
||||
|
||||
for (const auto ×tamp : timestamps) {
|
||||
const auto &packet = timestamp->tagForCpuAccess->packets[0];
|
||||
if (contextStartTS > packet.contextStart) {
|
||||
contextStartTS = packet.contextStart;
|
||||
for (const auto ×tamp : timestamps) {
|
||||
for (auto i = 0u; i < timestamp->tagForCpuAccess->packetsUsed; ++i) {
|
||||
const auto &packet = timestamp->tagForCpuAccess->packets[i];
|
||||
if (globalStartTS > packet.globalStart) {
|
||||
globalStartTS = packet.globalStart;
|
||||
}
|
||||
if (globalEndTS < packet.globalEnd) {
|
||||
globalEndTS = packet.globalEnd;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (contextEndTS < packet.contextEnd) {
|
||||
contextEndTS = packet.contextEnd;
|
||||
}
|
||||
if (globalStartTS > packet.globalStart) {
|
||||
globalStartTS = packet.globalStart;
|
||||
calculateProfilingDataInternal(globalStartTS, globalEndTS, &globalEndTS, globalStartTS);
|
||||
} else {
|
||||
auto contextStartTS = timestamps[0]->tagForCpuAccess->packets[0].contextStart;
|
||||
uint64_t contextEndTS = timestamps[0]->tagForCpuAccess->packets[0].contextEnd;
|
||||
auto globalStartTS = timestamps[0]->tagForCpuAccess->packets[0].globalStart;
|
||||
|
||||
for (const auto ×tamp : timestamps) {
|
||||
const auto &packet = timestamp->tagForCpuAccess->packets[0];
|
||||
if (contextStartTS > packet.contextStart) {
|
||||
contextStartTS = packet.contextStart;
|
||||
}
|
||||
if (contextEndTS < packet.contextEnd) {
|
||||
contextEndTS = packet.contextEnd;
|
||||
}
|
||||
if (globalStartTS > packet.globalStart) {
|
||||
globalStartTS = packet.globalStart;
|
||||
}
|
||||
}
|
||||
calculateProfilingDataInternal(contextStartTS, contextEndTS, &contextEndTS, globalStartTS);
|
||||
}
|
||||
calculateProfilingDataInternal(contextStartTS, contextEndTS, &contextEndTS, globalStartTS);
|
||||
} else if (timeStampNode) {
|
||||
calculateProfilingDataInternal(
|
||||
timeStampNode->tagForCpuAccess->ContextStartTS,
|
||||
|
||||
Reference in New Issue
Block a user