diff --git a/level_zero/core/source/cmdlist/cmdlist_hw.inl b/level_zero/core/source/cmdlist/cmdlist_hw.inl index 0380651e5b..a0d4521eb7 100644 --- a/level_zero/core/source/cmdlist/cmdlist_hw.inl +++ b/level_zero/core/source/cmdlist/cmdlist_hw.inl @@ -1716,6 +1716,7 @@ ze_result_t CommandListCoreFamily::appendMemoryCopy(void *dstptr, if (launchParams.isKernelSplitOperation || inOrderCopyOnlySignalingAllowed || emitPipeControl) { if ((!signalEvent || !signalEvent->getAllocation(this->device)) && !isCopyOnlyEnabled) { NEO::PipeControlArgs args; + args.dcFlushEnable = dcFlush; NEO::MemorySynchronizationCommands::addSingleBarrier(*commandContainer.getCommandStream(), args); } appendSignalInOrderDependencyCounter(signalEvent, isCopyOnlyEnabled, false); @@ -2262,6 +2263,7 @@ ze_result_t CommandListCoreFamily::appendMemoryFill(void *ptr, if (launchParams.isKernelSplitOperation) { if (!signalEvent || !signalEvent->getAllocation(this->device)) { NEO::PipeControlArgs args; + args.dcFlushEnable = dcFlush; NEO::MemorySynchronizationCommands::addSingleBarrier(*commandContainer.getCommandStream(), args); } appendSignalInOrderDependencyCounter(signalEvent, false, false); diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_in_order_cmdlist_1.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_in_order_cmdlist_1.cpp index 58ca0f6606..572d2e11c5 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_in_order_cmdlist_1.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_in_order_cmdlist_1.cpp @@ -3960,6 +3960,7 @@ HWTEST2_F(InOrderCmdListTests, givenInOrderModeWhenProgrammingFillWithSplitAndOu auto pcCmd = genCmdCast(*pcItor); ASSERT_NE(nullptr, pcCmd); + EXPECT_EQ(immCmdList->getDcFlushRequired(true), pcCmd->getDcFlushEnable()); auto sdiItor = find(pcItor, cmdList.end()); ASSERT_NE(cmdList.end(), sdiItor); @@ -5600,6 +5601,8 @@ HWTEST2_F(InOrderCmdListTests, givenInOrderModeWhenProgrammingKernelSplitWithEve auto pcCmd = genCmdCast(*cmdItor); ASSERT_NE(nullptr, pcCmd); + EXPECT_EQ(immCmdList->getDcFlushRequired(true), pcCmd->getDcFlushEnable()); + auto sdiCmd = genCmdCast(*(++cmdItor)); while (sdiCmd == nullptr && cmdItor != cmdList.end()) {