SWDEV-274425 - fix bad initialization of array slice index for 1d image array in partialMemCopyTo()

Change-Id: Id9a0c55d4296de8cd89f1870b2c8028ce6cf601b
This commit is contained in:
victzhan
2023-08-10 16:58:47 -04:00
committed by Victor Zhang
parent b00e6fe89e
commit 4fb24c48b0
+2 -2
View File
@@ -1503,7 +1503,7 @@ bool Resource::partialMemCopyTo(VirtualGPU& gpu, const amd::Coord3D& srcOrigin,
gpu.queue(gpu.engineID_).addCmdMemRef(memRef());
gpu.queue(gpu.engineID_).addCmdMemRef(dstResource.memRef());
if (desc().buffer_ && !dstResource.desc().buffer_) {
uint32_t arraySliceIdx = img2Darray ? dstOrigin[2] : 0;
uint32_t arraySliceIdx = img2Darray ? dstOrigin[2] : img1Darray ? dstOrigin[1] : 0;
Pal::SubresId ImgSubresId = {0, dstResource.desc().baseLevel_, arraySliceIdx};
Pal::MemoryImageCopyRegion copyRegion = {};
copyRegion.imageSubres = ImgSubresId;
@@ -1529,7 +1529,7 @@ bool Resource::partialMemCopyTo(VirtualGPU& gpu, const amd::Coord3D& srcOrigin,
gpu.iCmd()->CmdCopyMemoryToImage(*iMem(), *dstResource.image_, imgLayout, 1, &copyRegion);
} else if (!desc().buffer_ && dstResource.desc().buffer_) {
Pal::MemoryImageCopyRegion copyRegion = {};
uint32_t arraySliceIdx = img2Darray ? dstOrigin[2] : 0;
uint32_t arraySliceIdx = img2Darray ? dstOrigin[2] : img1Darray ? dstOrigin[1] : 0;
Pal::SubresId ImgSubresId = {0, desc().baseLevel_, arraySliceIdx};
copyRegion.imageSubres = ImgSubresId;
copyRegion.imageOffset.x = srcOrigin[0];