fix: handle not aligned gtt size reported by i915

when i915 reports gtt size between 47 and 48 bits we consider
it as 48 bit VA space

Related-To: GSD-8215
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2024-03-28 08:46:55 +00:00
committed by Compute-Runtime-Automation
parent d6a14d4ed5
commit 420e1391b2
19 changed files with 150 additions and 73 deletions

View File

@@ -309,12 +309,45 @@ TEST(DrmTest, GivenDrmWhenAskedForGttSizeThenReturnCorrectValue) {
drm->storedRetValForGetGttSize = 0;
drm->storedGTTSize = 1ull << 31;
EXPECT_EQ(0, drm->Drm::queryGttSize(queryGttSize));
EXPECT_EQ(0, drm->Drm::queryGttSize(queryGttSize, true));
EXPECT_EQ(drm->storedGTTSize, queryGttSize);
queryGttSize = 0;
drm->storedRetValForGetGttSize = 0;
drm->storedGTTSize = 1ull << 47;
EXPECT_EQ(0, drm->Drm::queryGttSize(queryGttSize, true));
EXPECT_EQ(drm->storedGTTSize, queryGttSize);
queryGttSize = 0;
drm->storedRetValForGetGttSize = 0;
drm->storedGTTSize = 1ull << 47;
EXPECT_EQ(0, drm->Drm::queryGttSize(queryGttSize, false));
EXPECT_EQ(drm->storedGTTSize, queryGttSize);
queryGttSize = 0;
drm->storedRetValForGetGttSize = 0;
drm->storedGTTSize = (1ull << 48) - 1;
EXPECT_EQ(0, drm->Drm::queryGttSize(queryGttSize, true));
EXPECT_EQ(1ull << 48, queryGttSize);
queryGttSize = 0;
drm->storedRetValForGetGttSize = 0;
drm->storedGTTSize = (1ull << 48) - 1;
EXPECT_EQ(0, drm->Drm::queryGttSize(queryGttSize, false));
EXPECT_EQ(drm->storedGTTSize, queryGttSize);
queryGttSize = 0;
drm->storedRetValForGetGttSize = 0;
drm->storedGTTSize = (1ull << 47) + 1;
EXPECT_EQ(0, drm->Drm::queryGttSize(queryGttSize, true));
EXPECT_EQ(1ull << 48, queryGttSize);
queryGttSize = 0;
drm->storedRetValForGetGttSize = 0;
drm->storedGTTSize = (1ull << 47) + 1;
EXPECT_EQ(0, drm->Drm::queryGttSize(queryGttSize, false));
EXPECT_EQ(drm->storedGTTSize, queryGttSize);
queryGttSize = 0;
drm->storedRetValForGetGttSize = -1;
EXPECT_NE(0, drm->Drm::queryGttSize(queryGttSize));
EXPECT_NE(0, drm->Drm::queryGttSize(queryGttSize, true));
EXPECT_EQ(0u, queryGttSize);
}