mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-21 09:14:47 +08:00
Reorganization directory structure [3/n]
Change-Id: If3dfa3f6007f8810a6a1ae1a4f0c7da38544648d
This commit is contained in:
35
shared/source/helpers/heap_helper.cpp
Normal file
35
shared/source/helpers/heap_helper.cpp
Normal file
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (C) 2019-2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "helpers/heap_helper.h"
|
||||
|
||||
#include "indirect_heap/indirect_heap.h"
|
||||
#include "memory_manager/graphics_allocation.h"
|
||||
#include "memory_manager/internal_allocation_storage.h"
|
||||
#include "memory_manager/memory_manager.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
GraphicsAllocation *HeapHelper::getHeapAllocation(uint32_t heapType, size_t heapSize, size_t alignment, uint32_t rootDeviceIndex) {
|
||||
auto allocationType = GraphicsAllocation::AllocationType::LINEAR_STREAM;
|
||||
if (IndirectHeap::Type::INDIRECT_OBJECT == heapType) {
|
||||
allocationType = GraphicsAllocation::AllocationType::INTERNAL_HEAP;
|
||||
}
|
||||
|
||||
auto allocation = this->storageForReuse->obtainReusableAllocation(heapSize, allocationType);
|
||||
if (allocation) {
|
||||
return allocation.release();
|
||||
}
|
||||
NEO::AllocationProperties properties{rootDeviceIndex, true, heapSize, allocationType, isMultiOsContextCapable, false, {}};
|
||||
properties.alignment = alignment;
|
||||
|
||||
return this->memManager->allocateGraphicsMemoryWithProperties(properties);
|
||||
}
|
||||
void HeapHelper::storeHeapAllocation(GraphicsAllocation *heapAllocation) {
|
||||
this->storageForReuse->storeAllocation(std::unique_ptr<NEO::GraphicsAllocation>(heapAllocation), NEO::AllocationUsage::REUSABLE_ALLOCATION);
|
||||
}
|
||||
} // namespace NEO
|
||||
Reference in New Issue
Block a user