Setup enqueue dependencies in blocked path

Change-Id: Ia6d549924e3e557bae74dbdac691987450cbd3b7
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
Dunajski, Bartosz
2019-11-18 13:35:44 +01:00
committed by sys_ocldev
parent b31e25dbb6
commit 2d5169cf65
6 changed files with 280 additions and 17 deletions

View File

@@ -489,7 +489,6 @@ void CommandQueueHw<GfxFamily>::processDispatchForBlitAuxTranslation(const Multi
buffer->getGraphicsAllocation());
auto auxToNonAuxNode = nodesAllocator->getTag();
timestampPacketDependencies.auxToNonAuxNodes.add(auxToNonAuxNode);
blitPropertiesContainer[bufferIndex].outputTimestampPacket = auxToNonAuxNode;
}
{
@@ -498,22 +497,14 @@ void CommandQueueHw<GfxFamily>::processDispatchForBlitAuxTranslation(const Multi
buffer->getGraphicsAllocation());
auto nonAuxToAuxNode = nodesAllocator->getTag();
timestampPacketDependencies.nonAuxToAuxNodes.add(nonAuxToAuxNode);
blitPropertiesContainer[bufferIndex + numBuffers].outputTimestampPacket = nonAuxToAuxNode;
}
bufferIndex++;
}
if (!queueBlocked) {
getGpgpuCommandStreamReceiver().requestStallingPipeControlOnNextFlush();
timestampPacketDependencies.barrierNodes.add(nodesAllocator->getTag());
// wait for barrier and events before AuxToNonAux
blitPropertiesContainer[0].csrDependencies.push_back(&timestampPacketDependencies.barrierNodes);
blitPropertiesContainer[0].csrDependencies.fillFromEventsRequest(eventsRequest, *getBcsCommandStreamReceiver(),
CsrDependencies::DependenciesType::All);
// wait for NDR before NonAuxToAux
blitPropertiesContainer[numBuffers].csrDependencies.push_back(this->timestampPacketContainer.get());
BlitProperties::setupDependenciesForAuxTranslation(blitPropertiesContainer, timestampPacketDependencies,
*this->timestampPacketContainer, eventsRequest,
getGpgpuCommandStreamReceiver(), *getBcsCommandStreamReceiver());
}
}
@@ -832,7 +823,7 @@ void CommandQueueHw<GfxFamily>::enqueueBlocked(
bool storeTimestampPackets = false;
if (blockedCommandsData) {
if (enqueueProperties.operation == EnqueueProperties::Operation::Blit) {
if (enqueueProperties.blitPropertiesContainer) {
blockedCommandsData->blitPropertiesContainer = *enqueueProperties.blitPropertiesContainer;
blockedCommandsData->blitEnqueue = true;
}