@@ -948,15 +948,15 @@ static ur_result_t commonEnqueueMemImageNDCopy(
948
948
UR_ASSERT (DstType == hipMemoryTypeArray || DstType == hipMemoryTypeHost,
949
949
UR_RESULT_ERROR_INVALID_VALUE);
950
950
951
- if (ImgType == UR_MEM_TYPE_IMAGE2D) {
951
+ if (ImgType == UR_MEM_TYPE_IMAGE1D || ImgType == UR_MEM_TYPE_IMAGE2D) {
952
952
hip_Memcpy2D CpyDesc;
953
953
memset (&CpyDesc, 0 , sizeof (CpyDesc));
954
954
CpyDesc.srcMemoryType = SrcType;
955
955
if (SrcType == hipMemoryTypeArray) {
956
956
CpyDesc.srcArray =
957
957
reinterpret_cast <hipCUarray>(const_cast <void *>(SrcPtr));
958
958
CpyDesc.srcXInBytes = SrcOffset[0 ];
959
- CpyDesc.srcY = SrcOffset[1 ];
959
+ CpyDesc.srcY = (ImgType == UR_MEM_TYPE_IMAGE1D) ? 0 : SrcOffset[1 ];
960
960
} else {
961
961
CpyDesc.srcHost = SrcPtr;
962
962
}
@@ -965,12 +965,12 @@ static ur_result_t commonEnqueueMemImageNDCopy(
965
965
CpyDesc.dstArray =
966
966
reinterpret_cast <hipCUarray>(const_cast <void *>(DstPtr));
967
967
CpyDesc.dstXInBytes = DstOffset[0 ];
968
- CpyDesc.dstY = DstOffset[1 ];
968
+ CpyDesc.dstY = (ImgType == UR_MEM_TYPE_IMAGE1D) ? 0 : DstOffset[1 ];
969
969
} else {
970
970
CpyDesc.dstHost = DstPtr;
971
971
}
972
972
CpyDesc.WidthInBytes = Region[0 ];
973
- CpyDesc.Height = Region[1 ];
973
+ CpyDesc.Height = (ImgType == UR_MEM_TYPE_IMAGE1D) ? 1 : Region[1 ];
974
974
UR_CHECK_ERROR (hipMemcpyParam2DAsync (&CpyDesc, HipStream));
975
975
return UR_RESULT_SUCCESS;
976
976
}
@@ -1052,11 +1052,11 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemImageRead(
1052
1052
int ElementByteSize = imageElementByteSize (Format);
1053
1053
1054
1054
size_t ByteOffsetX = origin.x * ElementByteSize * NumChannels;
1055
- size_t BytesToCopy = ElementByteSize * NumChannels * region.depth ;
1055
+ size_t BytesToCopy = ElementByteSize * NumChannels * region.width ;
1056
1056
1057
1057
auto ImgType = std::get<SurfaceMem>(hImage->Mem ).getImageType ();
1058
1058
1059
- size_t AdjustedRegion[3 ] = {BytesToCopy, region.height , region.height };
1059
+ size_t AdjustedRegion[3 ] = {BytesToCopy, region.height , region.depth };
1060
1060
size_t SrcOffset[3 ] = {ByteOffsetX, origin.y , origin.z };
1061
1061
1062
1062
std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
@@ -1113,11 +1113,11 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemImageWrite(
1113
1113
int ElementByteSize = imageElementByteSize (Format);
1114
1114
1115
1115
size_t ByteOffsetX = origin.x * ElementByteSize * NumChannels;
1116
- size_t BytesToCopy = ElementByteSize * NumChannels * region.depth ;
1116
+ size_t BytesToCopy = ElementByteSize * NumChannels * region.width ;
1117
1117
1118
1118
auto ImgType = std::get<SurfaceMem>(hImage->Mem ).getImageType ();
1119
1119
1120
- size_t AdjustedRegion[3 ] = {BytesToCopy, region.height , region.height };
1120
+ size_t AdjustedRegion[3 ] = {BytesToCopy, region.height , region.depth };
1121
1121
size_t DstOffset[3 ] = {ByteOffsetX, origin.y , origin.z };
1122
1122
1123
1123
std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
@@ -1186,13 +1186,13 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemImageCopy(
1186
1186
1187
1187
int ElementByteSize = imageElementByteSize (SrcFormat);
1188
1188
1189
- size_t DstByteOffsetX = dstOrigin.x * ElementByteSize * SrcNumChannels ;
1190
- size_t SrcByteOffsetX = srcOrigin.x * ElementByteSize * DstNumChannels ;
1191
- size_t BytesToCopy = ElementByteSize * SrcNumChannels * region.depth ;
1189
+ size_t DstByteOffsetX = dstOrigin.x * ElementByteSize * DstNumChannels ;
1190
+ size_t SrcByteOffsetX = srcOrigin.x * ElementByteSize * SrcNumChannels ;
1191
+ size_t BytesToCopy = ElementByteSize * SrcNumChannels * region.width ;
1192
1192
1193
1193
auto ImgType = std::get<SurfaceMem>(hImageSrc->Mem ).getImageType ();
1194
1194
1195
- size_t AdjustedRegion[3 ] = {BytesToCopy, region.height , region.width };
1195
+ size_t AdjustedRegion[3 ] = {BytesToCopy, region.height , region.depth };
1196
1196
size_t SrcOffset[3 ] = {SrcByteOffsetX, srcOrigin.y , srcOrigin.z };
1197
1197
size_t DstOffset[3 ] = {DstByteOffsetX, dstOrigin.y , dstOrigin.z };
1198
1198
0 commit comments