diff --git a/level_zero/core/source/device/device_imp.cpp b/level_zero/core/source/device/device_imp.cpp index 62383adb9d..784a79c521 100644 --- a/level_zero/core/source/device/device_imp.cpp +++ b/level_zero/core/source/device/device_imp.cpp @@ -168,7 +168,8 @@ ze_result_t DeviceImp::createCommandList(const ze_command_list_desc_t *desc, auto productFamily = neoDevice->getHardwareInfo().platform.eProductFamily; ze_result_t returnValue = ZE_RESULT_SUCCESS; - *commandList = CommandList::create(productFamily, this, engineGroupType, desc->flags, returnValue); + auto createCommandList = getCmdListCreateFunc(desc); + *commandList = createCommandList(productFamily, this, engineGroupType, desc->flags, returnValue); return returnValue; } diff --git a/level_zero/core/source/device/device_imp.h b/level_zero/core/source/device/device_imp.h index b604955233..afabf293dd 100644 --- a/level_zero/core/source/device/device_imp.h +++ b/level_zero/core/source/device/device_imp.h @@ -130,6 +130,9 @@ struct DeviceImp : public Device { void populateSubDeviceCopyEngineGroups(); bool isQueueGroupOrdinalValid(uint32_t ordinal); + using CmdListCreateFunT = std::function; + CmdListCreateFunT getCmdListCreateFunc(const ze_command_list_desc_t *desc); + protected: NEO::Device::EngineGroupsT subDeviceCopyEngineGroups{}; diff --git a/level_zero/core/source/device/device_imp_helper.cpp b/level_zero/core/source/device/device_imp_helper.cpp index 26660a7a2d..f15c300de2 100644 --- a/level_zero/core/source/device/device_imp_helper.cpp +++ b/level_zero/core/source/device/device_imp_helper.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 Intel Corporation + * Copyright (C) 2021-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -13,4 +13,8 @@ namespace L0 { void DeviceImp::processAdditionalKernelProperties(NEO::HwHelper &hwHelper, ze_device_module_properties_t *pKernelProperties) { } + +DeviceImp::CmdListCreateFunT DeviceImp::getCmdListCreateFunc(const ze_command_list_desc_t *desc) { + return &CommandList::create; +} } // namespace L0