diff --git a/shared/source/direct_submission/direct_submission_controller.cpp b/shared/source/direct_submission/direct_submission_controller.cpp index 3a48b2768d..7e4130ac84 100644 --- a/shared/source/direct_submission/direct_submission_controller.cpp +++ b/shared/source/direct_submission/direct_submission_controller.cpp @@ -36,7 +36,7 @@ DirectSubmissionController::DirectSubmissionController() { if (debugManager.flags.DirectSubmissionControllerIdleDetection.get() != -1) { isCsrIdleDetectionEnabled = debugManager.flags.DirectSubmissionControllerIdleDetection.get(); } - isCsrsContextGroupIdleDetectionEnabled = false; + isCsrsContextGroupIdleDetectionEnabled = true; if (debugManager.flags.DirectSubmissionControllerContextGroupIdleDetection.get() != -1) { isCsrsContextGroupIdleDetectionEnabled = debugManager.flags.DirectSubmissionControllerContextGroupIdleDetection.get(); } diff --git a/shared/test/unit_test/direct_submission/direct_submission_controller_tests.cpp b/shared/test/unit_test/direct_submission/direct_submission_controller_tests.cpp index 17c267aff6..87d0feb160 100644 --- a/shared/test/unit_test/direct_submission/direct_submission_controller_tests.cpp +++ b/shared/test/unit_test/direct_submission/direct_submission_controller_tests.cpp @@ -614,6 +614,27 @@ TEST(CommandStreamReceiverGetContextGroupIdTests, givenContextGroupWithoutPrimar EXPECT_EQ(55u, csr.getContextGroupId()); } +TEST(DirectSubmissionIdleDetectionWithContextGroupTest, givenDefaultConstructorWhenCreatingControllerThenContextGroupIdleDetectionIsEnabledByDefault) { + DirectSubmissionControllerMock controller; + + EXPECT_TRUE(controller.isCsrsContextGroupIdleDetectionEnabled); +} + +TEST(DirectSubmissionIdleDetectionWithContextGroupTest, givenDirectSubmissionControllerContextGroupIdleDetectionSetWhenCreatingControllerThenContextGroupIdleDetectionIsSetCorrectly) { + DebugManagerStateRestore restorer; + + for (auto contextGroupIdleDetectionState : {-1, 0, 1}) { + debugManager.flags.DirectSubmissionControllerContextGroupIdleDetection.set(contextGroupIdleDetectionState); + + DirectSubmissionControllerMock controller; + if (0 == contextGroupIdleDetectionState) { + EXPECT_FALSE(controller.isCsrsContextGroupIdleDetectionEnabled); + } else { + EXPECT_TRUE(controller.isCsrsContextGroupIdleDetectionEnabled); + } + } +} + class MockContextGroupIdleDetectionCsr : public MockCommandStreamReceiver { public: using MockCommandStreamReceiver::MockCommandStreamReceiver; @@ -641,12 +662,12 @@ class MockContextGroupIdleDetectionCsr : public MockCommandStreamReceiver { class DirectSubmissionIdleDetectionWithContextGroupTests : public ::testing::Test { protected: void SetUp() override { - debugManager.flags.DirectSubmissionControllerContextGroupIdleDetection.set(1); executionEnvironment.prepareRootDeviceEnvironments(1); executionEnvironment.initializeMemoryManager(); executionEnvironment.rootDeviceEnvironments[0]->osTime.reset(new MockOSTime{}); controller = std::make_unique(); + ASSERT_TRUE(controller->isCsrsContextGroupIdleDetectionEnabled); } void TearDown() override { @@ -898,12 +919,12 @@ TEST_F(DirectSubmissionIdleDetectionWithContextGroupTests, whenContextGroupIdleD class DirectSubmissionContextGroupCompositeKeyTests : public ::testing::Test { protected: void SetUp() override { - debugManager.flags.DirectSubmissionControllerContextGroupIdleDetection.set(1); executionEnvironment.prepareRootDeviceEnvironments(2); executionEnvironment.initializeMemoryManager(); executionEnvironment.rootDeviceEnvironments[0]->osTime.reset(new MockOSTime{}); executionEnvironment.rootDeviceEnvironments[1]->osTime.reset(new MockOSTime{}); controller = std::make_unique(); + ASSERT_TRUE(controller->isCsrsContextGroupIdleDetectionEnabled); } void TearDown() override {