fix: dont pass Queue flags as CL flags when creating immediate CL

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
Dunajski, Bartosz 2023-08-07 11:22:51 +00:00 committed by Compute-Runtime-Automation
parent 6beebaf428
commit bdcc1bfc86
3 changed files with 17 additions and 1 deletions

View File

@ -183,7 +183,7 @@ CommandList *CommandList::createImmediate(uint32_t productFamily, Device *device
}
csr->initializeResources();
csr->initDirectSubmission();
returnValue = commandList->initialize(device, engineGroupType, desc->flags);
returnValue = commandList->initialize(device, engineGroupType, 0);
if ((desc->flags & ZE_COMMAND_QUEUE_FLAG_IN_ORDER) || (NEO::DebugManager.flags.ForceInOrderImmediateCmdListExecution.get() == 1)) {
commandList->enableInOrderExecution();

View File

@ -241,6 +241,7 @@ struct WhiteBox<::L0::CommandList> : public ::L0::CommandListImp {
using BaseClass::signalAllEventPackets;
using BaseClass::stateBaseAddressTracking;
using BaseClass::stateComputeModeTracking;
using CommandList::flags;
using CommandList::kernelWithAssertAppended;
WhiteBox();

View File

@ -163,6 +163,21 @@ TEST_F(CommandListCreate, givenOrdinalBiggerThanAvailableEnginesWhenCreatingComm
EXPECT_EQ(nullptr, commandList);
}
TEST_F(CommandListCreate, givenQueueFlagsWhenCreatingImmediateCommandListThenDontCopyFlags) {
ze_command_queue_desc_t desc = {ZE_STRUCTURE_TYPE_COMMAND_QUEUE_DESC};
desc.flags = ZE_COMMAND_QUEUE_FLAG_EXPLICIT_ONLY;
ze_command_list_handle_t commandList = nullptr;
auto returnValue = device->createCommandListImmediate(&desc, &commandList);
EXPECT_EQ(ZE_RESULT_SUCCESS, returnValue);
ASSERT_NE(nullptr, commandList);
auto whiteboxCommandList = static_cast<CommandList *>(CommandList::fromHandle(commandList));
EXPECT_EQ(0u, whiteboxCommandList->flags);
whiteboxCommandList->destroy();
}
TEST_F(CommandListCreate, givenRootDeviceAndImplicitScalingDisabledWhenCreatingCommandListThenValidateQueueOrdinalUsingSubDeviceEngines) {
NEO::UltDeviceFactory deviceFactory{1, 2};
auto &rootDevice = *deviceFactory.rootDevices[0];