Skip to content

Commit acfeffe

Browse files
feature: Append recorded commandlist into immediate (8/N)
Add primary dispatch capability for immediate command list Related-To: NEO-10356 Signed-off-by: Aravind Gopalakrishnan <[email protected]>
1 parent 5b429dd commit acfeffe

File tree

14 files changed

+317
-94
lines changed

14 files changed

+317
-94
lines changed

level_zero/core/source/cmdlist/cmdlist_hw.inl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::initialize(Device *device, NEO
242242
this->l1CachePolicyData.init(productHelper);
243243
this->cmdListHeapAddressModel = L0GfxCoreHelper::getHeapAddressModel(rootDeviceEnvironment);
244244
this->dummyBlitWa.rootDeviceEnvironment = &(neoDevice->getRootDeviceEnvironmentRef());
245-
this->dispatchCmdListBatchBufferAsPrimary = L0GfxCoreHelper::dispatchCmdListBatchBufferAsPrimary(rootDeviceEnvironment, !isImmediateType());
245+
this->dispatchCmdListBatchBufferAsPrimary = L0GfxCoreHelper::dispatchCmdListBatchBufferAsPrimary(rootDeviceEnvironment, !(isImmediateType() && this->internalUsage));
246246
this->useOnlyGlobalTimestamps = gfxCoreHelper.useOnlyGlobalTimestamps();
247247
this->maxFillPaternSizeForCopyEngine = productHelper.getMaxFillPaternSizeForCopyEngine();
248248
this->heaplessModeEnabled = compilerProductHelper.isHeaplessModeEnabled();

level_zero/core/source/cmdlist/cmdlist_hw_immediate.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ struct CommandListCoreFamilyImmediate : public CommandListCoreFamily<gfxCoreFami
193193
void handleHeapsAndResidencyForImmediateRegularTask(void *&sshCpuBaseAddress);
194194
void handleDebugSurfaceStateUpdate(NEO::IndirectHeap *ssh);
195195

196-
void checkAvailableSpace(uint32_t numEvents, bool hasRelaxedOrderingDependencies, size_t commandSize);
196+
void checkAvailableSpace(uint32_t numEvents, bool hasRelaxedOrderingDependencies, size_t commandSize, bool requestCommandBufferInLocalMem);
197197
void updateDispatchFlagsWithRequiredStreamState(NEO::DispatchFlags &dispatchFlags);
198198

199199
MOCKABLE_VIRTUAL ze_result_t flushImmediate(ze_result_t inputRet, bool performMigration, bool hasStallingCmds, bool hasRelaxedOrderingDependencies, bool kernelOperation, bool copyOffloadSubmission, ze_event_handle_t hSignalEvent, bool requireTaskCountUpdate);

level_zero/core/source/cmdlist/cmdlist_hw_immediate.inl

Lines changed: 44 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,26 @@ CommandListCoreFamilyImmediate<gfxCoreFamily>::CommandListCoreFamilyImmediate(ui
5151
}
5252

5353
template <GFXCORE_FAMILY gfxCoreFamily>
54-
void CommandListCoreFamilyImmediate<gfxCoreFamily>::checkAvailableSpace(uint32_t numEvents, bool hasRelaxedOrderingDependencies, size_t commandSize) {
54+
void CommandListCoreFamilyImmediate<gfxCoreFamily>::checkAvailableSpace(uint32_t numEvents, bool hasRelaxedOrderingDependencies, size_t commandSize, bool requestCommandBufferInLocalMem) {
5555
this->commandContainer.fillReusableAllocationLists();
5656

57-
/* Command container might has two command buffers. If it has, one is in local memory, because relaxed ordering requires that and one in system for copying it into ring buffer.
58-
If relaxed ordering is needed in given dispatch and current command stream is in system memory, swap of command streams is required to ensure local memory. Same in the opposite scenario. */
59-
if (hasRelaxedOrderingDependencies == NEO::MemoryPoolHelper::isSystemMemoryPool(this->commandContainer.getCommandStream()->getGraphicsAllocation()->getMemoryPool())) {
57+
// Command container might have two command buffers - one in local mem (mainly for relaxed ordering and any other specific purposes) and one in system mem for copying into ring buffer.
58+
// If relaxed ordering is needed in given dispatch or if we need to force Local mem usage, and current command stream is in system memory, swap of command streams is required to ensure local memory.
59+
// If relaxed ordering is not needed and command buffer is in local mem, then also we need to swap.
60+
bool swapStreams = false;
61+
if (hasRelaxedOrderingDependencies) {
62+
if (NEO::MemoryPoolHelper::isSystemMemoryPool(this->commandContainer.getCommandStream()->getGraphicsAllocation()->getMemoryPool())) {
63+
swapStreams = true;
64+
}
65+
} else {
66+
if (requestCommandBufferInLocalMem && NEO::MemoryPoolHelper::isSystemMemoryPool(this->commandContainer.getCommandStream()->getGraphicsAllocation()->getMemoryPool())) {
67+
swapStreams = true;
68+
} else if (!requestCommandBufferInLocalMem && !NEO::MemoryPoolHelper::isSystemMemoryPool(this->commandContainer.getCommandStream()->getGraphicsAllocation()->getMemoryPool())) {
69+
swapStreams = true;
70+
}
71+
}
72+
73+
if (swapStreams) {
6074
if (this->commandContainer.swapStreams()) {
6175
this->cmdListCurrentStartOffset = this->commandContainer.getCommandStream()->getUsed();
6276
}
@@ -514,7 +528,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendLaunchKernel(
514528
relaxedOrderingDispatch = isRelaxedOrderingDispatchAllowed(numWaitEvents, false);
515529
bool stallingCmdsForRelaxedOrdering = hasStallingCmdsForRelaxedOrdering(numWaitEvents, relaxedOrderingDispatch);
516530

517-
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize);
531+
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize, false);
518532
bool hostWait = waitForEventsFromHost();
519533
if (hostWait) {
520534
this->synchronizeEventList(numWaitEvents, phWaitEvents);
@@ -571,7 +585,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendLaunchKernelInd
571585
ze_event_handle_t hSignalEvent, uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents, bool relaxedOrderingDispatch) {
572586
relaxedOrderingDispatch = isRelaxedOrderingDispatchAllowed(numWaitEvents, false);
573587

574-
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize);
588+
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize, false);
575589

576590
auto ret = CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelIndirect(kernelHandle, pDispatchArgumentsBuffer,
577591
hSignalEvent, numWaitEvents, phWaitEvents, relaxedOrderingDispatch);
@@ -598,7 +612,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendBarrier(ze_even
598612
isStallingOperation = hasStallingCmdsForRelaxedOrdering(numWaitEvents, relaxedOrderingDispatch);
599613
}
600614

601-
checkAvailableSpace(numWaitEvents, false, commonImmediateCommandSize);
615+
checkAvailableSpace(numWaitEvents, false, commonImmediateCommandSize, false);
602616

603617
ret = CommandListCoreFamily<gfxCoreFamily>::appendBarrier(hSignalEvent, numWaitEvents, phWaitEvents, relaxedOrderingDispatch);
604618

@@ -623,7 +637,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendMemoryCopy(
623637
auto sizePerBlit = sizeof(typename GfxFamily::XY_COPY_BLT) + NEO::BlitCommandsHelper<GfxFamily>::estimatePostBlitCommandSize();
624638
estimatedSize += nBlits * sizePerBlit;
625639
}
626-
checkAvailableSpace(numWaitEvents, memoryCopyParams.relaxedOrderingDispatch, estimatedSize);
640+
checkAvailableSpace(numWaitEvents, memoryCopyParams.relaxedOrderingDispatch, estimatedSize, false);
627641

628642
bool hasStallindCmds = hasStallingCmdsForRelaxedOrdering(numWaitEvents, memoryCopyParams.relaxedOrderingDispatch);
629643

@@ -679,7 +693,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendMemoryCopyRegio
679693
auto sizePerBlit = sizeof(typename GfxFamily::XY_COPY_BLT) + NEO::BlitCommandsHelper<GfxFamily>::estimatePostBlitCommandSize();
680694
estimatedSize += xBlits * yBlits * zBlits * sizePerBlit;
681695
}
682-
checkAvailableSpace(numWaitEvents, memoryCopyParams.relaxedOrderingDispatch, estimatedSize);
696+
checkAvailableSpace(numWaitEvents, memoryCopyParams.relaxedOrderingDispatch, estimatedSize, false);
683697

684698
bool hasStallindCmds = hasStallingCmdsForRelaxedOrdering(numWaitEvents, memoryCopyParams.relaxedOrderingDispatch);
685699

@@ -722,7 +736,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendMemoryFill(void
722736
ze_event_handle_t *phWaitEvents, bool relaxedOrderingDispatch) {
723737
relaxedOrderingDispatch = isRelaxedOrderingDispatchAllowed(numWaitEvents, false);
724738

725-
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize);
739+
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize, false);
726740

727741
auto ret = CommandListCoreFamily<gfxCoreFamily>::appendMemoryFill(ptr, pattern, patternSize, size, hSignalEvent, numWaitEvents, phWaitEvents, relaxedOrderingDispatch);
728742

@@ -736,7 +750,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendSignalEvent(ze_
736750
relaxedOrderingDispatch = isRelaxedOrderingDispatchAllowed(0, false);
737751
bool hasStallingCmds = !Event::fromHandle(hSignalEvent)->isCounterBased() || hasStallingCmdsForRelaxedOrdering(0, relaxedOrderingDispatch);
738752

739-
checkAvailableSpace(0, false, commonImmediateCommandSize);
753+
checkAvailableSpace(0, false, commonImmediateCommandSize, false);
740754
ret = CommandListCoreFamily<gfxCoreFamily>::appendSignalEvent(hSignalEvent, relaxedOrderingDispatch);
741755
return flushImmediate(ret, true, hasStallingCmds, relaxedOrderingDispatch, false, false, hSignalEvent, false);
742756
}
@@ -745,7 +759,7 @@ template <GFXCORE_FAMILY gfxCoreFamily>
745759
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendEventReset(ze_event_handle_t hSignalEvent) {
746760
ze_result_t ret = ZE_RESULT_SUCCESS;
747761

748-
checkAvailableSpace(0, false, commonImmediateCommandSize);
762+
checkAvailableSpace(0, false, commonImmediateCommandSize, false);
749763
ret = CommandListCoreFamily<gfxCoreFamily>::appendEventReset(hSignalEvent);
750764
return flushImmediate(ret, true, true, false, false, false, hSignalEvent, false);
751765
}
@@ -755,7 +769,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendPageFaultCopy(N
755769
NEO::GraphicsAllocation *srcAllocation,
756770
size_t size, bool flushHost) {
757771

758-
checkAvailableSpace(0, false, commonImmediateCommandSize);
772+
checkAvailableSpace(0, false, commonImmediateCommandSize, false);
759773

760774
ze_result_t ret;
761775

@@ -792,7 +806,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWaitOnEvents(ui
792806
}
793807

794808
if (!skipFlush) {
795-
checkAvailableSpace(numEvents, false, commonImmediateCommandSize);
809+
checkAvailableSpace(numEvents, false, commonImmediateCommandSize, false);
796810
}
797811

798812
auto ret = CommandListCoreFamily<gfxCoreFamily>::appendWaitOnEvents(numEvents, phWaitEvents, outWaitCmds, relaxedOrderingAllowed, trackDependencies, apiRequest, skipAddingWaitEventsToResidency, false, copyOffloadOperation);
@@ -810,7 +824,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWriteGlobalTime
810824
uint64_t *dstptr, ze_event_handle_t hSignalEvent,
811825
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) {
812826

813-
checkAvailableSpace(numWaitEvents, false, commonImmediateCommandSize);
827+
checkAvailableSpace(numWaitEvents, false, commonImmediateCommandSize, false);
814828

815829
auto ret = CommandListCoreFamily<gfxCoreFamily>::appendWriteGlobalTimestamp(dstptr, hSignalEvent, numWaitEvents, phWaitEvents);
816830

@@ -854,7 +868,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendImageCopyRegion
854868
auto sizePerBlit = sizeof(typename GfxFamily::XY_BLOCK_COPY_BLT) + NEO::BlitCommandsHelper<GfxFamily>::estimatePostBlitCommandSize();
855869
estimatedSize += nBlits * sizePerBlit;
856870
}
857-
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, estimatedSize);
871+
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, estimatedSize, false);
858872

