diff --git a/projects/clr/hipamd/src/hip_graph_internal.hpp b/projects/clr/hipamd/src/hip_graph_internal.hpp index 479819620b..3fde7af59f 100644 --- a/projects/clr/hipamd/src/hip_graph_internal.hpp +++ b/projects/clr/hipamd/src/hip_graph_internal.hpp @@ -1456,11 +1456,12 @@ class hipGraphMemcpyNodeFromSymbol : public hipGraphMemcpyNode1D { size_t dOffset = 0; amd::Memory* dstMemory = getMemoryObject(dst, dOffset); - if (dstMemory == nullptr && kind != hipMemcpyHostToDevice) { + if (dstMemory == nullptr && kind != hipMemcpyDeviceToHost && kind != hipMemcpyDefault) { return hipErrorInvalidMemcpyDirection; - } else if (dstMemory != nullptr && kind != hipMemcpyDeviceToDevice) { + } else if (dstMemory != nullptr && dstMemory->getMemFlags() == 0 && + kind != hipMemcpyDeviceToDevice && kind != hipMemcpyDefault) { return hipErrorInvalidMemcpyDirection; - } else if (kind == hipMemcpyHostToHost || kind == hipMemcpyDeviceToHost) { + } else if (kind == hipMemcpyHostToHost || kind == hipMemcpyHostToDevice) { return hipErrorInvalidMemcpyDirection; }