4343namespace OCLRT {
4444extern Wddm::CreateDXGIFactoryFcn getCreateDxgiFactory ();
4545extern Wddm::GetSystemInfoFcn getGetSystemInfo ();
46+ extern Wddm::VirtualAllocFcn getVirtualAlloc ();
47+ extern Wddm::VirtualFreeFcn getVirtualFree ();
4648
4749class WddmMemoryManager ;
4850
4951Wddm::CreateDXGIFactoryFcn Wddm::createDxgiFactory = getCreateDxgiFactory();
5052Wddm::GetSystemInfoFcn Wddm::getSystemInfo = getGetSystemInfo();
53+ Wddm::VirtualAllocFcn Wddm::virtualAllocFnc = getVirtualAlloc();
54+ Wddm::VirtualFreeFcn Wddm::virtualFreeFnc = getVirtualFree();
5155
5256Wddm::Wddm (Gdi *gdi) : initialized(false ),
5357 gdiAllocated (false ),
@@ -900,7 +904,7 @@ void Wddm::registerTrimCallback(PFND3DKMT_TRIMNOTIFICATIONCALLBACK callback, Wdd
900904
901905void Wddm::releaseReservedAddress (void *reservedAddress) {
902906 if (reservedAddress) {
903- auto status = virtualFreeWrapper (reservedAddress, 0 , MEM_RELEASE);
907+ auto status = virtualFree (reservedAddress, 0 , MEM_RELEASE);
904908 DEBUG_BREAK_IF (!status);
905909 }
906910}
@@ -922,22 +926,22 @@ void Wddm::resetPageTableManager(GmmPageTableMngr *newPageTableManager) {
922926}
923927
924928bool Wddm::reserveValidAddressRange (size_t size, void *&reservedMem) {
925- reservedMem = virtualAllocWrapper (nullptr , size, MEM_RESERVE, PAGE_READWRITE);
929+ reservedMem = virtualAlloc (nullptr , size, MEM_RESERVE, PAGE_READWRITE);
926930 if (reservedMem == nullptr ) {
927931 return false ;
928932 } else if (minAddress > reinterpret_cast <uintptr_t >(reservedMem)) {
929933 StackVec<void *, 100 > invalidAddrVector;
930934 invalidAddrVector.push_back (reservedMem);
931935 do {
932- reservedMem = virtualAllocWrapper (nullptr , size, MEM_RESERVE | MEM_TOP_DOWN, PAGE_READWRITE);
936+ reservedMem = virtualAlloc (nullptr , size, MEM_RESERVE | MEM_TOP_DOWN, PAGE_READWRITE);
933937 if (minAddress > reinterpret_cast <uintptr_t >(reservedMem) && reservedMem != nullptr ) {
934938 invalidAddrVector.push_back (reservedMem);
935939 } else {
936940 break ;
937941 }
938942 } while (1 );
939943 for (auto &it : invalidAddrVector) {
940- auto status = virtualFreeWrapper (it, 0 , MEM_RELEASE);
944+ auto status = virtualFree (it, 0 , MEM_RELEASE);
941945 DEBUG_BREAK_IF (!status);
942946 }
943947 if (reservedMem == nullptr ) {
@@ -947,4 +951,11 @@ bool Wddm::reserveValidAddressRange(size_t size, void *&reservedMem) {
947951 return true ;
948952}
949953
954+ void *Wddm::virtualAlloc (void *inPtr, size_t size, unsigned long flags, unsigned long type) {
955+ return virtualAllocFnc (inPtr, size, flags, type);
956+ }
957+ int Wddm::virtualFree (void *ptr, size_t size, unsigned long flags) {
958+ return virtualFreeFnc (ptr, size, flags);
959+ }
960+
950961} // namespace OCLRT
0 commit comments