diff --git a/projects/clr/rocclr/device/rocm/rocdevice.cpp b/projects/clr/rocclr/device/rocm/rocdevice.cpp index 5eee23e650..f59043d686 100644 --- a/projects/clr/rocclr/device/rocm/rocdevice.cpp +++ b/projects/clr/rocclr/device/rocm/rocdevice.cpp @@ -2400,8 +2400,11 @@ void* Device::svmAlloc(amd::Context& context, size_t size, size_t alignment, cl_ return nullptr; } - if (mem->getSvmPtr() != nullptr || mem->getMemFlags() & ROCCLR_MEM_PHYMEM) { - // add the information to context so that we can use it later. + // add the information to context so that we can use it later. + if (mem->getMemFlags() & ROCCLR_MEM_PHYMEM) { + mem->setSvmPtr(reinterpret_cast(mem->getUserData().hsa_handle)); + amd::MemObjMap::AddMemObj(mem->getSvmPtr(), mem); + } else if (mem->getSvmPtr() != nullptr) { amd::MemObjMap::AddMemObj(mem->getSvmPtr(), mem); } svmPtr = mem->getSvmPtr(); diff --git a/projects/clr/rocclr/device/rocm/rocmemory.cpp b/projects/clr/rocclr/device/rocm/rocmemory.cpp index 6ab08b00a9..88b3ba37a5 100644 --- a/projects/clr/rocclr/device/rocm/rocmemory.cpp +++ b/projects/clr/rocclr/device/rocm/rocmemory.cpp @@ -775,7 +775,6 @@ bool Buffer::create(bool alloc_local) { LogError("HSA Opaque Handle returned was null"); return false; } - deviceMemory_ = reinterpret_cast(amd::Memory::MemoryType::kPhyMemHandlePtr); return true; } diff --git a/projects/clr/rocclr/platform/memory.hpp b/projects/clr/rocclr/platform/memory.hpp index afda26623c..69f98111de 100644 --- a/projects/clr/rocclr/platform/memory.hpp +++ b/projects/clr/rocclr/platform/memory.hpp @@ -143,7 +143,6 @@ class Memory : public amd::RuntimeObject { enum MemoryType { kSvmMemoryPtr = 0x1, kArenaMemoryPtr = 0x100, - kPhyMemHandlePtr = 0x101 }; struct UserData