diff --git a/runtime/memory_manager/memory_manager.cpp b/runtime/memory_manager/memory_manager.cpp index 717f3aae9d..8ecb8f67de 100644 --- a/runtime/memory_manager/memory_manager.cpp +++ b/runtime/memory_manager/memory_manager.cpp @@ -289,7 +289,7 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo return true; } -GraphicsAllocation *MemoryManager::allocateGraphicsMemoryInPreferredPool(AllocationProperties properties, DevicesBitfield devicesBitfield, const void *hostPtr) { +GraphicsAllocation *MemoryManager::allocateGraphicsMemoryInPreferredPool(const AllocationProperties &properties, DevicesBitfield devicesBitfield, const void *hostPtr) { AllocationData allocationData; getAllocationData(allocationData, properties, devicesBitfield, hostPtr); diff --git a/runtime/memory_manager/memory_manager.h b/runtime/memory_manager/memory_manager.h index 3563dbb4ed..4eba701f2e 100644 --- a/runtime/memory_manager/memory_manager.h +++ b/runtime/memory_manager/memory_manager.h @@ -118,7 +118,7 @@ class MemoryManager { } } - GraphicsAllocation *allocateGraphicsMemoryInPreferredPool(AllocationProperties properties, DevicesBitfield devicesBitfield, const void *hostPtr); + GraphicsAllocation *allocateGraphicsMemoryInPreferredPool(const AllocationProperties &properties, DevicesBitfield devicesBitfield, const void *hostPtr); virtual GraphicsAllocation *createGraphicsAllocationFromSharedHandle(osHandle handle, bool requireSpecificBitness) = 0; @@ -232,7 +232,7 @@ class MemoryManager { GraphicsAllocation *allocateGraphicsMemory(const AllocationData &allocationData); virtual GraphicsAllocation *allocateGraphicsMemoryWithHostPtr(const AllocationData &allocationData); virtual GraphicsAllocation *allocateGraphicsMemoryWithAlignment(const AllocationData &allocationData) = 0; - virtual GraphicsAllocation *allocateGraphicsMemory64kb(AllocationData allocationData) = 0; + virtual GraphicsAllocation *allocateGraphicsMemory64kb(const AllocationData &allocationData) = 0; virtual GraphicsAllocation *allocate32BitGraphicsMemoryImpl(const AllocationData &allocationData) = 0; virtual GraphicsAllocation *allocateGraphicsMemoryInDevicePool(const AllocationData &allocationData, AllocationStatus &status) { status = AllocationStatus::Error; diff --git a/runtime/memory_manager/os_agnostic_memory_manager.cpp b/runtime/memory_manager/os_agnostic_memory_manager.cpp index bc9e4fcd9b..5da81fc7db 100644 --- a/runtime/memory_manager/os_agnostic_memory_manager.cpp +++ b/runtime/memory_manager/os_agnostic_memory_manager.cpp @@ -70,10 +70,11 @@ GraphicsAllocation *OsAgnosticMemoryManager::allocateGraphicsMemoryForNonSvmHost return memoryAllocation; } -GraphicsAllocation *OsAgnosticMemoryManager::allocateGraphicsMemory64kb(AllocationData allocationData) { - allocationData.size = alignUp(allocationData.size, MemoryConstants::pageSize64k); - allocationData.alignment = MemoryConstants::pageSize64k; - auto memoryAllocation = allocateGraphicsMemoryWithAlignment(allocationData); +GraphicsAllocation *OsAgnosticMemoryManager::allocateGraphicsMemory64kb(const AllocationData &allocationData) { + AllocationData allocationData64kb = allocationData; + allocationData64kb.size = alignUp(allocationData.size, MemoryConstants::pageSize64k); + allocationData64kb.alignment = MemoryConstants::pageSize64k; + auto memoryAllocation = allocateGraphicsMemoryWithAlignment(allocationData64kb); if (memoryAllocation) { static_cast(memoryAllocation)->overrideMemoryPool(MemoryPool::System64KBPages); } diff --git a/runtime/memory_manager/os_agnostic_memory_manager.h b/runtime/memory_manager/os_agnostic_memory_manager.h index 6631dd6600..c468052e10 100644 --- a/runtime/memory_manager/os_agnostic_memory_manager.h +++ b/runtime/memory_manager/os_agnostic_memory_manager.h @@ -64,7 +64,7 @@ class OsAgnosticMemoryManager : public MemoryManager { protected: GraphicsAllocation *createGraphicsAllocation(OsHandleStorage &handleStorage, const AllocationData &allocationData) override; GraphicsAllocation *allocateGraphicsMemoryWithAlignment(const AllocationData &allocationData) override; - GraphicsAllocation *allocateGraphicsMemory64kb(AllocationData allocationData) override; + GraphicsAllocation *allocateGraphicsMemory64kb(const AllocationData &allocationData) override; GraphicsAllocation *allocateGraphicsMemoryForImageImpl(const AllocationData &allocationData, std::unique_ptr gmm) override; void *lockResourceImpl(GraphicsAllocation &graphicsAllocation) override { return ptrOffset(graphicsAllocation.getUnderlyingBuffer(), static_cast(graphicsAllocation.getAllocationOffset())); } diff --git a/runtime/os_interface/linux/drm_memory_manager.cpp b/runtime/os_interface/linux/drm_memory_manager.cpp index cd01424182..ed35577cc8 100644 --- a/runtime/os_interface/linux/drm_memory_manager.cpp +++ b/runtime/os_interface/linux/drm_memory_manager.cpp @@ -305,7 +305,7 @@ DrmAllocation *DrmMemoryManager::allocateGraphicsMemoryForNonSvmHostPtr(size_t s return allocation; } -DrmAllocation *DrmMemoryManager::allocateGraphicsMemory64kb(AllocationData allocationData) { +DrmAllocation *DrmMemoryManager::allocateGraphicsMemory64kb(const AllocationData &allocationData) { return nullptr; } diff --git a/runtime/os_interface/linux/drm_memory_manager.h b/runtime/os_interface/linux/drm_memory_manager.h index 34882c40b6..7477e7fca7 100644 --- a/runtime/os_interface/linux/drm_memory_manager.h +++ b/runtime/os_interface/linux/drm_memory_manager.h @@ -66,7 +66,7 @@ class DrmMemoryManager : public MemoryManager { DrmAllocation *createGraphicsAllocation(OsHandleStorage &handleStorage, const AllocationData &allocationData) override; DrmAllocation *allocateGraphicsMemoryWithAlignment(const AllocationData &allocationData) override; DrmAllocation *allocateGraphicsMemoryWithHostPtr(const AllocationData &allocationData) override; - DrmAllocation *allocateGraphicsMemory64kb(AllocationData allocationData) override; + DrmAllocation *allocateGraphicsMemory64kb(const AllocationData &allocationData) override; GraphicsAllocation *allocateGraphicsMemoryForImageImpl(const AllocationData &allocationData, std::unique_ptr gmm) override; void *lockResourceImpl(GraphicsAllocation &graphicsAllocation) override; diff --git a/runtime/os_interface/windows/wddm_memory_manager.cpp b/runtime/os_interface/windows/wddm_memory_manager.cpp index 027eb1c260..3f459f4e24 100644 --- a/runtime/os_interface/windows/wddm_memory_manager.cpp +++ b/runtime/os_interface/windows/wddm_memory_manager.cpp @@ -59,7 +59,7 @@ GraphicsAllocation *WddmMemoryManager::allocateGraphicsMemoryForImageImpl(const return allocation.release(); } -GraphicsAllocation *WddmMemoryManager::allocateGraphicsMemory64kb(AllocationData allocationData) { +GraphicsAllocation *WddmMemoryManager::allocateGraphicsMemory64kb(const AllocationData &allocationData) { size_t sizeAligned = alignUp(allocationData.size, MemoryConstants::pageSize64k); auto wddmAllocation = std::make_unique(allocationData.type, nullptr, sizeAligned, nullptr, MemoryPool::System64KBPages, !!allocationData.flags.multiOsContextCapable); diff --git a/runtime/os_interface/windows/wddm_memory_manager.h b/runtime/os_interface/windows/wddm_memory_manager.h index 90e83d5407..52bd2b6400 100644 --- a/runtime/os_interface/windows/wddm_memory_manager.h +++ b/runtime/os_interface/windows/wddm_memory_manager.h @@ -64,7 +64,7 @@ class WddmMemoryManager : public MemoryManager { protected: GraphicsAllocation *createGraphicsAllocation(OsHandleStorage &handleStorage, const AllocationData &allocationData) override; GraphicsAllocation *allocateGraphicsMemoryWithAlignment(const AllocationData &allocationData) override; - GraphicsAllocation *allocateGraphicsMemory64kb(AllocationData allocationData) override; + GraphicsAllocation *allocateGraphicsMemory64kb(const AllocationData &allocationData) override; GraphicsAllocation *allocateGraphicsMemoryForImageImpl(const AllocationData &allocationData, std::unique_ptr gmm) override; void *lockResourceImpl(GraphicsAllocation &graphicsAllocation) override; diff --git a/unit_tests/mem_obj/buffer_pin_tests.cpp b/unit_tests/mem_obj/buffer_pin_tests.cpp index 5cc5d0b2fb..84fec4778d 100644 --- a/unit_tests/mem_obj/buffer_pin_tests.cpp +++ b/unit_tests/mem_obj/buffer_pin_tests.cpp @@ -30,7 +30,7 @@ class TestedMemoryManager : public OsAgnosticMemoryManager { } return OsAgnosticMemoryManager::allocateGraphicsMemoryWithAlignment(allocationData); }; - GraphicsAllocation *allocateGraphicsMemory64kb(AllocationData allocationData) override { + GraphicsAllocation *allocateGraphicsMemory64kb(const AllocationData &allocationData) override { return nullptr; }; GraphicsAllocation *allocateGraphicsMemoryWithHostPtr(const AllocationData &properties) override { diff --git a/unit_tests/mocks/mock_memory_manager.cpp b/unit_tests/mocks/mock_memory_manager.cpp index 233d7b6f06..76b96029bd 100644 --- a/unit_tests/mocks/mock_memory_manager.cpp +++ b/unit_tests/mocks/mock_memory_manager.cpp @@ -47,7 +47,7 @@ GraphicsAllocation *MockMemoryManager::allocateGraphicsMemoryForImage(const Allo return allocation; } -GraphicsAllocation *MockMemoryManager::allocateGraphicsMemory64kb(AllocationData allocationData) { +GraphicsAllocation *MockMemoryManager::allocateGraphicsMemory64kb(const AllocationData &allocationData) { allocation64kbPageCreated = true; preferRenderCompressedFlagPassed = allocationData.flags.preferRenderCompressed; diff --git a/unit_tests/mocks/mock_memory_manager.h b/unit_tests/mocks/mock_memory_manager.h index 762cfd1347..5ed3944011 100644 --- a/unit_tests/mocks/mock_memory_manager.h +++ b/unit_tests/mocks/mock_memory_manager.h @@ -39,7 +39,7 @@ class MockMemoryManager : public OsAgnosticMemoryManager { MockMemoryManager(bool enable64pages, bool enableLocalMemory) : OsAgnosticMemoryManager(enable64pages, enableLocalMemory, *(new ExecutionEnvironment)) { mockExecutionEnvironment.reset(&executionEnvironment); } - GraphicsAllocation *allocateGraphicsMemory64kb(AllocationData allocationData) override; + GraphicsAllocation *allocateGraphicsMemory64kb(const AllocationData &allocationData) override; void setDeferredDeleter(DeferredDeleter *deleter); void overrideAsyncDeleterFlag(bool newValue); GraphicsAllocation *allocateGraphicsMemoryForImage(const AllocationData &allocationData) override; @@ -127,7 +127,7 @@ class FailMemoryManager : public MockMemoryManager { return OsAgnosticMemoryManager::allocateGraphicsMemoryWithAlignment(allocationData); }; GraphicsAllocation *allocateGraphicsMemoryForNonSvmHostPtr(size_t size, void *cpuPtr) override { return nullptr; } - GraphicsAllocation *allocateGraphicsMemory64kb(AllocationData allocationData) override { + GraphicsAllocation *allocateGraphicsMemory64kb(const AllocationData &allocationData) override { return nullptr; }; GraphicsAllocation *allocateGraphicsMemory(const AllocationProperties &properties, const void *ptr) override {