From 9ecb3193af178ec15fb9c2c617f0b853a102c301 Mon Sep 17 00:00:00 2001 From: "Jobczyk, Lukasz" Date: Fri, 15 Mar 2019 10:22:35 +0100 Subject: [PATCH] Reverse logic of creating Memory Manager - part 3 -Move a Device::getEnabled64kbPages method's logic to the Memory Manager constructor Change-Id: Ide88898000e5817a79f9a6ad5dfc9d680bec0533 Signed-off-by: Jobczyk, Lukasz --- .../tbx_command_stream_receiver_hw.h | 2 +- runtime/device/device.h | 2 - runtime/device/device_caps.cpp | 14 ---- .../dll/linux/create_drm_memory_manager.cpp | 3 +- .../windows/create_wddm_memory_manager.cpp | 4 +- .../execution_environment.cpp | 8 +- .../execution_environment.h | 2 +- runtime/memory_manager/memory_manager.cpp | 20 ++++- runtime/memory_manager/memory_manager.h | 4 +- .../os_agnostic_memory_manager.h | 6 +- .../os_interface/linux/drm_memory_manager.cpp | 3 +- .../os_interface/linux/drm_memory_manager.h | 1 - .../windows/wddm_memory_manager.cpp | 2 +- .../windows/wddm_memory_manager.h | 2 +- runtime/platform/platform.cpp | 5 +- .../aub_command_stream_receiver_1_tests.cpp | 16 ++-- .../aub_command_stream_receiver_2_tests.cpp | 10 +-- ...and_stream_receiver_flush_task_3_tests.cpp | 2 +- .../command_stream_receiver_tests.cpp | 6 +- ...nd_stream_receiver_with_aub_dump_tests.cpp | 2 +- .../tbx_command_stream_fixture.cpp | 2 +- .../tbx_command_stream_tests.cpp | 2 +- unit_tests/d3d_sharing/d3d9_tests.cpp | 2 +- unit_tests/d3d_sharing/d3d_tests.cpp | 2 +- unit_tests/device/device_caps_tests.cpp | 32 ++++---- .../execution_environment_tests.cpp | 12 +-- unit_tests/gmm_helper/gmm_helper_tests.cpp | 9 ++- unit_tests/gtpin/gtpin_tests.cpp | 2 +- .../helpers/execution_environment_helper.cpp | 5 +- .../helpers/transfer_properties_tests.cpp | 7 +- unit_tests/linux/main_linux_dll.cpp | 18 +---- unit_tests/mem_obj/buffer_pin_tests.cpp | 4 +- unit_tests/mem_obj/image_tests.cpp | 4 +- ...nager_allocate_in_preferred_pool_tests.inl | 12 +-- .../memory_manager/memory_manager_tests.cpp | 77 ++++++++----------- unit_tests/memory_manager/surface_tests.cpp | 2 +- .../mocks/linux/mock_drm_memory_manager.h | 25 +++--- unit_tests/mocks/mock_aub_csr.h | 2 +- unit_tests/mocks/mock_device.cpp | 5 +- unit_tests/mocks/mock_device.h | 9 +-- unit_tests/mocks/mock_memory_manager.h | 22 ++++-- unit_tests/mocks/mock_tbx_csr.h | 2 +- .../linux/create_drm_memory_manager.cpp | 5 +- .../linux/drm_command_stream_mm_tests.cpp | 2 - .../linux/drm_command_stream_tests.cpp | 2 - .../linux/drm_gem_close_worker_tests.cpp | 2 +- .../linux/drm_memory_manager_tests.cpp | 10 +-- .../windows/create_wddm_memory_manager.cpp | 6 +- .../windows/device_command_stream_tests.cpp | 13 ++-- .../windows/mock_wddm_memory_manager.h | 7 +- .../os_interface/windows/wddm20_tests.cpp | 15 ++-- .../windows/wddm_memory_manager_tests.cpp | 21 +++-- unit_tests/preemption/preemption_tests.cpp | 2 +- unit_tests/program/kernel_info_tests.cpp | 4 +- .../sharings/gl/gl_arb_sync_event_tests.cpp | 2 +- .../gl/gl_create_from_texture_tests.cpp | 2 +- 56 files changed, 215 insertions(+), 249 deletions(-) diff --git a/runtime/command_stream/tbx_command_stream_receiver_hw.h b/runtime/command_stream/tbx_command_stream_receiver_hw.h index 1d511ba8a8..3556c03000 100644 --- a/runtime/command_stream/tbx_command_stream_receiver_hw.h +++ b/runtime/command_stream/tbx_command_stream_receiver_hw.h @@ -20,7 +20,7 @@ class TbxStream; class TbxMemoryManager : public OsAgnosticMemoryManager { public: - TbxMemoryManager(bool enable64kbPages, bool enableLocalMemory, ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(enable64kbPages, enableLocalMemory, executionEnvironment) {} + TbxMemoryManager(ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(executionEnvironment) {} uint64_t getSystemSharedMemory() override { return 1 * GB; } diff --git a/runtime/device/device.h b/runtime/device/device.h index 4b1ad94d68..8c4187bd9b 100644 --- a/runtime/device/device.h +++ b/runtime/device/device.h @@ -111,8 +111,6 @@ class Device : public BaseObject<_cl_device_id> { std::vector simultaneousInterops; std::string deviceExtensions; std::string name; - bool getEnabled64kbPages() const; - static bool getEnabled64kbPages(const HardwareInfo &hwInfo); bool isSourceLevelDebuggerActive() const; SourceLevelDebugger *getSourceLevelDebugger() { return executionEnvironment->sourceLevelDebugger.get(); } ExecutionEnvironment *getExecutionEnvironment() const { return executionEnvironment; } diff --git a/runtime/device/device_caps.cpp b/runtime/device/device_caps.cpp index b6033c7ec6..1318296b4c 100644 --- a/runtime/device/device_caps.cpp +++ b/runtime/device/device_caps.cpp @@ -42,20 +42,6 @@ static constexpr cl_device_fp_config defaultFpFlags = static_casthwInfo); -} - -bool Device::getEnabled64kbPages(const HardwareInfo &hwInfo) { - if (DebugManager.flags.Enable64kbpages.get() == -1) { - // assign value according to os and hw configuration - return OSInterface::osEnabled64kbPages && hwInfo.capabilityTable.ftr64KBpages; - } else { - // force debug settings - return (DebugManager.flags.Enable64kbpages.get() != 0); - } -} - void Device::setupFp64Flags() { if (DebugManager.flags.OverrideDefaultFP64Settings.get() == -1) { if (hwInfo.capabilityTable.ftrSupportsFP64) { diff --git a/runtime/dll/linux/create_drm_memory_manager.cpp b/runtime/dll/linux/create_drm_memory_manager.cpp index 31178198ea..b34a481fb6 100644 --- a/runtime/dll/linux/create_drm_memory_manager.cpp +++ b/runtime/dll/linux/create_drm_memory_manager.cpp @@ -12,10 +12,9 @@ #include "runtime/os_interface/os_interface.h" namespace OCLRT { -std::unique_ptr MemoryManager::createMemoryManager(bool enable64KBpages, bool enableLocalMemory, ExecutionEnvironment &executionEnvironment) { +std::unique_ptr MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment) { return std::make_unique(executionEnvironment.osInterface->get()->getDrm(), gemCloseWorkerMode::gemCloseWorkerActive, - enableLocalMemory, DebugManager.flags.EnableForcePin.get(), true, executionEnvironment); diff --git a/runtime/dll/windows/create_wddm_memory_manager.cpp b/runtime/dll/windows/create_wddm_memory_manager.cpp index 2b897e67b2..fb1e9760e1 100644 --- a/runtime/dll/windows/create_wddm_memory_manager.cpp +++ b/runtime/dll/windows/create_wddm_memory_manager.cpp @@ -13,7 +13,7 @@ #include "runtime/os_interface/windows/wddm_memory_manager.h" namespace OCLRT { -std::unique_ptr MemoryManager::createMemoryManager(bool enable64KBpages, bool enableLocalMemory, ExecutionEnvironment &executionEnvironment) { - return std::make_unique(enable64KBpages, enableLocalMemory, executionEnvironment.osInterface->get()->getWddm(), executionEnvironment); +std::unique_ptr MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment) { + return std::make_unique(executionEnvironment.osInterface->get()->getWddm(), executionEnvironment); } } // namespace OCLRT diff --git a/runtime/execution_environment/execution_environment.cpp b/runtime/execution_environment/execution_environment.cpp index 489a21a7c2..e3f018594d 100644 --- a/runtime/execution_environment/execution_environment.cpp +++ b/runtime/execution_environment/execution_environment.cpp @@ -60,7 +60,7 @@ bool ExecutionEnvironment::initializeCommandStreamReceiver(uint32_t deviceIndex, this->commandStreamReceivers[deviceIndex][deviceCsrIndex] = std::move(commandStreamReceiver); return true; } -void ExecutionEnvironment::initializeMemoryManager(bool enable64KBpages, bool enableLocalMemory) { +void ExecutionEnvironment::initializeMemoryManager() { if (this->memoryManager) { return; } @@ -73,15 +73,15 @@ void ExecutionEnvironment::initializeMemoryManager(bool enable64KBpages, bool en switch (setCommandStreamReceiverType) { case CommandStreamReceiverType::CSR_TBX: case CommandStreamReceiverType::CSR_TBX_WITH_AUB: - memoryManager = std::make_unique(enable64KBpages, enableLocalMemory, *this); + memoryManager = std::make_unique(*this); break; case CommandStreamReceiverType::CSR_AUB: - memoryManager = std::make_unique(enable64KBpages, enableLocalMemory, *this); + memoryManager = std::make_unique(*this); break; case CommandStreamReceiverType::CSR_HW: case CommandStreamReceiverType::CSR_HW_WITH_AUB: default: - memoryManager = MemoryManager::createMemoryManager(enable64KBpages, enableLocalMemory, *this); + memoryManager = MemoryManager::createMemoryManager(*this); break; } DEBUG_BREAK_IF(!this->memoryManager); diff --git a/runtime/execution_environment/execution_environment.h b/runtime/execution_environment/execution_environment.h index 930d5113b2..39c03e26c3 100644 --- a/runtime/execution_environment/execution_environment.h +++ b/runtime/execution_environment/execution_environment.h @@ -48,7 +48,7 @@ class ExecutionEnvironment : public ReferenceTrackedObject void initGmm(); bool initializeCommandStreamReceiver(uint32_t deviceIndex, uint32_t deviceCsrIndex); void initializeSpecialCommandStreamReceiver(); - void initializeMemoryManager(bool enable64KBpages, bool enableLocalMemory); + void initializeMemoryManager(); void initSourceLevelDebugger(); void setHwInfo(const HardwareInfo *hwInfo); const HardwareInfo *getHardwareInfo() const { diff --git a/runtime/memory_manager/memory_manager.cpp b/runtime/memory_manager/memory_manager.cpp index f15f9343d5..b59a2ebc52 100644 --- a/runtime/memory_manager/memory_manager.cpp +++ b/runtime/memory_manager/memory_manager.cpp @@ -16,6 +16,7 @@ #include "runtime/gmm_helper/resource_info.h" #include "runtime/helpers/aligned_memory.h" #include "runtime/helpers/basic_math.h" +#include "runtime/helpers/hw_helper.h" #include "runtime/helpers/hw_info.h" #include "runtime/helpers/kernel_commands.h" #include "runtime/helpers/options.h" @@ -31,10 +32,21 @@ #include namespace OCLRT { -MemoryManager::MemoryManager(bool enable64kbpages, bool enableLocalMemory, ExecutionEnvironment &executionEnvironment) - : allocator32Bit(nullptr), enable64kbpages(enable64kbpages), localMemorySupported(enableLocalMemory), - executionEnvironment(executionEnvironment), hostPtrManager(std::make_unique()), - multiContextResourceDestructor(std::make_unique()) {} +MemoryManager::MemoryManager(ExecutionEnvironment &executionEnvironment) : allocator32Bit(nullptr), + executionEnvironment(executionEnvironment), hostPtrManager(std::make_unique()), + multiContextResourceDestructor(std::make_unique()) { + this->localMemorySupported = false; + this->enable64kbpages = false; + + auto hwInfo = executionEnvironment.getHardwareInfo(); + if (hwInfo != nullptr) { + this->localMemorySupported = HwHelper::get(hwInfo->pPlatform->eRenderCoreFamily).getEnableLocalMemory(*hwInfo); + this->enable64kbpages = OSInterface::osEnabled64kbPages && hwInfo->capabilityTable.ftr64KBpages; + } + if (DebugManager.flags.Enable64kbpages.get() > -1) { + this->enable64kbpages = DebugManager.flags.Enable64kbpages.get() != 0; + } +} MemoryManager::~MemoryManager() { for (auto &engine : registeredEngines) { diff --git a/runtime/memory_manager/memory_manager.h b/runtime/memory_manager/memory_manager.h index fd53675a1e..36fac1edf3 100644 --- a/runtime/memory_manager/memory_manager.h +++ b/runtime/memory_manager/memory_manager.h @@ -93,7 +93,7 @@ class MemoryManager { RetryInNonDevicePool }; - MemoryManager(bool enable64kbpages, bool enableLocalMemory, ExecutionEnvironment &executionEnvironment); + MemoryManager(ExecutionEnvironment &executionEnvironment); virtual ~MemoryManager(); MOCKABLE_VIRTUAL void *allocateSystemMemory(size_t size, size_t alignment); @@ -185,7 +185,7 @@ class MemoryManager { void setDefaultEngineIndex(uint32_t index) { defaultEngineIndex = index; } virtual bool copyMemoryToAllocation(GraphicsAllocation *graphicsAllocation, const void *memoryToCopy, uint32_t sizeToCopy) const; static HeapIndex selectHeap(const GraphicsAllocation *allocation, bool hasPointer, bool isFullRangeSVM); - static std::unique_ptr createMemoryManager(bool enable64KBpages, bool enableLocalMemory, ExecutionEnvironment &exeEnv); + static std::unique_ptr createMemoryManager(ExecutionEnvironment &executionEnvironment); virtual void *reserveCpuAddressRange(size_t size) = 0; virtual void releaseReservedCpuAddressRange(void *reserved, size_t size) = 0; diff --git a/runtime/memory_manager/os_agnostic_memory_manager.h b/runtime/memory_manager/os_agnostic_memory_manager.h index 9e71ee5498..a0be93db06 100644 --- a/runtime/memory_manager/os_agnostic_memory_manager.h +++ b/runtime/memory_manager/os_agnostic_memory_manager.h @@ -37,10 +37,10 @@ class OsAgnosticMemoryManager : public MemoryManager { public: using MemoryManager::allocateGraphicsMemory; - OsAgnosticMemoryManager(bool enable64kbPages, bool enableLocalMemory, ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(enable64kbPages, enableLocalMemory, false, executionEnvironment) {} + OsAgnosticMemoryManager(ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(false, executionEnvironment) {} - OsAgnosticMemoryManager(bool enable64kbPages, bool enableLocalMemory, bool aubUsage, ExecutionEnvironment &executionEnvironment) : MemoryManager(enable64kbPages, enableLocalMemory, executionEnvironment) { - allocator32Bit = std::unique_ptr(create32BitAllocator(aubUsage)); + OsAgnosticMemoryManager(bool aubUsage, ExecutionEnvironment &executionEnvironment) : MemoryManager(executionEnvironment) { + allocator32Bit.reset(create32BitAllocator(aubUsage)); gfxPartition.init(platformDevices[0]->capabilityTable.gpuAddressSpace); } diff --git a/runtime/os_interface/linux/drm_memory_manager.cpp b/runtime/os_interface/linux/drm_memory_manager.cpp index 3988814fcf..fda6ea6012 100644 --- a/runtime/os_interface/linux/drm_memory_manager.cpp +++ b/runtime/os_interface/linux/drm_memory_manager.cpp @@ -29,10 +29,9 @@ namespace OCLRT { DrmMemoryManager::DrmMemoryManager(Drm *drm, gemCloseWorkerMode mode, - bool enableLocalMemory, bool forcePinAllowed, bool validateHostPtrMemory, - ExecutionEnvironment &executionEnvironment) : MemoryManager(false, enableLocalMemory, executionEnvironment), + ExecutionEnvironment &executionEnvironment) : MemoryManager(executionEnvironment), drm(drm), pinBB(nullptr), forcePinEnabled(forcePinAllowed), diff --git a/runtime/os_interface/linux/drm_memory_manager.h b/runtime/os_interface/linux/drm_memory_manager.h index d92330aa6b..e6a576fb3e 100644 --- a/runtime/os_interface/linux/drm_memory_manager.h +++ b/runtime/os_interface/linux/drm_memory_manager.h @@ -25,7 +25,6 @@ class DrmMemoryManager : public MemoryManager { public: DrmMemoryManager(Drm *drm, gemCloseWorkerMode mode, - bool enableLocalMemory, bool forcePinAllowed, bool validateHostPtrMemory, ExecutionEnvironment &executionEnvironment); diff --git a/runtime/os_interface/windows/wddm_memory_manager.cpp b/runtime/os_interface/windows/wddm_memory_manager.cpp index 302b2a0291..52624bec78 100644 --- a/runtime/os_interface/windows/wddm_memory_manager.cpp +++ b/runtime/os_interface/windows/wddm_memory_manager.cpp @@ -32,7 +32,7 @@ WddmMemoryManager::~WddmMemoryManager() { applyCommonCleanup(); } -WddmMemoryManager::WddmMemoryManager(bool enable64kbPages, bool enableLocalMemory, Wddm *wddm, ExecutionEnvironment &executionEnvironment) : MemoryManager(enable64kbPages, enableLocalMemory, executionEnvironment) { +WddmMemoryManager::WddmMemoryManager(Wddm *wddm, ExecutionEnvironment &executionEnvironment) : MemoryManager(executionEnvironment) { DEBUG_BREAK_IF(wddm == nullptr); this->wddm = wddm; allocator32Bit = std::unique_ptr(new Allocator32bit(wddm->getExternalHeapBase(), wddm->getExternalHeapSize())); diff --git a/runtime/os_interface/windows/wddm_memory_manager.h b/runtime/os_interface/windows/wddm_memory_manager.h index 4a0579d567..f7d34720b6 100644 --- a/runtime/os_interface/windows/wddm_memory_manager.h +++ b/runtime/os_interface/windows/wddm_memory_manager.h @@ -28,7 +28,7 @@ class WddmMemoryManager : public MemoryManager { using MemoryManager::allocateGraphicsMemoryWithProperties; ~WddmMemoryManager() override; - WddmMemoryManager(bool enable64kbPages, bool enableLocalMemory, Wddm *wddm, ExecutionEnvironment &executionEnvironment); + WddmMemoryManager(Wddm *wddm, ExecutionEnvironment &executionEnvironment); WddmMemoryManager(const WddmMemoryManager &) = delete; WddmMemoryManager &operator=(const WddmMemoryManager &) = delete; diff --git a/runtime/platform/platform.cpp b/runtime/platform/platform.cpp index 1756f9026f..93fd6c1472 100644 --- a/runtime/platform/platform.cpp +++ b/runtime/platform/platform.cpp @@ -141,10 +141,7 @@ bool Platform::initialize() { return false; } - auto &hwHelper = HwHelper::get(hwInfo->pPlatform->eRenderCoreFamily); - auto enableLocalMemory = hwHelper.getEnableLocalMemory(*hwInfo); - - executionEnvironment->initializeMemoryManager(Device::getEnabled64kbPages(*hwInfo), enableLocalMemory); + executionEnvironment->initializeMemoryManager(); DEBUG_BREAK_IF(this->platformInfo); this->platformInfo.reset(new PlatformInfo); diff --git a/unit_tests/command_stream/aub_command_stream_receiver_1_tests.cpp b/unit_tests/command_stream/aub_command_stream_receiver_1_tests.cpp index 9038ea089a..b7aa0abd26 100644 --- a/unit_tests/command_stream/aub_command_stream_receiver_1_tests.cpp +++ b/unit_tests/command_stream/aub_command_stream_receiver_1_tests.cpp @@ -102,7 +102,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCsrWhenItIsCreatedWithDebugSetti HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenItIsCreatedThenMemoryManagerIsNotNull) { std::unique_ptr> aubCsr(new AUBCommandStreamReceiverHw("", true, *pDevice->executionEnvironment)); - std::unique_ptr memoryManager(new OsAgnosticMemoryManager(false, false, *pDevice->executionEnvironment)); + std::unique_ptr memoryManager(new OsAgnosticMemoryManager(*pDevice->executionEnvironment)); EXPECT_NE(nullptr, memoryManager.get()); } @@ -212,7 +212,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverInSubCaptur HWTEST_F(AubCommandStreamReceiverTests, givenGraphicsAllocationWhenMakeResidentCalledMultipleTimesAffectsResidencyOnce) { std::unique_ptr memoryManager(nullptr); std::unique_ptr> aubCsr(new AUBCommandStreamReceiverHw("", true, *pDevice->executionEnvironment)); - memoryManager.reset(new OsAgnosticMemoryManager(false, false, *pDevice->executionEnvironment)); + memoryManager.reset(new OsAgnosticMemoryManager(*pDevice->executionEnvironment)); aubCsr->setupContext(*pDevice->getDefaultEngine().osContext); auto gfxAllocation = memoryManager->allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); @@ -678,7 +678,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenWriteMe std::unique_ptr> aubCsr(new AUBCommandStreamReceiverHw("", true, *pDevice->executionEnvironment)); aubCsr->setupContext(*pDevice->getDefaultEngine().osContext); - memoryManager.reset(new OsAgnosticMemoryManager(false, false, *pDevice->executionEnvironment)); + memoryManager.reset(new OsAgnosticMemoryManager(*pDevice->executionEnvironment)); auto gfxAllocation = memoryManager->allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); @@ -702,7 +702,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenWriteMe HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenProcessResidencyIsCalledOnBufferAndImageAllocationsThenAllocationsTypesShouldBeMadeNonAubWritable) { std::unique_ptr memoryManager(nullptr); std::unique_ptr> aubCsr(new AUBCommandStreamReceiverHw("", true, *pDevice->executionEnvironment)); - memoryManager.reset(new OsAgnosticMemoryManager(false, false, *pDevice->executionEnvironment)); + memoryManager.reset(new OsAgnosticMemoryManager(*pDevice->executionEnvironment)); aubCsr->setupContext(*pDevice->getDefaultEngine().osContext); auto gfxBufferAllocation = memoryManager->allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize, GraphicsAllocation::AllocationType::BUFFER}); @@ -723,7 +723,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverInSubCaptur DebugManagerStateRestore stateRestore; std::unique_ptr memoryManager(nullptr); std::unique_ptr> aubCsr(new MockAubCsrToTestDumpAubNonWritable("", true, *pDevice->executionEnvironment)); - memoryManager.reset(new OsAgnosticMemoryManager(false, false, *pDevice->executionEnvironment)); + memoryManager.reset(new OsAgnosticMemoryManager(*pDevice->executionEnvironment)); aubCsr->setupContext(*pDevice->getDefaultEngine().osContext); auto gfxBufferAllocation = memoryManager->allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize, GraphicsAllocation::AllocationType::BUFFER}); @@ -748,7 +748,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenProcess DebugManagerStateRestore stateRestore; std::unique_ptr memoryManager(nullptr); std::unique_ptr> aubCsr(new MockAubCsrToTestDumpAubNonWritable("", true, *pDevice->executionEnvironment)); - memoryManager.reset(new OsAgnosticMemoryManager(false, false, *pDevice->executionEnvironment)); + memoryManager.reset(new OsAgnosticMemoryManager(*pDevice->executionEnvironment)); aubCsr->setupContext(*pDevice->getDefaultEngine().osContext); auto gfxBufferAllocation = memoryManager->allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize, GraphicsAllocation::AllocationType::BUFFER}); @@ -789,7 +789,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenGraphic std::unique_ptr> aubCsr(new AUBCommandStreamReceiverHw("", true, *pDevice->executionEnvironment)); aubCsr->setupContext(*pDevice->getDefaultEngine().osContext); - memoryManager.reset(new OsAgnosticMemoryManager(false, false, *pDevice->executionEnvironment)); + memoryManager.reset(new OsAgnosticMemoryManager(*pDevice->executionEnvironment)); auto gfxAllocation = memoryManager->allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); @@ -801,7 +801,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenGraphic HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenGraphicsAllocationTypeIsNonAubWritableThenWriteMemoryIsNotAllowed) { std::unique_ptr memoryManager(nullptr); std::unique_ptr> aubCsr(new AUBCommandStreamReceiverHw("", true, *pDevice->executionEnvironment)); - memoryManager.reset(new OsAgnosticMemoryManager(false, false, *pDevice->executionEnvironment)); + memoryManager.reset(new OsAgnosticMemoryManager(*pDevice->executionEnvironment)); auto gfxAllocation = memoryManager->allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); diff --git a/unit_tests/command_stream/aub_command_stream_receiver_2_tests.cpp b/unit_tests/command_stream/aub_command_stream_receiver_2_tests.cpp index ea62f9f859..eb5dc4e5e1 100644 --- a/unit_tests/command_stream/aub_command_stream_receiver_2_tests.cpp +++ b/unit_tests/command_stream/aub_command_stream_receiver_2_tests.cpp @@ -53,7 +53,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverInStandalon HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenForcedBatchBufferFlatteningInImmediateDispatchModeThenNewCombinedBatchBufferIsCreated) { std::unique_ptr> aubCsr(new AUBCommandStreamReceiverHw("", true, *pDevice->executionEnvironment)); - std::unique_ptr memoryManager(new OsAgnosticMemoryManager(false, false, *pDevice->executionEnvironment)); + std::unique_ptr memoryManager(new OsAgnosticMemoryManager(*pDevice->executionEnvironment)); auto flatBatchBufferHelper = new FlatBatchBufferHelperHw(*pDevice->executionEnvironment); aubCsr->overwriteFlatBatchBufferHelper(flatBatchBufferHelper); @@ -82,7 +82,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenForcedB HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenForcedBatchBufferInImmediateDispatchModeAndNoChainedBatchBufferThenCombinedBatchBufferIsNotCreated) { std::unique_ptr> aubCsr(new AUBCommandStreamReceiverHw("", true, *pDevice->executionEnvironment)); - std::unique_ptr memoryManager(new OsAgnosticMemoryManager(false, false, *pDevice->executionEnvironment)); + std::unique_ptr memoryManager(new OsAgnosticMemoryManager(*pDevice->executionEnvironment)); auto flatBatchBufferHelper = new FlatBatchBufferHelperHw(*pDevice->executionEnvironment); aubCsr->overwriteFlatBatchBufferHelper(flatBatchBufferHelper); @@ -105,7 +105,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenForcedB HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenForcedBatchBufferAndNotImmediateOrBatchedDispatchModeThenCombinedBatchBufferIsNotCreated) { std::unique_ptr> aubCsr(new AUBCommandStreamReceiverHw("", true, *pDevice->executionEnvironment)); - std::unique_ptr memoryManager(new OsAgnosticMemoryManager(false, false, *pDevice->executionEnvironment)); + std::unique_ptr memoryManager(new OsAgnosticMemoryManager(*pDevice->executionEnvironment)); auto flatBatchBufferHelper = new FlatBatchBufferHelperHw(*pDevice->executionEnvironment); aubCsr->overwriteFlatBatchBufferHelper(flatBatchBufferHelper); @@ -427,7 +427,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenAddBatc class OsAgnosticMemoryManagerForImagesWithNoHostPtr : public OsAgnosticMemoryManager { public: - OsAgnosticMemoryManagerForImagesWithNoHostPtr(ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(false, false, executionEnvironment) {} + OsAgnosticMemoryManagerForImagesWithNoHostPtr(ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(executionEnvironment) {} GraphicsAllocation *allocateGraphicsMemoryForImage(const AllocationData &allocationData) override { auto imageAllocation = OsAgnosticMemoryManager::allocateGraphicsMemoryForImage(allocationData); @@ -664,7 +664,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenWriteMe pDevice->executionEnvironment->aubCenter.reset(new AubCenter()); auto aubCsr = std::make_unique>("", false, *pDevice->executionEnvironment); - std::unique_ptr memoryManager(new OsAgnosticMemoryManager(false, false, *pDevice->executionEnvironment)); + std::unique_ptr memoryManager(new OsAgnosticMemoryManager(*pDevice->executionEnvironment)); PhysicalAddressAllocator allocator; struct PpgttMock : std::conditional::type { diff --git a/unit_tests/command_stream/command_stream_receiver_flush_task_3_tests.cpp b/unit_tests/command_stream/command_stream_receiver_flush_task_3_tests.cpp index 85e2e684ce..effb18e9ec 100644 --- a/unit_tests/command_stream/command_stream_receiver_flush_task_3_tests.cpp +++ b/unit_tests/command_stream/command_stream_receiver_flush_task_3_tests.cpp @@ -655,7 +655,7 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, givenCsrInBatchingModeWhenSusbsequ } struct MockedMemoryManager : public OsAgnosticMemoryManager { - MockedMemoryManager(ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(false, false, executionEnvironment) {} + MockedMemoryManager(ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(executionEnvironment) {} bool isMemoryBudgetExhausted() const override { return budgetExhausted; } bool budgetExhausted = false; }; diff --git a/unit_tests/command_stream/command_stream_receiver_tests.cpp b/unit_tests/command_stream/command_stream_receiver_tests.cpp index a5f3f1dbe1..a146e1649e 100644 --- a/unit_tests/command_stream/command_stream_receiver_tests.cpp +++ b/unit_tests/command_stream/command_stream_receiver_tests.cpp @@ -346,7 +346,7 @@ TEST(CommandStreamReceiverSimpleTest, givenCommandStreamReceiverWhenItIsDestroye executionEnvironment.commandStreamReceivers.resize(1); executionEnvironment.commandStreamReceivers[0].push_back(std::make_unique(executionEnvironment)); auto csr = executionEnvironment.commandStreamReceivers[0][0].get(); - executionEnvironment.memoryManager.reset(new OsAgnosticMemoryManager(false, false, executionEnvironment)); + executionEnvironment.memoryManager.reset(new OsAgnosticMemoryManager(executionEnvironment)); csr->setTagAllocation(mockGraphicsAllocation); EXPECT_FALSE(destructorCalled); executionEnvironment.commandStreamReceivers[0][0].reset(nullptr); @@ -358,7 +358,7 @@ TEST(CommandStreamReceiverSimpleTest, givenCommandStreamReceiverWhenInitializeTa auto csr = new MockCommandStreamReceiver(executionEnvironment); executionEnvironment.commandStreamReceivers.resize(1); executionEnvironment.commandStreamReceivers[0].push_back(std::unique_ptr(csr)); - executionEnvironment.memoryManager.reset(new OsAgnosticMemoryManager(false, false, executionEnvironment)); + executionEnvironment.memoryManager.reset(new OsAgnosticMemoryManager(executionEnvironment)); EXPECT_EQ(nullptr, csr->getTagAllocation()); EXPECT_TRUE(csr->getTagAddress() == nullptr); csr->initializeTagAllocation(); @@ -374,7 +374,7 @@ TEST(CommandStreamReceiverSimpleTest, givenNullHardwareDebugModeWhenInitializeTa executionEnvironment.commandStreamReceivers.resize(1); auto csr = new MockCommandStreamReceiver(executionEnvironment); executionEnvironment.commandStreamReceivers[0].push_back(std::unique_ptr(csr)); - executionEnvironment.memoryManager.reset(new OsAgnosticMemoryManager(false, false, executionEnvironment)); + executionEnvironment.memoryManager.reset(new OsAgnosticMemoryManager(executionEnvironment)); EXPECT_EQ(nullptr, csr->getTagAllocation()); EXPECT_TRUE(csr->getTagAddress() == nullptr); csr->initializeTagAllocation(); diff --git a/unit_tests/command_stream/command_stream_receiver_with_aub_dump_tests.cpp b/unit_tests/command_stream/command_stream_receiver_with_aub_dump_tests.cpp index e3c89f2ff2..b5982d1ff7 100644 --- a/unit_tests/command_stream/command_stream_receiver_with_aub_dump_tests.cpp +++ b/unit_tests/command_stream/command_stream_receiver_with_aub_dump_tests.cpp @@ -107,7 +107,7 @@ struct CommandStreamReceiverWithAubDumpTest : public ::testing::TestWithParam(createAubCSR, *executionEnvironment); ASSERT_NE(nullptr, csrWithAubDump); - executionEnvironment->initializeMemoryManager(false, false); + executionEnvironment->initializeMemoryManager(); memoryManager = executionEnvironment->memoryManager.get(); ASSERT_NE(nullptr, memoryManager); diff --git a/unit_tests/command_stream/tbx_command_stream_fixture.cpp b/unit_tests/command_stream/tbx_command_stream_fixture.cpp index c9dc93197f..e9528d3d30 100644 --- a/unit_tests/command_stream/tbx_command_stream_fixture.cpp +++ b/unit_tests/command_stream/tbx_command_stream_fixture.cpp @@ -21,7 +21,7 @@ void TbxCommandStreamFixture::SetUp(MockDevice *pDevice) { // Create our TBX command stream receiver based on HW type pCommandStreamReceiver = TbxCommandStreamReceiver::create("", false, *pDevice->executionEnvironment); ASSERT_NE(nullptr, pCommandStreamReceiver); - mmTbx = new TbxMemoryManager(false, false, *pDevice->executionEnvironment); + mmTbx = new TbxMemoryManager(*pDevice->executionEnvironment); pDevice->resetCommandStreamReceiver(pCommandStreamReceiver); } diff --git a/unit_tests/command_stream/tbx_command_stream_tests.cpp b/unit_tests/command_stream/tbx_command_stream_tests.cpp index 5beefeb9a4..49a7fc4359 100644 --- a/unit_tests/command_stream/tbx_command_stream_tests.cpp +++ b/unit_tests/command_stream/tbx_command_stream_tests.cpp @@ -279,7 +279,7 @@ HWTEST_F(TbxCommandStreamTests, givenTbxCommandStreamReceiverWhenFlushIsCalledTh TEST(TbxMemoryManagerTest, givenTbxMemoryManagerWhenItIsQueriedForSystemSharedMemoryThen1GBIsReturned) { ExecutionEnvironment executionEnvironment; - TbxMemoryManager memoryManager(false, false, executionEnvironment); + TbxMemoryManager memoryManager(executionEnvironment); EXPECT_EQ(1 * GB, memoryManager.getSystemSharedMemory()); } diff --git a/unit_tests/d3d_sharing/d3d9_tests.cpp b/unit_tests/d3d_sharing/d3d9_tests.cpp index e70742314b..2c603f65eb 100644 --- a/unit_tests/d3d_sharing/d3d9_tests.cpp +++ b/unit_tests/d3d_sharing/d3d9_tests.cpp @@ -40,7 +40,7 @@ class D3D9Tests : public PlatformFixture, public ::testing::Test { class MockMM : public OsAgnosticMemoryManager { public: - MockMM(const ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(false, false, const_cast(executionEnvironment)){}; + MockMM(const ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(const_cast(executionEnvironment)){}; GraphicsAllocation *createGraphicsAllocationFromSharedHandle(osHandle handle, bool requireSpecificBitness) override { auto alloc = OsAgnosticMemoryManager::createGraphicsAllocationFromSharedHandle(handle, requireSpecificBitness); alloc->setDefaultGmm(forceGmm); diff --git a/unit_tests/d3d_sharing/d3d_tests.cpp b/unit_tests/d3d_sharing/d3d_tests.cpp index 4ccba1785a..00240df47b 100644 --- a/unit_tests/d3d_sharing/d3d_tests.cpp +++ b/unit_tests/d3d_sharing/d3d_tests.cpp @@ -99,7 +99,7 @@ class D3DTests : public PlatformFixture, public ::testing::Test { PlatformFixture::SetUp(); context = new MockContext(pPlatform->getDevice(0)); context->forcePreferD3dSharedResources(true); - mockMM = std::make_unique(false, false, *context->getDevice(0)->getExecutionEnvironment()); + mockMM = std::make_unique(*context->getDevice(0)->getExecutionEnvironment()); mockSharingFcns = new NiceMock>(); context->setSharingFunctions(mockSharingFcns); diff --git a/unit_tests/device/device_caps_tests.cpp b/unit_tests/device/device_caps_tests.cpp index 4344fcab3b..d71c0ed061 100644 --- a/unit_tests/device/device_caps_tests.cpp +++ b/unit_tests/device/device_caps_tests.cpp @@ -19,6 +19,7 @@ #include "unit_tests/fixtures/device_fixture.h" #include "unit_tests/helpers/debug_manager_state_restore.h" #include "unit_tests/helpers/hw_helper_tests.h" +#include "unit_tests/helpers/variable_backup.h" #include "unit_tests/mocks/mock_builtins.h" #include "unit_tests/mocks/mock_device.h" @@ -836,37 +837,42 @@ TEST(Device_GetCaps, givenSystemWithNoDriverInfoWhenGettingNameAndVersionThenRet TEST(Device_GetCaps, GivenFlagEnabled64kbPagesWhenSetThenReturnCorrectValue) { DebugManagerStateRestore dbgRestore; - bool orgOsEnabled64kbPages = OSInterface::osEnabled64kbPages; - auto device = std::unique_ptr(MockDevice::createWithNewExecutionEnvironment(platformDevices[0])); - HardwareInfo &hwInfo = const_cast(device->getHardwareInfo()); - bool orgftr64KBpages = hwInfo.capabilityTable.ftr64KBpages; + VariableBackup OsEnabled64kbPagesBackup(&OSInterface::osEnabled64kbPages); + + HardwareInfo hwInfo = *platformDevices[0]; + ExecutionEnvironment executionEnvironment; + executionEnvironment.setHwInfo(&hwInfo); + std::unique_ptr memoryManager; DebugManager.flags.Enable64kbpages.set(-1); hwInfo.capabilityTable.ftr64KBpages = false; OSInterface::osEnabled64kbPages = false; - EXPECT_FALSE(device->getEnabled64kbPages()); + memoryManager.reset(new OsAgnosticMemoryManager(executionEnvironment)); + EXPECT_FALSE(memoryManager->peek64kbPagesEnabled()); hwInfo.capabilityTable.ftr64KBpages = false; OSInterface::osEnabled64kbPages = true; - EXPECT_FALSE(device->getEnabled64kbPages()); + memoryManager.reset(new OsAgnosticMemoryManager(executionEnvironment)); + EXPECT_FALSE(memoryManager->peek64kbPagesEnabled()); hwInfo.capabilityTable.ftr64KBpages = true; OSInterface::osEnabled64kbPages = false; - EXPECT_FALSE(device->getEnabled64kbPages()); + memoryManager.reset(new OsAgnosticMemoryManager(executionEnvironment)); + EXPECT_FALSE(memoryManager->peek64kbPagesEnabled()); hwInfo.capabilityTable.ftr64KBpages = true; OSInterface::osEnabled64kbPages = true; - EXPECT_TRUE(device->getEnabled64kbPages()); + memoryManager.reset(new OsAgnosticMemoryManager(executionEnvironment)); + EXPECT_TRUE(memoryManager->peek64kbPagesEnabled()); DebugManager.flags.Enable64kbpages.set(0); // force false - EXPECT_FALSE(device->getEnabled64kbPages()); + memoryManager.reset(new OsAgnosticMemoryManager(executionEnvironment)); + EXPECT_FALSE(memoryManager->peek64kbPagesEnabled()); DebugManager.flags.Enable64kbpages.set(1); // force true - EXPECT_TRUE(device->getEnabled64kbPages()); - - OSInterface::osEnabled64kbPages = orgOsEnabled64kbPages; - hwInfo.capabilityTable.ftr64KBpages = orgftr64KBpages; + memoryManager.reset(new OsAgnosticMemoryManager(executionEnvironment)); + EXPECT_TRUE(memoryManager->peek64kbPagesEnabled()); } TEST(Device_GetCaps, givenDeviceWithNullSourceLevelDebuggerWhenCapsAreInitializedThenSourceLevelDebuggerActiveIsSetToFalse) { diff --git a/unit_tests/execution_environment/execution_environment_tests.cpp b/unit_tests/execution_environment/execution_environment_tests.cpp index 10dabed978..57b08bc891 100644 --- a/unit_tests/execution_environment/execution_environment_tests.cpp +++ b/unit_tests/execution_environment/execution_environment_tests.cpp @@ -103,7 +103,7 @@ TEST(ExecutionEnvironment, givenPlatformWhenItIsCreatedThenItCreatesMemoryManage TEST(ExecutionEnvironment, givenDeviceWhenItIsDestroyedThenMemoryManagerIsStillAvailable) { ExecutionEnvironment *executionEnvironment = platformImpl->peekExecutionEnvironment(); - executionEnvironment->initializeMemoryManager(false, false); + executionEnvironment->initializeMemoryManager(); std::unique_ptr device(Device::create(nullptr, executionEnvironment, 0u)); device.reset(nullptr); EXPECT_NE(nullptr, executionEnvironment->memoryManager); @@ -179,14 +179,14 @@ TEST(ExecutionEnvironment, givenExecutionEnvironmentWhenInitializeMemoryManagerI auto executionEnvironment = device->getExecutionEnvironment(); executionEnvironment->initializeCommandStreamReceiver(0, 0); auto enableLocalMemory = HwHelper::get(hwInfo->pPlatform->eRenderCoreFamily).getEnableLocalMemory(*hwInfo); - executionEnvironment->initializeMemoryManager(false, enableLocalMemory); + executionEnvironment->initializeMemoryManager(); EXPECT_EQ(enableLocalMemory, executionEnvironment->memoryManager->isLocalMemorySupported()); } TEST(ExecutionEnvironment, givenExecutionEnvironmentWhenInitializeMemoryManagerIsCalledThenItIsInitalized) { ExecutionEnvironment *executionEnvironment = platformImpl->peekExecutionEnvironment(); executionEnvironment->initializeCommandStreamReceiver(0, 0); - executionEnvironment->initializeMemoryManager(false, false); + executionEnvironment->initializeMemoryManager(); EXPECT_NE(nullptr, executionEnvironment->memoryManager); } static_assert(sizeof(ExecutionEnvironment) == sizeof(std::vector>) + @@ -286,7 +286,7 @@ HWTEST_F(ExecutionEnvironmentHw, givenHwHelperInputWhenInitializingCsrThenCreate TEST(ExecutionEnvironment, whenSpecialCsrNotExistThenReturnNullSpecialEngineControl) { ExecutionEnvironment *executionEnvironment = platformImpl->peekExecutionEnvironment(); executionEnvironment->initializeCommandStreamReceiver(0, 0); - executionEnvironment->initializeMemoryManager(false, false); + executionEnvironment->initializeMemoryManager(); EXPECT_NE(nullptr, executionEnvironment->memoryManager); auto engineControl = executionEnvironment->getEngineControlForSpecialCsr(); EXPECT_EQ(nullptr, engineControl); @@ -295,7 +295,7 @@ TEST(ExecutionEnvironment, whenSpecialCsrNotExistThenReturnNullSpecialEngineCont TEST(ExecutionEnvironment, whenSpecialCsrExistsThenReturnSpecialEngineControl) { ExecutionEnvironment *executionEnvironment = platformImpl->peekExecutionEnvironment(); executionEnvironment->initializeCommandStreamReceiver(0, 0); - executionEnvironment->initializeMemoryManager(false, false); + executionEnvironment->initializeMemoryManager(); EXPECT_NE(nullptr, executionEnvironment->memoryManager); executionEnvironment->specialCommandStreamReceiver.reset(createCommandStream(*executionEnvironment)); @@ -315,6 +315,6 @@ TEST(ExecutionEnvironment, givenUnproperSetCsrFlagValueWhenInitializingMemoryMan DebugManager.flags.SetCommandStreamReceiver.set(10); auto executionEnvironment = std::make_unique(); - executionEnvironment->initializeMemoryManager(false, false); + executionEnvironment->initializeMemoryManager(); EXPECT_NE(nullptr, executionEnvironment->memoryManager); } diff --git a/unit_tests/gmm_helper/gmm_helper_tests.cpp b/unit_tests/gmm_helper/gmm_helper_tests.cpp index 27020e5662..3c960148fd 100644 --- a/unit_tests/gmm_helper/gmm_helper_tests.cpp +++ b/unit_tests/gmm_helper/gmm_helper_tests.cpp @@ -18,6 +18,7 @@ #include "unit_tests/mocks/mock_device.h" #include "unit_tests/mocks/mock_gmm.h" #include "unit_tests/mocks/mock_graphics_allocation.h" +#include "unit_tests/mocks/mock_memory_manager.h" #include "GL/gl.h" #include "GL/glext.h" @@ -53,7 +54,7 @@ TEST(GmmGlTests, givenGmmWhenAskedforCubeFaceIndexThenProperValueIsReturned) { } TEST_F(GmmTests, resourceCreation) { - std::unique_ptr mm(new OsAgnosticMemoryManager(false, false, *executionEnvironment)); + std::unique_ptr mm(new MemoryManagerCreate(false, false, *executionEnvironment)); void *pSysMem = mm->allocateSystemMemory(4096, 4096); std::unique_ptr gmm(new Gmm(pSysMem, 4096, false)); @@ -67,7 +68,7 @@ TEST_F(GmmTests, resourceCreation) { } TEST_F(GmmTests, resourceCreationUncacheable) { - std::unique_ptr mm(new OsAgnosticMemoryManager(false, false, *executionEnvironment)); + std::unique_ptr mm(new MemoryManagerCreate(false, false, *executionEnvironment)); void *pSysMem = mm->allocateSystemMemory(4096, 4096); std::unique_ptr gmm(new Gmm(pSysMem, 4096, true)); @@ -83,7 +84,7 @@ TEST_F(GmmTests, resourceCreationUncacheable) { } TEST_F(GmmTests, resourceCleanupOnDelete) { - std::unique_ptr mm(new OsAgnosticMemoryManager(false, false, *executionEnvironment)); + std::unique_ptr mm(new MemoryManagerCreate(false, false, *executionEnvironment)); void *pSysMem = mm->allocateSystemMemory(4096, 4096); std::unique_ptr gmm(new Gmm(pSysMem, 4096, false)); @@ -96,7 +97,7 @@ TEST_F(GmmTests, resourceCleanupOnDelete) { TEST_F(GmmTests, GivenBufferSizeLargerThenMaxPitchWhenAskedForGmmCreationThenGMMResourceIsCreatedWithNoRestrictionsFlag) { auto maxSize = static_cast(GmmHelper::maxPossiblePitch); - MemoryManager *mm = new OsAgnosticMemoryManager(false, false, *executionEnvironment); + MemoryManager *mm = new MemoryManagerCreate(false, false, *executionEnvironment); void *pSysMem = mm->allocateSystemMemory(4096, 4096); auto gmmRes = new Gmm(pSysMem, maxSize, false); diff --git a/unit_tests/gtpin/gtpin_tests.cpp b/unit_tests/gtpin/gtpin_tests.cpp index cfb1fa3138..6b89670ae8 100644 --- a/unit_tests/gtpin/gtpin_tests.cpp +++ b/unit_tests/gtpin/gtpin_tests.cpp @@ -121,7 +121,7 @@ void OnCommandBufferComplete(command_buffer_handle_t cb) { class MockMemoryManagerWithFailures : public OsAgnosticMemoryManager { public: - MockMemoryManagerWithFailures(ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(false, false, executionEnvironment){}; + MockMemoryManagerWithFailures(ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(executionEnvironment){}; GraphicsAllocation *allocateGraphicsMemoryInDevicePool(const AllocationData &allocationData, AllocationStatus &status) override { if (failAllAllocationsInDevicePool) { diff --git a/unit_tests/helpers/execution_environment_helper.cpp b/unit_tests/helpers/execution_environment_helper.cpp index 8fde8f53a0..dcc5aeb07e 100644 --- a/unit_tests/helpers/execution_environment_helper.cpp +++ b/unit_tests/helpers/execution_environment_helper.cpp @@ -7,8 +7,6 @@ #include "unit_tests/helpers/execution_environment_helper.h" -#include "runtime/device/device.h" -#include "runtime/helpers/hw_helper.h" #include "runtime/os_interface/device_factory.h" #include "runtime/platform/platform.h" @@ -19,8 +17,7 @@ ExecutionEnvironment *getExecutionEnvironmentImpl(HardwareInfo *&hwInfo) { size_t numDevicesReturned = 0; hwInfo = nullptr; DeviceFactory::getDevices(&hwInfo, numDevicesReturned, *executionEnvironment); - bool enableLocalMemory = HwHelper::get(hwInfo->pPlatform->eRenderCoreFamily).getEnableLocalMemory(*hwInfo); - executionEnvironment->initializeMemoryManager(Device::getEnabled64kbPages(*hwInfo), enableLocalMemory); + executionEnvironment->initializeMemoryManager(); return executionEnvironment; } diff --git a/unit_tests/helpers/transfer_properties_tests.cpp b/unit_tests/helpers/transfer_properties_tests.cpp index 82dc153d1f..c1430310aa 100644 --- a/unit_tests/helpers/transfer_properties_tests.cpp +++ b/unit_tests/helpers/transfer_properties_tests.cpp @@ -8,6 +8,7 @@ #include "runtime/helpers/properties_helper.h" #include "unit_tests/helpers/debug_manager_state_restore.h" #include "unit_tests/mocks/mock_buffer.h" +#include "unit_tests/mocks/mock_memory_manager.h" #include "gtest/gtest.h" @@ -24,7 +25,7 @@ TEST(TransferPropertiesTest, givenTransferPropertiesCreatedWhenDefaultDebugSetti TEST(TransferPropertiesTest, givenAllocationInNonSystemPoolWhenTransferPropertiesAreCreatedForMapBufferThenLockPtrIsSet) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, true, executionEnvironment); + MemoryManagerCreate memoryManager(false, true, executionEnvironment); MockContext ctx; ctx.setMemoryManager(&memoryManager); @@ -41,7 +42,7 @@ TEST(TransferPropertiesTest, givenAllocationInNonSystemPoolWhenTransferPropertie TEST(TransferPropertiesTest, givenAllocationInSystemPoolWhenTransferPropertiesAreCreatedForMapBufferThenLockPtrIsNotSet) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, true, executionEnvironment); + MemoryManagerCreate memoryManager(false, true, executionEnvironment); MockContext ctx; ctx.setMemoryManager(&memoryManager); @@ -67,7 +68,7 @@ TEST(TransferPropertiesTest, givenTransferPropertiesCreatedWhenMemoryManagerInMe TEST(TransferPropertiesTest, givenTransferPropertiesWhenLockedPtrIsSetThenItIsReturnedForReadWrite) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, true, executionEnvironment); + MemoryManagerCreate memoryManager(false, true, executionEnvironment); MockContext ctx; ctx.setMemoryManager(&memoryManager); diff --git a/unit_tests/linux/main_linux_dll.cpp b/unit_tests/linux/main_linux_dll.cpp index 7a52e669a5..097276df25 100644 --- a/unit_tests/linux/main_linux_dll.cpp +++ b/unit_tests/linux/main_linux_dll.cpp @@ -322,26 +322,14 @@ TEST(AllocatorHelper, givenExpectedSizeToMapWhenGetSizetoMapCalledThenExpectedVa EXPECT_EQ((alignUp(4 * GB - 8096, 4096)), OCLRT::getSizeToMap()); } -TEST(DrmMemoryManagerCreate, givenLocalMemoryEnabledWhenMemoryManagerIsCreatedThenLocalMemoryEnabledIsTrue) { +TEST(DrmMemoryManagerCreate, whenCallCreateMemoryManagerThenDrmMemoryManagerIsCreated) { DrmMockSuccess mock; ExecutionEnvironment executionEnvironment; executionEnvironment.osInterface = std::make_unique(); executionEnvironment.osInterface->get()->setDrm(&mock); - - auto drmMemoryManager = MemoryManager::createMemoryManager(false, true, executionEnvironment); - EXPECT_TRUE(drmMemoryManager->isLocalMemorySupported()); - executionEnvironment.memoryManager = std::move(drmMemoryManager); -} - -TEST(DrmMemoryManagerCreate, givenLocalMemoryDisabledWhenMemoryManagerIsCreatedThenLocalMemoryEnabledIsFalse) { - DrmMockSuccess mock; - ExecutionEnvironment executionEnvironment; - - executionEnvironment.osInterface = std::make_unique(); - executionEnvironment.osInterface->get()->setDrm(&mock); - auto drmMemoryManager = MemoryManager::createMemoryManager(false, false, executionEnvironment); - EXPECT_FALSE(drmMemoryManager->isLocalMemorySupported()); + auto drmMemoryManager = MemoryManager::createMemoryManager(executionEnvironment); + EXPECT_NE(nullptr, drmMemoryManager.get()); executionEnvironment.memoryManager = std::move(drmMemoryManager); } diff --git a/unit_tests/mem_obj/buffer_pin_tests.cpp b/unit_tests/mem_obj/buffer_pin_tests.cpp index 84fec4778d..dda707d62e 100644 --- a/unit_tests/mem_obj/buffer_pin_tests.cpp +++ b/unit_tests/mem_obj/buffer_pin_tests.cpp @@ -50,7 +50,7 @@ class TestedMemoryManager : public OsAgnosticMemoryManager { TEST(BufferTests, doPinIsSet) { ExecutionEnvironment executionEnvironment; - std::unique_ptr mm(new TestedMemoryManager(false, false, executionEnvironment)); + std::unique_ptr mm(new TestedMemoryManager(executionEnvironment)); { MockContext context; auto size = MemoryConstants::pageSize * 32; @@ -73,7 +73,7 @@ TEST(BufferTests, doPinIsSet) { } TEST(BufferTests, doPinIsSetForHostPtr) { ExecutionEnvironment executionEnvironment; - std::unique_ptr mm(new TestedMemoryManager(false, false, executionEnvironment)); + std::unique_ptr mm(new TestedMemoryManager(executionEnvironment)); { MockContext context; auto retVal = CL_INVALID_OPERATION; diff --git a/unit_tests/mem_obj/image_tests.cpp b/unit_tests/mem_obj/image_tests.cpp index 2473cfaab0..ce4bc757f4 100644 --- a/unit_tests/mem_obj/image_tests.cpp +++ b/unit_tests/mem_obj/image_tests.cpp @@ -1413,7 +1413,7 @@ using HwImageTest = ::testing::Test; HWTEST_F(HwImageTest, givenImageHwWhenSettingCCSParamsThenSetClearColorParamsIsCalled) { MockContext context; - OsAgnosticMemoryManager memoryManager(false, false, *context.getDevice(0)->getExecutionEnvironment()); + OsAgnosticMemoryManager memoryManager(*context.getDevice(0)->getExecutionEnvironment()); context.setMemoryManager(&memoryManager); cl_image_desc imgDesc = {}; @@ -1446,7 +1446,7 @@ using HwImageTest = ::testing::Test; HWTEST_F(HwImageTest, givenImageHwWithUnifiedSurfaceAndMcsWhenSettingParamsForMultisampleImageThenSetParamsForCcsMcsIsCalled) { MockContext context; - OsAgnosticMemoryManager memoryManager(false, false, *context.getDevice(0)->getExecutionEnvironment()); + OsAgnosticMemoryManager memoryManager(*context.getDevice(0)->getExecutionEnvironment()); context.setMemoryManager(&memoryManager); cl_image_desc imgDesc = {}; diff --git a/unit_tests/memory_manager/memory_manager_allocate_in_preferred_pool_tests.inl b/unit_tests/memory_manager/memory_manager_allocate_in_preferred_pool_tests.inl index 90de6831d7..0349ad3f55 100644 --- a/unit_tests/memory_manager/memory_manager_allocate_in_preferred_pool_tests.inl +++ b/unit_tests/memory_manager/memory_manager_allocate_in_preferred_pool_tests.inl @@ -163,7 +163,7 @@ INSTANTIATE_TEST_CASE_P(Disallow32BitAnd64kbPagesTypes, TEST(MemoryManagerTest, givenForced32BitSetWhenGraphicsMemoryFor32BitAllowedTypeIsAllocatedThen32BitAllocationIsReturned) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(false, false, executionEnvironment); memoryManager.setForce32BitAllocations(true); AllocationData allocData; @@ -186,7 +186,7 @@ TEST(MemoryManagerTest, givenForced32BitSetWhenGraphicsMemoryFor32BitAllowedType TEST(MemoryManagerTest, givenForced32BitEnabledWhenGraphicsMemoryWihtoutAllow32BitFlagIsAllocatedThenNon32BitAllocationIsReturned) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(executionEnvironment); memoryManager.setForce32BitAllocations(true); AllocationData allocData; @@ -204,7 +204,7 @@ TEST(MemoryManagerTest, givenForced32BitEnabledWhenGraphicsMemoryWihtoutAllow32B TEST(MemoryManagerTest, givenForced32BitDisabledWhenGraphicsMemoryWith32BitFlagFor32BitAllowedTypeIsAllocatedThenNon32BitAllocationIsReturned) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(executionEnvironment); memoryManager.setForce32BitAllocations(false); AllocationData allocData; @@ -221,7 +221,7 @@ TEST(MemoryManagerTest, givenForced32BitDisabledWhenGraphicsMemoryWith32BitFlagF TEST(MemoryManagerTest, givenEnabled64kbPagesWhenGraphicsMemoryMustBeHostMemoryAndIsAllocatedWithNullptrForBufferThen64kbAllocationIsReturned) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(true, false, executionEnvironment); + MemoryManagerCreate memoryManager(true, false, executionEnvironment); AllocationData allocData; AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY); @@ -271,7 +271,7 @@ TEST(MemoryManagerTest, givenDisabled64kbPagesWhenGraphicsMemoryMustBeHostMemory TEST(MemoryManagerTest, givenForced32BitAndEnabled64kbPagesWhenGraphicsMemoryMustBeHostMemoryAndIsAllocatedWithNullptrForBufferThen32BitAllocationOver64kbIsChosen) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(false, false, executionEnvironment); memoryManager.setForce32BitAllocations(true); AllocationData allocData; @@ -292,7 +292,7 @@ TEST(MemoryManagerTest, givenForced32BitAndEnabled64kbPagesWhenGraphicsMemoryMus TEST(MemoryManagerTest, givenEnabled64kbPagesWhenGraphicsMemoryIsAllocatedWithHostPtrForBufferThenExistingMemoryIsUsedForAllocation) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(true, false, executionEnvironment); + MemoryManagerCreate memoryManager(true, false, executionEnvironment); AllocationData allocData; AllocationProperties properties(false, 1, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY); diff --git a/unit_tests/memory_manager/memory_manager_tests.cpp b/unit_tests/memory_manager/memory_manager_tests.cpp index 82f8d1dc1d..0192e425c9 100644 --- a/unit_tests/memory_manager/memory_manager_tests.cpp +++ b/unit_tests/memory_manager/memory_manager_tests.cpp @@ -24,6 +24,7 @@ #include "unit_tests/fixtures/memory_allocator_fixture.h" #include "unit_tests/fixtures/memory_manager_fixture.h" #include "unit_tests/helpers/debug_manager_state_restore.h" +#include "unit_tests/helpers/execution_environment_helper.h" #include "unit_tests/helpers/memory_management.h" #include "unit_tests/helpers/variable_backup.h" #include "unit_tests/mocks/mock_context.h" @@ -539,20 +540,20 @@ TEST_F(MemoryAllocatorTest, given32BitDeviceWhenPrintfSurfaceIsCreatedThen32BitA TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenItIsCreatedThenForce32BitAllocationsIsFalse) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); EXPECT_FALSE(memoryManager.peekForce32BitAllocations()); } TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenForce32bitallocationIsCalledWithTrueThenMemoryManagerForces32BitAlloactions) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); memoryManager.setForce32BitAllocations(true); EXPECT_TRUE(memoryManager.peekForce32BitAllocations()); } TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenAllocateGraphicsMemoryForImageIsCalledThenGraphicsAllocationIsReturned) { ExecutionEnvironment *executionEnvironment = platformImpl->peekExecutionEnvironment(); - MockMemoryManager memoryManager(false, false, *executionEnvironment); + MockMemoryManager memoryManager(*executionEnvironment); cl_image_desc imgDesc = {}; imgDesc.image_width = 512; imgDesc.image_height = 1; @@ -664,7 +665,7 @@ TEST(OsAgnosticMemoryManager, givenHostPointerRequiringCopyWhenAllocateGraphicsM TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerAndUnifiedAuxCapableAllocationWhenMappingThenReturnFalse) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); auto gmm = new Gmm(nullptr, 123, false); auto allocation = memoryManager.allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); @@ -680,7 +681,7 @@ TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerAndUnifiedAuxCapableAlloc TEST(OsAgnosticMemoryManager, givenMemoryManagerWhenAllocateGraphicsMemoryIsCalledThenMemoryPoolIsSystem4KBPages) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(false, false, executionEnvironment); auto size = 4096u; auto allocation = memoryManager.allocateGraphicsMemoryWithProperties(MockAllocationProperties{size}); @@ -701,10 +702,10 @@ TEST(OsAgnosticMemoryManager, givenMemoryManagerWith64KBPagesEnabledWhenAllocate } TEST(OsAgnosticMemoryManager, givenMemoryManagerWith64KBPagesEnabledWhenAllocateGraphicsMemoryFailsThenNullptrIsReturned) { - class MockOsAgnosticManagerWithFailingAllocate : public OsAgnosticMemoryManager { + class MockOsAgnosticManagerWithFailingAllocate : public MemoryManagerCreate { public: using OsAgnosticMemoryManager::allocateGraphicsMemory64kb; - MockOsAgnosticManagerWithFailingAllocate(bool enable64kbPages, ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(enable64kbPages, false, executionEnvironment) {} + MockOsAgnosticManagerWithFailingAllocate(bool enable64kbPages, ExecutionEnvironment &executionEnvironment) : MemoryManagerCreate(enable64kbPages, false, executionEnvironment) {} GraphicsAllocation *allocateGraphicsMemoryWithAlignment(const AllocationData &allocationData) override { return nullptr; @@ -721,7 +722,7 @@ TEST(OsAgnosticMemoryManager, givenMemoryManagerWith64KBPagesEnabledWhenAllocate TEST(OsAgnosticMemoryManager, givenMemoryManagerWhenAllocateGraphicsMemoryWithPtrIsCalledThenMemoryPoolIsSystem4KBPages) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(false, false, executionEnvironment); void *ptr = reinterpret_cast(0x1001); auto size = MemoryConstants::pageSize; @@ -762,7 +763,7 @@ TEST(OsAgnosticMemoryManager, givenMemoryManagerWhenAllocate32BitGraphicsMemoryW TEST(OsAgnosticMemoryManager, givenMemoryManagerWith64KBPagesEnabledWhenAllocateGraphicsMemoryThenMemoryPoolIsSystem64KBPages) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(true, false, executionEnvironment); + MemoryManagerCreate memoryManager(true, false, executionEnvironment); auto svmAllocation = memoryManager.allocateGraphicsMemoryWithProperties({MemoryConstants::pageSize, GraphicsAllocation::AllocationType::SVM}); EXPECT_NE(nullptr, svmAllocation); EXPECT_EQ(MemoryPool::System64KBPages, svmAllocation->getMemoryPool()); @@ -771,35 +772,15 @@ TEST(OsAgnosticMemoryManager, givenMemoryManagerWith64KBPagesEnabledWhenAllocate TEST(OsAgnosticMemoryManager, givenMemoryManagerWith64KBPagesDisabledWhenAllocateGraphicsMemoryThen4KBGraphicsAllocationIsReturned) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(false, false, executionEnvironment); auto svmAllocation = memoryManager.allocateGraphicsMemoryWithProperties({MemoryConstants::pageSize, GraphicsAllocation::AllocationType::SVM}); EXPECT_EQ(MemoryPool::System4KBPages, svmAllocation->getMemoryPool()); memoryManager.freeGraphicsMemory(svmAllocation); } -TEST(OsAgnosticMemoryManager, givenDeviceWith64kbPagesEnabledWhenCreatingMemoryManagerThenAllowFor64kbAllocations) { - VariableBackup os64kbPagesEnabled(&OSInterface::osEnabled64kbPages, true); - - HardwareInfo localHwInfo = *platformDevices[0]; - localHwInfo.capabilityTable.ftr64KBpages = true; - - std::unique_ptr device(MockDevice::createWithNewExecutionEnvironment(&localHwInfo)); - EXPECT_TRUE(device->getEnabled64kbPages()); - EXPECT_TRUE(device->getMemoryManager()->peek64kbPagesEnabled()); -} - -TEST(OsAgnosticMemoryManager, givenDeviceWith64kbPagesDisbledWhenCreatingMemoryManagerThenDisallowFor64kbAllocations) { - HardwareInfo localHwInfo = *platformDevices[0]; - localHwInfo.capabilityTable.ftr64KBpages = false; - - std::unique_ptr device(MockDevice::createWithNewExecutionEnvironment(&localHwInfo)); - EXPECT_FALSE(device->getEnabled64kbPages()); - EXPECT_FALSE(device->getMemoryManager()->peek64kbPagesEnabled()); -} - TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenCreateGraphicsAllocationFromSharedObjectIsCalledThenGraphicsAllocationIsReturned) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(false, false, executionEnvironment); osHandle handle = 1; auto size = 4096u; auto sharedAllocation = memoryManager.createGraphicsAllocationFromSharedHandle(handle, false); @@ -814,14 +795,14 @@ TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenCreateGraphicsAllocat TEST(OsAgnosticMemoryManager, givenMemoryManagerWhenCreateAllocationFromNtHandleIsCalledThenReturnNullptr) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); auto graphicsAllocation = memoryManager.createGraphicsAllocationFromNTHandle((void *)1); EXPECT_EQ(nullptr, graphicsAllocation); } TEST(OsAgnosticMemoryManager, givenMemoryManagerWhenLockUnlockCalledThenReturnCpuPtr) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); auto allocation = memoryManager.allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); ASSERT_NE(nullptr, allocation); @@ -837,7 +818,7 @@ TEST(OsAgnosticMemoryManager, givenMemoryManagerWhenLockUnlockCalledThenReturnCp TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenGraphicsAllocationContainsOffsetWhenAddressIsObtainedThenOffsetIsAdded) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(false, false, executionEnvironment); auto graphicsAllocation = memoryManager.allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); @@ -857,7 +838,7 @@ TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenGraphicsAllocationCon TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenGraphicsAllocationIsPaddedThenNewGraphicsAllocationIsCreated) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(false, false, executionEnvironment); auto graphicsAllocation = memoryManager.allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); auto sizeWithPadding = 8192; @@ -876,7 +857,7 @@ TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenGraphicsAllocationIsP TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenTwoGraphicsAllocationArePaddedThenOnlyOnePaddingBufferIsUsed) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(false, false, executionEnvironment); auto graphicsAllocation = memoryManager.allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); auto sizeWithPadding = 8192; @@ -900,7 +881,7 @@ TEST(OsAgnosticMemoryManager, pleaseDetectLeak) { TEST(OsAgnosticMemoryManager, givenMemoryManagerWhenAllocateMemoryWithNoAlignmentProvidedThenAllocationIsAlignedToPageSize) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(false, false, executionEnvironment); MockAllocationProperties properties(MemoryConstants::pageSize >> 1); properties.alignment = 0; auto ga = memoryManager.allocateGraphicsMemoryWithProperties(properties); @@ -913,7 +894,7 @@ TEST(OsAgnosticMemoryManager, givenMemoryManagerWhenAllocateMemoryWithNoAlignmen TEST(OsAgnosticMemoryManager, givenMemoryManagerWhenAllocateMemoryWithAlignmentNotAlignedToPageSizeThenAlignmentIsAlignedUp) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + MemoryManagerCreate memoryManager(false, false, executionEnvironment); MockAllocationProperties properties(MemoryConstants::pageSize >> 1); properties.alignment = MemoryConstants::pageSize - 1; auto ga = memoryManager.allocateGraphicsMemoryWithProperties(properties); @@ -926,7 +907,7 @@ TEST(OsAgnosticMemoryManager, givenMemoryManagerWhenAllocateMemoryWithAlignmentN TEST(OsAgnosticMemoryManager, givenCommonMemoryManagerWhenIsAskedIfApplicationMemoryBudgetIsExhaustedThenFalseIsReturned) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); EXPECT_FALSE(memoryManager.isMemoryBudgetExhausted()); } @@ -990,7 +971,7 @@ TEST(OsAgnosticMemoryManager, givenMemoryManagerWhenIsAsyncDeleterEnabledCalledT TEST(OsAgnosticMemoryManager, givenDefaultMemoryManagerWhenItIsCreatedThenAsyncDeleterEnabledIsFalse) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); EXPECT_FALSE(memoryManager.isAsyncDeleterEnabled()); EXPECT_EQ(nullptr, memoryManager.getDeferredDeleter()); } @@ -999,7 +980,7 @@ TEST(OsAgnosticMemoryManager, givenEnabledAsyncDeleterFlagWhenMemoryManagerIsCre bool defaultEnableDeferredDeleterFlag = DebugManager.flags.EnableDeferredDeleter.get(); DebugManager.flags.EnableDeferredDeleter.set(true); ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); EXPECT_FALSE(memoryManager.isAsyncDeleterEnabled()); EXPECT_EQ(nullptr, memoryManager.getDeferredDeleter()); DebugManager.flags.EnableDeferredDeleter.set(defaultEnableDeferredDeleterFlag); @@ -1009,7 +990,7 @@ TEST(OsAgnosticMemoryManager, givenDisabledAsyncDeleterFlagWhenMemoryManagerIsCr bool defaultEnableDeferredDeleterFlag = DebugManager.flags.EnableDeferredDeleter.get(); DebugManager.flags.EnableDeferredDeleter.set(false); ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); EXPECT_FALSE(memoryManager.isAsyncDeleterEnabled()); EXPECT_EQ(nullptr, memoryManager.getDeferredDeleter()); DebugManager.flags.EnableDeferredDeleter.set(defaultEnableDeferredDeleterFlag); @@ -1019,7 +1000,7 @@ TEST(OsAgnosticMemoryManager, GivenEnabled64kbPagesWhenHostMemoryAllocationIsCre DebugManagerStateRestore dbgRestore; DebugManager.flags.Enable64kbpages.set(true); ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(true, false, executionEnvironment); + MemoryManagerCreate memoryManager(true, false, executionEnvironment); GraphicsAllocation *galloc = memoryManager.allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize64k, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY}); EXPECT_NE(nullptr, galloc); @@ -1047,7 +1028,7 @@ TEST(OsAgnosticMemoryManager, givenPointerAndSizeWhenCreateInternalAllocationIsC } TEST(OsAgnosticMemoryManager, givenDefaultOsAgnosticMemoryManagerWhenItIsQueriedForInternalHeapBaseThen32BitAllocatorBaseIsReturned) { ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); auto heapBase = memoryManager.allocator32Bit->getBase(); EXPECT_EQ(heapBase, memoryManager.getInternalHeapBaseAddress()); } @@ -1073,7 +1054,7 @@ TEST_P(OsAgnosticMemoryManagerWithParams, givenReducedGpuAddressSpaceWhenAllocat if (executionEnvironment.isFullRangeSvm()) { return; } - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); auto hostPtr = reinterpret_cast(0x5001); AllocationProperties properties{false, 13, GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR}; properties.flags.flushL3RequiredForRead = properties.flags.flushL3RequiredForWrite = requiresL3Flush; @@ -1092,7 +1073,7 @@ TEST_P(OsAgnosticMemoryManagerWithParams, givenFullGpuAddressSpaceWhenAllocateGr if (!executionEnvironment.isFullRangeSvm()) { return; } - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); auto hostPtr = reinterpret_cast(0x5001); AllocationProperties properties{false, 13, GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR}; properties.flags.flushL3RequiredForRead = properties.flags.flushL3RequiredForWrite = requiresL3Flush; @@ -1115,7 +1096,7 @@ TEST_P(OsAgnosticMemoryManagerWithParams, givenDisabledHostPtrTrackingWhenAlloca if (!executionEnvironment.isFullRangeSvm()) { return; } - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); auto hostPtr = reinterpret_cast(0x5001); AllocationProperties properties{false, 13, GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR}; @@ -1146,6 +1127,7 @@ TEST(OsAgnosticMemoryManager, givenLocalMemoryNotSupportedWhenMemoryManagerIsCre TEST(OsAgnosticMemoryManager, givenLocalMemorySupportedAndNotAubUsageWhenMemoryManagerIsCreatedThenAllocator32BitHasCorrectBaseAddress) { ExecutionEnvironment executionEnvironment; MockMemoryManager memoryManager(false, true, false, executionEnvironment); + memoryManager.allocator32Bit.reset(memoryManager.create32BitAllocator(false)); uint64_t heap32Base = 0x80000000000ul; if (is32bit) { @@ -1168,6 +1150,7 @@ TEST(OsAgnosticMemoryManager, givenLocalMemoryNotSupportedAndAubUsageWhenMemoryM TEST(OsAgnosticMemoryManager, givenLocalMemorySupportedAndAubUsageWhenMemoryManagerIsCreatedThenAllocator32BitHasCorrectBaseAddress) { ExecutionEnvironment executionEnvironment; MockMemoryManager memoryManager(false, true, true, executionEnvironment); + memoryManager.allocator32Bit.reset(memoryManager.create32BitAllocator(true)); uint64_t heap32Base = 0x80000000000ul; if (is32bit) { diff --git a/unit_tests/memory_manager/surface_tests.cpp b/unit_tests/memory_manager/surface_tests.cpp index 68b0cf2653..4d6843905c 100644 --- a/unit_tests/memory_manager/surface_tests.cpp +++ b/unit_tests/memory_manager/surface_tests.cpp @@ -65,7 +65,7 @@ HWTEST_TYPED_TEST(SurfaceTest, GivenSurfaceWhenInterfaceIsUsedThenSurfaceBehaves executionEnvironment->commandStreamReceivers.resize(1); MockCsr *csr = new MockCsr(execStamp, *executionEnvironment); executionEnvironment->commandStreamReceivers[0].push_back(std::unique_ptr(csr)); - executionEnvironment->initializeMemoryManager(false, false); + executionEnvironment->initializeMemoryManager(); auto engine = HwHelper::get(platformDevices[0]->pPlatform->eRenderCoreFamily).getGpgpuEngineInstances()[0]; auto osContext = executionEnvironment->memoryManager->createAndRegisterOsContext(csr, engine, 1, PreemptionHelper::getDefaultPreemptionMode(*platformDevices[0]), false); csr->setupContext(*osContext); diff --git a/unit_tests/mocks/linux/mock_drm_memory_manager.h b/unit_tests/mocks/linux/mock_drm_memory_manager.h index 5a6822edbc..7824e8cc22 100644 --- a/unit_tests/mocks/linux/mock_drm_memory_manager.h +++ b/unit_tests/mocks/linux/mock_drm_memory_manager.h @@ -9,6 +9,7 @@ #include "runtime/os_interface/linux/drm_memory_manager.h" #include "unit_tests/mocks/mock_allocation_properties.h" #include "unit_tests/mocks/mock_host_ptr_manager.h" +#include "unit_tests/mocks/mock_memory_manager.h" #include @@ -37,7 +38,7 @@ inline int closeMock(int) { return 0; } -class TestedDrmMemoryManager : public DrmMemoryManager { +class TestedDrmMemoryManager : public MemoryManagerCreate { public: using DrmMemoryManager::allocateGraphicsMemory; using DrmMemoryManager::allocateGraphicsMemory64kb; @@ -55,12 +56,11 @@ class TestedDrmMemoryManager : public DrmMemoryManager { using DrmMemoryManager::sharingBufferObjects; using MemoryManager::allocateGraphicsMemoryInDevicePool; - TestedDrmMemoryManager(Drm *drm, ExecutionEnvironment &executionEnvironment) : DrmMemoryManager(drm, - gemCloseWorkerMode::gemCloseWorkerInactive, - false, - false, - false, - executionEnvironment) { + TestedDrmMemoryManager(Drm *drm, ExecutionEnvironment &executionEnvironment) : MemoryManagerCreate(drm, + gemCloseWorkerMode::gemCloseWorkerInactive, + false, + false, + executionEnvironment) { this->lseekFunction = &lseekMock; this->mmapFunction = &mmapMock; this->munmapFunction = &munmapMock; @@ -75,12 +75,11 @@ class TestedDrmMemoryManager : public DrmMemoryManager { bool enableLocalMemory, bool allowForcePin, bool validateHostPtrMemory, - ExecutionEnvironment &executionEnvironment) : DrmMemoryManager(drm, - gemCloseWorkerMode::gemCloseWorkerInactive, - enableLocalMemory, - allowForcePin, - validateHostPtrMemory, - executionEnvironment) { + ExecutionEnvironment &executionEnvironment) : MemoryManagerCreate(false, enableLocalMemory, drm, + gemCloseWorkerMode::gemCloseWorkerInactive, + allowForcePin, + validateHostPtrMemory, + executionEnvironment) { this->lseekFunction = &lseekMock; this->mmapFunction = &mmapMock; this->munmapFunction = &munmapMock; diff --git a/unit_tests/mocks/mock_aub_csr.h b/unit_tests/mocks/mock_aub_csr.h index 5c7411e5c3..905bd7cbb5 100644 --- a/unit_tests/mocks/mock_aub_csr.h +++ b/unit_tests/mocks/mock_aub_csr.h @@ -168,7 +168,7 @@ std::unique_ptr getEnvironment(bool createTagAllocation executionEnvironment->commandStreamReceivers.resize(1); executionEnvironment->commandStreamReceivers[0].push_back(std::make_unique("", standalone, *executionEnvironment)); - executionEnvironment->initializeMemoryManager(false, false); + executionEnvironment->initializeMemoryManager(); if (createTagAllocation) { executionEnvironment->commandStreamReceivers[0][0]->initializeTagAllocation(); } diff --git a/unit_tests/mocks/mock_device.cpp b/unit_tests/mocks/mock_device.cpp index d5edbf51dd..9aef8d55d7 100644 --- a/unit_tests/mocks/mock_device.cpp +++ b/unit_tests/mocks/mock_device.cpp @@ -30,10 +30,11 @@ MockDevice::MockDevice(const HardwareInfo &hwInfo, ExecutionEnvironment *executi : Device(hwInfo, executionEnvironment, deviceIndex) { bool enableLocalMemory = HwHelper::get(hwInfo.pPlatform->eRenderCoreFamily).getEnableLocalMemory(hwInfo); bool aubUsage = (testMode == TestMode::AubTests) || (testMode == TestMode::AubTestsWithTbx); - this->mockMemoryManager.reset(new OsAgnosticMemoryManager(false, enableLocalMemory, aubUsage, *executionEnvironment)); + this->mockMemoryManager.reset(new MemoryManagerCreate(false, enableLocalMemory, aubUsage, *executionEnvironment)); this->osTime = MockOSTime::create(); mockWaTable = *hwInfo.pWaTable; - executionEnvironment->initializeMemoryManager(getEnabled64kbPages(hwInfo), enableLocalMemory); + executionEnvironment->setHwInfo(&hwInfo); + executionEnvironment->initializeMemoryManager(); } void MockDevice::setOSTime(OSTime *osTime) { diff --git a/unit_tests/mocks/mock_device.h b/unit_tests/mocks/mock_device.h index ff59937dd3..af7c4c8b9f 100644 --- a/unit_tests/mocks/mock_device.h +++ b/unit_tests/mocks/mock_device.h @@ -120,15 +120,8 @@ class MockDevice : public Device { template <> inline Device *MockDevice::createWithNewExecutionEnvironment(const HardwareInfo *pHwInfo) { auto executionEnvironment = new ExecutionEnvironment(); - - bool enableLocalMemory = false; - bool enable64kbPages = false; - if (pHwInfo != nullptr) { - enableLocalMemory = HwHelper::get(pHwInfo->pPlatform->eRenderCoreFamily).getEnableLocalMemory(*pHwInfo); - enable64kbPages = getEnabled64kbPages(*pHwInfo); - } executionEnvironment->setHwInfo(*platformDevices); - executionEnvironment->initializeMemoryManager(enable64kbPages, enableLocalMemory); + executionEnvironment->initializeMemoryManager(); return Device::create(pHwInfo, executionEnvironment, 0u); } diff --git a/unit_tests/mocks/mock_memory_manager.h b/unit_tests/mocks/mock_memory_manager.h index e34229976e..1221020910 100644 --- a/unit_tests/mocks/mock_memory_manager.h +++ b/unit_tests/mocks/mock_memory_manager.h @@ -14,7 +14,19 @@ namespace OCLRT { -class MockMemoryManager : public OsAgnosticMemoryManager { +template +class MemoryManagerCreate : public T { + public: + using T::T; + + template + MemoryManagerCreate(bool enable64kbPages, bool enableLocalMemory, U &&... args) : T(std::forward(args)...) { + this->enable64kbpages = enable64kbPages; + this->localMemorySupported = enableLocalMemory; + } +}; + +class MockMemoryManager : public MemoryManagerCreate { public: using MemoryManager::allocateGraphicsMemoryForNonSvmHostPtr; using MemoryManager::allocateGraphicsMemoryInPreferredPool; @@ -26,18 +38,18 @@ class MockMemoryManager : public OsAgnosticMemoryManager { using MemoryManager::registeredEngines; using MemoryManager::useInternal32BitAllocator; using OsAgnosticMemoryManager::allocateGraphicsMemoryForImageFromHostPtr; - using OsAgnosticMemoryManager::OsAgnosticMemoryManager; + using MemoryManagerCreate::MemoryManagerCreate; MockMemoryManager(ExecutionEnvironment &executionEnvironment) : MockMemoryManager(false, executionEnvironment) {} - MockMemoryManager(bool enableLocalMemory, ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(false, enableLocalMemory, executionEnvironment) { + MockMemoryManager(bool enableLocalMemory, ExecutionEnvironment &executionEnvironment) : MemoryManagerCreate(false, enableLocalMemory, executionEnvironment) { hostPtrManager.reset(new MockHostPtrManager); }; MockMemoryManager() : MockMemoryManager(*(new ExecutionEnvironment)) { mockExecutionEnvironment.reset(&executionEnvironment); }; - MockMemoryManager(bool enable64pages, bool enableLocalMemory) : OsAgnosticMemoryManager(enable64pages, enableLocalMemory, *(new ExecutionEnvironment)) { + MockMemoryManager(bool enable64pages, bool enableLocalMemory) : MemoryManagerCreate(enable64pages, enableLocalMemory, *(new ExecutionEnvironment)) { mockExecutionEnvironment.reset(&executionEnvironment); } GraphicsAllocation *allocateGraphicsMemory64kb(const AllocationData &allocationData) override; @@ -102,7 +114,7 @@ class GMockMemoryManager : public MockMemoryManager { class MockAllocSysMemAgnosticMemoryManager : public OsAgnosticMemoryManager { public: - MockAllocSysMemAgnosticMemoryManager(ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(false, false, executionEnvironment) { + MockAllocSysMemAgnosticMemoryManager(ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(executionEnvironment) { ptrRestrictions = nullptr; testRestrictions.minAddress = 0; } diff --git a/unit_tests/mocks/mock_tbx_csr.h b/unit_tests/mocks/mock_tbx_csr.h index bb907b7ba5..6bf23484a2 100644 --- a/unit_tests/mocks/mock_tbx_csr.h +++ b/unit_tests/mocks/mock_tbx_csr.h @@ -98,7 +98,7 @@ std::unique_ptr getEnvironment(bool createTagAllocation executionEnvironment->commandStreamReceivers.resize(1); executionEnvironment->commandStreamReceivers[0].push_back(std::make_unique(*platformDevices[0], *executionEnvironment)); - executionEnvironment->initializeMemoryManager(false, false); + executionEnvironment->initializeMemoryManager(); if (createTagAllocation) { executionEnvironment->commandStreamReceivers[0][0]->initializeTagAllocation(); } diff --git a/unit_tests/os_interface/linux/create_drm_memory_manager.cpp b/unit_tests/os_interface/linux/create_drm_memory_manager.cpp index 103aa8c275..214b18ee27 100644 --- a/unit_tests/os_interface/linux/create_drm_memory_manager.cpp +++ b/unit_tests/os_interface/linux/create_drm_memory_manager.cpp @@ -15,13 +15,12 @@ namespace OCLRT { bool overrideMemoryManagerCreation = true; -std::unique_ptr MemoryManager::createMemoryManager(bool enable64KBpages, bool enableLocalMemory, ExecutionEnvironment &executionEnvironment) { +std::unique_ptr MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment) { if (overrideMemoryManagerCreation) { - return std::make_unique(enable64KBpages, enableLocalMemory, executionEnvironment); + return std::make_unique(executionEnvironment); } return std::make_unique(executionEnvironment.osInterface->get()->getDrm(), gemCloseWorkerMode::gemCloseWorkerInactive, - enableLocalMemory, DebugManager.flags.EnableForcePin.get(), true, executionEnvironment); diff --git a/unit_tests/os_interface/linux/drm_command_stream_mm_tests.cpp b/unit_tests/os_interface/linux/drm_command_stream_mm_tests.cpp index fd3e791610..068a3f8183 100644 --- a/unit_tests/os_interface/linux/drm_command_stream_mm_tests.cpp +++ b/unit_tests/os_interface/linux/drm_command_stream_mm_tests.cpp @@ -34,7 +34,6 @@ HWTEST_F(DrmCommandStreamMMTest, MMwithPinBB) { auto memoryManager = new DrmMemoryManager(executionEnvironment.osInterface->get()->getDrm(), gemCloseWorkerInactive, - false, DebugManager.flags.EnableForcePin.get(), true, executionEnvironment); @@ -58,7 +57,6 @@ HWTEST_F(DrmCommandStreamMMTest, givenForcePinDisabledWhenMemoryManagerIsCreated auto memoryManager = new DrmMemoryManager(executionEnvironment.osInterface->get()->getDrm(), gemCloseWorkerInactive, - false, DebugManager.flags.EnableForcePin.get(), true, executionEnvironment); diff --git a/unit_tests/os_interface/linux/drm_command_stream_tests.cpp b/unit_tests/os_interface/linux/drm_command_stream_tests.cpp index 45e7c1a84f..b190509d26 100644 --- a/unit_tests/os_interface/linux/drm_command_stream_tests.cpp +++ b/unit_tests/os_interface/linux/drm_command_stream_tests.cpp @@ -57,7 +57,6 @@ class DrmCommandStreamFixture { .Times(1); memoryManager = new DrmMemoryManager(executionEnvironment.osInterface->get()->getDrm(), gemCloseWorkerActive, - false, DebugManager.flags.EnableForcePin.get(), true, executionEnvironment); @@ -587,7 +586,6 @@ class DrmCommandStreamEnhancedFixture ASSERT_NE(nullptr, csr); mm = new DrmMemoryManager(executionEnvironment->osInterface->get()->getDrm(), gemCloseWorkerInactive, - false, DebugManager.flags.EnableForcePin.get(), true, *executionEnvironment); diff --git a/unit_tests/os_interface/linux/drm_gem_close_worker_tests.cpp b/unit_tests/os_interface/linux/drm_gem_close_worker_tests.cpp index 8c4acc9ab6..d1e267face 100644 --- a/unit_tests/os_interface/linux/drm_gem_close_worker_tests.cpp +++ b/unit_tests/os_interface/linux/drm_gem_close_worker_tests.cpp @@ -67,7 +67,7 @@ class DrmGemCloseWorkerFixture { this->drmMock->gem_close_expected = 0; this->mm = new DrmMemoryManager(this->drmMock, - gemCloseWorkerMode::gemCloseWorkerInactive, false, + gemCloseWorkerMode::gemCloseWorkerInactive, false, false, executionEnvironment); diff --git a/unit_tests/os_interface/linux/drm_memory_manager_tests.cpp b/unit_tests/os_interface/linux/drm_memory_manager_tests.cpp index d94f37165d..2c0b8fac45 100644 --- a/unit_tests/os_interface/linux/drm_memory_manager_tests.cpp +++ b/unit_tests/os_interface/linux/drm_memory_manager_tests.cpp @@ -301,12 +301,12 @@ TEST_F(DrmMemoryManagerTest, UnreferenceNullPtr) { } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenDrmMemoryManagerCreatedWithGemCloseWorkerModeInactiveThenGemCloseWorkerIsNotCreated) { - DrmMemoryManager drmMemoryManger(this->mock.get(), gemCloseWorkerMode::gemCloseWorkerInactive, false, false, false, *executionEnvironment); + DrmMemoryManager drmMemoryManger(this->mock.get(), gemCloseWorkerMode::gemCloseWorkerInactive, false, false, *executionEnvironment); EXPECT_EQ(nullptr, drmMemoryManger.peekGemCloseWorker()); } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenDrmMemoryManagerCreatedWithGemCloseWorkerActiveThenGemCloseWorkerIsCreated) { - DrmMemoryManager drmMemoryManger(this->mock.get(), gemCloseWorkerMode::gemCloseWorkerActive, false, false, false, *executionEnvironment); + DrmMemoryManager drmMemoryManger(this->mock.get(), gemCloseWorkerMode::gemCloseWorkerActive, false, false, *executionEnvironment); EXPECT_NE(nullptr, drmMemoryManger.peekGemCloseWorker()); } @@ -2358,7 +2358,7 @@ TEST(MmapFlags, givenVariousMmapParametersGetTimeDeltaForTheOperation) { TEST(DrmMemoryManager, givenDefaultMemoryManagerWhenItIsCreatedThenAsyncDeleterEnabledIsTrue) { ExecutionEnvironment executionEnvironment; - DrmMemoryManager memoryManager(Drm::get(0), gemCloseWorkerMode::gemCloseWorkerInactive, false, false, true, executionEnvironment); + DrmMemoryManager memoryManager(Drm::get(0), gemCloseWorkerMode::gemCloseWorkerInactive, false, true, executionEnvironment); EXPECT_FALSE(memoryManager.isAsyncDeleterEnabled()); EXPECT_EQ(nullptr, memoryManager.getDeferredDeleter()); } @@ -2367,7 +2367,7 @@ TEST(DrmMemoryManager, givenEnabledAsyncDeleterFlagWhenMemoryManagerIsCreatedThe ExecutionEnvironment executionEnvironment; DebugManagerStateRestore dbgStateRestore; DebugManager.flags.EnableDeferredDeleter.set(true); - DrmMemoryManager memoryManager(Drm::get(0), gemCloseWorkerMode::gemCloseWorkerInactive, false, false, true, executionEnvironment); + DrmMemoryManager memoryManager(Drm::get(0), gemCloseWorkerMode::gemCloseWorkerInactive, false, true, executionEnvironment); EXPECT_FALSE(memoryManager.isAsyncDeleterEnabled()); EXPECT_EQ(nullptr, memoryManager.getDeferredDeleter()); } @@ -2376,7 +2376,7 @@ TEST(DrmMemoryManager, givenDisabledAsyncDeleterFlagWhenMemoryManagerIsCreatedTh ExecutionEnvironment executionEnvironment; DebugManagerStateRestore dbgStateRestore; DebugManager.flags.EnableDeferredDeleter.set(false); - DrmMemoryManager memoryManager(Drm::get(0), gemCloseWorkerMode::gemCloseWorkerInactive, false, false, true, executionEnvironment); + DrmMemoryManager memoryManager(Drm::get(0), gemCloseWorkerMode::gemCloseWorkerInactive, false, true, executionEnvironment); EXPECT_FALSE(memoryManager.isAsyncDeleterEnabled()); EXPECT_EQ(nullptr, memoryManager.getDeferredDeleter()); } diff --git a/unit_tests/os_interface/windows/create_wddm_memory_manager.cpp b/unit_tests/os_interface/windows/create_wddm_memory_manager.cpp index 05531a3868..3126e9ad7f 100644 --- a/unit_tests/os_interface/windows/create_wddm_memory_manager.cpp +++ b/unit_tests/os_interface/windows/create_wddm_memory_manager.cpp @@ -15,10 +15,10 @@ namespace OCLRT { bool overrideMemoryManagerCreation = true; -std::unique_ptr MemoryManager::createMemoryManager(bool enable64KBpages, bool enableLocalMemory, ExecutionEnvironment &executionEnvironment) { +std::unique_ptr MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment) { if (overrideMemoryManagerCreation) { - return std::make_unique(enable64KBpages, enableLocalMemory, executionEnvironment); + return std::make_unique(executionEnvironment); } - return std::make_unique(enable64KBpages, enableLocalMemory, executionEnvironment.osInterface->get()->getWddm(), executionEnvironment); + return std::make_unique(executionEnvironment.osInterface->get()->getWddm(), executionEnvironment); } } // namespace OCLRT diff --git a/unit_tests/os_interface/windows/device_command_stream_tests.cpp b/unit_tests/os_interface/windows/device_command_stream_tests.cpp index be600b908f..ed039d8cbd 100644 --- a/unit_tests/os_interface/windows/device_command_stream_tests.cpp +++ b/unit_tests/os_interface/windows/device_command_stream_tests.cpp @@ -121,7 +121,7 @@ class WddmCommandStreamWithMockGdiFixture { ASSERT_NE(wddm, nullptr); DebugManager.flags.CsrDispatchMode.set(static_cast(DispatchMode::ImmediateDispatch)); this->csr = new MockWddmCsr(*executionEnvironment); - memoryManager = new WddmMemoryManager(false, false, wddm, *executionEnvironment); + memoryManager = new WddmMemoryManager(wddm, *executionEnvironment); ASSERT_NE(nullptr, memoryManager); executionEnvironment->memoryManager.reset(memoryManager); device = std::unique_ptr(Device::create(platformDevices[0], executionEnvironment, 0u)); @@ -243,9 +243,8 @@ TEST(WddmPreemptionHeaderTests, givenWddmCommandStreamReceiverWhenPreemptionIsOf executionEnvironment->setHwInfo(hwInfo); auto wddm = static_cast(executionEnvironment->osInterface->get()->getWddm()); executionEnvironment->commandStreamReceivers.resize(1); - executionEnvironment->commandStreamReceivers[0].push_back( - std::make_unique>(*executionEnvironment)); - executionEnvironment->memoryManager.reset(new WddmMemoryManager(false, false, wddm, *executionEnvironment)); + executionEnvironment->commandStreamReceivers[0].push_back(std::make_unique>(*executionEnvironment)); + executionEnvironment->memoryManager.reset(new MemoryManagerCreate(false, false, wddm, *executionEnvironment)); executionEnvironment->commandStreamReceivers[0][0]->overrideDispatchPolicy(DispatchMode::ImmediateDispatch); OsContextWin osContext(*wddm, 0u, 1, HwHelper::get(platformDevices[0]->pPlatform->eRenderCoreFamily).getGpgpuEngineInstances()[0], PreemptionHelper::getDefaultPreemptionMode(*hwInfo), false); @@ -271,7 +270,7 @@ TEST(WddmPreemptionHeaderTests, givenWddmCommandStreamReceiverWhenPreemptionIsOn auto wddm = static_cast(executionEnvironment->osInterface->get()->getWddm()); executionEnvironment->commandStreamReceivers.resize(1); executionEnvironment->commandStreamReceivers[0].push_back(std::make_unique>(*executionEnvironment)); - executionEnvironment->memoryManager.reset(new WddmMemoryManager(false, false, wddm, *executionEnvironment)); + executionEnvironment->memoryManager.reset(new MemoryManagerCreate(false, false, wddm, *executionEnvironment)); executionEnvironment->commandStreamReceivers[0][0]->overrideDispatchPolicy(DispatchMode::ImmediateDispatch); OsContextWin osContext(*wddm, 0u, 1, HwHelper::get(platformDevices[0]->pPlatform->eRenderCoreFamily).getGpgpuEngineInstances()[0], PreemptionHelper::getDefaultPreemptionMode(*hwInfo), false); @@ -893,7 +892,7 @@ HWTEST_P(WddmCsrCompressionParameterizedTest, givenEnabledCompressionWhenFlushin auto mockWddmCsr = new MockWddmCsr(*executionEnvironment); mockWddmCsr->createPageTableManager(); mockWddmCsr->overrideDispatchPolicy(DispatchMode::BatchedDispatch); - executionEnvironment->memoryManager.reset(new WddmMemoryManager(false, false, executionEnvironment->osInterface->get()->getWddm(), *executionEnvironment)); + executionEnvironment->memoryManager.reset(new WddmMemoryManager(executionEnvironment->osInterface->get()->getWddm(), *executionEnvironment)); auto mockMngr = reinterpret_cast(myMockWddm->getPageTableManager()); std::unique_ptr device(Device::create(hwInfo, executionEnvironment, 0u)); @@ -939,7 +938,7 @@ HWTEST_F(WddmCsrCompressionTests, givenDisabledCompressionWhenFlushingThenDontIn auto mockWddmCsr = new MockWddmCsr(*executionEnvironment); mockWddmCsr->overrideDispatchPolicy(DispatchMode::BatchedDispatch); - executionEnvironment->memoryManager.reset(new WddmMemoryManager(false, false, executionEnvironment->osInterface->get()->getWddm(), *executionEnvironment)); + executionEnvironment->memoryManager.reset(new WddmMemoryManager(executionEnvironment->osInterface->get()->getWddm(), *executionEnvironment)); std::unique_ptr device(Device::create(hwInfo, executionEnvironment, 0u)); device->resetCommandStreamReceiver(mockWddmCsr); diff --git a/unit_tests/os_interface/windows/mock_wddm_memory_manager.h b/unit_tests/os_interface/windows/mock_wddm_memory_manager.h index bebb97d698..dde0b12406 100644 --- a/unit_tests/os_interface/windows/mock_wddm_memory_manager.h +++ b/unit_tests/os_interface/windows/mock_wddm_memory_manager.h @@ -9,9 +9,10 @@ #include "runtime/memory_manager/deferred_deleter.h" #include "runtime/os_interface/windows/wddm_memory_manager.h" #include "unit_tests/mocks/mock_host_ptr_manager.h" +#include "unit_tests/mocks/mock_memory_manager.h" namespace OCLRT { -class MockWddmMemoryManager : public WddmMemoryManager { +class MockWddmMemoryManager : public MemoryManagerCreate { using BaseClass = WddmMemoryManager; public: @@ -21,9 +22,9 @@ class MockWddmMemoryManager : public WddmMemoryManager { using BaseClass::allocateGraphicsMemoryWithProperties; using BaseClass::createGraphicsAllocation; using BaseClass::createWddmAllocation; - using BaseClass::WddmMemoryManager; + using MemoryManagerCreate::MemoryManagerCreate; - MockWddmMemoryManager(Wddm *wddm, ExecutionEnvironment &executionEnvironment) : WddmMemoryManager(false, false, wddm, executionEnvironment) { + MockWddmMemoryManager(Wddm *wddm, ExecutionEnvironment &executionEnvironment) : MemoryManagerCreate(false, false, wddm, executionEnvironment) { hostPtrManager.reset(new MockHostPtrManager); }; void setDeferredDeleter(DeferredDeleter *deleter) { diff --git a/unit_tests/os_interface/windows/wddm20_tests.cpp b/unit_tests/os_interface/windows/wddm20_tests.cpp index 5134ca00df..9d17720d24 100644 --- a/unit_tests/os_interface/windows/wddm20_tests.cpp +++ b/unit_tests/os_interface/windows/wddm20_tests.cpp @@ -22,6 +22,7 @@ #include "unit_tests/helpers/debug_manager_state_restore.h" #include "unit_tests/mocks/mock_gfx_partition.h" #include "unit_tests/mocks/mock_gmm_resource_info.h" +#include "unit_tests/mocks/mock_memory_manager.h" #include "unit_tests/os_interface/windows/mock_wddm_allocation.h" #include "unit_tests/os_interface/windows/wddm_fixture.h" @@ -171,7 +172,7 @@ TEST_F(Wddm20Tests, whenInitializeWddmThenContextIsCreated) { } TEST_F(Wddm20Tests, allocation) { - OsAgnosticMemoryManager mm(false, false, *executionEnvironment); + OsAgnosticMemoryManager mm(*executionEnvironment); WddmAllocation allocation(GraphicsAllocation::AllocationType::UNDECIDED, mm.allocateSystemMemory(100, 0), 100, nullptr, MemoryPool::MemoryNull, false); Gmm *gmm = GmmHelperFunctions::getGmm(allocation.getUnderlyingBuffer(), allocation.getUnderlyingBufferSize()); @@ -303,7 +304,7 @@ TEST_F(Wddm20WithMockGdiDllTests, GivenThreeOsHandlesWhenAskedForDestroyAllocati } TEST_F(Wddm20Tests, mapAndFreeGpuVa) { - OsAgnosticMemoryManager mm(false, false, *executionEnvironment); + OsAgnosticMemoryManager mm(*executionEnvironment); WddmAllocation allocation(GraphicsAllocation::AllocationType::UNDECIDED, mm.allocateSystemMemory(100, 0), 100, nullptr, MemoryPool::MemoryNull, false); Gmm *gmm = GmmHelperFunctions::getGmm(allocation.getUnderlyingBuffer(), allocation.getUnderlyingBufferSize()); @@ -328,7 +329,7 @@ TEST_F(Wddm20Tests, mapAndFreeGpuVa) { } TEST_F(Wddm20Tests, givenNullAllocationWhenCreateThenAllocateAndMap) { - OsAgnosticMemoryManager mm(false, false, *executionEnvironment); + OsAgnosticMemoryManager mm(*executionEnvironment); WddmAllocation allocation(GraphicsAllocation::AllocationType::UNDECIDED, nullptr, 100, nullptr, MemoryPool::MemoryNull, false); Gmm *gmm = GmmHelperFunctions::getGmm(allocation.getUnderlyingBuffer(), allocation.getUnderlyingBufferSize()); @@ -348,7 +349,7 @@ TEST_F(Wddm20Tests, givenNullAllocationWhenCreateThenAllocateAndMap) { } TEST_F(Wddm20Tests, makeResidentNonResident) { - OsAgnosticMemoryManager mm(false, false, *executionEnvironment); + OsAgnosticMemoryManager mm(*executionEnvironment); WddmAllocation allocation(GraphicsAllocation::AllocationType::UNDECIDED, mm.allocateSystemMemory(100, 0), 100, nullptr, MemoryPool::MemoryNull, false); Gmm *gmm = GmmHelperFunctions::getGmm(allocation.getUnderlyingBuffer(), allocation.getUnderlyingBufferSize()); @@ -387,7 +388,7 @@ TEST_F(Wddm20WithMockGdiDllTests, givenSharedHandleWhenCreateGraphicsAllocationF auto status = setSizesFcn(gmm->gmmResourceInfo.get(), 1u, 1024u, 1u); EXPECT_EQ(0u, status); - WddmMemoryManager mm(false, false, wddm, *executionEnvironment); + MemoryManagerCreate mm(false, false, wddm, *executionEnvironment); auto graphicsAllocation = mm.createGraphicsAllocationFromSharedHandle(ALLOCATION_HANDLE, false); auto wddmAllocation = (WddmAllocation *)graphicsAllocation; @@ -423,7 +424,7 @@ TEST_F(Wddm20WithMockGdiDllTests, givenSharedHandleWhenCreateGraphicsAllocationF auto status = setSizesFcn(gmm->gmmResourceInfo.get(), 1u, 1024u, 1u); EXPECT_EQ(0u, status); - WddmMemoryManager mm(false, false, wddm, *executionEnvironment); + MemoryManagerCreate mm(false, false, wddm, *executionEnvironment); auto graphicsAllocation = mm.createGraphicsAllocationFromSharedHandle(ALLOCATION_HANDLE, false); auto wddmAllocation = (WddmAllocation *)graphicsAllocation; @@ -939,7 +940,7 @@ TEST_F(WddmLockWithMakeResidentTests, whenEvictingTemporaryResourceThenOtherReso } TEST_F(WddmLockWithMakeResidentTests, whenAlllocationNeedsBlockingMakeResidentBeforeLockThenLockWithBlockingMakeResident) { - WddmMemoryManager memoryManager(false, false, wddm, *executionEnvironment); + WddmMemoryManager memoryManager(wddm, *executionEnvironment); MockWddmAllocation allocation; allocation.needsMakeResidentBeforeLock = false; memoryManager.lockResource(&allocation); diff --git a/unit_tests/os_interface/windows/wddm_memory_manager_tests.cpp b/unit_tests/os_interface/windows/wddm_memory_manager_tests.cpp index a48c063cd5..a12269037a 100644 --- a/unit_tests/os_interface/windows/wddm_memory_manager_tests.cpp +++ b/unit_tests/os_interface/windows/wddm_memory_manager_tests.cpp @@ -110,7 +110,7 @@ TEST(WddmMemoryManagerAllocator32BitTest, allocator32BitIsCreatedWithCorrectBase uint64_t size = 0x9000; wddm->setHeap32(base, size); - std::unique_ptr memoryManager = std::unique_ptr(new WddmMemoryManager(false, false, wddm.get(), executionEnvironment)); + std::unique_ptr memoryManager = std::unique_ptr(new WddmMemoryManager(wddm.get(), executionEnvironment)); ASSERT_NE(nullptr, memoryManager->allocator32Bit.get()); @@ -1281,7 +1281,7 @@ TEST_F(MockWddmMemoryManagerTest, givenEnabled64kbpagesWhenCreatingGraphicsMemor auto wddm = std::make_unique(); EXPECT_TRUE(wddm->init(PreemptionHelper::getDefaultPreemptionMode(*platformDevices[0]))); DebugManager.flags.Enable64kbpages.set(true); - WddmMemoryManager memoryManager64k(true, false, wddm.get(), *executionEnvironment); + MemoryManagerCreate memoryManager64k(true, false, wddm.get(), *executionEnvironment); EXPECT_EQ(0, wddm->createAllocationResult.called); GraphicsAllocation *galloc = memoryManager64k.allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize64k, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY}); @@ -1337,7 +1337,7 @@ TEST_F(MockWddmMemoryManagerTest, givenWddmWhenallocateGraphicsMemory64kbThenLoc TEST_F(MockWddmMemoryManagerTest, givenDefaultMemoryManagerWhenItIsCreatedThenAsyncDeleterEnabledIsTrue) { auto wddm = std::make_unique(); - WddmMemoryManager memoryManager(false, false, wddm.get(), *executionEnvironment); + WddmMemoryManager memoryManager(wddm.get(), *executionEnvironment); EXPECT_TRUE(memoryManager.isAsyncDeleterEnabled()); EXPECT_NE(nullptr, memoryManager.getDeferredDeleter()); } @@ -1366,7 +1366,7 @@ TEST_F(MockWddmMemoryManagerTest, givenEnabledAsyncDeleterFlagWhenMemoryManagerI bool defaultEnableDeferredDeleterFlag = DebugManager.flags.EnableDeferredDeleter.get(); DebugManager.flags.EnableDeferredDeleter.set(true); auto wddm = std::make_unique(); - WddmMemoryManager memoryManager(false, false, wddm.get(), *executionEnvironment); + WddmMemoryManager memoryManager(wddm.get(), *executionEnvironment); EXPECT_TRUE(memoryManager.isAsyncDeleterEnabled()); EXPECT_NE(nullptr, memoryManager.getDeferredDeleter()); DebugManager.flags.EnableDeferredDeleter.set(defaultEnableDeferredDeleterFlag); @@ -1376,7 +1376,7 @@ TEST_F(MockWddmMemoryManagerTest, givenDisabledAsyncDeleterFlagWhenMemoryManager bool defaultEnableDeferredDeleterFlag = DebugManager.flags.EnableDeferredDeleter.get(); DebugManager.flags.EnableDeferredDeleter.set(false); auto wddm = std::make_unique(); - WddmMemoryManager memoryManager(false, false, wddm.get(), *executionEnvironment); + WddmMemoryManager memoryManager(wddm.get(), *executionEnvironment); EXPECT_FALSE(memoryManager.isAsyncDeleterEnabled()); EXPECT_EQ(nullptr, memoryManager.getDeferredDeleter()); DebugManager.flags.EnableDeferredDeleter.set(defaultEnableDeferredDeleterFlag); @@ -1385,7 +1385,7 @@ TEST_F(MockWddmMemoryManagerTest, givenDisabledAsyncDeleterFlagWhenMemoryManager TEST_F(MockWddmMemoryManagerTest, givenPageTableManagerWhenMapAuxGpuVaCalledThenUseWddmToMap) { auto myWddm = std::make_unique(); EXPECT_TRUE(myWddm->init(PreemptionHelper::getDefaultPreemptionMode(*platformDevices[0]))); - WddmMemoryManager memoryManager(false, false, myWddm.get(), *executionEnvironment); + WddmMemoryManager memoryManager(myWddm.get(), *executionEnvironment); auto mockMngr = new NiceMock(); myWddm->resetPageTableManager(mockMngr); @@ -1438,7 +1438,7 @@ TEST_F(MockWddmMemoryManagerTest, givenRenderCompressedAllocationWhenMappedGpuVa TEST_F(MockWddmMemoryManagerTest, givenRenderCompressedAllocationWhenReleaseingThenUnmapAuxVa) { auto wddm = std::make_unique(); EXPECT_TRUE(wddm->init(PreemptionHelper::getDefaultPreemptionMode(*platformDevices[0]))); - WddmMemoryManager memoryManager(false, false, wddm.get(), *executionEnvironment); + WddmMemoryManager memoryManager(wddm.get(), *executionEnvironment); D3DGPU_VIRTUAL_ADDRESS gpuVa = 123; auto mockMngr = new NiceMock(); @@ -1464,7 +1464,7 @@ TEST_F(MockWddmMemoryManagerTest, givenRenderCompressedAllocationWhenReleaseingT TEST_F(MockWddmMemoryManagerTest, givenNonRenderCompressedAllocationWhenReleaseingThenDontUnmapAuxVa) { auto wddm = std::make_unique(); EXPECT_TRUE(wddm->init(PreemptionHelper::getDefaultPreemptionMode(*platformDevices[0]))); - WddmMemoryManager memoryManager(false, false, wddm.get(), *executionEnvironment); + WddmMemoryManager memoryManager(wddm.get(), *executionEnvironment); auto mockMngr = new NiceMock(); wddm->resetPageTableManager(mockMngr); @@ -1508,7 +1508,7 @@ TEST_F(MockWddmMemoryManagerTest, givenRenderCompressedFlagSetWhenInternalIsUnse D3DGPU_VIRTUAL_ADDRESS gpuVa = 0; auto wddm = std::make_unique(); EXPECT_TRUE(wddm->init(PreemptionHelper::getDefaultPreemptionMode(*platformDevices[0]))); - WddmMemoryManager memoryManager(false, false, wddm.get(), *executionEnvironment); + WddmMemoryManager memoryManager(wddm.get(), *executionEnvironment); auto mockMngr = new NiceMock(); wddm->resetPageTableManager(mockMngr); @@ -1580,8 +1580,7 @@ TEST(WddmMemoryManagerCleanupTest, givenUsedTagAllocationInWddmMemoryManagerWhen executionEnvironment.osInterface->get()->setWddm(wddm); executionEnvironment.commandStreamReceivers.resize(1); executionEnvironment.commandStreamReceivers[0].push_back(std::unique_ptr(csr)); - - executionEnvironment.memoryManager = std::make_unique(false, false, wddm, executionEnvironment); + executionEnvironment.memoryManager = std::make_unique(wddm, executionEnvironment); auto osContext = executionEnvironment.memoryManager->createAndRegisterOsContext(csr, ENGINE_RCS, 1, preemptionMode, false); csr->setupContext(*osContext); EXPECT_EQ(csr, executionEnvironment.memoryManager->getDefaultCommandStreamReceiver(0)); diff --git a/unit_tests/preemption/preemption_tests.cpp b/unit_tests/preemption/preemption_tests.cpp index 450e88c0d7..51dfd050e0 100644 --- a/unit_tests/preemption/preemption_tests.cpp +++ b/unit_tests/preemption/preemption_tests.cpp @@ -467,7 +467,7 @@ HWTEST_F(MidThreadPreemptionTests, createCsrSurfaceNoWa) { HWTEST_F(MidThreadPreemptionTests, givenMidThreadPreemptionWhenFailingOnCsrSurfaceAllocationThenFailToCreateDevice) { class FailingMemoryManager : public OsAgnosticMemoryManager { public: - FailingMemoryManager(ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(false, false, executionEnvironment) {} + FailingMemoryManager(ExecutionEnvironment &executionEnvironment) : OsAgnosticMemoryManager(executionEnvironment) {} GraphicsAllocation *allocateGraphicsMemoryWithAlignment(const AllocationData &allocationData) override { if (++allocateGraphicsMemoryCount > HwHelper::get(platformDevices[0]->pPlatform->eRenderCoreFamily).getGpgpuEngineInstances().size()) { diff --git a/unit_tests/program/kernel_info_tests.cpp b/unit_tests/program/kernel_info_tests.cpp index 19dca51456..edc5575a7b 100644 --- a/unit_tests/program/kernel_info_tests.cpp +++ b/unit_tests/program/kernel_info_tests.cpp @@ -109,7 +109,7 @@ TEST(KernelInfo, decodeImageKernelArgument) { TEST(KernelInfoTest, givenKernelInfoWhenCreateKernelAllocationThenCopyWholeKernelHeapToKernelAllocation) { KernelInfo kernelInfo; ExecutionEnvironment executionEnvironment; - OsAgnosticMemoryManager memoryManager(false, false, executionEnvironment); + OsAgnosticMemoryManager memoryManager(executionEnvironment); SKernelBinaryHeaderCommon kernelHeader; const size_t heapSize = 0x40; char heap[heapSize]; @@ -138,7 +138,7 @@ class MyMemoryManager : public OsAgnosticMemoryManager { TEST(KernelInfoTest, givenKernelInfoWhenCreateKernelAllocationAndCannotAllocateMemoryThenReturnsFalse) { KernelInfo kernelInfo; ExecutionEnvironment executionEnvironment; - MyMemoryManager memoryManager(false, false, executionEnvironment); + MyMemoryManager memoryManager(executionEnvironment); SKernelBinaryHeaderCommon kernelHeader; kernelInfo.heapInfo.pKernelHeader = &kernelHeader; auto retVal = kernelInfo.createKernelAllocation(&memoryManager); diff --git a/unit_tests/sharings/gl/gl_arb_sync_event_tests.cpp b/unit_tests/sharings/gl/gl_arb_sync_event_tests.cpp index 5f12c73548..d5e4466d09 100644 --- a/unit_tests/sharings/gl/gl_arb_sync_event_tests.cpp +++ b/unit_tests/sharings/gl/gl_arb_sync_event_tests.cpp @@ -66,7 +66,7 @@ struct GlArbSyncEventTest : public ::testing::Test { void SetUp() override { executionEnvironment = platformImpl->peekExecutionEnvironment(); auto mockCsr = new MockCommandStreamReceiver(*executionEnvironment); - executionEnvironment->memoryManager = std::make_unique(false, false, *executionEnvironment); + executionEnvironment->memoryManager = std::make_unique(*executionEnvironment); device.reset(MockDevice::create(nullptr, executionEnvironment, 0u)); device->resetCommandStreamReceiver(mockCsr); ctx.reset(new MockContext); diff --git a/unit_tests/sharings/gl/gl_create_from_texture_tests.cpp b/unit_tests/sharings/gl/gl_create_from_texture_tests.cpp index 569cbb5a3a..3d5e9175bf 100644 --- a/unit_tests/sharings/gl/gl_create_from_texture_tests.cpp +++ b/unit_tests/sharings/gl/gl_create_from_texture_tests.cpp @@ -23,7 +23,7 @@ class CreateFromGlTexture : public ::testing::Test { // temp solution - we need to query size from GMM: class TempMM : public OsAgnosticMemoryManager { public: - TempMM() : OsAgnosticMemoryManager(false, false, *(new ExecutionEnvironment)) { + TempMM() : OsAgnosticMemoryManager(*(new ExecutionEnvironment)) { mockExecutionEnvironment.reset(&executionEnvironment); } GraphicsAllocation *createGraphicsAllocationFromSharedHandle(osHandle handle, bool requireSpecificBitness) override {