Add wddm implementation for detection whether cpu copy is required.

Change-Id: Ia8dbd38b2e701bf56148785815599e15f4711b66
Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
This commit is contained in:
Michal Mrozek
2020-03-11 11:35:26 +01:00
committed by sys_ocldev
parent d5fd28b0ca
commit 490e9e666b
3 changed files with 95 additions and 0 deletions

View File

@ -1901,3 +1901,30 @@ TEST(WddmMemoryManager, givenMultipleRootDeviceWhenCreateMemoryManagerThenTakeMa
EXPECT_EQ(4u, wddmMemoryManager.getAlignedMallocRestrictions()->minAddress);
}
TEST(WddmMemoryManager, givenNoLocalMemoryOnAnyDeviceWhenIsCpuCopyRequiredIsCalledThenFalseIsReturned) {
DebugManagerStateRestore restorer;
DebugManager.flags.EnableLocalMemory.set(false);
VariableBackup<UltHwConfig> backup{&ultHwConfig};
ultHwConfig.useMockedGetDevicesFunc = false;
auto executionEnvironment = platform()->peekExecutionEnvironment();
size_t numRootDevicesReturned;
getDevices(numRootDevicesReturned, *executionEnvironment);
MockWddmMemoryManager wddmMemoryManager(*executionEnvironment);
EXPECT_FALSE(wddmMemoryManager.isCpuCopyRequired(&restorer));
}
TEST(WddmMemoryManager, givenLocalPointerPassedToIsCpuCopyRequiredThenFalseIsReturned) {
auto executionEnvironment = platform()->peekExecutionEnvironment();
size_t numRootDevicesReturned;
VariableBackup<UltHwConfig> backup{&ultHwConfig};
ultHwConfig.useMockedGetDevicesFunc = false;
getDevices(numRootDevicesReturned, *executionEnvironment);
MockWddmMemoryManager wddmMemoryManager(*executionEnvironment);
EXPECT_FALSE(wddmMemoryManager.isCpuCopyRequired(&numRootDevicesReturned));
//call multiple times to make sure that result is constant
EXPECT_FALSE(wddmMemoryManager.isCpuCopyRequired(&numRootDevicesReturned));
EXPECT_FALSE(wddmMemoryManager.isCpuCopyRequired(&numRootDevicesReturned));
EXPECT_FALSE(wddmMemoryManager.isCpuCopyRequired(&numRootDevicesReturned));
EXPECT_FALSE(wddmMemoryManager.isCpuCopyRequired(&numRootDevicesReturned));
}