859873
auto ret = CommandListCoreFamily<gfxCoreFamily>::appendImageCopyRegion(hDstImage, hSrcImage, pDstRegion, pSrcRegion, hSignalEvent,
860874
numWaitEvents, phWaitEvents, relaxedOrderingDispatch);
@@ -872,7 +886,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendImageCopyFromMe
872886
ze_event_handle_t *phWaitEvents, bool relaxedOrderingDispatch) {
873887
relaxedOrderingDispatch = isRelaxedOrderingDispatchAllowed(numWaitEvents, false);
874888

875-
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize);
889+
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize, false);
876890

877891
auto ret = CommandListCoreFamily<gfxCoreFamily>::appendImageCopyFromMemory(hDstImage, srcPtr, pDstRegion, hSignalEvent,
878892
numWaitEvents, phWaitEvents, relaxedOrderingDispatch);
@@ -890,7 +904,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendImageCopyToMemo
890904
ze_event_handle_t *phWaitEvents, bool relaxedOrderingDispatch) {
891905
relaxedOrderingDispatch = isRelaxedOrderingDispatchAllowed(numWaitEvents, false);
892906

893-
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize);
907+
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize, false);
894908

895909
auto ret = CommandListCoreFamily<gfxCoreFamily>::appendImageCopyToMemory(dstPtr, hSrcImage, pSrcRegion, hSignalEvent,
896910
numWaitEvents, phWaitEvents, relaxedOrderingDispatch);
@@ -910,7 +924,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendImageCopyFromMe
910924
ze_event_handle_t *phWaitEvents, bool relaxedOrderingDispatch) {
911925
relaxedOrderingDispatch = isRelaxedOrderingDispatchAllowed(numWaitEvents, false);
912926

913-
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize);
927+
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize, false);
914928

