diff --git a/level_zero/core/source/cmdlist/cmdlist_hw_immediate.h b/level_zero/core/source/cmdlist/cmdlist_hw_immediate.h index f6d1a0af55..3a86e88b6c 100644 --- a/level_zero/core/source/cmdlist/cmdlist_hw_immediate.h +++ b/level_zero/core/source/cmdlist/cmdlist_hw_immediate.h @@ -45,6 +45,10 @@ struct CommandListCoreFamilyImmediate : public CommandListCoreFamily::*)(NEO::LinearStream &, size_t, bool, bool); + + CommandListCoreFamilyImmediate(uint32_t numIddsPerBlock); + ze_result_t appendLaunchKernel(ze_kernel_handle_t kernelHandle, const ze_group_count_t *threadGroupDimensions, ze_event_handle_t hEvent, uint32_t numWaitEvents, @@ -180,6 +184,7 @@ struct CommandListCoreFamilyImmediate : public CommandListCoreFamily dependenciesPresent{false}; }; diff --git a/level_zero/core/source/cmdlist/cmdlist_hw_immediate.inl b/level_zero/core/source/cmdlist/cmdlist_hw_immediate.inl index dd2be04654..3eddffcbd4 100644 --- a/level_zero/core/source/cmdlist/cmdlist_hw_immediate.inl +++ b/level_zero/core/source/cmdlist/cmdlist_hw_immediate.inl @@ -31,6 +31,11 @@ namespace L0 { +template +CommandListCoreFamilyImmediate::CommandListCoreFamilyImmediate(uint32_t numIddsPerBlock) : BaseClass(numIddsPerBlock) { + computeFlushMethod = &CommandListCoreFamilyImmediate::flushRegularTask; +} + template NEO::LogicalStateHelper *CommandListCoreFamilyImmediate::getLogicalStateHelper() const { return this->csr->getLogicalStateHelper(); @@ -261,7 +266,7 @@ inline ze_result_t CommandListCoreFamilyImmediate::executeCommand if (isCopyOnly()) { completionStamp = flushBcsTask(*commandStream, commandStreamStart, hasStallingCmds, hasRelaxedOrderingDependencies, csr); } else { - completionStamp = flushRegularTask(*commandStream, commandStreamStart, hasStallingCmds, hasRelaxedOrderingDependencies); + completionStamp = (this->*computeFlushMethod)(*commandStream, commandStreamStart, hasStallingCmds, hasRelaxedOrderingDependencies); } if (completionStamp.taskCount > NEO::CompletionStamp::notReady) {