@@ -267,9 +267,14 @@ ur_result_t ze2urImageFormat(const ze_image_format_t &ZeImageFormat,
267267}
268268
269269// / Construct UR bindless image struct from ZE image handle and desc.
270- ur_result_t createUrImgFromZeImage (ze_image_handle_t ZeImage,
270+ ur_result_t createUrImgFromZeImage (ze_context_handle_t hContext,
271+ ze_device_handle_t hDevice,
271272 const ZeStruct<ze_image_desc_t > &ZeImageDesc,
272273 ur_exp_image_mem_native_handle_t *pImg) {
274+ ze_image_handle_t ZeImage;
275+ ZE2UR_CALL (zeImageCreate, (hContext, hDevice, &ZeImageDesc, &ZeImage));
276+ ZE2UR_CALL (zeContextMakeImageResident, (hContext, hDevice, ZeImage));
277+
273278 try {
274279 ur_bindless_mem_handle_t *urImg =
275280 new ur_bindless_mem_handle_t (ZeImage, ZeImageDesc);
@@ -951,12 +956,8 @@ ur_result_t urBindlessImagesImageAllocateExp(
951956 ZeImageBindlessDesc.flags = ZE_IMAGE_BINDLESS_EXP_FLAG_BINDLESS;
952957 ZeImageDesc.pNext = &ZeImageBindlessDesc;
953958
954- ze_image_handle_t ZeImage;
955- ZE2UR_CALL (zeImageCreate, (hContext->getZeHandle (), hDevice->ZeDevice ,
956- &ZeImageDesc, &ZeImage));
957- ZE2UR_CALL (zeContextMakeImageResident,
958- (hContext->getZeHandle (), hDevice->ZeDevice , ZeImage));
959- UR_CALL (createUrImgFromZeImage (ZeImage, ZeImageDesc, phImageMem));
959+ UR_CALL (createUrImgFromZeImage (hContext->getZeHandle (), hDevice->ZeDevice ,
960+ ZeImageDesc, phImageMem));
960961 return UR_RESULT_SUCCESS;
961962}
962963
@@ -990,9 +991,9 @@ ur_result_t urBindlessImagesUnsampledImageHandleDestroyExp(
990991 auto item = hDevice->ZeOffsetToImageHandleMap .find (hImage);
991992
992993 if (item != hDevice->ZeOffsetToImageHandleMap .end ()) {
993- ZE2UR_CALL (zeImageDestroy, (item->second ));
994994 hDevice->ZeOffsetToImageHandleMap .erase (item);
995995 Lock.release ();
996+ ZE2UR_CALL (zeImageDestroy, (item->second ));
996997 } else {
997998 Lock.release ();
998999 return UR_RESULT_ERROR_INVALID_NULL_HANDLE;
@@ -1165,12 +1166,9 @@ ur_result_t urBindlessImagesMapExternalArrayExp(
11651166 ZeImageBindlessDesc.flags = ZE_IMAGE_BINDLESS_EXP_FLAG_BINDLESS;
11661167 ZeImageDesc.pNext = &ZeImageBindlessDesc;
11671168
1168- ze_image_handle_t ZeImage;
1169- ZE2UR_CALL (zeImageCreate, (hContext->getZeHandle (), hDevice->ZeDevice ,
1170- &ZeImageDesc, &ZeImage));
1171- ZE2UR_CALL (zeContextMakeImageResident,
1172- (hContext->getZeHandle (), hDevice->ZeDevice , ZeImage));
1173- UR_CALL (createUrImgFromZeImage (ZeImage, ZeImageDesc, phImageMem));
1169+ UR_CALL (createUrImgFromZeImage (hContext->getZeHandle (), hDevice->ZeDevice ,
1170+ ZeImageDesc, phImageMem));
1171+
11741172 externalMemoryData->urMemoryHandle =
11751173 reinterpret_cast <ur_mem_handle_t >(*phImageMem);
11761174 return UR_RESULT_SUCCESS;
0 commit comments