SWDEV-275317 - Fix hipMemcpy2DFromArray to return proper error types
Change-Id: Id722865d81460bfd2fa6ad7a198b6e3c2a08265a
[ROCm/clr commit: daafd303ec]
This commit is contained in:
@@ -218,6 +218,7 @@ typedef enum __HIP_NODISCARD hipError_t {
|
|||||||
hipErrorProfilerAlreadyStarted = 7,
|
hipErrorProfilerAlreadyStarted = 7,
|
||||||
hipErrorProfilerAlreadyStopped = 8,
|
hipErrorProfilerAlreadyStopped = 8,
|
||||||
hipErrorInvalidConfiguration = 9,
|
hipErrorInvalidConfiguration = 9,
|
||||||
|
hipErrorInvalidPitchValue = 12,
|
||||||
hipErrorInvalidSymbol = 13,
|
hipErrorInvalidSymbol = 13,
|
||||||
hipErrorInvalidDevicePointer = 17, ///< Invalid Device Pointer
|
hipErrorInvalidDevicePointer = 17, ///< Invalid Device Pointer
|
||||||
hipErrorInvalidMemcpyDirection = 21, ///< Invalid memory copy direction
|
hipErrorInvalidMemcpyDirection = 21, ///< Invalid memory copy direction
|
||||||
|
|||||||
@@ -78,6 +78,8 @@ const char *hipGetErrorName(hipError_t hip_error)
|
|||||||
return "hipErrorNoDevice";
|
return "hipErrorNoDevice";
|
||||||
case hipErrorInvalidDevice:
|
case hipErrorInvalidDevice:
|
||||||
return "hipErrorInvalidDevice";
|
return "hipErrorInvalidDevice";
|
||||||
|
case hipErrorInvalidPitchValue:
|
||||||
|
return "hipErrorInvalidPitchValue";
|
||||||
case hipErrorInvalidImage:
|
case hipErrorInvalidImage:
|
||||||
return "hipErrorInvalidImage";
|
return "hipErrorInvalidImage";
|
||||||
case hipErrorInvalidContext:
|
case hipErrorInvalidContext:
|
||||||
|
|||||||
@@ -1665,6 +1665,10 @@ hipError_t hipMemcpyToArray(hipArray* dst, size_t wOffset, size_t hOffset, const
|
|||||||
}
|
}
|
||||||
|
|
||||||
hipError_t ihipMemcpy2DFromArray(void* dst, size_t dpitch, hipArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, hipMemcpyKind kind, hipStream_t stream, bool isAsync = false) {
|
hipError_t ihipMemcpy2DFromArray(void* dst, size_t dpitch, hipArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, hipMemcpyKind kind, hipStream_t stream, bool isAsync = false) {
|
||||||
|
if (src == nullptr) {
|
||||||
|
HIP_RETURN(hipErrorInvalidResourceHandle);
|
||||||
|
}
|
||||||
|
|
||||||
hip_Memcpy2D desc = {};
|
hip_Memcpy2D desc = {};
|
||||||
|
|
||||||
desc.srcXInBytes = wOffsetSrc;
|
desc.srcXInBytes = wOffsetSrc;
|
||||||
@@ -2241,12 +2245,20 @@ hipError_t hipMemcpyArrayToArray(hipArray_t dst, size_t wOffsetDst, size_t hOffs
|
|||||||
hipError_t hipMemcpy2DFromArray(void* dst, size_t dpitch, hipArray_const_t src, size_t wOffsetSrc, size_t hOffset, size_t width, size_t height, hipMemcpyKind kind) {
|
hipError_t hipMemcpy2DFromArray(void* dst, size_t dpitch, hipArray_const_t src, size_t wOffsetSrc, size_t hOffset, size_t width, size_t height, hipMemcpyKind kind) {
|
||||||
HIP_INIT_API(hipMemcpy2DFromArray, dst, dpitch, src, wOffsetSrc, hOffset, width, height, kind);
|
HIP_INIT_API(hipMemcpy2DFromArray, dst, dpitch, src, wOffsetSrc, hOffset, width, height, kind);
|
||||||
|
|
||||||
|
if (dpitch == 0) {
|
||||||
|
HIP_RETURN(hipErrorInvalidPitchValue);
|
||||||
|
}
|
||||||
|
|
||||||
HIP_RETURN_DURATION(ihipMemcpy2DFromArray(dst, dpitch, src, wOffsetSrc, hOffset, width, height, kind, nullptr));
|
HIP_RETURN_DURATION(ihipMemcpy2DFromArray(dst, dpitch, src, wOffsetSrc, hOffset, width, height, kind, nullptr));
|
||||||
}
|
}
|
||||||
|
|
||||||
hipError_t hipMemcpy2DFromArrayAsync(void* dst, size_t dpitch, hipArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, hipMemcpyKind kind, hipStream_t stream) {
|
hipError_t hipMemcpy2DFromArrayAsync(void* dst, size_t dpitch, hipArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, hipMemcpyKind kind, hipStream_t stream) {
|
||||||
HIP_INIT_API(hipMemcpy2DFromArrayAsync, dst, dpitch, src, wOffsetSrc, hOffsetSrc, width, height, kind, stream);
|
HIP_INIT_API(hipMemcpy2DFromArrayAsync, dst, dpitch, src, wOffsetSrc, hOffsetSrc, width, height, kind, stream);
|
||||||
|
|
||||||
|
if (dpitch == 0) {
|
||||||
|
HIP_RETURN(hipErrorInvalidPitchValue);
|
||||||
|
}
|
||||||
|
|
||||||
HIP_RETURN_DURATION(ihipMemcpy2DFromArray(dst, dpitch, src, wOffsetSrc, hOffsetSrc, width, height, kind, stream, true));
|
HIP_RETURN_DURATION(ihipMemcpy2DFromArray(dst, dpitch, src, wOffsetSrc, hOffsetSrc, width, height, kind, stream, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ inline const char* ihipErrorString(hipError_t hip_error) {
|
|||||||
CASE_STR(hipErrorInvalidConfiguration);
|
CASE_STR(hipErrorInvalidConfiguration);
|
||||||
CASE_STR(hipErrorInvalidDevice);
|
CASE_STR(hipErrorInvalidDevice);
|
||||||
CASE_STR(hipErrorInvalidValue);
|
CASE_STR(hipErrorInvalidValue);
|
||||||
|
CASE_STR(hipErrorInvalidPitchValue);
|
||||||
CASE_STR(hipErrorInvalidDevicePointer);
|
CASE_STR(hipErrorInvalidDevicePointer);
|
||||||
CASE_STR(hipErrorInvalidMemcpyDirection);
|
CASE_STR(hipErrorInvalidMemcpyDirection);
|
||||||
CASE_STR(hipErrorUnknown);
|
CASE_STR(hipErrorUnknown);
|
||||||
|
|||||||
Reference in New Issue
Block a user