diff --git a/projects/clr/hipamd/include/hip/nvidia_detail/nvidia_hip_runtime_api.h b/projects/clr/hipamd/include/hip/nvidia_detail/nvidia_hip_runtime_api.h index dd7e52a19d..712d793c51 100644 --- a/projects/clr/hipamd/include/hip/nvidia_detail/nvidia_hip_runtime_api.h +++ b/projects/clr/hipamd/include/hip/nvidia_detail/nvidia_hip_runtime_api.h @@ -1833,11 +1833,21 @@ inline static const char* hipGetErrorName(hipError_t error) { } inline static hipError_t hipDrvGetErrorString(hipError_t error, const char** errorString) { - return hipCUResultTohipError(cuGetErrorString(hipErrorToCUResult(error), errorString)); + CUresult err = hipErrorToCUResult(error); + if( err == CUDA_ERROR_UNKNOWN ) { + return hipCUResultTohipError(cuGetErrorString((CUresult)error, errorString)); + } else { + return hipCUResultTohipError(cuGetErrorString(err, errorString)); + } } inline static hipError_t hipDrvGetErrorName(hipError_t error, const char** errorString) { - return hipCUResultTohipError(cuGetErrorName(hipErrorToCUResult(error), errorString)); + CUresult err = hipErrorToCUResult(error); + if( err == CUDA_ERROR_UNKNOWN ) { + return hipCUResultTohipError(cuGetErrorName((CUresult)error, errorString)); + } else { + return hipCUResultTohipError(cuGetErrorName(err, errorString)); + } } inline static hipError_t hipGetDeviceCount(int* count) { diff --git a/projects/clr/hipamd/src/hip_error.cpp b/projects/clr/hipamd/src/hip_error.cpp index 6f3d371272..909a9e08d0 100644 --- a/projects/clr/hipamd/src/hip_error.cpp +++ b/projects/clr/hipamd/src/hip_error.cpp @@ -357,7 +357,7 @@ hipError_t hipDrvGetErrorName(hipError_t hip_error, const char** errStr) return hipErrorInvalidValue; } *errStr = ihipGetErrorName(hip_error); - if (strcmp( *errStr, "hipErrorUnknown") != 0) { + if (hip_error == hipErrorUnknown || strcmp( *errStr, "hipErrorUnknown") != 0) { return hipSuccess; } else { return hipErrorInvalidValue; @@ -370,7 +370,7 @@ hipError_t hipDrvGetErrorString(hipError_t hip_error, const char** errStr) return hipErrorInvalidValue; } *errStr = ihipGetErrorString(hip_error); - if (strcmp( *errStr, "unknown error") != 0) { + if (hip_error == hipErrorUnknown || strcmp( *errStr, "unknown error") != 0) { return hipSuccess; } else { return hipErrorInvalidValue;