mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
Simplify Memory Manager API [2/n]
- make AllocationData a protected structure - use AllocationProperties instead of AllocationFlags - refactor methods: allocateGraphicsMemory64kb, allocateGraphicsMemoryForSVM - call AllocateGraphicsMemoryInPreferredPool in AllocateGraphicsMemory where there is no host ptr Change-Id: Ie9ca47b1bccacd00f8486e7d1bf6fb3985e5cb12 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
7e397b0132
commit
a6be6533ea
@@ -192,9 +192,9 @@ Buffer *Buffer::create(Context *context,
|
||||
}
|
||||
|
||||
if (!memory) {
|
||||
AllocationFlags allocFlags = MemObjHelper::getAllocationFlags(properties.flags_intel, allocateMemory);
|
||||
AllocationProperties allocProperties = MemObjHelper::getAllocationProperties(properties.flags_intel, allocateMemory, size);
|
||||
DevicesBitfield devices = MemObjHelper::getDevicesBitfield(properties);
|
||||
memory = memoryManager->allocateGraphicsMemoryInPreferredPool(allocFlags, devices, hostPtr, static_cast<size_t>(size), allocationType);
|
||||
memory = memoryManager->allocateGraphicsMemoryInPreferredPool(allocProperties, devices, hostPtr, allocationType);
|
||||
}
|
||||
|
||||
if (allocateMemory && memory && MemoryPool::isSystemMemoryPool(memory->getMemoryPool())) {
|
||||
@@ -207,9 +207,9 @@ Buffer *Buffer::create(Context *context,
|
||||
allocationType = GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY;
|
||||
zeroCopyAllowed = false;
|
||||
copyMemoryFromHostPtr = true;
|
||||
AllocationFlags allocFlags = MemObjHelper::getAllocationFlags(properties.flags_intel, true);
|
||||
AllocationProperties allocProperties = MemObjHelper::getAllocationProperties(properties.flags_intel, true, size);
|
||||
DevicesBitfield devices = MemObjHelper::getDevicesBitfield(properties);
|
||||
memory = memoryManager->allocateGraphicsMemoryInPreferredPool(allocFlags, devices, nullptr, static_cast<size_t>(size), allocationType);
|
||||
memory = memoryManager->allocateGraphicsMemoryInPreferredPool(allocProperties, devices, nullptr, allocationType);
|
||||
}
|
||||
|
||||
if (!memory) {
|
||||
|
||||
@@ -33,8 +33,8 @@ bool MemObjHelper::validateExtraMemoryProperties(const MemoryProperties &propert
|
||||
return true;
|
||||
}
|
||||
|
||||
AllocationFlags MemObjHelper::getAllocationFlags(cl_mem_flags_intel flags, bool allocateMemory) {
|
||||
return AllocationFlags(allocateMemory);
|
||||
AllocationProperties MemObjHelper::getAllocationProperties(cl_mem_flags_intel flags, bool allocateMemory, size_t size) {
|
||||
return AllocationProperties(allocateMemory, size);
|
||||
}
|
||||
|
||||
DevicesBitfield MemObjHelper::getDevicesBitfield(const MemoryProperties &properties) {
|
||||
|
||||
@@ -50,7 +50,7 @@ class MemObjHelper {
|
||||
|
||||
static bool validateExtraMemoryProperties(const MemoryProperties &properties);
|
||||
|
||||
static AllocationFlags getAllocationFlags(cl_mem_flags_intel flags, bool allocateMemory);
|
||||
static AllocationProperties getAllocationProperties(cl_mem_flags_intel flags, bool allocateMemory, size_t size);
|
||||
|
||||
static DevicesBitfield getDevicesBitfield(const MemoryProperties &properties);
|
||||
|
||||
|
||||
@@ -50,10 +50,10 @@ Pipe *Pipe::create(Context *context,
|
||||
MemoryProperties memoryProperties;
|
||||
memoryProperties.flags = flags;
|
||||
while (true) {
|
||||
AllocationFlags allocFlags = MemObjHelper::getAllocationFlags(flags, true);
|
||||
DevicesBitfield devices = MemObjHelper::getDevicesBitfield(memoryProperties);
|
||||
auto size = static_cast<size_t>(packetSize * (maxPackets + 1) + intelPipeHeaderReservedSpace);
|
||||
GraphicsAllocation *memory = memoryManager->allocateGraphicsMemoryInPreferredPool(allocFlags, devices, nullptr, size, GraphicsAllocation::AllocationType::PIPE);
|
||||
AllocationProperties allocProperties = MemObjHelper::getAllocationProperties(flags, true, size);
|
||||
DevicesBitfield devices = MemObjHelper::getDevicesBitfield(memoryProperties);
|
||||
GraphicsAllocation *memory = memoryManager->allocateGraphicsMemoryInPreferredPool(allocProperties, devices, nullptr, GraphicsAllocation::AllocationType::PIPE);
|
||||
if (!memory) {
|
||||
errcodeRet = CL_OUT_OF_HOST_MEMORY;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user