Skip to content

Commit f38d597

Browse files
Fix submitting gpgpu context on blit enqueue
Change-Id: Iea598d72a153eda3455e10afcdde6c8f69d11f48 Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
1 parent 25385f9 commit f38d597

File tree

3 files changed

+5
-7
lines changed

3 files changed

+5
-7
lines changed

opencl/source/command_queue/command_queue_hw_base.inl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ bool CommandQueueHw<Family>::isGpgpuSubmissionForBcsRequired(bool queueBlocked)
157157
return true;
158158
}
159159

160-
bool required = isCacheFlushForBcsRequired() && (latestSentEnqueueType != EnqueueProperties::Operation::Blit) && (latestSentEnqueueType != EnqueueProperties::Operation::None);
160+
bool required = (latestSentEnqueueType != EnqueueProperties::Operation::Blit) && (latestSentEnqueueType != EnqueueProperties::Operation::None);
161161

162162
if (DebugManager.flags.ForceGpgpuSubmissionForBcsEnqueue.get() == 1) {
163163
required = true;

opencl/source/command_queue/enqueue_common.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ BlitProperties CommandQueueHw<GfxFamily>::processDispatchForBlitEnqueue(const Mu
491491
blitProperties.outputTimestampPacket = currentTimestampPacketNode;
492492

493493
if (isGpgpuSubmissionForBcsRequired(queueBlocked)) {
494-
if (isCacheFlushForBcsRequired()) {
494+
if (timestampPacketDependencies.cacheFlushNodes.peekNodes().size() > 0) {
495495
auto cacheFlushTimestampPacketGpuAddress = TimestampPacketHelper::getContextEndGpuAddress(*timestampPacketDependencies.cacheFlushNodes.peekNodes()[0]);
496496
PipeControlArgs args(true);
497497
MemorySynchronizationCommands<GfxFamily>::addPipeControlAndProgramPostSyncOperation(
@@ -956,9 +956,7 @@ CompletionStamp CommandQueueHw<GfxFamily>::enqueueCommandWithoutKernel(
956956
CompletionStamp completionStamp = {this->taskCount, this->taskLevel, this->flushStamp->peekStamp()};
957957
bool flushGpgpuCsr = true;
958958

959-
if ((enqueueProperties.operation == EnqueueProperties::Operation::Blit) &&
960-
!isGpgpuSubmissionForBcsRequired(false) &&
961-
timestampPacketDependencies.barrierNodes.peekNodes().size() == 0) {
959+
if ((enqueueProperties.operation == EnqueueProperties::Operation::Blit) && !isGpgpuSubmissionForBcsRequired(false)) {
962960
flushGpgpuCsr = false;
963961
}
964962

opencl/test/unit_test/command_queue/blit_enqueue_tests.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1270,11 +1270,11 @@ HWTEST_TEMPLATED_F(BlitEnqueueWithDisabledGpgpuSubmissionTests, givenCacheFlushN
12701270

12711271
commandQueue->enqueueWriteBuffer(buffer.get(), false, 0, 1, &hostPtr, nullptr, 0, nullptr, nullptr);
12721272
EXPECT_EQ(EnqueueProperties::Operation::Blit, mockCommandQueue->latestSentEnqueueType);
1273-
EXPECT_EQ(1u, gpgpuCsr->peekTaskCount());
1273+
EXPECT_EQ(2u, gpgpuCsr->peekTaskCount());
12741274

12751275
commandQueue->enqueueWriteBuffer(buffer.get(), false, 0, 1, &hostPtr, nullptr, 0, nullptr, nullptr);
12761276
EXPECT_EQ(EnqueueProperties::Operation::Blit, mockCommandQueue->latestSentEnqueueType);
1277-
EXPECT_EQ(1u, gpgpuCsr->peekTaskCount());
1277+
EXPECT_EQ(2u, gpgpuCsr->peekTaskCount());
12781278
}
12791279

12801280
HWTEST_TEMPLATED_F(BlitEnqueueWithDisabledGpgpuSubmissionTests, givenCacheFlushNotRequiredWhenDoingBcsCopyAfterBarrierThenSubmitToGpgpu) {

0 commit comments

Comments
 (0)