SWDEV-476623 - Fix test failures for clCopyImage
Change-Id: I971c5be98304bdbef0feec73e15ebd61a131b12f
이 커밋은 다음에 포함됨:
@@ -2253,7 +2253,10 @@ void VirtualGPU::submitMapMemory(amd::MapMemoryCommand& cmd) {
|
|||||||
reinterpret_cast<roc::Memory*>(cmd.memory().getDeviceMemory(dev(), false));
|
reinterpret_cast<roc::Memory*>(cmd.memory().getDeviceMemory(dev(), false));
|
||||||
|
|
||||||
cl_command_type type = cmd.type();
|
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.
|
// Save map requirement.
|
||||||
cl_map_flags mapFlag = cmd.mapFlags();
|
cl_map_flags mapFlag = cmd.mapFlags();
|
||||||
@@ -2321,8 +2324,9 @@ void VirtualGPU::submitMapMemory(amd::MapMemoryCommand& cmd) {
|
|||||||
roc::Memory* hsaMapMemory =
|
roc::Memory* hsaMapMemory =
|
||||||
static_cast<roc::Memory*>(mapMemory->getDeviceMemory(dev(), false));
|
static_cast<roc::Memory*>(mapMemory->getDeviceMemory(dev(), false));
|
||||||
result =
|
result =
|
||||||
blitMgr().copyImageToBuffer(*hsaMemory, *hsaMapMemory, cmd.origin(), amd::Coord3D(0, 0, 0),
|
blitMgr().copyImageToBuffer(*hsaMemory, *hsaMapMemory, cmd.origin(),
|
||||||
cmd.size(), cmd.isEntireMemory());
|
amd::Coord3D(0, 0, 0), cmd.size(),
|
||||||
|
cmd.isEntireMemory());
|
||||||
} else {
|
} else {
|
||||||
result = blitMgr().readImage(*hsaMemory, hostPtr, amd::Coord3D(0), image->getRegion(),
|
result = blitMgr().readImage(*hsaMemory, hostPtr, amd::Coord3D(0), image->getRegion(),
|
||||||
image->getRowPitch(), image->getSlicePitch(), true);
|
image->getRowPitch(), image->getSlicePitch(), true);
|
||||||
@@ -2395,6 +2399,7 @@ void VirtualGPU::submitUnmapMemory(amd::UnmapMemoryCommand& cmd) {
|
|||||||
} else {
|
} else {
|
||||||
amd::Coord3D origin(mapInfo->origin_[0]);
|
amd::Coord3D origin(mapInfo->origin_[0]);
|
||||||
amd::Coord3D size(mapInfo->region_[0]);
|
amd::Coord3D size(mapInfo->region_[0]);
|
||||||
|
amd::Coord3D dstOrigin(mapInfo->origin_[0],0,0);
|
||||||
if (imageBuffer) {
|
if (imageBuffer) {
|
||||||
size_t elemSize = cmd.memory().asImage()->getImageFormat().getElementSize();
|
size_t elemSize = cmd.memory().asImage()->getImageFormat().getElementSize();
|
||||||
origin.c[0] *= elemSize;
|
origin.c[0] *= elemSize;
|
||||||
@@ -2411,8 +2416,8 @@ void VirtualGPU::submitUnmapMemory(amd::UnmapMemoryCommand& cmd) {
|
|||||||
releaseGpuMemoryFence();
|
releaseGpuMemoryFence();
|
||||||
std::memcpy(hostPtr, svmPtr, size[0]);
|
std::memcpy(hostPtr, svmPtr, size[0]);
|
||||||
}
|
}
|
||||||
result = blitMgr().copyBuffer(*hsaMapMemory, *devMemory, mapInfo->origin_, mapInfo->origin_,
|
result = blitMgr().copyBuffer(*hsaMapMemory, *devMemory, origin, dstOrigin,
|
||||||
mapInfo->region_, mapInfo->isEntire());
|
size, mapInfo->isEntire());
|
||||||
} else {
|
} else {
|
||||||
result = blitMgr().writeBuffer(cmd.mapPtr(), *devMemory, origin, size);
|
result = blitMgr().writeBuffer(cmd.mapPtr(), *devMemory, origin, size);
|
||||||
}
|
}
|
||||||
|
|||||||
새 이슈에서 참조
사용자 차단