SWDEV-476623 - Fix test failures for clCopyImage

Change-Id: I971c5be98304bdbef0feec73e15ebd61a131b12f


[ROCm/clr commit: c3c41dae0d]
Bu işleme şunda yer alıyor:
Julia Jiang
2024-08-13 16:13:14 -04:00
işlemeyi yapan: Julia Jiang
ebeveyn eaa7fd41cf
işleme 049a21f3da
+10 -5
Dosyayı Görüntüle
@@ -2253,7 +2253,10 @@ void VirtualGPU::submitMapMemory(amd::MapMemoryCommand& cmd) {
reinterpret_cast<roc::Memory*>(cmd.memory().getDeviceMemory(dev(), false));
cl_command_type type = cmd.type();
bool imageBuffer = false;
bool imageBuffer = (cmd.memory().getType() == CL_MEM_OBJECT_IMAGE1D_BUFFER);
if (imageBuffer) {
type = CL_COMMAND_MAP_BUFFER;
}
// Save map requirement.
cl_map_flags mapFlag = cmd.mapFlags();
@@ -2321,8 +2324,9 @@ void VirtualGPU::submitMapMemory(amd::MapMemoryCommand& cmd) {
roc::Memory* hsaMapMemory =
static_cast<roc::Memory*>(mapMemory->getDeviceMemory(dev(), false));
result =
blitMgr().copyImageToBuffer(*hsaMemory, *hsaMapMemory, cmd.origin(), amd::Coord3D(0, 0, 0),
cmd.size(), cmd.isEntireMemory());
blitMgr().copyImageToBuffer(*hsaMemory, *hsaMapMemory, cmd.origin(),
amd::Coord3D(0, 0, 0), cmd.size(),
cmd.isEntireMemory());
} else {
result = blitMgr().readImage(*hsaMemory, hostPtr, amd::Coord3D(0), image->getRegion(),
image->getRowPitch(), image->getSlicePitch(), true);
@@ -2395,6 +2399,7 @@ void VirtualGPU::submitUnmapMemory(amd::UnmapMemoryCommand& cmd) {
} else {
amd::Coord3D origin(mapInfo->origin_[0]);
amd::Coord3D size(mapInfo->region_[0]);
amd::Coord3D dstOrigin(mapInfo->origin_[0],0,0);
if (imageBuffer) {
size_t elemSize = cmd.memory().asImage()->getImageFormat().getElementSize();
origin.c[0] *= elemSize;
@@ -2411,8 +2416,8 @@ void VirtualGPU::submitUnmapMemory(amd::UnmapMemoryCommand& cmd) {
releaseGpuMemoryFence();
std::memcpy(hostPtr, svmPtr, size[0]);
}
result = blitMgr().copyBuffer(*hsaMapMemory, *devMemory, mapInfo->origin_, mapInfo->origin_,
mapInfo->region_, mapInfo->isEntire());
result = blitMgr().copyBuffer(*hsaMapMemory, *devMemory, origin, dstOrigin,
size, mapInfo->isEntire());
} else {
result = blitMgr().writeBuffer(cmd.mapPtr(), *devMemory, origin, size);
}