mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Track TSP OOQ ownership
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
0d973aaaa3
commit
c4a936d864
@ -27,20 +27,6 @@ void TimestampPacketContainer::swapNodes(TimestampPacketContainer ×tampPack
|
||||
timestampPacketNodes.swap(timestampPacketContainer.timestampPacketNodes);
|
||||
}
|
||||
|
||||
void TimestampPacketContainer::resolveDependencies(bool clearAllDependencies) {
|
||||
std::vector<TagNodeBase *> pendingNodes;
|
||||
|
||||
for (auto node : timestampPacketNodes) {
|
||||
if (node->canBeReleased() || clearAllDependencies) {
|
||||
node->returnTag();
|
||||
} else {
|
||||
pendingNodes.push_back(node);
|
||||
}
|
||||
}
|
||||
|
||||
std::swap(timestampPacketNodes, pendingNodes);
|
||||
}
|
||||
|
||||
void TimestampPacketContainer::assignAndIncrementNodesRefCounts(const TimestampPacketContainer &inputTimestampPacketContainer) {
|
||||
auto &inputNodes = inputTimestampPacketContainer.peekNodes();
|
||||
std::copy(inputNodes.begin(), inputNodes.end(), std::back_inserter(timestampPacketNodes));
|
||||
@ -56,10 +42,17 @@ void TimestampPacketContainer::makeResident(CommandStreamReceiver &commandStream
|
||||
}
|
||||
}
|
||||
|
||||
void TimestampPacketDependencies::moveNodesToNewContainer(TimestampPacketContainer ×tampPacketContainer) {
|
||||
timestampPacketContainer.assignAndIncrementNodesRefCounts(cacheFlushNodes);
|
||||
timestampPacketContainer.assignAndIncrementNodesRefCounts(previousEnqueueNodes);
|
||||
timestampPacketContainer.assignAndIncrementNodesRefCounts(barrierNodes);
|
||||
timestampPacketContainer.assignAndIncrementNodesRefCounts(auxToNonAuxNodes);
|
||||
timestampPacketContainer.assignAndIncrementNodesRefCounts(nonAuxToAuxNodes);
|
||||
void TimestampPacketContainer::moveNodesToNewContainer(TimestampPacketContainer ×tampPacketContainer) {
|
||||
TimestampPacketContainer tempContainer;
|
||||
swapNodes(tempContainer);
|
||||
|
||||
timestampPacketContainer.assignAndIncrementNodesRefCounts(tempContainer);
|
||||
}
|
||||
|
||||
void TimestampPacketDependencies::moveNodesToNewContainer(TimestampPacketContainer ×tampPacketContainer) {
|
||||
cacheFlushNodes.moveNodesToNewContainer(timestampPacketContainer);
|
||||
previousEnqueueNodes.moveNodesToNewContainer(timestampPacketContainer);
|
||||
barrierNodes.moveNodesToNewContainer(timestampPacketContainer);
|
||||
auxToNonAuxNodes.moveNodesToNewContainer(timestampPacketContainer);
|
||||
nonAuxToAuxNodes.moveNodesToNewContainer(timestampPacketContainer);
|
||||
}
|
||||
|
@ -115,8 +115,8 @@ class TimestampPacketContainer : public NonCopyableClass {
|
||||
void add(TagNodeBase *timestampPacketNode);
|
||||
void swapNodes(TimestampPacketContainer ×tampPacketContainer);
|
||||
void assignAndIncrementNodesRefCounts(const TimestampPacketContainer &inputTimestampPacketContainer);
|
||||
void resolveDependencies(bool clearAllDependencies);
|
||||
void makeResident(CommandStreamReceiver &commandStreamReceiver);
|
||||
void moveNodesToNewContainer(TimestampPacketContainer ×tampPacketContainer);
|
||||
|
||||
protected:
|
||||
std::vector<TagNodeBase *> timestampPacketNodes;
|
||||
|
Reference in New Issue
Block a user