L3 programming refactor 3/n

- Add L3UltHelper to be able to tell if L3 config is programmable
- Run L3 config kernel tests according to its output

Change-Id: I55b76e2da325d28f62b0bde20250b68f02154ae2
This commit is contained in:
Maciej Dziuban
2018-05-08 13:51:31 +02:00
committed by sys_ocldev
parent 2b9cf69d84
commit 541735d932
18 changed files with 106 additions and 256 deletions

View File

@@ -167,24 +167,8 @@ HWTEST_F(EnqueueCopyBufferTest, addsIndirectData) {
}
HWTEST_F(EnqueueCopyBufferTest, LoadRegisterImmediateL3CNTLREG) {
typedef typename FamilyType::MI_LOAD_REGISTER_IMM MI_LOAD_REGISTER_IMM;
enqueueCopyBuffer<FamilyType>();
// All state should be programmed before walker
auto itorCmd = findMmio<FamilyType>(cmdList.begin(), itorWalker, L3CNTLRegisterOffset<FamilyType>::registerOffset);
ASSERT_NE(itorWalker, itorCmd);
auto *cmd = genCmdCast<MI_LOAD_REGISTER_IMM *>(*itorCmd);
ASSERT_NE(nullptr, cmd);
auto RegisterOffset = L3CNTLRegisterOffset<FamilyType>::registerOffset;
EXPECT_EQ(RegisterOffset, cmd->getRegisterOffset());
auto l3Cntlreg = cmd->getDataDword();
auto numURBWays = (l3Cntlreg >> 1) & 0x7f;
auto L3ClientPool = (l3Cntlreg >> 25) & 0x7f;
EXPECT_NE(0u, numURBWays);
EXPECT_NE(0u, L3ClientPool);
validateL3Programming<FamilyType>(cmdList, itorWalker);
}
HWTEST_F(EnqueueCopyBufferTest, WhenEnqueueIsDoneThenStateBaseAddressIsProperlyProgrammed) {