Add entry points for memory placement overrides.

Change-Id: Ie43781dc880b4937cf86441c9c46638e17282111
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
Bartosz Dunajski
2020-05-12 15:00:53 +02:00
parent 9ac153b2ef
commit 997dcd607f
5 changed files with 17 additions and 1 deletions

View File

@ -353,6 +353,7 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo
GraphicsAllocation *MemoryManager::allocateGraphicsMemoryInPreferredPool(const AllocationProperties &properties, const void *hostPtr) {
AllocationData allocationData;
getAllocationData(allocationData, properties, hostPtr, createStorageInfoFromProperties(properties));
applyMemoryPlacementWorkarounds(allocationData, properties);
overrideAllocationData(allocationData, properties);
AllocationStatus status = AllocationStatus::Error;
@ -642,4 +643,10 @@ void MemoryManager::overrideAllocationData(AllocationData &allocationData, const
}
}
} // namespace NEO
void MemoryManager::applyMemoryPlacementWorkarounds(AllocationData &allocationData, const AllocationProperties &properties) {
auto hwInfo = executionEnvironment.rootDeviceEnvironments[properties.rootDeviceIndex]->getHardwareInfo();
if (HwHelper::get(hwInfo->platform.eRenderCoreFamily).isSystemMemoryRequired(*hwInfo, properties.allocationType)) {
allocationData.flags.useSystemMemory = true;
}
}
} // namespace NEO