diff --git a/level_zero/core/source/cmdlist/cmdlist_hw_immediate.h b/level_zero/core/source/cmdlist/cmdlist_hw_immediate.h index dc8bbe3b06..29e3bff51d 100644 --- a/level_zero/core/source/cmdlist/cmdlist_hw_immediate.h +++ b/level_zero/core/source/cmdlist/cmdlist_hw_immediate.h @@ -151,22 +151,6 @@ struct CommandListCoreFamilyImmediate : public CommandListCoreFamilyisFlushTaskSubmissionEnabled) { - return ZE_RESULT_SUCCESS; - } else { - return CommandListCoreFamily::close(); - } - } - - ze_result_t reset() override { - if (this->isFlushTaskSubmissionEnabled) { - return ZE_RESULT_SUCCESS; - } else { - return CommandListCoreFamily::reset(); - } - } - MOCKABLE_VIRTUAL ze_result_t executeCommandListImmediateWithFlushTask(bool performMigration, bool hasStallingCmds, bool hasRelaxedOrderingDependencies); ze_result_t executeCommandListImmediateWithFlushTaskImpl(bool performMigration, bool hasStallingCmds, bool hasRelaxedOrderingDependencies, CommandQueue *cmdQ); diff --git a/level_zero/core/test/unit_tests/mocks/mock_cmdlist.h b/level_zero/core/test/unit_tests/mocks/mock_cmdlist.h index 227851a698..dbf707f5ca 100644 --- a/level_zero/core/test/unit_tests/mocks/mock_cmdlist.h +++ b/level_zero/core/test/unit_tests/mocks/mock_cmdlist.h @@ -189,7 +189,6 @@ template struct MockCommandListImmediate : public CommandListCoreFamilyImmediate { using BaseClass = CommandListCoreFamilyImmediate; using BaseClass::checkAssert; - using BaseClass::cmdListCurrentStartOffset; using BaseClass::cmdQImmediate; using BaseClass::commandContainer; using BaseClass::compactL3FlushEventPacket; diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_4.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_4.cpp index f16de1d515..4821932e57 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_4.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_4.cpp @@ -19,7 +19,7 @@ #include "level_zero/core/source/event/event.h" #include "level_zero/core/source/image/image_hw.h" -#include "level_zero/core/test/unit_tests/fixtures/cmdlist_fixture.h" +#include "level_zero/core/test/unit_tests/fixtures/device_fixture.h" #include "level_zero/core/test/unit_tests/fixtures/host_pointer_manager_fixture.h" #include "level_zero/core/test/unit_tests/fixtures/module_fixture.h" #include "level_zero/core/test/unit_tests/mocks/mock_cmdlist.h" @@ -313,9 +313,9 @@ HWTEST2_F(CommandListAppendLaunchKernelResetKernelCount, givenIsKernelSplitOpera eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); CmdListKernelLaunchParams launchParams = {}; { event->zeroKernelCount(); @@ -395,9 +395,9 @@ HWTEST_F(CommandListImmediateFlushTaskComputeTests, givenUseCsrImmediateSubmissi eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); ze_command_queue_desc_t queueDesc = {}; ze_result_t returnValue = ZE_RESULT_SUCCESS; @@ -427,9 +427,9 @@ HWTEST_F(CommandListImmediateFlushTaskComputeTests, givenUseCsrImmediateSubmissi eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); ze_command_queue_desc_t queueDesc = {}; ze_result_t returnValue = ZE_RESULT_SUCCESS; @@ -459,9 +459,9 @@ HWTEST_F(CommandListImmediateFlushTaskComputeTests, givenUseCsrImmediateSubmissi eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); ze_command_queue_desc_t queueDesc = {}; ze_result_t returnValue = ZE_RESULT_SUCCESS; @@ -491,9 +491,9 @@ HWTEST_F(CommandListImmediateFlushTaskComputeTests, givenUseCsrImmediateSubmissi eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); ze_command_queue_desc_t queueDesc = {}; ze_result_t returnValue = ZE_RESULT_SUCCESS; @@ -523,9 +523,9 @@ HWTEST_F(CommandListImmediateFlushTaskComputeTests, givenUseCsrImmediateSubmissi eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); ze_command_queue_desc_t queueDesc = {}; ze_result_t returnValue = ZE_RESULT_SUCCESS; @@ -555,9 +555,9 @@ HWTEST_F(CommandListImmediateFlushTaskComputeTests, givenUseCsrImmediateSubmissi eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); ze_command_queue_desc_t queueDesc = {}; ze_result_t returnValue = ZE_RESULT_SUCCESS; @@ -587,9 +587,9 @@ HWTEST_F(CommandListImmediateFlushTaskComputeTests, givenUseCsrImmediateSubmissi eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); ze_command_queue_desc_t queueDesc = {}; ze_result_t returnValue = ZE_RESULT_SUCCESS; @@ -620,9 +620,9 @@ HWTEST_F(CommandListImmediateFlushTaskComputeTests, givenUseCsrImmediateSubmissi eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); ze_command_queue_desc_t queueDesc = {}; ze_result_t returnValue = ZE_RESULT_SUCCESS; @@ -652,9 +652,9 @@ HWTEST_F(CommandListImmediateFlushTaskComputeTests, givenUseCsrImmediateSubmissi eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); ze_command_queue_desc_t queueDesc = {}; ze_result_t returnValue = ZE_RESULT_SUCCESS; @@ -695,9 +695,9 @@ HWTEST_F(CommandListImmediateFlushTaskComputeTests, givenUseCsrImmediateSubmissi eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); ze_command_queue_desc_t queueDesc = {}; ze_result_t returnValue = ZE_RESULT_SUCCESS; @@ -756,9 +756,9 @@ HWTEST2_F(CommandListCreate, givenImmediateCopyOnlyCmdListWhenAppendWaitOnEvents eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); auto eventHandle = event->toHandle(); result = commandList->appendWaitOnEvents(1u, &eventHandle, false, true, false); @@ -798,9 +798,9 @@ HWTEST2_F(CommandListCreate, givenImmediateCopyOnlyCmdListWhenAppendWaitOnEvents eventDesc.signal = ZE_EVENT_SCOPE_FLAG_DEVICE; ze_result_t result = ZE_RESULT_SUCCESS; - auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); + auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, result)); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); + auto event = std::unique_ptr(Event::create(eventPool.get(), &eventDesc, device)); auto eventHandle = event->toHandle(); result = commandList->appendWaitOnEvents(1u, &eventHandle, false, false, false); @@ -1300,46 +1300,5 @@ HWTEST2_F(CommandListCreate, givenStateBaseAddressTrackingStateWhenCommandListCr } } -using ImmediateCommandListTest = Test; - -HWTEST2_F(ImmediateCommandListTest, givenImmediateCommandListWhenClosingCommandListThenExpectNoEndingCmdDispatched, IsAtLeastSkl) { - std::unique_ptr commandList; - const ze_command_queue_desc_t desc = {ZE_STRUCTURE_TYPE_COMMAND_QUEUE_DESC}; - ze_result_t returnValue; - commandList.reset(CommandList::createImmediate(productFamily, device, &desc, false, NEO::EngineGroupType::Compute, returnValue)); - EXPECT_EQ(ZE_RESULT_SUCCESS, returnValue); - auto &commandListImmediate = static_cast &>(*commandList); - - returnValue = commandListImmediate.close(); - EXPECT_EQ(ZE_RESULT_SUCCESS, returnValue); - - auto &commandContainer = commandListImmediate.commandContainer; - EXPECT_EQ(0u, commandContainer.getCommandStream()->getUsed()); -} - -HWTEST2_F(ImmediateCommandListTest, givenImmediateCommandListWhenResetingCommandListThenNoCmdBufferOffsetReset, IsAtLeastSkl) { - std::unique_ptr commandList; - const ze_command_queue_desc_t desc = {ZE_STRUCTURE_TYPE_COMMAND_QUEUE_DESC}; - ze_result_t returnValue; - commandList.reset(CommandList::createImmediate(productFamily, device, &desc, false, NEO::EngineGroupType::Compute, returnValue)); - EXPECT_EQ(ZE_RESULT_SUCCESS, returnValue); - auto &commandListImmediate = static_cast &>(*commandList); - - ze_group_count_t groupCount{1, 1, 1}; - CmdListKernelLaunchParams launchParams = {}; - returnValue = commandListImmediate.appendLaunchKernel(kernel->toHandle(), &groupCount, nullptr, 0, nullptr, launchParams, false); - EXPECT_EQ(ZE_RESULT_SUCCESS, returnValue); - - auto &commandContainer = commandListImmediate.commandContainer; - auto oldCmdListUsed = commandContainer.getCommandStream()->getUsed(); - auto oldStartOffset = commandListImmediate.cmdListCurrentStartOffset; - - returnValue = commandListImmediate.reset(); - EXPECT_EQ(ZE_RESULT_SUCCESS, returnValue); - - EXPECT_EQ(oldCmdListUsed, commandContainer.getCommandStream()->getUsed()); - EXPECT_EQ(oldStartOffset, commandListImmediate.cmdListCurrentStartOffset); -} - } // namespace ult } // namespace L0 diff --git a/level_zero/core/test/unit_tests/xe_hpc_core/test_cmdlist_xe_hpc_core.cpp b/level_zero/core/test/unit_tests/xe_hpc_core/test_cmdlist_xe_hpc_core.cpp index 5519c3b447..2afbb44843 100644 --- a/level_zero/core/test/unit_tests/xe_hpc_core/test_cmdlist_xe_hpc_core.cpp +++ b/level_zero/core/test/unit_tests/xe_hpc_core/test_cmdlist_xe_hpc_core.cpp @@ -549,6 +549,7 @@ HWTEST2_F(CommandListStatePrefetchXeHpcCore, givenAppendMemoryPrefetchForKmdMigr } HWTEST2_F(CommandListStatePrefetchXeHpcCore, givenAppendMemoryPrefetchForKmdMigratedSharedAllocationsSetWhenPrefetchApiIsCalledForUnifiedSharedMemoryOnCmdListCopyOnlyThenCallMigrateAllocationsToGpu, IsXeHpcCore) { + using GfxFamily = typename NEO::GfxFamilyMapper::GfxFamily; using POSTSYNC_DATA = typename FamilyType::POSTSYNC_DATA; using WALKER_TYPE = typename FamilyType::WALKER_TYPE; @@ -562,18 +563,17 @@ HWTEST2_F(CommandListStatePrefetchXeHpcCore, givenAppendMemoryPrefetchForKmdMigr createKernel(); ze_result_t returnValue; - ze_command_queue_desc_t queueDesc = {ZE_STRUCTURE_TYPE_COMMAND_QUEUE_DESC}; - ze_command_list_flags_t cmdListFlags = {}; + ze_command_queue_desc_t queueDesc = {}; - auto commandList = CommandList::create(productFamily, device, NEO::EngineGroupType::Copy, cmdListFlags, returnValue); - auto commandListHandle = commandList->toHandle(); + ze_command_list_handle_t commandListHandle = CommandList::createImmediate(productFamily, device, &queueDesc, false, NEO::EngineGroupType::Copy, returnValue)->toHandle(); + auto commandList = CommandList::fromHandle(commandListHandle); auto commandQueue = CommandQueue::create(productFamily, device, neoDevice->getDefaultEngine().commandStreamReceiver, &queueDesc, commandList->isCopyOnly(), false, true, returnValue); - ze_event_pool_desc_t eventPoolDesc = {ZE_STRUCTURE_TYPE_EVENT_POOL_DESC}; + ze_event_pool_desc_t eventPoolDesc = {}; eventPoolDesc.count = 1; eventPoolDesc.flags = ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP; - ze_event_desc_t eventDesc = {ZE_STRUCTURE_TYPE_EVENT_DESC}; + ze_event_desc_t eventDesc = {}; eventDesc.index = 0; auto eventPool = std::unique_ptr(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, returnValue)); @@ -585,8 +585,8 @@ HWTEST2_F(CommandListStatePrefetchXeHpcCore, givenAppendMemoryPrefetchForKmdMigr void *srcPtr = nullptr; void *dstPtr = nullptr; - ze_device_mem_alloc_desc_t deviceDesc = {ZE_STRUCTURE_TYPE_DEVICE_MEM_ALLOC_DESC}; - ze_host_mem_alloc_desc_t hostDesc = {ZE_STRUCTURE_TYPE_HOST_MEM_ALLOC_DESC}; + ze_device_mem_alloc_desc_t deviceDesc = {}; + ze_host_mem_alloc_desc_t hostDesc = {}; auto result = context->allocSharedMem(device->toHandle(), &deviceDesc, &hostDesc, size, alignment, &srcPtr); EXPECT_EQ(ZE_RESULT_SUCCESS, result); @@ -608,9 +608,6 @@ HWTEST2_F(CommandListStatePrefetchXeHpcCore, givenAppendMemoryPrefetchForKmdMigr result = commandList->appendMemoryCopy(dstPtr, srcPtr, size, event->toHandle(), 0, nullptr, false, false); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - result = commandList->close(); - EXPECT_EQ(ZE_RESULT_SUCCESS, result); - result = commandQueue->executeCommandLists(1, &commandListHandle, nullptr, true); EXPECT_EQ(ZE_RESULT_SUCCESS, result);