diff --git a/level_zero/core/source/cmdlist/cmdlist_hw.inl b/level_zero/core/source/cmdlist/cmdlist_hw.inl index f0defc5309..6779d27c42 100644 --- a/level_zero/core/source/cmdlist/cmdlist_hw.inl +++ b/level_zero/core/source/cmdlist/cmdlist_hw.inl @@ -238,6 +238,10 @@ ze_result_t CommandListCoreFamily::initialize(Device *device, NEO } } + if (this->flags & ZE_COMMAND_LIST_FLAG_IN_ORDER) { + enableInOrderExecution(); + } + createLogicalStateHelper(); return returnType; } diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp index eb91cb0582..62a79cdf1c 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp @@ -2692,6 +2692,18 @@ HWTEST2_F(BcsSplitInOrderCmdListTests, givenBcsSplitEnabledWhenDispatchingCopyRe using InOrderRegularCmdListTests = InOrderCmdListTests; +HWTEST2_F(InOrderRegularCmdListTests, givenInOrderFlagWhenCreatingCmdListThenEnableInOrderMode, IsAtLeastSkl) { + ze_command_list_desc_t cmdListDesc = {ZE_STRUCTURE_TYPE_COMMAND_LIST_DESC}; + cmdListDesc.flags = ZE_COMMAND_LIST_FLAG_IN_ORDER; + + ze_command_list_handle_t cmdList; + EXPECT_EQ(ZE_RESULT_SUCCESS, zeCommandListCreate(context, device, &cmdListDesc, &cmdList)); + + EXPECT_TRUE(static_cast *>(cmdList)->isInOrderExecutionEnabled()); + + EXPECT_EQ(ZE_RESULT_SUCCESS, zeCommandListDestroy(cmdList)); +} + HWTEST2_F(InOrderRegularCmdListTests, givenInOrderModeWhenDispatchingRegularCmdListThenProgramPipeControlsToHandleDependencies, IsAtLeastXeHpCore) { using PIPE_CONTROL = typename FamilyType::PIPE_CONTROL; using COMPUTE_WALKER = typename FamilyType::COMPUTE_WALKER;