diff --git a/level_zero/core/source/cmdlist/cmdlist.h b/level_zero/core/source/cmdlist/cmdlist.h index 2981f0c576..7021c717ae 100644 --- a/level_zero/core/source/cmdlist/cmdlist.h +++ b/level_zero/core/source/cmdlist/cmdlist.h @@ -34,26 +34,10 @@ struct Event; struct Kernel; struct CommandQueue; -enum class RequiredPartitionDim : uint32_t { - None = 0, - X, - Y, - Z -}; - -enum class RequiredDispatchWalkOrder : uint32_t { - None = 0, - X, - Y, - Additional -}; - struct CmdListKernelLaunchParams { - static constexpr uint32_t additionalSizeParamNotSet = std::numeric_limits::max(); - - RequiredPartitionDim requiredPartitionDim = RequiredPartitionDim::None; - RequiredDispatchWalkOrder requiredDispatchWalkOrder = RequiredDispatchWalkOrder::None; - uint32_t additionalSizeParam = additionalSizeParamNotSet; + NEO::RequiredPartitionDim requiredPartitionDim = NEO::RequiredPartitionDim::None; + NEO::RequiredDispatchWalkOrder requiredDispatchWalkOrder = NEO::RequiredDispatchWalkOrder::None; + uint32_t additionalSizeParam = NEO::additionalKernelLaunchSizeParamNotSet; uint32_t numKernelsInSplitLaunch = 0; uint32_t numKernelsExecutedInSplitLaunch = 0; bool isIndirect = false; 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 b4fc0acd27..9a2b7c0569 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 @@ -200,6 +200,9 @@ ze_result_t CommandListCoreFamily::appendLaunchKernelWithParams(K nullptr, // outWalkerPtr &additionalCommands, // additionalCommands commandListPreemptionMode, // preemptionMode + launchParams.requiredPartitionDim, // requiredPartitionDim + launchParams.requiredDispatchWalkOrder, // requiredDispatchWalkOrder + launchParams.additionalSizeParam, // additionalSizeParam 0, // partitionCount launchParams.isIndirect, // isIndirect launchParams.isPredicate, // isPredicate 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 3b625a1775..02382589c6 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 @@ -286,6 +286,9 @@ ze_result_t CommandListCoreFamily::appendLaunchKernelWithParams(K nullptr, // outWalkerPtr &additionalCommands, // additionalCommands kernelPreemptionMode, // preemptionMode + launchParams.requiredPartitionDim, // requiredPartitionDim + launchParams.requiredDispatchWalkOrder, // requiredDispatchWalkOrder + launchParams.additionalSizeParam, // additionalSizeParam this->partitionCount, // partitionCount launchParams.isIndirect, // isIndirect launchParams.isPredicate, // isPredicate 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 8db9483206..bfd4a8e02f 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 @@ -184,29 +184,32 @@ HWTEST2_F(CommandListAppendLaunchKernel, givenNotEnoughSpaceInCommandStreamWhenA const uint32_t threadGroupDimensions[3] = {1, 1, 1}; NEO::EncodeDispatchKernelArgs dispatchKernelArgs{ - 0, // eventAddress - 0, // postSyncImmValue - device->getNEODevice(), // device - kernel.get(), // dispatchInterface - nullptr, // surfaceStateHeap - nullptr, // dynamicStateHeap - threadGroupDimensions, // threadGroupDimensions - nullptr, // outWalkerPtr - nullptr, // additionalCommands - PreemptionMode::MidBatch, // preemptionMode - 0, // partitionCount - false, // isIndirect - false, // isPredicate - false, // isTimestampEvent - false, // requiresUncachedMocs - false, // useGlobalAtomics - false, // isInternal - false, // isCooperative - false, // isHostScopeSignalEvent - false, // isKernelUsingSystemAllocation - false, // isKernelDispatchedFromImmediateCmdList - false, // isRcs - commandList->getDcFlushRequired(true) // dcFlushEnable + 0, // eventAddress + 0, // postSyncImmValue + device->getNEODevice(), // device + kernel.get(), // dispatchInterface + nullptr, // surfaceStateHeap + nullptr, // dynamicStateHeap + threadGroupDimensions, // threadGroupDimensions + nullptr, // outWalkerPtr + nullptr, // additionalCommands + PreemptionMode::MidBatch, // preemptionMode + NEO::RequiredPartitionDim::None, // requiredPartitionDim + NEO::RequiredDispatchWalkOrder::None, // requiredDispatchWalkOrder + NEO::additionalKernelLaunchSizeParamNotSet, // additionalSizeParam + 0, // partitionCount + false, // isIndirect + false, // isPredicate + false, // isTimestampEvent + false, // requiresUncachedMocs + false, // useGlobalAtomics + false, // isInternal + false, // isCooperative + false, // isHostScopeSignalEvent + false, // isKernelUsingSystemAllocation + false, // isKernelDispatchedFromImmediateCmdList + false, // isRcs + commandList->getDcFlushRequired(true) // dcFlushEnable }; NEO::EncodeDispatchKernel::template encode(commandContainer, dispatchKernelArgs); 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 1f3bed5be5..d1578dd86c 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 @@ -635,29 +635,32 @@ HWTEST2_F(CommandListAppendLaunchKernel, givenNotEnoughSpaceInCommandStreamWhenA const uint32_t threadGroupDimensions[3] = {1, 1, 1}; NEO::EncodeDispatchKernelArgs dispatchKernelArgs{ - 0, // eventAddress - 0, // postSyncImmValue - device->getNEODevice(), // device - kernel.get(), // dispatchInterface - nullptr, // surfaceStateHeap - nullptr, // dynamicStateHeap - threadGroupDimensions, // threadGroupDimensions - nullptr, // outWalkerPtr - nullptr, // additionalCommands - PreemptionMode::MidBatch, // preemptionMode - 0, // partitionCount - false, // isIndirect - false, // isPredicate - false, // isTimestampEvent - false, // requiresUncachedMocs - false, // useGlobalAtomics - false, // isInternal - false, // isCooperative - false, // isHostScopeSignalEvent - false, // isKernelUsingSystemAllocation - false, // isKernelDispatchedFromImmediateCmdList - false, // isRcs - commandList->getDcFlushRequired(true) // dcFlushEnable + 0, // eventAddress + 0, // postSyncImmValue + device->getNEODevice(), // device + kernel.get(), // dispatchInterface + nullptr, // surfaceStateHeap + nullptr, // dynamicStateHeap + threadGroupDimensions, // threadGroupDimensions + nullptr, // outWalkerPtr + nullptr, // additionalCommands + PreemptionMode::MidBatch, // preemptionMode + NEO::RequiredPartitionDim::None, // requiredPartitionDim + NEO::RequiredDispatchWalkOrder::None, // requiredDispatchWalkOrder + NEO::additionalKernelLaunchSizeParamNotSet, // additionalSizeParam + 0, // partitionCount + false, // isIndirect + false, // isPredicate + false, // isTimestampEvent + false, // requiresUncachedMocs + false, // useGlobalAtomics + false, // isInternal + false, // isCooperative + false, // isHostScopeSignalEvent + false, // isKernelUsingSystemAllocation + false, // isKernelDispatchedFromImmediateCmdList + false, // isRcs + commandList->getDcFlushRequired(true) // dcFlushEnable }; EXPECT_THROW(NEO::EncodeDispatchKernel::template encode(commandContainer, dispatchKernelArgs), std::exception); } diff --git a/opencl/source/command_queue/hardware_interface_bdw_and_later.inl b/opencl/source/command_queue/hardware_interface_bdw_and_later.inl index 5edf53cd0f..5e660e5add 100644 --- a/opencl/source/command_queue/hardware_interface_bdw_and_later.inl +++ b/opencl/source/command_queue/hardware_interface_bdw_and_later.inl @@ -102,7 +102,7 @@ inline void HardwareInterface::programWalker( 0, commandQueue.getDevice()); - EncodeWalkerArgs encodeWalkerArgs{kernel.getExecutionType(), false, kernel.getKernelInfo().kernelDescriptor}; + EncodeWalkerArgs encodeWalkerArgs{kernel.getExecutionType(), false, kernel.getKernelInfo().kernelDescriptor, NEO::RequiredDispatchWalkOrder::None, 0}; EncodeDispatchKernel::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, encodeWalkerArgs); *walkerCmdBuf = walkerCmd; } diff --git a/opencl/source/command_queue/hardware_interface_xehp_and_later.inl b/opencl/source/command_queue/hardware_interface_xehp_and_later.inl index eda99dc4d0..4b9325cdbd 100644 --- a/opencl/source/command_queue/hardware_interface_xehp_and_later.inl +++ b/opencl/source/command_queue/hardware_interface_xehp_and_later.inl @@ -11,6 +11,7 @@ #include "shared/source/command_stream/command_stream_receiver.h" #include "shared/source/debug_settings/debug_settings_manager.h" #include "shared/source/device/device.h" +#include "shared/source/helpers/definitions/command_encoder_args.h" #include "shared/source/helpers/engine_node_helper.h" #include "shared/source/os_interface/os_context.h" #include "shared/source/os_interface/os_interface.h" @@ -141,7 +142,7 @@ inline void HardwareInterface::programWalker( kernelSystemAllocation = kernel.isAnyKernelArgumentUsingSystemMemory(); } bool requiredSystemFence = kernelSystemAllocation && walkerArgs.event != nullptr; - EncodeWalkerArgs encodeWalkerArgs{kernel.getExecutionType(), requiredSystemFence, kernelInfo.kernelDescriptor}; + EncodeWalkerArgs encodeWalkerArgs{kernel.getExecutionType(), requiredSystemFence, kernelInfo.kernelDescriptor, NEO::RequiredDispatchWalkOrder::None, 0}; EncodeDispatchKernel::template encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, encodeWalkerArgs); auto devices = queueCsr.getOsContext().getDeviceBitfield(); @@ -159,10 +160,10 @@ inline void HardwareInterface::programWalker( walkerCmd, nullptr, devices, + kernel.usesImages() ? RequiredPartitionDim::X : RequiredPartitionDim::None, partitionCount, false, false, - kernel.usesImages(), queueCsr.getDcFlushSupport(), kernel.isSingleSubdevicePreferred(), workPartitionAllocationGpuVa, diff --git a/opencl/test/unit_test/command_queue/dispatch_walker_tests_dg2_and_later.cpp b/opencl/test/unit_test/command_queue/dispatch_walker_tests_dg2_and_later.cpp index 8a4b22184c..33dd24fe8b 100644 --- a/opencl/test/unit_test/command_queue/dispatch_walker_tests_dg2_and_later.cpp +++ b/opencl/test/unit_test/command_queue/dispatch_walker_tests_dg2_and_later.cpp @@ -84,7 +84,7 @@ HWTEST2_F(WalkerDispatchTestDg2AndLater, givenDebugVariableSetWhenProgramCompute auto &rootDeviceEnvironment = *mockExecutionEnvironment.rootDeviceEnvironments[0]; KernelDescriptor kernelDescriptor; - EncodeWalkerArgs walkerArgs{KernelExecutionType::defaultType, true, kernelDescriptor}; + EncodeWalkerArgs walkerArgs{KernelExecutionType::defaultType, true, kernelDescriptor, NEO::RequiredDispatchWalkOrder::None, 0}; for (auto forceL3PrefetchForComputeWalker : {false, true}) { debugManager.flags.ForceL3PrefetchForComputeWalker.set(forceL3PrefetchForComputeWalker); EncodeDispatchKernel::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, walkerArgs); diff --git a/shared/source/command_container/command_encoder.h b/shared/source/command_container/command_encoder.h index df33ad5d9a..28c3cd6917 100644 --- a/shared/source/command_container/command_encoder.h +++ b/shared/source/command_container/command_encoder.h @@ -11,6 +11,7 @@ #include "shared/source/command_container/encode_alu_helper.h" #include "shared/source/command_stream/preemption_mode.h" #include "shared/source/debugger/debugger.h" +#include "shared/source/helpers/definitions/command_encoder_args.h" #include "shared/source/helpers/register_offsets.h" #include "shared/source/kernel/kernel_arg_descriptor.h" #include "shared/source/kernel/kernel_execution_type.h" @@ -52,6 +53,9 @@ struct EncodeDispatchKernelArgs { void *outWalkerPtr = nullptr; std::list *additionalCommands = nullptr; PreemptionMode preemptionMode = PreemptionMode::Initial; + NEO::RequiredPartitionDim requiredPartitionDim = NEO::RequiredPartitionDim::None; + NEO::RequiredDispatchWalkOrder requiredDispatchWalkOrder = NEO::RequiredDispatchWalkOrder::None; + uint32_t additionalSizeParam = NEO::additionalKernelLaunchSizeParamNotSet; uint32_t partitionCount = 0u; bool isIndirect = false; bool isPredicate = false; @@ -87,6 +91,8 @@ struct EncodeWalkerArgs { KernelExecutionType kernelExecutionType = KernelExecutionType::defaultType; bool requiredSystemFence = false; const KernelDescriptor &kernelDescriptor; + NEO::RequiredDispatchWalkOrder requiredDispatchWalkOrder = NEO::RequiredDispatchWalkOrder::None; + uint32_t additionalSizeParam = NEO::additionalKernelLaunchSizeParamNotSet; }; template diff --git a/shared/source/command_container/command_encoder_xehp_and_later.inl b/shared/source/command_container/command_encoder_xehp_and_later.inl index b8e724eeb6..82023a792d 100644 --- a/shared/source/command_container/command_encoder_xehp_and_later.inl +++ b/shared/source/command_container/command_encoder_xehp_and_later.inl @@ -393,7 +393,9 @@ void EncodeDispatchKernel::encode(CommandContainer &container, EncodeDis EncodeWalkerArgs walkerArgs{ args.isCooperative ? KernelExecutionType::concurrent : KernelExecutionType::defaultType, args.isHostScopeSignalEvent && args.isKernelUsingSystemAllocation, - kernelDescriptor}; + kernelDescriptor, + args.requiredDispatchWalkOrder, + args.additionalSizeParam}; EncodeDispatchKernel::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, walkerArgs); PreemptionHelper::applyPreemptionWaCmdsBegin(listCmdBufferStream, *args.device); @@ -407,10 +409,10 @@ void EncodeDispatchKernel::encode(CommandContainer &container, EncodeDis walkerCmd, &args.outWalkerPtr, args.device->getDeviceBitfield(), + args.requiredPartitionDim, args.partitionCount, !(container.getFlushTaskUsedForImmediate() || container.isUsingPrimaryBuffer()), !args.isKernelDispatchedFromImmediateCmdList, - false, args.dcFlushEnable, args.isCooperative, workPartitionAllocationGpuVa, diff --git a/shared/source/command_container/implicit_scaling.h b/shared/source/command_container/implicit_scaling.h index d460318c44..1c8b3287e7 100644 --- a/shared/source/command_container/implicit_scaling.h +++ b/shared/source/command_container/implicit_scaling.h @@ -7,6 +7,7 @@ #pragma once +#include "shared/source/helpers/definitions/command_encoder_args.h" #include "shared/source/helpers/device_bitfield.h" #include "shared/source/helpers/vec.h" @@ -52,10 +53,10 @@ struct ImplicitScalingDispatch { WalkerType &walkerCmd, void **outWalkerPtr, const DeviceBitfield &devices, + RequiredPartitionDim requiredPartitionDim, uint32_t &partitionCount, bool useSecondaryBatchBuffer, bool apiSelfCleanup, - bool usesImages, bool dcFlush, bool forceExecutionOnSingleTile, uint64_t workPartitionAllocationGpuVa, diff --git a/shared/source/command_container/implicit_scaling_xehp_and_later.inl b/shared/source/command_container/implicit_scaling_xehp_and_later.inl index 4713eb4043..a0032d2451 100644 --- a/shared/source/command_container/implicit_scaling_xehp_and_later.inl +++ b/shared/source/command_container/implicit_scaling_xehp_and_later.inl @@ -93,10 +93,10 @@ void ImplicitScalingDispatch::dispatchCommands(LinearStream &commandS WalkerType &walkerCmd, void **outWalkerPtr, const DeviceBitfield &devices, + NEO::RequiredPartitionDim requiredPartitionDim, uint32_t &partitionCount, bool useSecondaryBatchBuffer, bool apiSelfCleanup, - bool usesImages, bool dcFlush, bool forceExecutionOnSingleTile, uint64_t workPartitionAllocationGpuVa, @@ -106,7 +106,7 @@ void ImplicitScalingDispatch::dispatchCommands(LinearStream &commandS const bool preferStaticPartitioning = workPartitionAllocationGpuVa != 0u; bool staticPartitioning = false; - partitionCount = WalkerPartition::computePartitionCountAndSetPartitionType(&walkerCmd, tileCount, preferStaticPartitioning, usesImages, &staticPartitioning); + partitionCount = WalkerPartition::computePartitionCountAndSetPartitionType(&walkerCmd, requiredPartitionDim, tileCount, preferStaticPartitioning, &staticPartitioning); WalkerPartition::WalkerPartitionArgs args = prepareWalkerPartitionArgs(workPartitionAllocationGpuVa, tileCount, diff --git a/shared/source/command_container/walker_partition_xehp_and_later.h b/shared/source/command_container/walker_partition_xehp_and_later.h index 4558ca2acd..04e96c961a 100644 --- a/shared/source/command_container/walker_partition_xehp_and_later.h +++ b/shared/source/command_container/walker_partition_xehp_and_later.h @@ -185,9 +185,9 @@ uint32_t computePartitionCountAndPartitionType(uint32_t preferredMinimalPartitio template uint32_t computePartitionCountAndSetPartitionType(WalkerType *walker, + NEO::RequiredPartitionDim requiredPartitionDim, uint32_t preferredMinimalPartitionCount, bool preferStaticPartitioning, - bool usesImages, bool *outSelectStaticPartitioning) { using PARTITION_TYPE = typename WalkerType::PARTITION_TYPE; @@ -195,9 +195,22 @@ uint32_t computePartitionCountAndSetPartitionType(WalkerType *walker, const Vec3 groupStart = {walker->getThreadGroupIdStartingX(), walker->getThreadGroupIdStartingY(), walker->getThreadGroupIdStartingZ()}; const Vec3 groupCount = {walker->getThreadGroupIdXDimension(), walker->getThreadGroupIdYDimension(), walker->getThreadGroupIdZDimension()}; std::optional requestedPartitionType{}; - if (usesImages) { + + switch (requiredPartitionDim) { + case NEO::RequiredPartitionDim::X: requestedPartitionType = PARTITION_TYPE::PARTITION_TYPE_X; + break; + case NEO::RequiredPartitionDim::Y: + requestedPartitionType = PARTITION_TYPE::PARTITION_TYPE_Y; + break; + case NEO::RequiredPartitionDim::Z: + requestedPartitionType = PARTITION_TYPE::PARTITION_TYPE_Z; + break; + default: + UNRECOVERABLE_IF(requiredPartitionDim != NEO::RequiredPartitionDim::None); + break; } + PARTITION_TYPE partitionType{}; const auto partitionCount = computePartitionCountAndPartitionType(preferredMinimalPartitionCount, preferStaticPartitioning, diff --git a/shared/source/helpers/definitions/command_encoder_args.h b/shared/source/helpers/definitions/command_encoder_args.h index 51fbcafb85..7693755910 100644 --- a/shared/source/helpers/definitions/command_encoder_args.h +++ b/shared/source/helpers/definitions/command_encoder_args.h @@ -7,6 +7,9 @@ #pragma once +#include +#include + namespace NEO { struct RootDeviceEnvironment; @@ -24,4 +27,21 @@ struct MiFlushArgs { EncodeDummyBlitWaArgs &waArgs; MiFlushArgs(EncodeDummyBlitWaArgs &args) : waArgs(args) {} }; + +enum class RequiredPartitionDim : uint32_t { + None = 0, + X, + Y, + Z +}; + +enum class RequiredDispatchWalkOrder : uint32_t { + None = 0, + X, + Y, + Additional +}; + +static constexpr uint32_t additionalKernelLaunchSizeParamNotSet = 0; + } // namespace NEO diff --git a/shared/source/xe_hpc_core/implicit_scaling_xe_hpc_core.cpp b/shared/source/xe_hpc_core/implicit_scaling_xe_hpc_core.cpp index efe6486a6c..4cd46fa98d 100644 --- a/shared/source/xe_hpc_core/implicit_scaling_xe_hpc_core.cpp +++ b/shared/source/xe_hpc_core/implicit_scaling_xe_hpc_core.cpp @@ -30,7 +30,7 @@ bool ImplicitScalingDispatch::platformSupportsImplicitScaling(const Root } template struct ImplicitScalingDispatch; -template void ImplicitScalingDispatch::dispatchCommands(LinearStream &commandStream, Family::DefaultWalkerType &walkerCmd, void **outWalkerPtr, const DeviceBitfield &devices, uint32_t &partitionCount, bool useSecondaryBatchBuffer, bool apiSelfCleanup, bool usesImages, bool dcFlush, bool forceExecutionOnSingleTile, uint64_t workPartitionAllocationGpuVa, const HardwareInfo &hwInfo); +template void ImplicitScalingDispatch::dispatchCommands(LinearStream &commandStream, Family::DefaultWalkerType &walkerCmd, void **outWalkerPtr, const DeviceBitfield &devices, NEO::RequiredPartitionDim requiredPartitionDim, uint32_t &partitionCount, bool useSecondaryBatchBuffer, bool apiSelfCleanup, bool dcFlush, bool forceExecutionOnSingleTile, uint64_t workPartitionAllocationGpuVa, const HardwareInfo &hwInfo); template size_t ImplicitScalingDispatch::getSize(bool apiSelfCleanup, bool preferStaticPartitioning, const DeviceBitfield &devices, const Vec3 &groupStart, const Vec3 &groupCount); } // namespace NEO diff --git a/shared/source/xe_hpg_core/implicit_scaling_xe_hpg_core.cpp b/shared/source/xe_hpg_core/implicit_scaling_xe_hpg_core.cpp index f479599df7..cfd25671a8 100644 --- a/shared/source/xe_hpg_core/implicit_scaling_xe_hpg_core.cpp +++ b/shared/source/xe_hpg_core/implicit_scaling_xe_hpg_core.cpp @@ -17,7 +17,7 @@ template <> bool ImplicitScalingDispatch::pipeControlStallRequired = true; template struct ImplicitScalingDispatch; -template void ImplicitScalingDispatch::dispatchCommands(LinearStream &commandStream, Family::DefaultWalkerType &walkerCmd, void **outWalkerPtr, const DeviceBitfield &devices, uint32_t &partitionCount, bool useSecondaryBatchBuffer, bool apiSelfCleanup, bool usesImages, bool dcFlush, bool forceExecutionOnSingleTile, uint64_t workPartitionAllocationGpuVa, const HardwareInfo &hwInfo); +template void ImplicitScalingDispatch::dispatchCommands(LinearStream &commandStream, Family::DefaultWalkerType &walkerCmd, void **outWalkerPtr, const DeviceBitfield &devices, NEO::RequiredPartitionDim requiredPartitionDim, uint32_t &partitionCount, bool useSecondaryBatchBuffer, bool apiSelfCleanup, bool dcFlush, bool forceExecutionOnSingleTile, uint64_t workPartitionAllocationGpuVa, const HardwareInfo &hwInfo); template size_t ImplicitScalingDispatch::getSize(bool apiSelfCleanup, bool preferStaticPartitioning, const DeviceBitfield &devices, const Vec3 &groupStart, const Vec3 &groupCount); } // namespace NEO diff --git a/shared/test/unit_test/encoders/test_implicit_scaling_xehp_and_later.cpp b/shared/test/unit_test/encoders/test_implicit_scaling_xehp_and_later.cpp index 4fb6349cb4..c437a672e4 100644 --- a/shared/test/unit_test/encoders/test_implicit_scaling_xehp_and_later.cpp +++ b/shared/test/unit_test/encoders/test_implicit_scaling_xehp_and_later.cpp @@ -36,7 +36,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, GivenGetSizeWhenDispatchingCm expectedSize = ImplicitScalingDispatch::template getSize(false, false, twoTile, Vec3(0, 0, 0), Vec3(32, 1, 1)); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, false, dcFlushFlag, forceExecutionOnSingleTileFlag, 0u, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -79,7 +79,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, GivenWorkgroupOneAndNoPartiti expectedSize = ImplicitScalingDispatch::template getSize(false, false, twoTile, Vec3(0, 0, 0), Vec3(1, 1, 1)); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, false, false, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, false, false, dcFlushFlag, forceExecutionOnSingleTileFlag, 0u, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -123,7 +123,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, GivenWorkgroupOneAndPartition expectedSize = ImplicitScalingDispatch::template getSize(false, false, twoTile, Vec3(0, 0, 0), Vec3(1, 1, 1)); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, false, dcFlushFlag, forceExecutionOnSingleTileFlag, 0u, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -170,7 +170,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, GivenStaticPartitioningWhenDi expectedSize = ImplicitScalingDispatch::template getSize(false, true, twoTile, Vec3(0, 0, 0), Vec3(32, 1, 1)); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, false, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -222,7 +222,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, GivenStaticPartitioningWhenPa expectedSize = ImplicitScalingDispatch::template getSize(false, true, twoTile, Vec3(0, 0, 0), Vec3(32, 1, 1)); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, false, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -276,7 +276,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, GivenStaticPartitioningPrefer expectedSize = ImplicitScalingDispatch::template getSize(false, true, twoTile, Vec3(0, 0, 0), Vec3(1, 1, 1)); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, false, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -327,7 +327,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, GivenStaticPartitioningPrefer expectedSize = ImplicitScalingDispatch::template getSize(false, true, twoTile, Vec3(0, 0, 0), Vec3(1, 1, 1)); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, false, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -364,7 +364,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, GivenStaticPartitioningPrefer expectedSize = ImplicitScalingDispatch::template getSize(false, true, twoTile, Vec3(0, 0, 0), Vec3(1, 1, 1)); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, false, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -401,7 +401,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, GivenDynamicPartitioningPrefe expectedSize = ImplicitScalingDispatch::template getSize(false, false, twoTile, Vec3(0, 0, 0), Vec3(1, 1, 1)); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, false, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -449,7 +449,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, EXPECT_EQ(expectedSize, estimatedSize); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, true, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, true, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -517,7 +517,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, EXPECT_EQ(expectedSize, estimatedSize); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, true, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, true, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -577,7 +577,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, EXPECT_EQ(expectedSize, estimatedSize); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, true, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, true, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -637,7 +637,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, EXPECT_EQ(expectedSize, estimatedSize); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, true, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, true, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -704,7 +704,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, EXPECT_EQ(expectedSize, estimatedSize); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, true, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, true, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -767,7 +767,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, EXPECT_EQ(expectedSize, estimatedSize); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, false, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -832,7 +832,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, EXPECT_EQ(expectedSize, estimatedSize); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, false, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -900,7 +900,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, EXPECT_EQ(expectedSize, estimatedSize); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, true, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, true, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); @@ -967,7 +967,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, EXPECT_EQ(expectedSize, estimatedSize); uint32_t partitionCount = 0; - ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag, + ImplicitScalingDispatch::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, false, dcFlushFlag, forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo); totalBytesProgrammed = commandStream.getUsed(); EXPECT_EQ(expectedSize, totalBytesProgrammed); diff --git a/shared/test/unit_test/encoders/walker_partition_tests_xehp_and_later_1.cpp b/shared/test/unit_test/encoders/walker_partition_tests_xehp_and_later_1.cpp index cbba88d2b5..98560b4d36 100644 --- a/shared/test/unit_test/encoders/walker_partition_tests_xehp_and_later_1.cpp +++ b/shared/test/unit_test/encoders/walker_partition_tests_xehp_and_later_1.cpp @@ -1288,7 +1288,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenStaticPartitionIsPreferr checkForProperCmdBufferAddressOffset = false; bool preferredStaticPartitioning = true; bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, preferredStaticPartitioning, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, preferredStaticPartitioning, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(1u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_DISABLED, walker.getPartitionType()); diff --git a/shared/test/unit_test/encoders/walker_partition_tests_xehp_and_later_2.cpp b/shared/test/unit_test/encoders/walker_partition_tests_xehp_and_later_2.cpp index 4e0426bdc6..89bfb4cb9d 100644 --- a/shared/test/unit_test/encoders/walker_partition_tests_xehp_and_later_2.cpp +++ b/shared/test/unit_test/encoders/walker_partition_tests_xehp_and_later_2.cpp @@ -449,7 +449,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWhenComputePartiti walker.setThreadGroupIdXDimension(16u); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 2u, false, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 2u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(2u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_X, walker.getPartitionType()); @@ -461,7 +461,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWithNonUniformStar walker.setThreadGroupIdStartingX(1u); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(1u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_DISABLED, walker.getPartitionType()); @@ -469,7 +469,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWithNonUniformStar walker.setThreadGroupIdStartingX(0u); walker.setThreadGroupIdStartingY(1u); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(1u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_DISABLED, walker.getPartitionType()); @@ -477,7 +477,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWithNonUniformStar walker.setThreadGroupIdStartingY(0u); walker.setThreadGroupIdStartingZ(1u); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(1u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_DISABLED, walker.getPartitionType()); @@ -491,21 +491,21 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWithDifferentWorkg walker.setThreadGroupIdZDimension(64u); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_X, walker.getPartitionType()); walker.setThreadGroupIdYDimension(65u); walker.setPartitionType(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_DISABLED); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y, walker.getPartitionType()); walker.setThreadGroupIdZDimension(66u); walker.setPartitionType(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_DISABLED); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Z, walker.getPartitionType()); @@ -522,21 +522,21 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenDisabledMinimalPartition debugManager.flags.SetMinimalPartitionSize.set(0); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(16u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_X, walker.getPartitionType()); walker.setThreadGroupIdYDimension(65u); walker.setPartitionType(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_DISABLED); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(16u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y, walker.getPartitionType()); walker.setThreadGroupIdZDimension(66u); walker.setPartitionType(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_DISABLED); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(16u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Z, walker.getPartitionType()); @@ -550,14 +550,14 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWithDifferentWorkg walker.setThreadGroupIdZDimension(4u); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_X, walker.getPartitionType()); walker.setThreadGroupIdXDimension(1u); walker.setPartitionType(COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_DISABLED); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y, walker.getPartitionType()); @@ -565,7 +565,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWithDifferentWorkg walker.setThreadGroupIdYDimension(1u); walker.setPartitionType(COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_DISABLED); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Z, walker.getPartitionType()); @@ -582,25 +582,25 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWithPartitionTypeH debugManager.flags.ExperimentalSetWalkerPartitionType.set(-1); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_X, walker.getPartitionType()); debugManager.flags.ExperimentalSetWalkerPartitionType.set(static_cast(COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_X)); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_X, walker.getPartitionType()); debugManager.flags.ExperimentalSetWalkerPartitionType.set(static_cast(COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y)); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y, walker.getPartitionType()); debugManager.flags.ExperimentalSetWalkerPartitionType.set(static_cast(COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Z)); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(2u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Z, walker.getPartitionType()); @@ -617,7 +617,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenInvalidPartitionTypeIsRe debugManager.flags.ExperimentalSetWalkerPartitionType.set(0); bool staticPartitioning = false; - EXPECT_ANY_THROW(computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning)); + EXPECT_ANY_THROW(computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning)); } HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWithSmallXDimensionSizeWhenPartitionCountIsObtainedThenPartitionCountIsAdujsted) { @@ -628,7 +628,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWithSmallXDimensio walker.setThreadGroupIdZDimension(1u); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 2u, false, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 2u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(2u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y, walker.getPartitionType()); @@ -642,7 +642,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWithBigXDimensionS walker.setThreadGroupIdZDimension(1u); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 2u, false, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 2u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(16u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_X, walker.getPartitionType()); @@ -659,7 +659,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenCustomMinimalPartitionSi debugManager.flags.SetMinimalPartitionSize.set(4096); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 2u, false, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 2u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_X, walker.getPartitionType()); @@ -673,7 +673,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWithPartitionTypeP walker.setThreadGroupIdZDimension(1u); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(1u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_DISABLED, walker.getPartitionType()); @@ -687,10 +687,10 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenXDimensionIsNotLargetAnd walker.setThreadGroupIdZDimension(16u); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y, walker.getPartitionType()); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, false, true, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::X, 4u, false, &staticPartitioning); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_X, walker.getPartitionType()); } @@ -702,7 +702,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenStaticPartitioningAndNon walker.setThreadGroupIdZDimension(1u); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, true, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::X, 4u, true, &staticPartitioning); EXPECT_TRUE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_X, walker.getPartitionType()); @@ -716,7 +716,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenStaticPartitioningAndPar walker.setThreadGroupIdZDimension(1u); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, true, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, true, &staticPartitioning); EXPECT_TRUE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y, walker.getPartitionType()); @@ -730,7 +730,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenStaticPartitioningAndBig walker.setThreadGroupIdZDimension(1u); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, true, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, true, &staticPartitioning); EXPECT_TRUE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y, walker.getPartitionType()); @@ -747,7 +747,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenStaticPartitioningAndAnd walker.setThreadGroupIdStartingZ(1); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, true, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, true, &staticPartitioning); EXPECT_FALSE(staticPartitioning); EXPECT_EQ(1u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_DISABLED, walker.getPartitionType()); @@ -762,14 +762,14 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenStaticPartitioningAndPar walker.setThreadGroupIdZDimension(1u); bool staticPartitioning = false; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, true, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, true, &staticPartitioning); EXPECT_TRUE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y, walker.getPartitionType()); debugManager.flags.ExperimentalSetWalkerPartitionType.set(static_cast(COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Z)); staticPartitioning = false; - partitionCount = computePartitionCountAndSetPartitionType(&walker, 4u, true, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 4u, true, &staticPartitioning); EXPECT_TRUE(staticPartitioning); EXPECT_EQ(4u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Z, walker.getPartitionType()); @@ -784,14 +784,14 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenStaticPartitioningWhenZD walker.setThreadGroupIdZDimension(2u); bool staticPartitioning = true; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 2u, true, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 2u, true, &staticPartitioning); EXPECT_TRUE(staticPartitioning); EXPECT_EQ(2u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Z, walker.getPartitionType()); debugManager.flags.WalkerPartitionPreferHighestDimension.set(0); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 2u, true, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 2u, true, &staticPartitioning); EXPECT_TRUE(staticPartitioning); EXPECT_EQ(2u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y, walker.getPartitionType()); @@ -806,14 +806,14 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenStaticPartitioningWhenYD walker.setThreadGroupIdZDimension(1u); bool staticPartitioning = true; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 2u, true, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 2u, true, &staticPartitioning); EXPECT_TRUE(staticPartitioning); EXPECT_EQ(2u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y, walker.getPartitionType()); debugManager.flags.WalkerPartitionPreferHighestDimension.set(0); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 2u, true, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 2u, true, &staticPartitioning); EXPECT_TRUE(staticPartitioning); EXPECT_EQ(2u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_X, walker.getPartitionType()); @@ -828,14 +828,14 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenStaticPartitioningWhenZD walker.setThreadGroupIdZDimension(513u); bool staticPartitioning = true; - auto partitionCount = computePartitionCountAndSetPartitionType(&walker, 2u, true, false, &staticPartitioning); + auto partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 2u, true, &staticPartitioning); EXPECT_TRUE(staticPartitioning); EXPECT_EQ(2u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Z, walker.getPartitionType()); debugManager.flags.WalkerPartitionPreferHighestDimension.set(0); - partitionCount = computePartitionCountAndSetPartitionType(&walker, 2u, true, false, &staticPartitioning); + partitionCount = computePartitionCountAndSetPartitionType(&walker, NEO::RequiredPartitionDim::None, 2u, true, &staticPartitioning); EXPECT_TRUE(staticPartitioning); EXPECT_EQ(2u, partitionCount); EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Z, walker.getPartitionType()); diff --git a/shared/test/unit_test/fixtures/command_container_fixture.cpp b/shared/test/unit_test/fixtures/command_container_fixture.cpp index 8493980c24..24243a7349 100644 --- a/shared/test/unit_test/fixtures/command_container_fixture.cpp +++ b/shared/test/unit_test/fixtures/command_container_fixture.cpp @@ -37,29 +37,32 @@ EncodeDispatchKernelArgs CommandEncodeStatesFixture::createDefaultDispatchKernel bool requiresUncachedMocs) { EncodeDispatchKernelArgs args{ - 0, // eventAddress - 0, // postSyncImmValue - device, // device - dispatchInterface, // dispatchInterface - nullptr, // surfaceStateHeap - nullptr, // dynamicStateHeap - threadGroupDimensions, // threadGroupDimensions - nullptr, // outWalkerPtr - nullptr, // additionalCommands - PreemptionMode::Disabled, // preemptionMode - 1, // partitionCount - false, // isIndirect - false, // isPredicate - false, // isTimestampEvent - requiresUncachedMocs, // requiresUncachedMocs - false, // useGlobalAtomics - false, // isInternal - false, // isCooperative - false, // isHostScopeSignalEvent - false, // isKernelUsingSystemAllocation - false, // isKernelDispatchedFromImmediateCmdList - false, // isRcs - false // dcFlushEnable + 0, // eventAddress + 0, // postSyncImmValue + device, // device + dispatchInterface, // dispatchInterface + nullptr, // surfaceStateHeap + nullptr, // dynamicStateHeap + threadGroupDimensions, // threadGroupDimensions + nullptr, // outWalkerPtr + nullptr, // additionalCommands + PreemptionMode::Disabled, // preemptionMode + NEO::RequiredPartitionDim::None, // requiredPartitionDim + NEO::RequiredDispatchWalkOrder::None, // requiredDispatchWalkOrder + NEO::additionalKernelLaunchSizeParamNotSet, // additionalSizeParam + 1, // partitionCount + false, // isIndirect + false, // isPredicate + false, // isTimestampEvent + requiresUncachedMocs, // requiresUncachedMocs + false, // useGlobalAtomics + false, // isInternal + false, // isCooperative + false, // isHostScopeSignalEvent + false, // isKernelUsingSystemAllocation + false, // isKernelDispatchedFromImmediateCmdList + false, // isRcs + false // dcFlushEnable }; return args; diff --git a/shared/test/unit_test/xe_hpc_core/dispatch_walker_tests_xe_hpc_core.cpp b/shared/test/unit_test/xe_hpc_core/dispatch_walker_tests_xe_hpc_core.cpp index 57a44be377..966dc881ae 100644 --- a/shared/test/unit_test/xe_hpc_core/dispatch_walker_tests_xe_hpc_core.cpp +++ b/shared/test/unit_test/xe_hpc_core/dispatch_walker_tests_xe_hpc_core.cpp @@ -26,7 +26,7 @@ XE_HPC_CORETEST_F(WalkerDispatchTestsXeHpcCore, givenXeHpcWhenEncodeAdditionalWa auto &rootDeviceEnvironment = *mockExecutionEnvironment.rootDeviceEnvironments[0]; KernelDescriptor kernelDescriptor; - EncodeWalkerArgs walkerArgs{KernelExecutionType::defaultType, true, kernelDescriptor}; + EncodeWalkerArgs walkerArgs{KernelExecutionType::defaultType, true, kernelDescriptor, NEO::RequiredDispatchWalkOrder::None, 0}; { EncodeDispatchKernel::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, walkerArgs); EXPECT_FALSE(walkerCmd.getComputeDispatchAllWalkerEnable()); diff --git a/shared/test/unit_test/xe_hpc_core/pvc/dispatch_walker_tests_pvc.cpp b/shared/test/unit_test/xe_hpc_core/pvc/dispatch_walker_tests_pvc.cpp index 7d01232aa4..b81a223e40 100644 --- a/shared/test/unit_test/xe_hpc_core/pvc/dispatch_walker_tests_pvc.cpp +++ b/shared/test/unit_test/xe_hpc_core/pvc/dispatch_walker_tests_pvc.cpp @@ -44,7 +44,7 @@ PVCTEST_F(WalkerDispatchTestsPvc, givenPvcWhenEncodeAdditionalWalkerFieldsThenPo auto &hwInfo = *rootDeviceEnvironment.getMutableHardwareInfo(); KernelDescriptor kernelDescriptor; - EncodeWalkerArgs walkerArgs{KernelExecutionType::defaultType, true, kernelDescriptor}; + EncodeWalkerArgs walkerArgs{KernelExecutionType::defaultType, true, kernelDescriptor, NEO::RequiredDispatchWalkOrder::None, 0}; for (auto &testInput : testInputs) { for (auto &deviceId : pvcXlDeviceIds) { hwInfo.platform.usDeviceID = deviceId; @@ -70,7 +70,7 @@ PVCTEST_F(WalkerDispatchTestsPvc, givenPvcSupportsSystemMemoryFenceWhenNoSystemF hwInfo.platform.usRevId = 0x3; KernelDescriptor kernelDescriptor; - EncodeWalkerArgs walkerArgs{KernelExecutionType::defaultType, false, kernelDescriptor}; + EncodeWalkerArgs walkerArgs{KernelExecutionType::defaultType, false, kernelDescriptor, NEO::RequiredDispatchWalkOrder::None, 0}; for (auto &deviceId : pvcXlDeviceIds) { hwInfo.platform.usDeviceID = deviceId; diff --git a/shared/test/unit_test/xe_hpg_core/dg2/test_encode_dg2.cpp b/shared/test/unit_test/xe_hpg_core/dg2/test_encode_dg2.cpp index 194c645de9..db6b509c3a 100644 --- a/shared/test/unit_test/xe_hpg_core/dg2/test_encode_dg2.cpp +++ b/shared/test/unit_test/xe_hpg_core/dg2/test_encode_dg2.cpp @@ -78,7 +78,7 @@ DG2TEST_F(CommandEncodeDG2Test, whenProgramComputeWalkerThenApplyL3WAForDg2G10A0 {dg2G12DeviceIds[0], revIdA0}}; KernelDescriptor kernelDescriptor; - EncodeWalkerArgs walkerArgs{KernelExecutionType::defaultType, true, kernelDescriptor}; + EncodeWalkerArgs walkerArgs{KernelExecutionType::defaultType, true, kernelDescriptor, NEO::RequiredDispatchWalkOrder::None, 0}; for (const auto &[deviceID, revisionID] : dg2Configs) { hwInfo.platform.usRevId = revisionID;