diff --git a/zluda/src/cuda.rs b/zluda/src/cuda.rs index 898d732..6344af5 100644 --- a/zluda/src/cuda.rs +++ b/zluda/src/cuda.rs @@ -213,6 +213,7 @@ cuda_function_declarations!( cuLinkComplete, cuLinkDestroy, cuLinkCreate_v2, + cuMipmappedArrayCreate, ] ); @@ -1237,9 +1238,7 @@ mod definitions { surface::create(pSurfObject, pResDesc) } - pub(crate) unsafe fn cuSurfObjectDestroy( - surfObject: hipSurfaceObject_t, - ) -> hipError_t { + pub(crate) unsafe fn cuSurfObjectDestroy(surfObject: hipSurfaceObject_t) -> hipError_t { hipDestroySurfaceObject(surfObject) } @@ -1647,4 +1646,12 @@ mod definitions { ) -> Result<(), CUresult> { link::create(numOptions, options, optionValues, stateOut) } + + pub(crate) unsafe fn cuMipmappedArrayCreate( + pHandle: *mut hipMipmappedArray_t, + pMipmappedArrayDesc: *const HIP_ARRAY3D_DESCRIPTOR, + numMipmapLevels: ::std::os::raw::c_uint, + ) -> hipError_t { + array::mipmapped_create(pHandle, pMipmappedArrayDesc, numMipmapLevels) + } } diff --git a/zluda/src/impl/array.rs b/zluda/src/impl/array.rs index ab2db78..ab63d2c 100644 --- a/zluda/src/impl/array.rs +++ b/zluda/src/impl/array.rs @@ -81,3 +81,15 @@ pub(crate) unsafe fn create( Err(CUresult::CUDA_ERROR_INVALID_VALUE) } } + +pub(crate) unsafe fn mipmapped_create( + p_handle: *mut hipMipmappedArray_t, + p_mipmapped_array_desc: *const HIP_ARRAY3D_DESCRIPTOR, + num_mipmap_levels: u32, +) -> hipError_t { + hipMipmappedArrayCreate( + p_handle, + p_mipmapped_array_desc.cast_mut(), + num_mipmap_levels, + ) +}