feature: add field to reserve extra payload heap space

Related-To: NEO-10066

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz
2024-04-24 10:23:29 +00:00
committed by Compute-Runtime-Automation
parent 44dfa5187a
commit 149523b73c
10 changed files with 62 additions and 2 deletions

View File

@@ -1594,3 +1594,24 @@ HWTEST2_F(CommandEncodeStatesTest, givenEncodeDispatchKernelWhenCpuWalkerPointer
EXPECT_EQ(0, memcmp(cmdWalkerGfxMemory, cpuWalkerPointer, sizeof(DefaultWalkerType)));
}
HWTEST2_F(CommandEncodeStatesTest, givenEncodeDispatchKernelWhenRequestingExtraPayloadSpaceThenConsumeExtraIndirectHeapSpace, IsAtLeastXeHpCore) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
uint32_t dims[] = {1, 1, 1};
std::unique_ptr<MockDispatchKernelEncoder> dispatchInterface(new MockDispatchKernelEncoder());
dispatchInterface->kernelDescriptor.kernelAttributes.flags.passInlineData = false;
dispatchInterface->getCrossThreadDataSizeResult = 64;
bool requiresUncachedMocs = false;
EncodeDispatchKernelArgs dispatchArgs = createDefaultDispatchKernelArgs(pDevice, dispatchInterface.get(), dims, requiresUncachedMocs);
dispatchArgs.reserveExtraPayloadSpace = 1024;
EncodeDispatchKernel<FamilyType>::template encode<DefaultWalkerType>(*cmdContainer.get(), dispatchArgs);
auto heap = cmdContainer->getIndirectHeap(HeapType::indirectObject);
size_t expectedConsumedSize = 64 + 1024;
expectedConsumedSize = alignUp(expectedConsumedSize, pDevice->getGfxCoreHelper().getIOHAlignment());
EXPECT_EQ(expectedConsumedSize, heap->getUsed());
}

View File

@@ -56,6 +56,7 @@ EncodeDispatchKernelArgs CommandEncodeStatesFixture::createDefaultDispatchKernel
NEO::RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder
NEO::additionalKernelLaunchSizeParamNotSet, // additionalSizeParam
1, // partitionCount
0, // reserveExtraPayloadSpace
false, // isIndirect
false, // isPredicate
false, // isTimestampEvent