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(
1006
1006
ArrayDesc.Format = format;
1007
1007
1008
1008
CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC mipmapDesc = {};
1009
- mipmapDesc.numLevels = 1 ;
1009
+ mipmapDesc.numLevels = pImageDesc-> numMipLevel ;
1010
1010
mipmapDesc.arrayDesc = ArrayDesc;
1011
1011
1012
+ // External memory is mapped to a CUmipmappedArray
1013
+ // If desired, a CUarray is retrieved from the mipmaps 0th level
1012
1014
CUmipmappedArray memMipMap;
1013
1015
UR_CHECK_ERROR (cuExternalMemoryGetMappedMipmappedArray (
1014
1016
&memMipMap, (CUexternalMemory)hInteropMem, &mipmapDesc));
1015
1017
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 ));
1018
1023
1019
- *phImageMem = (ur_exp_image_mem_handle_t )memArray;
1024
+ *phImageMem = (ur_exp_image_mem_handle_t )memArray;
1025
+ }
1020
1026
1021
1027
} catch (ur_result_t Err) {
1022
1028
return Err;
You can’t perform that action at this time.
0 commit comments