diff --git a/rocclr/runtime/device/pal/palmemory.cpp b/rocclr/runtime/device/pal/palmemory.cpp index eb7f8cc2b3..eae90ef2c0 100644 --- a/rocclr/runtime/device/pal/palmemory.cpp +++ b/rocclr/runtime/device/pal/palmemory.cpp @@ -572,6 +572,10 @@ Memory::syncCacheFromHost(VirtualGPU& gpu, device::Memory::SyncFlags syncFlags) } } + //!@todo A wait isn't really necessary. However processMemObjects() + // may lose the track of dependencies with a compute transfer(if sdma failed). + wait(gpu); + // Should never fail assert(result && "Memory synchronization failed!"); } diff --git a/rocclr/runtime/device/pal/palvirtual.cpp b/rocclr/runtime/device/pal/palvirtual.cpp index 4a9060d58d..40e2ed043e 100644 --- a/rocclr/runtime/device/pal/palvirtual.cpp +++ b/rocclr/runtime/device/pal/palvirtual.cpp @@ -3208,9 +3208,6 @@ VirtualGPU::processMemObjectsHSA( memoryDependency().validate(*this, mem, IsReadOnly); } - // Mark the tracker with the processed kernel - memoryDependency().newKernel(); - return true; }