[20/n] Internal 4GB allocator.

- Switch to internal heap for kernel ISA allocations.
- remove IH from various functions
- remove IHState from CSR , IH is never dirty
- ISA is no longer copied on enqueue calls.

Change-Id: I0099cf2a9ebab6192ea03a74dd35f7da963fd5a5
This commit is contained in:
Mrozek, Michal
2018-03-27 12:55:20 +02:00
committed by sys_ocldev
parent 9f07de306c
commit 9bdf01468e
42 changed files with 124 additions and 318 deletions

View File

@@ -98,13 +98,11 @@ HWTEST_F(EnqueueFillImageTest, addsCommands) {
HWTEST_F(EnqueueFillImageTest, addsIndirectData) {
auto dshBefore = pDSH->getUsed();
auto iohBefore = pIOH->getUsed();
auto ihBefore = pIH->getUsed();
auto sshBefore = pSSH->getUsed();
enqueueFillImage<FamilyType>();
EXPECT_NE(dshBefore, pDSH->getUsed());
EXPECT_NE(iohBefore, pIOH->getUsed());
EXPECT_NE(ihBefore, pIH->getUsed());
EXPECT_NE(sshBefore, pSSH->getUsed());
}
@@ -133,6 +131,7 @@ HWTEST_F(EnqueueFillImageTest, stateBaseAddress) {
typedef typename FamilyType::STATE_BASE_ADDRESS STATE_BASE_ADDRESS;
enqueueFillImage<FamilyType>();
auto internalHeapBase = this->pDevice->getCommandStreamReceiver().getMemoryManager()->getInternalHeapBaseAddress();
// All state should be programmed before walker
auto *cmd = getCommand<STATE_BASE_ADDRESS>(itorPipelineSelect, itorWalker);
@@ -149,7 +148,7 @@ HWTEST_F(EnqueueFillImageTest, stateBaseAddress) {
EXPECT_EQ(0u, cmd->getGeneralStateBaseAddress());
EXPECT_EQ((uintptr_t)pSSH->getCpuBase(), cmd->getSurfaceStateBaseAddress());
EXPECT_EQ((uintptr_t)pIOH->getCpuBase(), cmd->getIndirectObjectBaseAddress());
EXPECT_EQ((uintptr_t)pIH->getCpuBase(), cmd->getInstructionBaseAddress());
EXPECT_EQ(internalHeapBase, cmd->getInstructionBaseAddress());
// Verify all sizes are getting programmed
EXPECT_TRUE(cmd->getDynamicStateBufferSizeModifyEnable());
@@ -160,7 +159,7 @@ HWTEST_F(EnqueueFillImageTest, stateBaseAddress) {
EXPECT_EQ(pDSH->getMaxAvailableSpace(), cmd->getDynamicStateBufferSize() * MemoryConstants::pageSize);
EXPECT_NE(0u, cmd->getGeneralStateBufferSize());
EXPECT_EQ(pIOH->getMaxAvailableSpace(), cmd->getIndirectObjectBufferSize() * MemoryConstants::pageSize);
EXPECT_EQ(pIH->getMaxAvailableSpace(), cmd->getInstructionBufferSize() * MemoryConstants::pageSize);
EXPECT_EQ(MemoryConstants::sizeOf4GBinPageEntities, cmd->getInstructionBufferSize());
// Generically validate this command
FamilyType::PARSE::template validateCommand<STATE_BASE_ADDRESS *>(cmdList.begin(), itorStateBaseAddress);