feature: adding flag to block dispatch implicit scaling commands

- this feature is part of making compute walker command view
- compute walker is programed for implicit scaling but not dispatched
- together with new flag, comes the refactor to reduce number of arguments

Related-To: NEO-11972

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz
2024-07-29 13:37:30 +00:00
committed by Compute-Runtime-Automation
parent 2b71ffa7ce
commit b33fe6ccf1
16 changed files with 371 additions and 221 deletions

View File

@@ -412,18 +412,23 @@ void EncodeDispatchKernel<Family>::encode(CommandContainer &container, EncodeDis
if (args.partitionCount > 1 && !args.isInternal) {
const uint64_t workPartitionAllocationGpuVa = args.device->getDefaultEngine().commandStreamReceiver->getWorkPartitionAllocationGpuAddress();
ImplicitScalingDispatchCommandArgs implicitScalingArgs{
workPartitionAllocationGpuVa, // workPartitionAllocationGpuVa
&hwInfo, // hwInfo
&args.outWalkerPtr, // outWalkerPtr
args.requiredPartitionDim, // requiredPartitionDim
args.partitionCount, // partitionCount
!(container.getFlushTaskUsedForImmediate() || container.isUsingPrimaryBuffer()), // useSecondaryBatchBuffer
!args.isKernelDispatchedFromImmediateCmdList, // apiSelfCleanup
args.dcFlushEnable, // dcFlush
gfxCoreHelper.singleTileExecImplicitScalingRequired(args.isCooperative), // forceExecutionOnSingleTile
args.makeCommandView}; // blockDispatchToCommandBuffer
ImplicitScalingDispatch<Family>::dispatchCommands(*listCmdBufferStream,
walkerCmd,
&args.outWalkerPtr,
args.device->getDeviceBitfield(),
args.requiredPartitionDim,
args.partitionCount,
!(container.getFlushTaskUsedForImmediate() || container.isUsingPrimaryBuffer()),
!args.isKernelDispatchedFromImmediateCmdList,
args.dcFlushEnable,
gfxCoreHelper.singleTileExecImplicitScalingRequired(args.isCooperative),
workPartitionAllocationGpuVa,
hwInfo);
implicitScalingArgs);
args.partitionCount = implicitScalingArgs.partitionCount;
} else {
args.partitionCount = 1;
if (!args.makeCommandView) {