915929
auto ret = CommandListCoreFamily<gfxCoreFamily>::appendImageCopyFromMemoryExt(hDstImage, srcPtr, pDstRegion, srcRowPitch, srcSlicePitch,
916930
hSignalEvent, numWaitEvents, phWaitEvents, relaxedOrderingDispatch);
@@ -930,7 +944,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendImageCopyToMemo
930944
ze_event_handle_t *phWaitEvents, bool relaxedOrderingDispatch) {
931945
relaxedOrderingDispatch = isRelaxedOrderingDispatchAllowed(numWaitEvents, false);
932946

933-
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize);
947+
checkAvailableSpace(numWaitEvents, relaxedOrderingDispatch, commonImmediateCommandSize, false);
934948

935949
auto ret = CommandListCoreFamily<gfxCoreFamily>::appendImageCopyToMemoryExt(dstPtr, hSrcImage, pSrcRegion, destRowPitch, destSlicePitch,
936950
hSignalEvent, numWaitEvents, phWaitEvents, relaxedOrderingDispatch);
@@ -945,22 +959,22 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendMemoryRangesBar
945959
ze_event_handle_t hSignalEvent,
946960
uint32_t numWaitEvents,
947961
ze_event_handle_t *phWaitEvents) {
948-
checkAvailableSpace(numWaitEvents, false, commonImmediateCommandSize);
962+
checkAvailableSpace(numWaitEvents, false, commonImmediateCommandSize, false);
949963

950964
auto ret = CommandListCoreFamily<gfxCoreFamily>::appendMemoryRangesBarrier(numRanges, pRangeSizes, pRanges, hSignalEvent, numWaitEvents, phWaitEvents);
951965
return flushImmediate(ret, true, true, false, false, false, hSignalEvent, false);
952966
}
953967

