diff --git a/level_zero/core/source/cmdlist/cmdlist_hw_skl_to_tgllp.inl b/level_zero/core/source/cmdlist/cmdlist_hw_skl_to_tgllp.inl index b3b4f57d0d..a86f7368bc 100644 --- a/level_zero/core/source/cmdlist/cmdlist_hw_skl_to_tgllp.inl +++ b/level_zero/core/source/cmdlist/cmdlist_hw_skl_to_tgllp.inl @@ -190,45 +190,47 @@ ze_result_t CommandListCoreFamily::appendLaunchKernelWithParams(K auto maxWgCountPerTile = kernel->getMaxWgCountPerTile(this->engineGroupType); NEO::EncodeDispatchKernelArgs dispatchKernelArgs{ - 0, // eventAddress - static_cast(Event::STATE_SIGNALED), // postSyncImmValue - 0, // inOrderCounterValue - neoDevice, // device - nullptr, // inOrderExecInfo - kernel, // dispatchInterface - ssh, // surfaceStateHeap - dsh, // dynamicStateHeap - reinterpret_cast(&threadGroupDimensions), // threadGroupDimensions - nullptr, // outWalkerPtr - nullptr, // cpuWalkerBuffer - nullptr, // cpuPayloadBuffer - nullptr, // outImplicitArgsPtr - &additionalCommands, // additionalCommands - nullptr, // extendedArgs - commandListPreemptionMode, // preemptionMode - launchParams.requiredPartitionDim, // requiredPartitionDim - launchParams.requiredDispatchWalkOrder, // requiredDispatchWalkOrder - launchParams.localRegionSize, // localRegionSize - 0, // partitionCount - launchParams.reserveExtraPayloadSpace, // reserveExtraPayloadSpace - maxWgCountPerTile, // maxWgCountPerTile - NEO::ThreadArbitrationPolicy::NotPresent, // defaultPipelinedThreadArbitrationPolicy - launchParams.isIndirect, // isIndirect - launchParams.isPredicate, // isPredicate - false, // isTimestampEvent - uncachedMocsKernel, // requiresUncachedMocs - internalUsage, // isInternal - launchParams.isCooperative, // isCooperative - false, // isHostScopeSignalEvent - false, // isKernelUsingSystemAllocation - isImmediateType(), // isKernelDispatchedFromImmediateCmdList - engineGroupType == NEO::EngineGroupType::renderCompute, // isRcs - this->dcFlushSupport, // dcFlushEnable - this->heaplessModeEnabled, // isHeaplessModeEnabled - this->heaplessStateInitEnabled, // isHeaplessStateInitEnabled - false, // interruptEvent - !this->scratchAddressPatchingEnabled, // immediateScratchAddressPatching - false, // makeCommandView + .eventAddress = 0, + .postSyncImmValue = static_cast(Event::STATE_SIGNALED), + .inOrderCounterValue = 0, + .inOrderIncrementGpuAddress = 0, + .inOrderIncrementValue = 0, + .device = neoDevice, + .inOrderExecInfo = nullptr, + .dispatchInterface = kernel, + .surfaceStateHeap = ssh, + .dynamicStateHeap = dsh, + .threadGroupDimensions = reinterpret_cast(&threadGroupDimensions), + .outWalkerPtr = nullptr, + .cpuWalkerBuffer = nullptr, + .cpuPayloadBuffer = nullptr, + .outImplicitArgsPtr = nullptr, + .additionalCommands = &additionalCommands, + .extendedArgs = nullptr, + .preemptionMode = commandListPreemptionMode, + .requiredPartitionDim = launchParams.requiredPartitionDim, + .requiredDispatchWalkOrder = launchParams.requiredDispatchWalkOrder, + .localRegionSize = launchParams.localRegionSize, + .partitionCount = 0, + .reserveExtraPayloadSpace = launchParams.reserveExtraPayloadSpace, + .maxWgCountPerTile = maxWgCountPerTile, + .defaultPipelinedThreadArbitrationPolicy = NEO::ThreadArbitrationPolicy::NotPresent, + .isIndirect = launchParams.isIndirect, + .isPredicate = launchParams.isPredicate, + .isTimestampEvent = false, + .requiresUncachedMocs = uncachedMocsKernel, + .isInternal = internalUsage, + .isCooperative = launchParams.isCooperative, + .isHostScopeSignalEvent = false, + .isKernelUsingSystemAllocation = false, + .isKernelDispatchedFromImmediateCmdList = isImmediateType(), + .isRcs = engineGroupType == NEO::EngineGroupType::renderCompute, + .dcFlushEnable = this->dcFlushSupport, + .isHeaplessModeEnabled = this->heaplessModeEnabled, + .isHeaplessStateInitEnabled = this->heaplessStateInitEnabled, + .interruptEvent = false, + .immediateScratchAddressPatching = !this->scratchAddressPatchingEnabled, + .makeCommandView = false, }; NEO::EncodeDispatchKernel::encodeCommon(commandContainer, dispatchKernelArgs); diff --git a/level_zero/core/source/cmdlist/cmdlist_hw_xehp_and_later.inl b/level_zero/core/source/cmdlist/cmdlist_hw_xehp_and_later.inl index 9b6feccd41..6c47998abb 100644 --- a/level_zero/core/source/cmdlist/cmdlist_hw_xehp_and_later.inl +++ b/level_zero/core/source/cmdlist/cmdlist_hw_xehp_and_later.inl @@ -303,6 +303,8 @@ ze_result_t CommandListCoreFamily::appendLaunchKernelWithParams(K bool inOrderNonWalkerSignalling = false; uint64_t inOrderCounterValue = 0; + uint64_t inOrderIncrementValue = 0; + uint64_t inOrderIncrementGpuAddress = 0; NEO::InOrderExecInfo *inOrderExecInfo = nullptr; if (!launchParams.makeKernelCommandView) { @@ -327,8 +329,14 @@ ze_result_t CommandListCoreFamily::appendLaunchKernelWithParams(K } else { inOrderCounterValue = this->inOrderExecInfo->getCounterValue() + getInOrderIncrementValue(); inOrderExecInfo = this->inOrderExecInfo.get(); - if (eventForInOrderExec && eventForInOrderExec->isCounterBased() && !isTimestampEvent) { - eventAddress = 0; + if (eventForInOrderExec && eventForInOrderExec->isCounterBased()) { + if (eventForInOrderExec->getInOrderIncrementValue() > 0) { + inOrderIncrementGpuAddress = eventForInOrderExec->getInOrderExecInfo()->getBaseDeviceAddress(); + inOrderIncrementValue = eventForInOrderExec->getInOrderIncrementValue(); + } + if (!isTimestampEvent) { + eventAddress = 0; + } } } } @@ -338,46 +346,49 @@ ze_result_t CommandListCoreFamily::appendLaunchKernelWithParams(K auto maxWgCountPerTile = kernel->getMaxWgCountPerTile(this->engineGroupType); NEO::EncodeKernelArgsExt dispatchKernelArgsExt = {}; + NEO::EncodeDispatchKernelArgs dispatchKernelArgs{ - eventAddress, // eventAddress - static_cast(Event::STATE_SIGNALED), // postSyncImmValue - inOrderCounterValue, // inOrderCounterValue - neoDevice, // device - inOrderExecInfo, // inOrderExecInfo - kernel, // dispatchInterface - ssh, // surfaceStateHeap - dsh, // dynamicStateHeap - reinterpret_cast(&threadGroupDimensions), // threadGroupDimensions - nullptr, // outWalkerPtr - launchParams.cmdWalkerBuffer, // cpuWalkerBuffer - launchParams.hostPayloadBuffer, // cpuPayloadBuffer - nullptr, // outImplicitArgsPtr - &additionalCommands, // additionalCommands - &dispatchKernelArgsExt, // extendedArgs - kernelPreemptionMode, // preemptionMode - launchParams.requiredPartitionDim, // requiredPartitionDim - launchParams.requiredDispatchWalkOrder, // requiredDispatchWalkOrder - launchParams.localRegionSize, // localRegionSize - this->partitionCount, // partitionCount - launchParams.reserveExtraPayloadSpace, // reserveExtraPayloadSpace - maxWgCountPerTile, // maxWgCountPerTile - this->defaultPipelinedThreadArbitrationPolicy, // defaultPipelinedThreadArbitrationPolicy - launchParams.isIndirect, // isIndirect - launchParams.isPredicate, // isPredicate - isTimestampEvent, // isTimestampEvent - uncachedMocsKernel, // requiresUncachedMocs - internalUsage, // isInternal - launchParams.isCooperative, // isCooperative - isHostSignalScopeEvent, // isHostScopeSignalEvent - isKernelUsingSystemAllocation, // isKernelUsingSystemAllocation - isImmediateType(), // isKernelDispatchedFromImmediateCmdList - engineGroupType == NEO::EngineGroupType::renderCompute, // isRcs - this->dcFlushSupport, // dcFlushEnable - this->heaplessModeEnabled, // isHeaplessModeEnabled - this->heaplessStateInitEnabled, // isHeaplessStateInitEnabled - interruptEvent, // interruptEvent - !this->scratchAddressPatchingEnabled, // immediateScratchAddressPatching - launchParams.makeKernelCommandView // makeCommandView + .eventAddress = eventAddress, + .postSyncImmValue = static_cast(Event::STATE_SIGNALED), + .inOrderCounterValue = inOrderCounterValue, + .inOrderIncrementGpuAddress = inOrderIncrementGpuAddress, + .inOrderIncrementValue = inOrderIncrementValue, + .device = neoDevice, + .inOrderExecInfo = inOrderExecInfo, + .dispatchInterface = kernel, + .surfaceStateHeap = ssh, + .dynamicStateHeap = dsh, + .threadGroupDimensions = reinterpret_cast(&threadGroupDimensions), + .outWalkerPtr = nullptr, + .cpuWalkerBuffer = launchParams.cmdWalkerBuffer, + .cpuPayloadBuffer = launchParams.hostPayloadBuffer, + .outImplicitArgsPtr = nullptr, + .additionalCommands = &additionalCommands, + .extendedArgs = &dispatchKernelArgsExt, + .preemptionMode = kernelPreemptionMode, + .requiredPartitionDim = launchParams.requiredPartitionDim, + .requiredDispatchWalkOrder = launchParams.requiredDispatchWalkOrder, + .localRegionSize = launchParams.localRegionSize, + .partitionCount = this->partitionCount, + .reserveExtraPayloadSpace = launchParams.reserveExtraPayloadSpace, + .maxWgCountPerTile = maxWgCountPerTile, + .defaultPipelinedThreadArbitrationPolicy = this->defaultPipelinedThreadArbitrationPolicy, + .isIndirect = launchParams.isIndirect, + .isPredicate = launchParams.isPredicate, + .isTimestampEvent = isTimestampEvent, + .requiresUncachedMocs = uncachedMocsKernel, + .isInternal = internalUsage, + .isCooperative = launchParams.isCooperative, + .isHostScopeSignalEvent = isHostSignalScopeEvent, + .isKernelUsingSystemAllocation = isKernelUsingSystemAllocation, + .isKernelDispatchedFromImmediateCmdList = isImmediateType(), + .isRcs = engineGroupType == NEO::EngineGroupType::renderCompute, + .dcFlushEnable = this->dcFlushSupport, + .isHeaplessModeEnabled = this->heaplessModeEnabled, + .isHeaplessStateInitEnabled = this->heaplessStateInitEnabled, + .interruptEvent = interruptEvent, + .immediateScratchAddressPatching = !this->scratchAddressPatchingEnabled, + .makeCommandView = launchParams.makeKernelCommandView, }; setAdditionalDispatchKernelArgsFromLaunchParams(dispatchKernelArgs, launchParams); diff --git a/level_zero/core/test/unit_tests/fixtures/in_order_cmd_list_fixture.h b/level_zero/core/test/unit_tests/fixtures/in_order_cmd_list_fixture.h index dfc1c0709f..dbb279ed5e 100644 --- a/level_zero/core/test/unit_tests/fixtures/in_order_cmd_list_fixture.h +++ b/level_zero/core/test/unit_tests/fixtures/in_order_cmd_list_fixture.h @@ -17,6 +17,7 @@ #include "level_zero/core/test/unit_tests/mocks/mock_cmdlist.h" #include "level_zero/core/test/unit_tests/mocks/mock_cmdqueue.h" #include "level_zero/core/test/unit_tests/sources/helper/ze_object_utils.h" +#include "level_zero/driver_experimental/zex_api.h" namespace L0 { namespace ult { @@ -84,6 +85,19 @@ struct InOrderCmdListFixture : public ::Test { ::Test::TearDown(); } + void createExternalSyncStorageEvent(uint64_t counterValue, uint64_t incrementValue, uint64_t *deviceAddress, ze_event_handle_t &outEvent) { + zex_counter_based_event_external_storage_properties_t externalStorageAllocProperties = {ZEX_STRUCTURE_COUNTER_BASED_EVENT_EXTERNAL_STORAGE_ALLOC_PROPERTIES}; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange), NEO-12901 + externalStorageAllocProperties.completionValue = counterValue; + externalStorageAllocProperties.deviceAddress = deviceAddress; + externalStorageAllocProperties.incrementValue = incrementValue; + + zex_counter_based_event_desc_t counterBasedDesc = {ZEX_STRUCTURE_COUNTER_BASED_EVENT_DESC}; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange), NEO-12901 + counterBasedDesc.flags = ZEX_COUNTER_BASED_EVENT_FLAG_IMMEDIATE | ZEX_COUNTER_BASED_EVENT_FLAG_NON_IMMEDIATE; + counterBasedDesc.pNext = &externalStorageAllocProperties; + + EXPECT_EQ(ZE_RESULT_SUCCESS, zexCounterBasedEventCreate2(context, device, &counterBasedDesc, &outEvent)); + } + DestroyableZeUniquePtr createStandaloneCbEvent(const ze_base_desc_t *pNext) { constexpr uint32_t counterBasedFlags = (ZE_EVENT_POOL_COUNTER_BASED_EXP_FLAG_IMMEDIATE | ZE_EVENT_POOL_COUNTER_BASED_EXP_FLAG_NON_IMMEDIATE); diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_1.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_1.cpp index 297ca10963..f1bc5a03fa 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_1.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_1.cpp @@ -22,6 +22,7 @@ #include "shared/test/common/mocks/mock_device.h" #include "shared/test/common/mocks/mock_graphics_allocation.h" #include "shared/test/common/test_macros/hw_test.h" +#include "shared/test/unit_test/fixtures/command_container_fixture.h" #include "level_zero/core/source/cmdlist/cmdlist_hw_immediate.h" #include "level_zero/core/source/event/event.h" @@ -195,47 +196,9 @@ HWTEST2_F(CommandListAppendLaunchKernel, givenNotEnoughSpaceInCommandStreamWhenA const uint32_t threadGroupDimensions[3] = {1, 1, 1}; - NEO::EncodeDispatchKernelArgs dispatchKernelArgs{ - 0, // eventAddress - 0, // postSyncImmValue - 0, // inOrderCounterValue - device->getNEODevice(), // device - nullptr, // inOrderExecInfo - kernel.get(), // dispatchInterface - nullptr, // surfaceStateHeap - nullptr, // dynamicStateHeap - threadGroupDimensions, // threadGroupDimensions - nullptr, // outWalkerPtr - nullptr, // cpuWalkerBuffer - nullptr, // cpuPayloadBuffer - nullptr, // outImplicitArgsPtr - nullptr, // additionalCommands - nullptr, // extendedArgs - PreemptionMode::MidBatch, // preemptionMode - NEO::RequiredPartitionDim::none, // requiredPartitionDim - NEO::RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder - NEO::localRegionSizeParamNotSet, // localRegionSize - 0, // partitionCount - 0, // reserveExtraPayloadSpace - 1, // maxWgCountPerTile - NEO::ThreadArbitrationPolicy::NotPresent, // defaultPipelinedThreadArbitrationPolicy - false, // isIndirect - false, // isPredicate - false, // isTimestampEvent - false, // requiresUncachedMocs - false, // isInternal - false, // isCooperative - false, // isHostScopeSignalEvent - false, // isKernelUsingSystemAllocation - false, // isKernelDispatchedFromImmediateCmdList - false, // isRcs - commandList->getDcFlushRequired(true), // dcFlushEnable - false, // isHeaplessModeEnabled - false, // isHeaplessStateInitEnabled - false, // interruptEvent - false, // immediateScratchAddressPatching - false, // makeCommandView - }; + auto dispatchKernelArgs = CommandEncodeStatesFixture::createDefaultDispatchKernelArgs(device->getNEODevice(), kernel.get(), threadGroupDimensions, false); + dispatchKernelArgs.dcFlushEnable = commandList->getDcFlushRequired(true); + NEO::EncodeDispatchKernel::template encode(commandContainer, dispatchKernelArgs); auto usedSpaceAfter = commandContainer.getCommandStream()->getUsed(); 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 ebf491e0cc..06671c51af 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 @@ -19,6 +19,7 @@ #include "shared/test/common/mocks/mock_device.h" #include "shared/test/common/mocks/mock_sync_buffer_handler.h" #include "shared/test/common/test_macros/hw_test.h" +#include "shared/test/unit_test/fixtures/command_container_fixture.h" #include "level_zero/core/source/event/event.h" #include "level_zero/core/test/unit_tests/fixtures/module_fixture.h" @@ -912,47 +913,9 @@ HWTEST2_F(CommandListAppendLaunchKernel, givenNotEnoughSpaceInCommandStreamWhenA const uint32_t threadGroupDimensions[3] = {1, 1, 1}; - NEO::EncodeDispatchKernelArgs dispatchKernelArgs{ - 0, // eventAddress - 0, // postSyncImmValue - 0, // inOrderCounterValue - device->getNEODevice(), // device - nullptr, // inOrderExecInfo - kernel.get(), // dispatchInterface - nullptr, // surfaceStateHeap - nullptr, // dynamicStateHeap - threadGroupDimensions, // threadGroupDimensions - nullptr, // outWalkerPtr - nullptr, // cpuWalkerBuffer - nullptr, // cpuPayloadBuffer - nullptr, // outImplicitArgsPtr - nullptr, // additionalCommands - nullptr, // extendedArgs - PreemptionMode::MidBatch, // preemptionMode - NEO::RequiredPartitionDim::none, // requiredPartitionDim - NEO::RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder - NEO::localRegionSizeParamNotSet, // localRegionSize - 0, // partitionCount - 0, // reserveExtraPayloadSpace - 1, // maxWgCountPerTile - NEO::ThreadArbitrationPolicy::NotPresent, // defaultPipelinedThreadArbitrationPolicy - false, // isIndirect - false, // isPredicate - false, // isTimestampEvent - false, // requiresUncachedMocs - false, // isInternal - false, // isCooperative - false, // isHostScopeSignalEvent - false, // isKernelUsingSystemAllocation - false, // isKernelDispatchedFromImmediateCmdList - false, // isRcs - commandList->getDcFlushRequired(true), // dcFlushEnable - false, // isHeaplessModeEnabled - false, // isHeaplessStateInitEnabled - false, // interruptEvent - false, // immediateScratchAddressPatching - false, // makeCommandView - }; + auto dispatchKernelArgs = CommandEncodeStatesFixture::createDefaultDispatchKernelArgs(device->getNEODevice(), kernel.get(), threadGroupDimensions, false); + dispatchKernelArgs.dcFlushEnable = commandList->getDcFlushRequired(true); + EXPECT_THROW(NEO::EncodeDispatchKernel::template encode(commandContainer, dispatchKernelArgs), std::exception); } diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_in_order_cmdlist_1.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_in_order_cmdlist_1.cpp index fd6d2280d3..52404ec913 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_in_order_cmdlist_1.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_in_order_cmdlist_1.cpp @@ -5332,17 +5332,8 @@ HWTEST2_F(InOrderCmdListTests, givenExternalSyncStorageWhenCallingAppendThenDont auto devAddress = reinterpret_cast(allocDeviceMem(sizeof(uint64_t) * 2)); - zex_counter_based_event_external_storage_properties_t externalStorageAllocProperties = {ZEX_STRUCTURE_COUNTER_BASED_EVENT_EXTERNAL_STORAGE_ALLOC_PROPERTIES}; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange), NEO-12901 - externalStorageAllocProperties.completionValue = counterValue; - externalStorageAllocProperties.deviceAddress = devAddress; - externalStorageAllocProperties.incrementValue = incValue; - - zex_counter_based_event_desc_t counterBasedDesc = {ZEX_STRUCTURE_COUNTER_BASED_EVENT_DESC}; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange), NEO-12901 - counterBasedDesc.flags = ZEX_COUNTER_BASED_EVENT_FLAG_IMMEDIATE | ZEX_COUNTER_BASED_EVENT_FLAG_NON_IMMEDIATE; - counterBasedDesc.pNext = &externalStorageAllocProperties; ze_event_handle_t handle = nullptr; - - EXPECT_EQ(ZE_RESULT_SUCCESS, zexCounterBasedEventCreate2(context, device, &counterBasedDesc, &handle)); + createExternalSyncStorageEvent(counterValue, incValue, devAddress, handle); auto eventObj = Event::fromHandle(handle); ASSERT_NE(nullptr, eventObj->getInOrderExecInfo()); diff --git a/shared/source/command_container/command_encoder.h b/shared/source/command_container/command_encoder.h index 934c43e78d..375e4f78e7 100644 --- a/shared/source/command_container/command_encoder.h +++ b/shared/source/command_container/command_encoder.h @@ -50,6 +50,8 @@ struct EncodeDispatchKernelArgs { uint64_t eventAddress = 0; uint64_t postSyncImmValue = 0; uint64_t inOrderCounterValue = 0; + uint64_t inOrderIncrementGpuAddress = 0; + uint64_t inOrderIncrementValue = 0; Device *device = nullptr; NEO::InOrderExecInfo *inOrderExecInfo = nullptr; DispatchKernelEncoderI *dispatchInterface = nullptr; diff --git a/shared/test/unit_test/fixtures/command_container_fixture.cpp b/shared/test/unit_test/fixtures/command_container_fixture.cpp index a5ec42a35e..acf794bac7 100644 --- a/shared/test/unit_test/fixtures/command_container_fixture.cpp +++ b/shared/test/unit_test/fixtures/command_container_fixture.cpp @@ -33,56 +33,6 @@ void CommandEncodeStatesFixture::tearDown() { DeviceFixture::tearDown(); } -EncodeDispatchKernelArgs CommandEncodeStatesFixture::createDefaultDispatchKernelArgs(Device *device, - DispatchKernelEncoderI *dispatchInterface, - const void *threadGroupDimensions, - bool requiresUncachedMocs) { - - EncodeDispatchKernelArgs args{ - 0, // eventAddress - 0, // postSyncImmValue - 0, // inOrderCounterValue - device, // device - nullptr, // inOrderExecInfo - dispatchInterface, // dispatchInterface - nullptr, // surfaceStateHeap - nullptr, // dynamicStateHeap - threadGroupDimensions, // threadGroupDimensions - nullptr, // outWalkerPtr - nullptr, // cpuWalkerBuffer - nullptr, // cpuPayloadBuffer - nullptr, // outImplicitArgsPtr - nullptr, // additionalCommands - nullptr, // extendedArgs - PreemptionMode::Disabled, // preemptionMode - NEO::RequiredPartitionDim::none, // requiredPartitionDim - NEO::RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder - NEO::localRegionSizeParamNotSet, // localRegionSize - 1, // partitionCount - 0, // reserveExtraPayloadSpace - 1, // maxWgCountPerTile - NEO::ThreadArbitrationPolicy::NotPresent, // defaultPipelinedThreadArbitrationPolicy - false, // isIndirect - false, // isPredicate - false, // isTimestampEvent - requiresUncachedMocs, // requiresUncachedMocs - false, // isInternal - false, // isCooperative - false, // isHostScopeSignalEvent - false, // isKernelUsingSystemAllocation - false, // isKernelDispatchedFromImmediateCmdList - false, // isRcs - false, // dcFlushEnable - false, // isHeaplessModeEnabled - false, // isHeaplessStateInitEnabled - false, // interruptEvent - false, // immediateScratchAddressPatching - false, // makeCommandView - }; - - return args; -} - EncodeWalkerArgs CommandEncodeStatesFixture::createDefaultEncodeWalkerArgs(const KernelDescriptor &kernelDescriptor) { EncodeWalkerArgs args{ diff --git a/shared/test/unit_test/fixtures/command_container_fixture.h b/shared/test/unit_test/fixtures/command_container_fixture.h index be37cefe41..0fcbfd439c 100644 --- a/shared/test/unit_test/fixtures/command_container_fixture.h +++ b/shared/test/unit_test/fixtures/command_container_fixture.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2024 Intel Corporation + * Copyright (C) 2020-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -33,10 +33,53 @@ class CommandEncodeStatesFixture : public DeviceFixture { void setUp(); void tearDown(); - EncodeDispatchKernelArgs createDefaultDispatchKernelArgs(Device *device, - DispatchKernelEncoderI *dispatchInterface, - const void *threadGroupDimensions, - bool requiresUncachedMocs); + static EncodeDispatchKernelArgs createDefaultDispatchKernelArgs(Device *device, DispatchKernelEncoderI *dispatchInterface, const void *threadGroupDimensions, bool requiresUncachedMocs) { + EncodeDispatchKernelArgs args{ + .eventAddress = 0, + .postSyncImmValue = 0, + .inOrderCounterValue = 0, + .inOrderIncrementGpuAddress = 0, + .inOrderIncrementValue = 0, + .device = device, + .inOrderExecInfo = nullptr, + .dispatchInterface = dispatchInterface, + .surfaceStateHeap = nullptr, + .dynamicStateHeap = nullptr, + .threadGroupDimensions = threadGroupDimensions, + .outWalkerPtr = nullptr, + .cpuWalkerBuffer = nullptr, + .cpuPayloadBuffer = nullptr, + .outImplicitArgsPtr = nullptr, + .additionalCommands = nullptr, + .extendedArgs = nullptr, + .preemptionMode = PreemptionMode::Disabled, + .requiredPartitionDim = NEO::RequiredPartitionDim::none, + .requiredDispatchWalkOrder = NEO::RequiredDispatchWalkOrder::none, + .localRegionSize = NEO::localRegionSizeParamNotSet, + .partitionCount = 1, + .reserveExtraPayloadSpace = 0, + .maxWgCountPerTile = 1, + .defaultPipelinedThreadArbitrationPolicy = NEO::ThreadArbitrationPolicy::NotPresent, + .isIndirect = false, + .isPredicate = false, + .isTimestampEvent = false, + .requiresUncachedMocs = requiresUncachedMocs, + .isInternal = false, + .isCooperative = false, + .isHostScopeSignalEvent = false, + .isKernelUsingSystemAllocation = false, + .isKernelDispatchedFromImmediateCmdList = false, + .isRcs = false, + .dcFlushEnable = false, + .isHeaplessModeEnabled = false, + .isHeaplessStateInitEnabled = false, + .interruptEvent = false, + .immediateScratchAddressPatching = false, + .makeCommandView = false, + }; + + return args; + } static EncodeWalkerArgs createDefaultEncodeWalkerArgs(const KernelDescriptor &kernelDescriptor);