refactor: improve Walker args handling
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
parent
1bbc7a57ab
commit
9ce3713ace
|
@ -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<uint32_t>::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;
|
||||
|
|
|
@ -200,6 +200,9 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::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
|
||||
|
|
|
@ -286,6 +286,9 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::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
|
||||
|
|
|
@ -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<FamilyType>::template encode<DefaultWalkerType>(commandContainer, dispatchKernelArgs);
|
||||
|
||||
|
|
|
@ -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<FamilyType>::template encode<DefaultWalkerType>(commandContainer, dispatchKernelArgs), std::exception);
|
||||
}
|
||||
|
|
|
@ -102,7 +102,7 @@ inline void HardwareInterface<GfxFamily>::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<GfxFamily>::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, encodeWalkerArgs);
|
||||
*walkerCmdBuf = walkerCmd;
|
||||
}
|
||||
|
|
|
@ -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<GfxFamily>::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<GfxFamily>::template encodeAdditionalWalkerFields<WalkerType>(rootDeviceEnvironment, walkerCmd, encodeWalkerArgs);
|
||||
|
||||
auto devices = queueCsr.getOsContext().getDeviceBitfield();
|
||||
|
@ -159,10 +160,10 @@ inline void HardwareInterface<GfxFamily>::programWalker(
|
|||
walkerCmd,
|
||||
nullptr,
|
||||
devices,
|
||||
kernel.usesImages() ? RequiredPartitionDim::X : RequiredPartitionDim::None,
|
||||
partitionCount,
|
||||
false,
|
||||
false,
|
||||
kernel.usesImages(),
|
||||
queueCsr.getDcFlushSupport(),
|
||||
kernel.isSingleSubdevicePreferred(),
|
||||
workPartitionAllocationGpuVa,
|
||||
|
|
|
@ -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<FamilyType>::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, walkerArgs);
|
||||
|
|
|
@ -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<void *> *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 <typename GfxFamily>
|
||||
|
|
|
@ -393,7 +393,9 @@ void EncodeDispatchKernel<Family>::encode(CommandContainer &container, EncodeDis
|
|||
EncodeWalkerArgs walkerArgs{
|
||||
args.isCooperative ? KernelExecutionType::concurrent : KernelExecutionType::defaultType,
|
||||
args.isHostScopeSignalEvent && args.isKernelUsingSystemAllocation,
|
||||
kernelDescriptor};
|
||||
kernelDescriptor,
|
||||
args.requiredDispatchWalkOrder,
|
||||
args.additionalSizeParam};
|
||||
EncodeDispatchKernel<Family>::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, walkerArgs);
|
||||
|
||||
PreemptionHelper::applyPreemptionWaCmdsBegin<Family>(listCmdBufferStream, *args.device);
|
||||
|
@ -407,10 +409,10 @@ void EncodeDispatchKernel<Family>::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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -93,10 +93,10 @@ void ImplicitScalingDispatch<GfxFamily>::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<GfxFamily>::dispatchCommands(LinearStream &commandS
|
|||
const bool preferStaticPartitioning = workPartitionAllocationGpuVa != 0u;
|
||||
|
||||
bool staticPartitioning = false;
|
||||
partitionCount = WalkerPartition::computePartitionCountAndSetPartitionType<GfxFamily, WalkerType>(&walkerCmd, tileCount, preferStaticPartitioning, usesImages, &staticPartitioning);
|
||||
partitionCount = WalkerPartition::computePartitionCountAndSetPartitionType<GfxFamily, WalkerType>(&walkerCmd, requiredPartitionDim, tileCount, preferStaticPartitioning, &staticPartitioning);
|
||||
|
||||
WalkerPartition::WalkerPartitionArgs args = prepareWalkerPartitionArgs<GfxFamily>(workPartitionAllocationGpuVa,
|
||||
tileCount,
|
||||
|
|
|
@ -185,9 +185,9 @@ uint32_t computePartitionCountAndPartitionType(uint32_t preferredMinimalPartitio
|
|||
|
||||
template <typename GfxFamily, typename WalkerType>
|
||||
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<size_t> groupStart = {walker->getThreadGroupIdStartingX(), walker->getThreadGroupIdStartingY(), walker->getThreadGroupIdStartingZ()};
|
||||
const Vec3<size_t> groupCount = {walker->getThreadGroupIdXDimension(), walker->getThreadGroupIdYDimension(), walker->getThreadGroupIdZDimension()};
|
||||
std::optional<PARTITION_TYPE> 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<GfxFamily, WalkerType>(preferredMinimalPartitionCount,
|
||||
preferStaticPartitioning,
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <limits>
|
||||
|
||||
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
|
||||
|
|
|
@ -30,7 +30,7 @@ bool ImplicitScalingDispatch<Family>::platformSupportsImplicitScaling(const Root
|
|||
}
|
||||
|
||||
template struct ImplicitScalingDispatch<Family>;
|
||||
template void ImplicitScalingDispatch<Family>::dispatchCommands<Family::DefaultWalkerType>(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<Family>::dispatchCommands<Family::DefaultWalkerType>(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<Family>::getSize<Family::DefaultWalkerType>(bool apiSelfCleanup, bool preferStaticPartitioning, const DeviceBitfield &devices, const Vec3<size_t> &groupStart, const Vec3<size_t> &groupCount);
|
||||
|
||||
} // namespace NEO
|
||||
|
|
|
@ -17,7 +17,7 @@ template <>
|
|||
bool ImplicitScalingDispatch<Family>::pipeControlStallRequired = true;
|
||||
|
||||
template struct ImplicitScalingDispatch<Family>;
|
||||
template void ImplicitScalingDispatch<Family>::dispatchCommands<Family::DefaultWalkerType>(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<Family>::dispatchCommands<Family::DefaultWalkerType>(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<Family>::getSize<Family::DefaultWalkerType>(bool apiSelfCleanup, bool preferStaticPartitioning, const DeviceBitfield &devices, const Vec3<size_t> &groupStart, const Vec3<size_t> &groupCount);
|
||||
|
||||
} // namespace NEO
|
||||
|
|
|
@ -36,7 +36,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, ImplicitScalingTests, GivenGetSizeWhenDispatchingCm
|
|||
expectedSize = ImplicitScalingDispatch<FamilyType>::template getSize<DefaultWalkerType>(false, false, twoTile, Vec3<size_t>(0, 0, 0), Vec3<size_t>(32, 1, 1));
|
||||
|
||||
uint32_t partitionCount = 0;
|
||||
ImplicitScalingDispatch<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::template getSize<DefaultWalkerType>(false, false, twoTile, Vec3<size_t>(0, 0, 0), Vec3<size_t>(1, 1, 1));
|
||||
|
||||
uint32_t partitionCount = 0;
|
||||
ImplicitScalingDispatch<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, false, false, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::template getSize<DefaultWalkerType>(false, false, twoTile, Vec3<size_t>(0, 0, 0), Vec3<size_t>(1, 1, 1));
|
||||
|
||||
uint32_t partitionCount = 0;
|
||||
ImplicitScalingDispatch<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::template getSize<DefaultWalkerType>(false, true, twoTile, Vec3<size_t>(0, 0, 0), Vec3<size_t>(32, 1, 1));
|
||||
|
||||
uint32_t partitionCount = 0;
|
||||
ImplicitScalingDispatch<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::template getSize<DefaultWalkerType>(false, true, twoTile, Vec3<size_t>(0, 0, 0), Vec3<size_t>(32, 1, 1));
|
||||
|
||||
uint32_t partitionCount = 0;
|
||||
ImplicitScalingDispatch<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::template getSize<DefaultWalkerType>(false, true, twoTile, Vec3<size_t>(0, 0, 0), Vec3<size_t>(1, 1, 1));
|
||||
|
||||
uint32_t partitionCount = 0;
|
||||
ImplicitScalingDispatch<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::template getSize<DefaultWalkerType>(false, true, twoTile, Vec3<size_t>(0, 0, 0), Vec3<size_t>(1, 1, 1));
|
||||
|
||||
uint32_t partitionCount = 0;
|
||||
ImplicitScalingDispatch<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::template getSize<DefaultWalkerType>(false, true, twoTile, Vec3<size_t>(0, 0, 0), Vec3<size_t>(1, 1, 1));
|
||||
|
||||
uint32_t partitionCount = 0;
|
||||
ImplicitScalingDispatch<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::template getSize<DefaultWalkerType>(false, false, twoTile, Vec3<size_t>(0, 0, 0), Vec3<size_t>(1, 1, 1));
|
||||
|
||||
uint32_t partitionCount = 0;
|
||||
ImplicitScalingDispatch<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, true, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, true, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, true, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, true, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, true, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, true, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::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<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, partitionCount, true, false, false, dcFlushFlag,
|
||||
ImplicitScalingDispatch<FamilyType>::dispatchCommands(commandStream, walker, nullptr, twoTile, NEO::RequiredPartitionDim::None, partitionCount, true, false, dcFlushFlag,
|
||||
forceExecutionOnSingleTileFlag, workPartitionAllocationAddress, *defaultHwInfo);
|
||||
totalBytesProgrammed = commandStream.getUsed();
|
||||
EXPECT_EQ(expectedSize, totalBytesProgrammed);
|
||||
|
|
|
@ -1288,7 +1288,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenStaticPartitionIsPreferr
|
|||
checkForProperCmdBufferAddressOffset = false;
|
||||
bool preferredStaticPartitioning = true;
|
||||
bool staticPartitioning = false;
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&walker, 4u, preferredStaticPartitioning, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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());
|
||||
|
|
|
@ -449,7 +449,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, WalkerPartitionTests, givenWalkerWhenComputePartiti
|
|||
walker.setThreadGroupIdXDimension(16u);
|
||||
|
||||
bool staticPartitioning = false;
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&walker, 2u, false, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>::PARTITION_TYPE::PARTITION_TYPE_DISABLED);
|
||||
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>::PARTITION_TYPE::PARTITION_TYPE_DISABLED);
|
||||
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<int32_t>(COMPUTE_WALKER<FamilyType>::PARTITION_TYPE::PARTITION_TYPE_X));
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<int32_t>(COMPUTE_WALKER<FamilyType>::PARTITION_TYPE::PARTITION_TYPE_Y));
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<int32_t>(COMPUTE_WALKER<FamilyType>::PARTITION_TYPE::PARTITION_TYPE_Z));
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning));
|
||||
EXPECT_ANY_THROW(computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 2u, false, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 2u, false, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 2u, false, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, false, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&walker, NEO::RequiredPartitionDim::None, 4u, false, &staticPartitioning);
|
||||
EXPECT_EQ(FamilyType::COMPUTE_WALKER::PARTITION_TYPE::PARTITION_TYPE_Y, walker.getPartitionType());
|
||||
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&walker, 4u, false, true, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, true, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, true, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, true, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, true, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 4u, true, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<int32_t>(COMPUTE_WALKER<FamilyType>::PARTITION_TYPE::PARTITION_TYPE_Z));
|
||||
staticPartitioning = false;
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&walker, 4u, true, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 2u, true, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 2u, true, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 2u, true, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 2u, true, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 2u, true, false, &staticPartitioning);
|
||||
auto partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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<FamilyType>(&walker, 2u, true, false, &staticPartitioning);
|
||||
partitionCount = computePartitionCountAndSetPartitionType<FamilyType>(&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());
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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<FamilyType>::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, walkerArgs);
|
||||
EXPECT_FALSE(walkerCmd.getComputeDispatchAllWalkerEnable());
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue