From 007196413859970b737f07883eac93bef5645db6 Mon Sep 17 00:00:00 2001 From: Michal Mrozek Date: Wed, 27 Nov 2019 11:44:32 +0100 Subject: [PATCH] Do not call malloc for Virtual Alloc mock. Change-Id: Ic6689716c4f4cdfa8f18eaccb39e375f9f48b56c Signed-off-by: Michal Mrozek --- runtime/os_interface/windows/wddm_memory_manager.cpp | 2 +- unit_tests/mocks/mock_wddm.h | 3 +++ unit_tests/os_interface/windows/wddm_calls.cpp | 3 +-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/runtime/os_interface/windows/wddm_memory_manager.cpp b/runtime/os_interface/windows/wddm_memory_manager.cpp index 6ded8bfa9c..7f45659383 100644 --- a/runtime/os_interface/windows/wddm_memory_manager.cpp +++ b/runtime/os_interface/windows/wddm_memory_manager.cpp @@ -499,7 +499,7 @@ bool WddmMemoryManager::createWddmAllocation(WddmAllocation *allocation, void *r } bool WddmMemoryManager::mapGpuVaForOneHandleAllocation(WddmAllocation *allocation, const void *preferredGpuVirtualAddress) { - D3DGPU_VIRTUAL_ADDRESS addressToMap = reinterpret_cast(preferredGpuVirtualAddress); + D3DGPU_VIRTUAL_ADDRESS addressToMap = castToUint64(const_cast(preferredGpuVirtualAddress)); auto heapIndex = selectHeap(allocation, preferredGpuVirtualAddress != nullptr, is32bit || executionEnvironment.isFullRangeSvm()); if (!executionEnvironment.isFullRangeSvm()) { addressToMap = 0u; diff --git a/unit_tests/mocks/mock_wddm.h b/unit_tests/mocks/mock_wddm.h index d8da3804a2..1b14ebc136 100644 --- a/unit_tests/mocks/mock_wddm.h +++ b/unit_tests/mocks/mock_wddm.h @@ -8,6 +8,7 @@ #pragma once #include "core/memory_manager/host_ptr_defines.h" +#include "core/memory_manager/memory_constants.h" #include "runtime/os_interface/windows/wddm/wddm.h" #include "runtime/os_interface/windows/wddm_residency_allocations_container.h" #include "runtime/os_interface/windows/windows_defs.h" @@ -21,6 +22,8 @@ namespace NEO { class GraphicsAllocation; +constexpr auto virtualAllocAddress = is64bit ? 0x7FFFF0000000 : 0xFF000000; + class WddmMock : public Wddm { public: using Wddm::adapter; diff --git a/unit_tests/os_interface/windows/wddm_calls.cpp b/unit_tests/os_interface/windows/wddm_calls.cpp index e62a986f8a..d5ad83c6fd 100644 --- a/unit_tests/os_interface/windows/wddm_calls.cpp +++ b/unit_tests/os_interface/windows/wddm_calls.cpp @@ -12,12 +12,11 @@ namespace NEO { BOOL WINAPI ULTVirtualFree(LPVOID ptr, SIZE_T size, DWORD flags) { - free(ptr); return 1; } LPVOID WINAPI ULTVirtualAlloc(LPVOID inPtr, SIZE_T size, DWORD flags, DWORD type) { - return malloc(size); + return reinterpret_cast(virtualAllocAddress); } Wddm::CreateDXGIFactoryFcn getCreateDxgiFactory() {