From f6ec01a5f2662c7606a25d044c36a7efd44461c3 Mon Sep 17 00:00:00 2001 From: taosang2 Date: Thu, 1 Jun 2023 18:31:48 -0400 Subject: [PATCH] =?UTF-8?q?SWDEV-368553=20=E2=80=93=20Add=20missing=20mipm?= =?UTF-8?q?ap=20Apis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add missing mipmap Apis’ implementation. Fix some bugs of mimpmap apis. Use hipmipmappedArray to differentiate cuda and driver apis on Nvidia. Change-Id: I6079d9f3b2ddf4e42b9a6f7f3902322cfca02cfd --- .../nvidia_detail/nvidia_hip_runtime_api.h | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h b/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h index f2033be250..75ca1c1367 100644 --- a/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h +++ b/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h @@ -253,7 +253,8 @@ inline static CUresourcetype hipResourcetype_enumToCUresourcetype( #define hipTexRef CUtexref #define hiparray CUarray -typedef CUmipmappedArray hipMipmappedArray_t; +typedef CUmipmappedArray hipmipmappedArray; +typedef cudaMipmappedArray_t hipMipmappedArray_t; #define HIP_TRSA_OVERRIDE_FORMAT CU_TRSA_OVERRIDE_FORMAT #define HIP_TRSF_READ_AS_INTEGER CU_TRSF_READ_AS_INTEGER @@ -1579,22 +1580,38 @@ inline static hipError_t hipFreeArray(hipArray* array) { return hipCUDAErrorTohipError(cudaFreeArray(array)); } -inline static hipError_t hipMipmappedArrayCreate(hipMipmappedArray_t* pHandle, +inline static hipError_t hipMipmappedArrayCreate(hipmipmappedArray* pHandle, HIP_ARRAY3D_DESCRIPTOR* pMipmappedArrayDesc, unsigned int numMipmapLevels) { return hipCUResultTohipError(cuMipmappedArrayCreate(pHandle, pMipmappedArrayDesc, numMipmapLevels)); } -inline static hipError_t hipMipmappedArrayDestroy(hipMipmappedArray_t hMipmappedArray) { +inline static hipError_t hipMipmappedArrayDestroy(hipmipmappedArray hMipmappedArray) { return hipCUResultTohipError(cuMipmappedArrayDestroy(hMipmappedArray)); } -inline static hipError_t hipMipmappedArrayGetLevel(hipArray_t* pLevelArray, - hipMipmappedArray_t hMipMappedArray, +inline static hipError_t hipMipmappedArrayGetLevel(hiparray* pLevelArray, + hipmipmappedArray hMipMappedArray, unsigned int level) { return hipCUResultTohipError(cuMipmappedArrayGetLevel((CUarray*)pLevelArray, hMipMappedArray, level)); } +inline static hipError_t hipMallocMipmappedArray(hipMipmappedArray_t* pHandle, + const hipChannelFormatDesc* desc, hipExtent extent, + unsigned int numLevels, unsigned int flags = 0) { + return hipCUDAErrorTohipError(cudaMallocMipmappedArray(pHandle, desc, extent, numLevels, flags)); +} + +inline static hipError_t hipFreeMipmappedArray(hipMipmappedArray_t hMipmappedArray) { + return hipCUDAErrorTohipError(cudaFreeMipmappedArray(hMipmappedArray)); +} + +inline static hipError_t hipGetMipmappedArrayLevel(hipArray_t* pLevelArray, + hipMipmappedArray_t hMipMappedArray, + unsigned int level) { + return hipCUDAErrorTohipError(cudaGetMipmappedArrayLevel(pLevelArray, hMipMappedArray, level)); +} + inline static hipError_t hipHostGetDevicePointer(void** devPtr, void* hostPtr, unsigned int flags) { return hipCUDAErrorTohipError(cudaHostGetDevicePointer(devPtr, hostPtr, flags)); }