diff --git a/zluda/src/cuda.rs b/zluda/src/cuda.rs index 6344af5..abfc3ec 100644 --- a/zluda/src/cuda.rs +++ b/zluda/src/cuda.rs @@ -214,6 +214,8 @@ cuda_function_declarations!( cuLinkDestroy, cuLinkCreate_v2, cuMipmappedArrayCreate, + cuMipmappedArrayDestroy, + cuMipmappedArrayGetLevel, ] ); @@ -1248,7 +1250,9 @@ mod definitions { pTexDesc: *const HIP_TEXTURE_DESC, pResViewDesc: *const HIP_RESOURCE_VIEW_DESC, ) -> hipError_t { - texobj::create(pTexObject, pResDesc, pTexDesc, pResViewDesc) + let mut tex_desc = *pTexDesc; + tex_desc.maxMipmapLevelClamp = 0f32; + texobj::create(pTexObject, pResDesc, &tex_desc, pResViewDesc) } pub(crate) unsafe fn cuTexObjectDestroy(texObject: hipTextureObject_t) -> hipError_t { @@ -1654,4 +1658,18 @@ mod definitions { ) -> hipError_t { array::mipmapped_create(pHandle, pMipmappedArrayDesc, numMipmapLevels) } + + pub(crate) unsafe fn cuMipmappedArrayDestroy( + hMipmappedArray: hipMipmappedArray_t, + ) -> hipError_t { + hipMipmappedArrayDestroy(hMipmappedArray) + } + + pub(crate) unsafe fn cuMipmappedArrayGetLevel( + pLevelArray: *mut CUarray, + hMipmappedArray: hipMipmappedArray_t, + level: ::std::os::raw::c_uint, + ) -> hipError_t { + hipMipmappedArrayGetLevel(pLevelArray.cast(), hMipmappedArray, level) + } } diff --git a/zluda/src/impl/mod.rs b/zluda/src/impl/mod.rs index 88a95c4..a36ffc4 100644 --- a/zluda/src/impl/mod.rs +++ b/zluda/src/impl/mod.rs @@ -253,6 +253,7 @@ impl FromCuda for hipGraphExec_t {} impl FromCuda for hipGraphicsResource_t {} impl FromCuda for hipLimit_t {} impl FromCuda for hipSurfaceObject_t {} +impl FromCuda for hipMipmappedArray_t {} impl> FromCuda<*mut From> for *mut Into {} impl> FromCuda<*const From> for *const Into {}