From e88b24eb371104b3259bd0d3a437b21374951c0c Mon Sep 17 00:00:00 2001 From: Dominik Dabek Date: Wed, 20 Jul 2022 16:13:57 +0000 Subject: [PATCH] Remove flush on svmmap No longer needed, problem was with reusing mem obj allocation. Related-To: NEO-6948 Signed-off-by: Dominik Dabek --- opencl/source/command_queue/enqueue_common.h | 3 +- .../command_queue_hw_1_tests.cpp | 55 ------------------- 2 files changed, 1 insertion(+), 57 deletions(-) diff --git a/opencl/source/command_queue/enqueue_common.h b/opencl/source/command_queue/enqueue_common.h index 6ee0ade950..512982a0bf 100644 --- a/opencl/source/command_queue/enqueue_common.h +++ b/opencl/source/command_queue/enqueue_common.h @@ -255,8 +255,7 @@ cl_int CommandQueueHw::enqueueHandler(Surface **surfacesForResidency, } CompletionStamp completionStamp = {CompletionStamp::notReady, taskLevel, 0}; - bool svmMapNeedsDcFlush = commandType == CL_COMMAND_SVM_MAP && computeCommandStreamReceiver.isDirectSubmissionEnabled() && computeCommandStreamReceiver.isUpdateTagFromWaitEnabled(); - const EnqueueProperties enqueueProperties(false, !multiDispatchInfo.empty(), isCacheFlushCommand(commandType) || svmMapNeedsDcFlush, + const EnqueueProperties enqueueProperties(false, !multiDispatchInfo.empty(), isCacheFlushCommand(commandType), flushDependenciesForNonKernelCommand, isMarkerWithProfiling, &blitPropertiesContainer); if (!blockQueue && isOOQEnabled()) { diff --git a/opencl/test/unit_test/command_queue/command_queue_hw_1_tests.cpp b/opencl/test/unit_test/command_queue/command_queue_hw_1_tests.cpp index ac7a6478f6..a2f4a37c4e 100644 --- a/opencl/test/unit_test/command_queue/command_queue_hw_1_tests.cpp +++ b/opencl/test/unit_test/command_queue/command_queue_hw_1_tests.cpp @@ -1161,58 +1161,3 @@ HWTEST_F(CommandQueueHwTest, givenNoGpuHangWhenFinishingCommandQueueHwThenWaitFo EXPECT_EQ(1, mockCmdQueueHw.waitForAllEnginesCalledCount); EXPECT_EQ(CL_SUCCESS, finishResult); } - -HWTEST2_F(CommandQueueHwTest, givenDirectSubmissionEnabledAndUpdateTagFromWaitEnabledWhenEnqueueSvmMapThenOperationTypeIsExplicitCacheFlush, IsAtLeastXeHpCore) { - DebugManagerStateRestore restorer; - RootDeviceIndicesContainer rootDeviceIndices = {rootDeviceIndex, rootDeviceIndex}; - std::map deviceBitfields{{rootDeviceIndex, pDevice->getDeviceBitfield()}}; - - MockCommandQueueHw mockCmdQueueHw{context, pClDevice, nullptr}; - auto allocation = context->getSVMAllocsManager()->createSVMAlloc(1, SVMAllocsManager::SvmAllocationProperties{}, rootDeviceIndices, deviceBitfields); - - { - mockCmdQueueHw.getUltCommandStreamReceiver().directSubmissionAvailable = false; - ASSERT_FALSE(mockCmdQueueHw.getUltCommandStreamReceiver().isDirectSubmissionEnabled()); - DebugManager.flags.UpdateTaskCountFromWait.set(0); - ASSERT_FALSE(mockCmdQueueHw.getUltCommandStreamReceiver().isUpdateTagFromWaitEnabled()); - - auto status = mockCmdQueueHw.enqueueSVMMap(true, 0, allocation, 1, 0, nullptr, nullptr, false); - ASSERT_EQ(status, CL_SUCCESS); - EXPECT_EQ(mockCmdQueueHw.latestSentEnqueueType, EnqueueProperties::Operation::EnqueueWithoutSubmission); - } - - { - mockCmdQueueHw.getUltCommandStreamReceiver().directSubmissionAvailable = true; - ASSERT_TRUE(mockCmdQueueHw.getUltCommandStreamReceiver().isDirectSubmissionEnabled()); - DebugManager.flags.UpdateTaskCountFromWait.set(0); - ASSERT_FALSE(mockCmdQueueHw.getUltCommandStreamReceiver().isUpdateTagFromWaitEnabled()); - - auto status = mockCmdQueueHw.enqueueSVMMap(true, 0, allocation, 1, 0, nullptr, nullptr, false); - ASSERT_EQ(status, CL_SUCCESS); - EXPECT_EQ(mockCmdQueueHw.latestSentEnqueueType, EnqueueProperties::Operation::EnqueueWithoutSubmission); - } - - { - mockCmdQueueHw.getUltCommandStreamReceiver().directSubmissionAvailable = false; - ASSERT_FALSE(mockCmdQueueHw.getUltCommandStreamReceiver().isDirectSubmissionEnabled()); - DebugManager.flags.UpdateTaskCountFromWait.set(3); - ASSERT_TRUE(mockCmdQueueHw.getUltCommandStreamReceiver().isUpdateTagFromWaitEnabled()); - - auto status = mockCmdQueueHw.enqueueSVMMap(true, 0, allocation, 1, 0, nullptr, nullptr, false); - ASSERT_EQ(status, CL_SUCCESS); - EXPECT_EQ(mockCmdQueueHw.latestSentEnqueueType, EnqueueProperties::Operation::EnqueueWithoutSubmission); - } - - { - mockCmdQueueHw.getUltCommandStreamReceiver().directSubmissionAvailable = true; - ASSERT_TRUE(mockCmdQueueHw.getUltCommandStreamReceiver().isDirectSubmissionEnabled()); - DebugManager.flags.UpdateTaskCountFromWait.set(3); - ASSERT_TRUE(mockCmdQueueHw.getUltCommandStreamReceiver().isUpdateTagFromWaitEnabled()); - - auto status = mockCmdQueueHw.enqueueSVMMap(true, 0, allocation, 1, 0, nullptr, nullptr, false); - ASSERT_EQ(status, CL_SUCCESS); - EXPECT_EQ(mockCmdQueueHw.latestSentEnqueueType, EnqueueProperties::Operation::ExplicitCacheFlush); - } - - context->getSVMAllocsManager()->freeSVMAlloc(allocation); -} \ No newline at end of file