diff --git a/shared/source/direct_submission/dispatchers/render_dispatcher.inl b/shared/source/direct_submission/dispatchers/render_dispatcher.inl index 85100db48a..87d28221e2 100644 --- a/shared/source/direct_submission/dispatchers/render_dispatcher.inl +++ b/shared/source/direct_submission/dispatchers/render_dispatcher.inl @@ -36,6 +36,7 @@ inline void RenderDispatcher::dispatchMonitorFence(LinearStream &cmdB args.dcFlushEnable = dcFlushRequired; args.workloadPartitionOffset = partitionedWorkload; args.notifyEnable = useNotifyEnable; + args.tlbInvalidation = true; MemorySynchronizationCommands::addBarrierWithPostSyncOperation( cmdBuffer, diff --git a/shared/test/unit_test/direct_submission/dispatchers/render_dispatcher_tests.cpp b/shared/test/unit_test/direct_submission/dispatchers/render_dispatcher_tests.cpp index 0377bf7f09..0c91db8546 100644 --- a/shared/test/unit_test/direct_submission/dispatchers/render_dispatcher_tests.cpp +++ b/shared/test/unit_test/direct_submission/dispatchers/render_dispatcher_tests.cpp @@ -142,6 +142,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, RenderDispatcherTest, EXPECT_EQ(gpuVa, NEO::UnitTestHelper::getPipeControlPostSyncAddress(*pipeControl)); EXPECT_EQ(value, pipeControl->getImmediateData()); EXPECT_TRUE(pipeControl->getWorkloadPartitionIdOffsetEnable()); + EXPECT_TRUE(pipeControl->getTlbInvalidate()); break; } } @@ -175,6 +176,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, RenderDispatcherTest, EXPECT_EQ(gpuAddress, NEO::UnitTestHelper::getPipeControlPostSyncAddress(*pipeControl)); EXPECT_EQ(value, pipeControl->getImmediateData()); EXPECT_TRUE(pipeControl->getNotifyEnable()); + EXPECT_TRUE(pipeControl->getTlbInvalidate()); break; } } @@ -203,6 +205,7 @@ HWTEST_F(RenderDispatcherTest, givenRenderWithDcFlushFlagTrueWhenAddingMonitorFe (pipeControl->getImmediateData() == value); if (foundMonitorFence) { EXPECT_TRUE(pipeControl->getDcFlushEnable()); + EXPECT_TRUE(pipeControl->getTlbInvalidate()); break; } }