954968
template <GFXCORE_FAMILY gfxCoreFamily>
955969
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWaitOnMemory(void *desc, void *ptr, uint64_t data, ze_event_handle_t signalEventHandle, bool useQwordData) {
956-
checkAvailableSpace(0, false, commonImmediateCommandSize);
970+
checkAvailableSpace(0, false, commonImmediateCommandSize, false);
957971
auto ret = CommandListCoreFamily<gfxCoreFamily>::appendWaitOnMemory(desc, ptr, data, signalEventHandle, useQwordData);
958972
return flushImmediate(ret, true, false, false, false, false, signalEventHandle, false);
959973
}
960974

961975
template <GFXCORE_FAMILY gfxCoreFamily>
962976
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWriteToMemory(void *desc, void *ptr, uint64_t data) {
963-
checkAvailableSpace(0, false, commonImmediateCommandSize);
977+
checkAvailableSpace(0, false, commonImmediateCommandSize, false);
964978
auto ret = CommandListCoreFamily<gfxCoreFamily>::appendWriteToMemory(desc, ptr, data);
965979
return flushImmediate(ret, true, false, false, false, false, nullptr, false);
966980
}
@@ -1559,7 +1573,10 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendCommandLists(ui
15591573
ze_event_handle_t hSignalEvent, uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) {
15601574

15611575
auto ret = ZE_RESULT_SUCCESS;
1562-
checkAvailableSpace(numWaitEvents, false, commonImmediateCommandSize);
1576+
1577+
// For API functionality, we require command buffer alloc in local mem for.
1578+
// So ensure we force it when checking available space and when allocating any new comand buffer allocs
1579+
checkAvailableSpace(numWaitEvents, false, commonImmediateCommandSize, true);
15631580
if (numWaitEvents) {
15641581
ret = this->appendWaitOnEvents(numWaitEvents, phWaitEvents, nullptr, false, true, true, true, true, false);
15651582
}
@@ -1584,7 +1601,9 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendCommandLists(ui
15841601
}
15851602

15861603
bool hasStallingCmds = true;
1587-
return flushImmediate(ret, true, hasStallingCmds, relaxedOrderingDispatch, true, false, hSignalEvent, true);
1604+
ret = flushImmediate(ret, true, hasStallingCmds, relaxedOrderingDispatch, true, false, hSignalEvent, true);
1605+
1606+
return ret;
15881607
}
15891608

