@@ -147,9 +147,7 @@ GraphicsAllocation *MemoryManager::createPaddedAllocation(GraphicsAllocation *in
147147 return allocateGraphicsMemoryWithProperties ({inputGraphicsAllocation->getRootDeviceIndex (), sizeWithPadding, AllocationType::INTERNAL_HOST_MEMORY, systemMemoryBitfield});
148148}
149149
150- void *MemoryManager::createMultiGraphicsAllocationInSystemMemoryPool (std::vector<uint32_t > &rootDeviceIndices, AllocationProperties &properties, MultiGraphicsAllocation &multiGraphicsAllocation) {
151- void *ptr = nullptr ;
152-
150+ void *MemoryManager::createMultiGraphicsAllocationInSystemMemoryPool (std::vector<uint32_t > &rootDeviceIndices, AllocationProperties &properties, MultiGraphicsAllocation &multiGraphicsAllocation, void *ptr) {
153151 properties.flags .forceSystemMemory = true ;
154152 for (auto &rootDeviceIndex : rootDeviceIndices) {
155153 if (multiGraphicsAllocation.getGraphicsAllocation (rootDeviceIndex)) {
@@ -528,7 +526,8 @@ GraphicsAllocation *MemoryManager::allocateGraphicsMemory(const AllocationData &
528526 if (allocationData.flags .shareable || allocationData.flags .isUSMDeviceMemory ) {
529527 return allocateMemoryByKMD (allocationData);
530528 }
531- if (useNonSvmHostPtrAlloc (allocationData.type , allocationData.rootDeviceIndex ) || isNonSvmBuffer (allocationData.hostPtr , allocationData.type , allocationData.rootDeviceIndex )) {
529+ if (((false == allocationData.flags .isUSMHostAllocation ) || (nullptr == allocationData.hostPtr )) &&
530+ (useNonSvmHostPtrAlloc (allocationData.type , allocationData.rootDeviceIndex ) || isNonSvmBuffer (allocationData.hostPtr , allocationData.type , allocationData.rootDeviceIndex ))) {
532531 auto allocation = allocateGraphicsMemoryForNonSvmHostPtr (allocationData);
533532 if (allocation) {
534533 allocation->setFlushL3Required (allocationData.flags .flushL3 );
0 commit comments