mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-24 21:18:24 +08:00
Add state base address properties tracking for command lists
Related-To: NEO-5055 Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
2351b0f97d
commit
34b8f08fc6
@@ -956,7 +956,7 @@ HWTEST_F(CommandContainerTest, givenCmdContainerHasImmediateCsrWhenGettingHeapWi
|
||||
auto &ultCsr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
ultCsr.recursiveLockCounter = 0;
|
||||
|
||||
cmdContainer.ensureHeapSizePrepared(0, 0);
|
||||
cmdContainer.ensureHeapSizePrepared(0, 0, false);
|
||||
EXPECT_EQ(1u, ultCsr.recursiveLockCounter);
|
||||
|
||||
EXPECT_EQ(nullptr, cmdContainer.getIndirectHeap(HeapType::DYNAMIC_STATE));
|
||||
@@ -968,9 +968,15 @@ HWTEST_F(CommandContainerTest, givenCmdContainerHasImmediateCsrWhenGettingHeapWi
|
||||
EXPECT_NO_THROW(cmdContainer.getHeapSpaceAllowGrow(HeapType::SURFACE_STATE, 0));
|
||||
EXPECT_NO_THROW(cmdContainer.getHeapWithRequiredSizeAndAlignment(HeapType::SURFACE_STATE, 0, 0));
|
||||
|
||||
cmdContainer.ensureHeapSizePrepared(4 * MemoryConstants::kiloByte, 4 * MemoryConstants::kiloByte);
|
||||
cmdContainer.ensureHeapSizePrepared(0, 0, true);
|
||||
EXPECT_EQ(2u, ultCsr.recursiveLockCounter);
|
||||
|
||||
EXPECT_NE(nullptr, cmdContainer.getIndirectHeap(HeapType::DYNAMIC_STATE));
|
||||
EXPECT_NE(nullptr, cmdContainer.getIndirectHeap(HeapType::SURFACE_STATE));
|
||||
|
||||
cmdContainer.ensureHeapSizePrepared(4 * MemoryConstants::kiloByte, 4 * MemoryConstants::kiloByte, true);
|
||||
EXPECT_EQ(3u, ultCsr.recursiveLockCounter);
|
||||
|
||||
auto dshHeap = cmdContainer.getIndirectHeap(HeapType::DYNAMIC_STATE);
|
||||
EXPECT_NE(nullptr, dshHeap);
|
||||
auto sshHeap = cmdContainer.getIndirectHeap(HeapType::SURFACE_STATE);
|
||||
@@ -1001,6 +1007,32 @@ HWTEST_F(CommandContainerTest, givenCmdContainerHasImmediateCsrWhenGettingHeapWi
|
||||
EXPECT_THROW(cmdContainer.getHeapWithRequiredSizeAndAlignment(HeapType::SURFACE_STATE, 64, 64), std::exception);
|
||||
}
|
||||
|
||||
HWTEST_F(CommandContainerTest, givenCmdContainerUsedInRegularCmdListWhenGettingHeapWithEnsuringSpaceThenExpectCorrectHeap) {
|
||||
if (!pDevice->getDeviceInfo().imageSupport) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
||||
MyMockCommandContainer cmdContainer;
|
||||
|
||||
auto code = cmdContainer.initialize(pDevice, nullptr, true);
|
||||
EXPECT_EQ(CommandContainer::ErrorCode::SUCCESS, code);
|
||||
|
||||
cmdContainer.ensureHeapSizePrepared(0, 0, true);
|
||||
|
||||
auto dsh = cmdContainer.getIndirectHeap(HeapType::DYNAMIC_STATE);
|
||||
auto ssh = cmdContainer.getIndirectHeap(HeapType::SURFACE_STATE);
|
||||
|
||||
EXPECT_NE(nullptr, dsh);
|
||||
EXPECT_NE(nullptr, ssh);
|
||||
|
||||
dsh->getSpace(dsh->getAvailableSpace() - 64);
|
||||
|
||||
cmdContainer.ensureHeapSizePrepared(4 * MemoryConstants::kiloByte, 4 * MemoryConstants::kiloByte, false);
|
||||
|
||||
dsh = cmdContainer.getIndirectHeap(HeapType::DYNAMIC_STATE);
|
||||
EXPECT_EQ(64u, dsh->getAvailableSpace());
|
||||
}
|
||||
|
||||
struct MockHeapHelper : public HeapHelper {
|
||||
public:
|
||||
using HeapHelper::storageForReuse;
|
||||
|
||||
@@ -96,7 +96,6 @@ HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithUnc
|
||||
EncodeDispatchKernelArgs dispatchArgs = createDefaultDispatchKernelArgs(pDevice, dispatchInterface.get(), dims, requiresUncachedMocs);
|
||||
|
||||
EncodeDispatchKernel<FamilyType>::encode(*cmdContainer.get(), dispatchArgs, nullptr);
|
||||
EXPECT_FALSE(dispatchArgs.requiresUncachedMocs);
|
||||
|
||||
GenCmdList commands;
|
||||
CmdParse<FamilyType>::parseCommandBuffer(commands,
|
||||
@@ -124,7 +123,6 @@ HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithUnc
|
||||
EncodeDispatchKernelArgs dispatchArgs = createDefaultDispatchKernelArgs(pDevice, dispatchInterface.get(), dims, requiresUncachedMocs);
|
||||
|
||||
EncodeDispatchKernel<FamilyType>::encode(*cmdContainer.get(), dispatchArgs, nullptr);
|
||||
EXPECT_FALSE(dispatchArgs.requiresUncachedMocs);
|
||||
|
||||
GenCmdList commands;
|
||||
CmdParse<FamilyType>::parseCommandBuffer(commands,
|
||||
|
||||
Reference in New Issue
Block a user