diff --git a/projects/clr/rocclr/runtime/device/gpu/gpuvirtual.cpp b/projects/clr/rocclr/runtime/device/gpu/gpuvirtual.cpp index 19ba1efda9..311b8c31ff 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gpuvirtual.cpp +++ b/projects/clr/rocclr/runtime/device/gpu/gpuvirtual.cpp @@ -1190,12 +1190,13 @@ VirtualGPU::submitUnmapMemory(amd::UnmapMemoryCommand& vcmd) amd::Image* amdImage = owner->asImage(); if ((amdImage != NULL) && (amdImage->getMipLevels() > 1) && (writeMapInfo->baseMip_ != NULL)) { - // Clear unmap flags from the parent image - memory->clearUnmapInfo(vcmd.mapPtr()); // Assign mip level view amdImage = writeMapInfo->baseMip_; + // Clear unmap flags from the parent image + memory->clearUnmapInfo(vcmd.mapPtr()); memory = dev().getGpuMemory(amdImage); unmapMip = true; + writeMapInfo = memory->writeMapInfo(vcmd.mapPtr()); } // We used host memory diff --git a/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp b/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp index 3da5c05333..8909c0172a 100644 --- a/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp +++ b/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp @@ -1433,12 +1433,13 @@ VirtualGPU::submitUnmapMemory(amd::UnmapMemoryCommand& vcmd) amd::Image* amdImage = owner->asImage(); if ((amdImage != nullptr) && (amdImage->getMipLevels() > 1) && (writeMapInfo->baseMip_ != nullptr)) { - // Clear unmap flags from the parent image - memory->clearUnmapInfo(vcmd.mapPtr()); // Assign mip level view amdImage = writeMapInfo->baseMip_; + // Clear unmap flags from the parent image + memory->clearUnmapInfo(vcmd.mapPtr()); memory = dev().getGpuMemory(amdImage); unmapMip = true; + writeMapInfo = memory->writeMapInfo(vcmd.mapPtr()); } // We used host memory