mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-29 17:13:29 +08:00
fix: bcs enqueue after marker properly waits
For an example sequence of: IOQ_1 -> enqueue copy, enqueue marker with waitlist (out event) IOQ_2 -> enqueue marker with waitlist (event), enqueue copy Add missing synchronization between the enqueue copies Related-To: NEO-11694 Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
05eb4e7a0d
commit
bdeccab7aa
@@ -209,10 +209,22 @@ bool CommandQueueHw<Family>::isGpgpuSubmissionForBcsRequired(bool queueBlocked,
|
||||
if (queueBlocked || timestampPacketDependencies.barrierNodes.peekNodes().size() > 0u) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool required = (latestSentEnqueueType != EnqueueProperties::Operation::blit) &&
|
||||
(latestSentEnqueueType != EnqueueProperties::Operation::none) &&
|
||||
(isCacheFlushForBcsRequired() || !(getGpgpuCommandStreamReceiver().getDispatchMode() == DispatchMode::immediateDispatch || getGpgpuCommandStreamReceiver().isLatestTaskCountFlushed()));
|
||||
bool required = false;
|
||||
switch (latestSentEnqueueType) {
|
||||
case NEO::EnqueueProperties::Operation::explicitCacheFlush:
|
||||
case NEO::EnqueueProperties::Operation::enqueueWithoutSubmission:
|
||||
case NEO::EnqueueProperties::Operation::gpuKernel:
|
||||
case NEO::EnqueueProperties::Operation::profilingOnly:
|
||||
required = isCacheFlushForBcsRequired() || !(getGpgpuCommandStreamReceiver().getDispatchMode() == DispatchMode::immediateDispatch || getGpgpuCommandStreamReceiver().isLatestTaskCountFlushed());
|
||||
break;
|
||||
case NEO::EnqueueProperties::Operation::dependencyResolveOnGpu:
|
||||
return true;
|
||||
break;
|
||||
case NEO::EnqueueProperties::Operation::none:
|
||||
case NEO::EnqueueProperties::Operation::blit:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (debugManager.flags.ForceGpgpuSubmissionForBcsEnqueue.get() == 1) {
|
||||
required = true;
|
||||
|
||||
Reference in New Issue
Block a user