15901609
} // namespace L0

level_zero/core/source/cmdqueue/cmdqueue.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ ze_result_t CommandQueueImp::initialize(bool copyOnly, bool isInternal, bool imm
9898
auto &productHelper = rootDeviceEnvironment.getHelper<NEO::ProductHelper>();
9999
this->doubleSbaWa = productHelper.isAdditionalStateBaseAddressWARequired(hwInfo);
100100
this->cmdListHeapAddressModel = L0GfxCoreHelper::getHeapAddressModel(rootDeviceEnvironment);
101-
this->dispatchCmdListBatchBufferAsPrimary = L0GfxCoreHelper::dispatchCmdListBatchBufferAsPrimary(rootDeviceEnvironment, !immediateCmdListQueue);
101+
this->dispatchCmdListBatchBufferAsPrimary = L0GfxCoreHelper::dispatchCmdListBatchBufferAsPrimary(rootDeviceEnvironment, !(immediateCmdListQueue && internalUsage));
102102
auto &compilerProductHelper = rootDeviceEnvironment.getHelper<NEO::CompilerProductHelper>();
103103
this->heaplessModeEnabled = compilerProductHelper.isHeaplessModeEnabled();
104104
this->heaplessStateInitEnabled = compilerProductHelper.isHeaplessStateInitEnabled(this->heaplessModeEnabled);

level_zero/core/source/cmdqueue/cmdqueue_hw.inl

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1287,10 +1287,6 @@ void CommandQueueHw<gfxCoreFamily>::programOneCmdListBatchBufferStartSecondaryBa
12871287
}
12881288
}
12891289
}
1290-
1291-
if (ctx.containsParentImmediateStream) {
1292-
NEO::EncodeBatchBufferStartOrEnd<GfxFamily>::programBatchBufferEnd(commandContainer);
1293-
}
12941290
}
12951291

12961292
template <GFXCORE_FAMILY gfxCoreFamily>

level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_2.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1733,10 +1733,10 @@ HWTEST_F(PrimaryBatchBufferCmdListTest, givenForcedPrimaryBatchBufferWhenRegular
17331733
EXPECT_TRUE(commandList->dispatchCmdListBatchBufferAsPrimary);
17341734
EXPECT_TRUE(commandQueue->dispatchCmdListBatchBufferAsPrimary);
17351735

1736-
EXPECT_FALSE(commandListImmediate->dispatchCmdListBatchBufferAsPrimary);
1736+
EXPECT_TRUE(commandListImmediate->dispatchCmdListBatchBufferAsPrimary);
17371737
ASSERT_NE(nullptr, commandListImmediate->cmdQImmediate);
17381738
auto immediateCmdQueue = static_cast<L0::ult::CommandQueue *>(commandListImmediate->cmdQImmediate);
1739-
EXPECT_FALSE(immediateCmdQueue->dispatchCmdListBatchBufferAsPrimary);
1739+
EXPECT_TRUE(immediateCmdQueue->dispatchCmdListBatchBufferAsPrimary);
17401740
}
17411741

17421742
HWTEST_F(PrimaryBatchBufferCmdListTest, givenPrimaryBatchBufferWhenAppendingKernelAndClosingCommandListThenExpectAlignedSpaceForBatchBufferStart) {

0 commit comments

Comments
 (0)