mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Refactoring createMemoryManager
Signed-off-by: Jaroslaw Chodor <jaroslaw.chodor@intel.com>
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
f883376e61
commit
9dbffa8d93
@ -11,7 +11,7 @@
|
||||
#include "shared/source/os_interface/os_interface.h"
|
||||
|
||||
namespace NEO {
|
||||
std::unique_ptr<MemoryManager> MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment) {
|
||||
std::unique_ptr<MemoryManager> MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment, DriverModelType driverModel) {
|
||||
return std::make_unique<DrmMemoryManager>(gemCloseWorkerMode::gemCloseWorkerActive,
|
||||
DebugManager.flags.EnableForcePin.get(),
|
||||
true,
|
||||
|
@ -12,7 +12,7 @@
|
||||
#include "shared/source/os_interface/windows/wddm_memory_manager.h"
|
||||
|
||||
namespace NEO {
|
||||
std::unique_ptr<MemoryManager> MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment) {
|
||||
std::unique_ptr<MemoryManager> MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment, DriverModelType driverModel) {
|
||||
return std::make_unique<WddmMemoryManager>(executionEnvironment);
|
||||
}
|
||||
} // namespace NEO
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
namespace NEO {
|
||||
|
||||
std::unique_ptr<MemoryManager> MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment) {
|
||||
std::unique_ptr<MemoryManager> MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment, DriverModelType driverModel) {
|
||||
if (ultHwConfig.forceOsAgnosticMemoryManager) {
|
||||
return std::make_unique<OsAgnosticMemoryManager>(executionEnvironment);
|
||||
}
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
namespace NEO {
|
||||
|
||||
std::unique_ptr<MemoryManager> MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment) {
|
||||
std::unique_ptr<MemoryManager> MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment, DriverModelType driverModel) {
|
||||
if (ultHwConfig.forceOsAgnosticMemoryManager) {
|
||||
return std::make_unique<OsAgnosticMemoryManager>(executionEnvironment);
|
||||
}
|
||||
|
@ -55,9 +55,13 @@ bool ExecutionEnvironment::initializeMemoryManager() {
|
||||
break;
|
||||
case CommandStreamReceiverType::CSR_HW:
|
||||
case CommandStreamReceiverType::CSR_HW_WITH_AUB:
|
||||
default:
|
||||
memoryManager = MemoryManager::createMemoryManager(*this);
|
||||
break;
|
||||
default: {
|
||||
auto driverModelType = DriverModelType::UNKNOWN;
|
||||
if (this->rootDeviceEnvironments[0]->osInterface && this->rootDeviceEnvironments[0]->osInterface->getDriverModel()) {
|
||||
driverModelType = this->rootDeviceEnvironments[0]->osInterface->getDriverModel()->getDriverModelType();
|
||||
}
|
||||
memoryManager = MemoryManager::createMemoryManager(*this, driverModelType);
|
||||
} break;
|
||||
}
|
||||
|
||||
return memoryManager->isInitialized();
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "shared/source/memory_manager/host_ptr_defines.h"
|
||||
#include "shared/source/memory_manager/local_memory_usage.h"
|
||||
#include "shared/source/memory_manager/multi_graphics_allocation.h"
|
||||
#include "shared/source/os_interface/os_interface.h"
|
||||
#include "shared/source/page_fault_manager/cpu_page_fault_manager.h"
|
||||
|
||||
#include "engine_node.h"
|
||||
@ -191,7 +192,7 @@ class MemoryManager {
|
||||
void setDefaultEngineIndex(uint32_t rootDeviceIndex, uint32_t engineIndex) { defaultEngineIndex[rootDeviceIndex] = engineIndex; }
|
||||
virtual bool copyMemoryToAllocation(GraphicsAllocation *graphicsAllocation, size_t destinationOffset, const void *memoryToCopy, size_t sizeToCopy);
|
||||
HeapIndex selectHeap(const GraphicsAllocation *allocation, bool hasPointer, bool isFullRangeSVM, bool useFrontWindow);
|
||||
static std::unique_ptr<MemoryManager> createMemoryManager(ExecutionEnvironment &executionEnvironment);
|
||||
static std::unique_ptr<MemoryManager> createMemoryManager(ExecutionEnvironment &executionEnvironment, DriverModelType driverModel = DriverModelType::UNKNOWN);
|
||||
virtual void *reserveCpuAddressRange(size_t size, uint32_t rootDeviceIndex) { return nullptr; };
|
||||
virtual void releaseReservedCpuAddressRange(void *reserved, size_t size, uint32_t rootDeviceIndex){};
|
||||
void *getReservedMemory(size_t size, size_t alignment);
|
||||
|
@ -16,7 +16,8 @@
|
||||
namespace NEO {
|
||||
class ExecutionEnvironment;
|
||||
class MemoryManager;
|
||||
enum class DriverModelType { WDDM,
|
||||
enum class DriverModelType { UNKNOWN,
|
||||
WDDM,
|
||||
DRM };
|
||||
|
||||
class HwDeviceId : public NonCopyableClass {
|
||||
|
Reference in New Issue
Block a user