From 582fc9cf10eaa333b117375157ae00a8763b909d Mon Sep 17 00:00:00 2001 From: Mateusz Hoppe Date: Thu, 25 Apr 2019 13:13:28 +0200 Subject: [PATCH] Return true from 48BitAddressing when GTT size > max64BitAppAddress Related-To: NEO-3133 Change-Id: I18711642a5f092be423fb921bc4940ef9b6312d4 Signed-off-by: Mateusz Hoppe --- runtime/os_interface/linux/drm_neo.cpp | 2 +- unit_tests/os_interface/linux/drm_tests.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/runtime/os_interface/linux/drm_neo.cpp b/runtime/os_interface/linux/drm_neo.cpp index 5bbe3a2663..bbbed56721 100644 --- a/runtime/os_interface/linux/drm_neo.cpp +++ b/runtime/os_interface/linux/drm_neo.cpp @@ -132,7 +132,7 @@ bool Drm::is48BitAddressRangeSupported() { auto ret = ioctl(DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM, &contextParam); if (ret == 0) { - return contextParam.value == MemoryConstants::max64BitAppAddress + 1; + return contextParam.value > MemoryConstants::max64BitAppAddress; } return true; } diff --git a/unit_tests/os_interface/linux/drm_tests.cpp b/unit_tests/os_interface/linux/drm_tests.cpp index 02df7679aa..d176dea42b 100644 --- a/unit_tests/os_interface/linux/drm_tests.cpp +++ b/unit_tests/os_interface/linux/drm_tests.cpp @@ -127,6 +127,10 @@ TEST(DrmTest, GivenDrmWhenAskedFor48BitAddressCorrectValueReturned) { drm->StoredRetVal = 0; drm->storedGTTSize = 1ull << 31; EXPECT_FALSE(drm->is48BitAddressRangeSupported()); + drm->storedGTTSize = MemoryConstants::max64BitAppAddress + 1; + EXPECT_TRUE(drm->is48BitAddressRangeSupported()); + drm->storedGTTSize = MemoryConstants::max64BitAppAddress; + EXPECT_FALSE(drm->is48BitAddressRangeSupported()); } TEST(DrmTest, GivenDrmWhenAskedForPreemptionCorrectValueReturned) {