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

@@ -275,8 +275,8 @@ struct EnqueueKernelTypeTest : public HelloWorldFixture<HelloWorldFixtureFactory
public HardwareParse,
::testing::TestWithParam<InputType> {
typedef HelloWorldFixture<HelloWorldFixtureFactory> ParentClass;
using ParentClass::pCS;
using ParentClass::pCmdBuffer;
using ParentClass::pCS;
EnqueueKernelTypeTest() {
}
@@ -424,24 +424,8 @@ HWTEST_P(EnqueueWorkItemTests, addsIndirectData) {
}
HWTEST_P(EnqueueWorkItemTests, LoadRegisterImmediateL3CNTLREG) {
typedef typename FamilyType::PARSE PARSE;
typedef typename PARSE::MI_LOAD_REGISTER_IMM MI_LOAD_REGISTER_IMM;
enqueueKernel<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_P(EnqueueWorkItemTests, WhenEnqueueIsDoneThenStateBaseAddressIsProperlyProgrammed) {