From 26ae830014c04112e89805fec249d44d84349c5c Mon Sep 17 00:00:00 2001 From: Bartosz Dunajski Date: Tue, 14 Jan 2025 12:14:58 +0000 Subject: [PATCH] fix: add missing dcFlush to signal standalone CB event Related-To: NEO-13752 Signed-off-by: Bartosz Dunajski --- level_zero/core/source/cmdlist/cmdlist_hw.inl | 2 ++ .../unit_tests/sources/cmdlist/test_in_order_cmdlist_1.cpp | 3 +++ 2 files changed, 5 insertions(+) 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()) {