Create MAP_ALLOCATION as non-svm allocation when host ptr tracking is disabled.

Change-Id: I57c64706e798efa4b23e34b582be5a490d592e87
Signed-off-by: Pawel Wilma <pawel.wilma@intel.com>
This commit is contained in:
Pawel Wilma
2019-12-18 17:16:49 +01:00
committed by sys_ocldev
parent 8df7f4e519
commit 2ad089a40b
4 changed files with 29 additions and 2 deletions

View File

@@ -336,8 +336,7 @@ GraphicsAllocation *MemoryManager::allocateGraphicsMemory(const AllocationData &
if (allocationData.flags.shareable) {
return allocateShareableMemory(allocationData);
}
if (allocationData.type == GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR &&
(!peekExecutionEnvironment().isFullRangeSvm() || !isHostPointerTrackingEnabled())) {
if (useNonSvmHostPtrAlloc(allocationData.type)) {
auto allocation = allocateGraphicsMemoryForNonSvmHostPtr(allocationData);
if (allocation) {
allocation->setFlushL3Required(allocationData.flags.flushL3);
@@ -483,6 +482,7 @@ void *MemoryManager::getReservedMemory(size_t size, size_t alignment) {
}
bool MemoryManager::isHostPointerTrackingEnabled() {
if (DebugManager.flags.EnableHostPtrTracking.get() != -1) {
return !!DebugManager.flags.EnableHostPtrTracking.get();
}

View File

@@ -193,6 +193,10 @@ class MemoryManager {
return allocationType == GraphicsAllocation::AllocationType::KERNEL_ISA ||
allocationType == GraphicsAllocation::AllocationType::INTERNAL_HEAP;
}
bool useNonSvmHostPtrAlloc(GraphicsAllocation::AllocationType allocationType) {
return ((allocationType == GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR || allocationType == GraphicsAllocation::AllocationType::MAP_ALLOCATION) &&
(!peekExecutionEnvironment().isFullRangeSvm() || !isHostPointerTrackingEnabled()));
}
StorageInfo createStorageInfoFromProperties(const AllocationProperties &properties);
virtual GraphicsAllocation *createGraphicsAllocation(OsHandleStorage &handleStorage, const AllocationData &allocationData) = 0;