File tree Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -1006,17 +1006,23 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesMapExternalArrayExp(
10061006 ArrayDesc.Format = format;
10071007
10081008 CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC mipmapDesc = {};
1009- mipmapDesc.numLevels = 1 ;
1009+ mipmapDesc.numLevels = pImageDesc-> numMipLevel ;
10101010 mipmapDesc.arrayDesc = ArrayDesc;
10111011
1012+ // External memory is mapped to a CUmipmappedArray
1013+ // If desired, a CUarray is retrieved from the mipmaps 0th level
10121014 CUmipmappedArray memMipMap;
10131015 UR_CHECK_ERROR (cuExternalMemoryGetMappedMipmappedArray (
10141016 &memMipMap, (CUexternalMemory)hInteropMem, &mipmapDesc));
10151017
1016- CUarray memArray;
1017- UR_CHECK_ERROR (cuMipmappedArrayGetLevel (&memArray, memMipMap, 0 ));
1018+ if (pImageDesc->numMipLevel > 1 ) {
1019+ *phImageMem = (ur_exp_image_mem_handle_t )memMipMap;
1020+ } else {
1021+ CUarray memArray;
1022+ UR_CHECK_ERROR (cuMipmappedArrayGetLevel (&memArray, memMipMap, 0 ));
10181023
1019- *phImageMem = (ur_exp_image_mem_handle_t )memArray;
1024+ *phImageMem = (ur_exp_image_mem_handle_t )memArray;
1025+ }
10201026
10211027 } catch (ur_result_t Err) {
10221028 return Err;
You can’t perform that action at this time.
0 commit comments