Skip to content

Commit 056d653

Browse files
authored
Merge pull request #1512 from DBDuncan/duncan/fix_pi_mem_leak
[Bindless][Exp] Remove phMem argument from bindless image creation functions
2 parents b7c8930 + bbb04b6 commit 056d653

File tree

15 files changed

+19
-121
lines changed

15 files changed

+19
-121
lines changed

include/ur_api.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7551,7 +7551,6 @@ urBindlessImagesImageFreeExp(
75517551
/// - ::UR_RESULT_ERROR_INVALID_NULL_POINTER
75527552
/// + `NULL == pImageFormat`
75537553
/// + `NULL == pImageDesc`
7554-
/// + `NULL == phMem`
75557554
/// + `NULL == phImage`
75567555
/// - ::UR_RESULT_ERROR_INVALID_CONTEXT
75577556
/// - ::UR_RESULT_ERROR_INVALID_VALUE
@@ -7566,7 +7565,6 @@ urBindlessImagesUnsampledImageCreateExp(
75667565
ur_exp_image_mem_handle_t hImageMem, ///< [in] handle to memory from which to create the image
75677566
const ur_image_format_t *pImageFormat, ///< [in] pointer to image format specification
75687567
const ur_image_desc_t *pImageDesc, ///< [in] pointer to image description
7569-
ur_mem_handle_t *phMem, ///< [out] pointer to handle of image object created
75707568
ur_exp_image_handle_t *phImage ///< [out] pointer to handle of image object created
75717569
);
75727570

@@ -7590,7 +7588,6 @@ urBindlessImagesUnsampledImageCreateExp(
75907588
/// - ::UR_RESULT_ERROR_INVALID_NULL_POINTER
75917589
/// + `NULL == pImageFormat`
75927590
/// + `NULL == pImageDesc`
7593-
/// + `NULL == phMem`
75947591
/// + `NULL == phImage`
75957592
/// - ::UR_RESULT_ERROR_INVALID_CONTEXT
75967593
/// - ::UR_RESULT_ERROR_INVALID_VALUE
@@ -7607,7 +7604,6 @@ urBindlessImagesSampledImageCreateExp(
76077604
const ur_image_format_t *pImageFormat, ///< [in] pointer to image format specification
76087605
const ur_image_desc_t *pImageDesc, ///< [in] pointer to image description
76097606
ur_sampler_handle_t hSampler, ///< [in] sampler to be used
7610-
ur_mem_handle_t *phMem, ///< [out] pointer to handle of image object created
76117607
ur_exp_image_handle_t *phImage ///< [out] pointer to handle of image object created
76127608
);
76137609

@@ -10708,7 +10704,6 @@ typedef struct ur_bindless_images_unsampled_image_create_exp_params_t {
1070810704
ur_exp_image_mem_handle_t *phImageMem;
1070910705
const ur_image_format_t **ppImageFormat;
1071010706
const ur_image_desc_t **ppImageDesc;
10711-
ur_mem_handle_t **pphMem;
1071210707
ur_exp_image_handle_t **pphImage;
1071310708
} ur_bindless_images_unsampled_image_create_exp_params_t;
1071410709

@@ -10723,7 +10718,6 @@ typedef struct ur_bindless_images_sampled_image_create_exp_params_t {
1072310718
const ur_image_format_t **ppImageFormat;
1072410719
const ur_image_desc_t **ppImageDesc;
1072510720
ur_sampler_handle_t *phSampler;
10726-
ur_mem_handle_t **pphMem;
1072710721
ur_exp_image_handle_t **pphImage;
1072810722
} ur_bindless_images_sampled_image_create_exp_params_t;
1072910723

include/ur_ddi.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1523,7 +1523,6 @@ typedef ur_result_t(UR_APICALL *ur_pfnBindlessImagesUnsampledImageCreateExp_t)(
15231523
ur_exp_image_mem_handle_t,
15241524
const ur_image_format_t *,
15251525
const ur_image_desc_t *,
1526-
ur_mem_handle_t *,
15271526
ur_exp_image_handle_t *);
15281527

15291528
///////////////////////////////////////////////////////////////////////////////
@@ -1535,7 +1534,6 @@ typedef ur_result_t(UR_APICALL *ur_pfnBindlessImagesSampledImageCreateExp_t)(
15351534
const ur_image_format_t *,
15361535
const ur_image_desc_t *,
15371536
ur_sampler_handle_t,
1538-
ur_mem_handle_t *,
15391537
ur_exp_image_handle_t *);
15401538

15411539
///////////////////////////////////////////////////////////////////////////////

include/ur_print.hpp

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14318,12 +14318,6 @@ inline std::ostream &operator<<(std::ostream &os, [[maybe_unused]] const struct
1431814318
ur::details::printPtr(os,
1431914319
*(params->ppImageDesc));
1432014320

14321-
os << ", ";
14322-
os << ".phMem = ";
14323-
14324-
ur::details::printPtr(os,
14325-
*(params->pphMem));
14326-
1432714321
os << ", ";
1432814322
os << ".phImage = ";
1432914323

@@ -14374,12 +14368,6 @@ inline std::ostream &operator<<(std::ostream &os, [[maybe_unused]] const struct
1437414368
ur::details::printPtr(os,
1437514369
*(params->phSampler));
1437614370

14377-
os << ", ";
14378-
os << ".phMem = ";
14379-
14380-
ur::details::printPtr(os,
14381-
*(params->pphMem));
14382-
1438314371
os << ", ";
1438414372
os << ".phImage = ";
1438514373

scripts/core/exp-bindless-images.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -435,9 +435,6 @@ params:
435435
- type: "const $x_image_desc_t*"
436436
name: pImageDesc
437437
desc: "[in] pointer to image description"
438-
- type: $x_mem_handle_t*
439-
name: phMem
440-
desc: "[out] pointer to handle of image object created"
441438
- type: $x_exp_image_handle_t*
442439
name: phImage
443440
desc: "[out] pointer to handle of image object created"
@@ -475,9 +472,6 @@ params:
475472
- type: $x_sampler_handle_t
476473
name: hSampler
477474
desc: "[in] sampler to be used"
478-
- type: $x_mem_handle_t*
479-
name: phMem
480-
desc: "[out] pointer to handle of image object created"
481475
- type: $x_exp_image_handle_t*
482476
name: phImage
483477
desc: "[out] pointer to handle of image object created"

source/adapters/cuda/image.cpp

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesImageFreeExp(
492492
UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
493493
ur_context_handle_t hContext, ur_device_handle_t hDevice,
494494
ur_exp_image_mem_handle_t hImageMem, const ur_image_format_t *pImageFormat,
495-
const ur_image_desc_t *pImageDesc, ur_mem_handle_t *phMem,
495+
[[maybe_unused]] const ur_image_desc_t *pImageDesc,
496496
ur_exp_image_handle_t *phImage) {
497497
UR_ASSERT((hContext->getDevice()->get() == hDevice->get()),
498498
UR_RESULT_ERROR_INVALID_CONTEXT);
@@ -523,15 +523,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
523523
UR_CHECK_ERROR(cuSurfObjectCreate(&surface, &image_res_desc));
524524
*phImage = (ur_exp_image_handle_t)surface;
525525

526-
auto urMemObj = std::unique_ptr<ur_mem_handle_t_>(new ur_mem_handle_t_{
527-
hContext, (CUarray)hImageMem, surface, pImageDesc->type});
528-
529-
if (urMemObj == nullptr) {
530-
return UR_RESULT_ERROR_OUT_OF_HOST_MEMORY;
531-
}
532-
533-
*phMem = urMemObj.release();
534-
535526
} catch (ur_result_t Err) {
536527
return Err;
537528
} catch (...) {
@@ -545,7 +536,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesSampledImageCreateExp(
545536
ur_context_handle_t hContext, ur_device_handle_t hDevice,
546537
ur_exp_image_mem_handle_t hImageMem, const ur_image_format_t *pImageFormat,
547538
const ur_image_desc_t *pImageDesc, ur_sampler_handle_t hSampler,
548-
ur_mem_handle_t *phMem, ur_exp_image_handle_t *phImage) {
539+
ur_exp_image_handle_t *phImage) {
549540
UR_ASSERT((hContext->getDevice()->get() == hDevice->get()),
550541
UR_RESULT_ERROR_INVALID_CONTEXT);
551542

@@ -611,15 +602,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesSampledImageCreateExp(
611602
UR_CHECK_ERROR(
612603
urTextureCreate(hSampler, pImageDesc, image_res_desc, phImage));
613604

614-
auto urMemObj = std::unique_ptr<ur_mem_handle_t_>(new ur_mem_handle_t_{
615-
hContext, (CUarray)hImageMem, (CUtexObject)*phImage, hSampler,
616-
pImageDesc->type});
617-
618-
if (urMemObj == nullptr) {
619-
return UR_RESULT_ERROR_OUT_OF_HOST_MEMORY;
620-
}
621-
622-
*phMem = urMemObj.release();
623605
} catch (ur_result_t Err) {
624606
return Err;
625607
} catch (...) {

source/adapters/hip/image.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
5959
[[maybe_unused]] ur_exp_image_mem_handle_t hImageMem,
6060
[[maybe_unused]] const ur_image_format_t *pImageFormat,
6161
[[maybe_unused]] const ur_image_desc_t *pImageDesc,
62-
[[maybe_unused]] ur_mem_handle_t *phMem,
6362
[[maybe_unused]] ur_exp_image_handle_t *phImage) {
6463
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
6564
}
@@ -71,7 +70,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesSampledImageCreateExp(
7170
[[maybe_unused]] const ur_image_format_t *pImageFormat,
7271
[[maybe_unused]] const ur_image_desc_t *pImageDesc,
7372
[[maybe_unused]] ur_sampler_handle_t hSampler,
74-
[[maybe_unused]] ur_mem_handle_t *phMem,
7573
[[maybe_unused]] ur_exp_image_handle_t *phImage) {
7674
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
7775
}

source/adapters/level_zero/image.cpp

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -656,13 +656,12 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesImageFreeExp(
656656
UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
657657
ur_context_handle_t hContext, ur_device_handle_t hDevice,
658658
ur_exp_image_mem_handle_t hImageMem, const ur_image_format_t *pImageFormat,
659-
const ur_image_desc_t *pImageDesc, ur_mem_handle_t *phMem,
660-
ur_exp_image_handle_t *phImage) {
659+
const ur_image_desc_t *pImageDesc, ur_exp_image_handle_t *phImage) {
661660
std::shared_lock<ur_shared_mutex> Lock(hContext->Mutex);
662661

663662
UR_ASSERT(hContext && hDevice && hImageMem,
664663
UR_RESULT_ERROR_INVALID_NULL_HANDLE);
665-
UR_ASSERT(pImageFormat && pImageDesc && phMem && phImage,
664+
UR_ASSERT(pImageFormat && pImageDesc && phImage,
666665
UR_RESULT_ERROR_INVALID_NULL_POINTER);
667666

668667
ZeStruct<ze_image_desc_t> ZeImageDesc;
@@ -687,11 +686,8 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
687686
UrImage->ZeImage, &ZeImage));
688687
ZE2UR_CALL(zeContextMakeImageResident,
689688
(hContext->ZeContext, hDevice->ZeDevice, ZeImage));
690-
UR_CALL(createUrMemFromZeImage(hContext, ZeImage, /*OwnZeMemHandle*/ true,
691-
ZeImageDesc, phMem));
692689
} else {
693690
ZeImage = UrImage->ZeImage;
694-
*phMem = nullptr;
695691
}
696692
} else if (MemAllocProperties.type == ZE_MEMORY_TYPE_DEVICE) {
697693
ze_image_pitched_exp_desc_t PitchedDesc;
@@ -710,8 +706,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
710706
&ZeImageDesc, &ZeImage));
711707
ZE2UR_CALL(zeContextMakeImageResident,
712708
(hContext->ZeContext, hDevice->ZeDevice, ZeImage));
713-
UR_CALL(createUrMemFromZeImage(hContext, ZeImage, /*OwnZeMemHandle*/ true,
714-
ZeImageDesc, phMem));
715709
} else {
716710
return UR_RESULT_ERROR_INVALID_VALUE;
717711
}
@@ -741,10 +735,10 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesSampledImageCreateExp(
741735
ur_context_handle_t hContext, ur_device_handle_t hDevice,
742736
ur_exp_image_mem_handle_t hImageMem, const ur_image_format_t *pImageFormat,
743737
const ur_image_desc_t *pImageDesc, ur_sampler_handle_t hSampler,
744-
ur_mem_handle_t *phMem, ur_exp_image_handle_t *phImage) {
738+
ur_exp_image_handle_t *phImage) {
745739

746740
UR_CALL(urBindlessImagesUnsampledImageCreateExp(
747-
hContext, hDevice, hImageMem, pImageFormat, pImageDesc, phMem, phImage));
741+
hContext, hDevice, hImageMem, pImageFormat, pImageDesc, phImage));
748742

749743
struct combined_sampled_image_handle {
750744
uint64_t RawImageHandle;

source/adapters/native_cpu/image.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
5959
[[maybe_unused]] ur_exp_image_mem_handle_t hImageMem,
6060
[[maybe_unused]] const ur_image_format_t *pImageFormat,
6161
[[maybe_unused]] const ur_image_desc_t *pImageDesc,
62-
[[maybe_unused]] ur_mem_handle_t *phMem,
6362
[[maybe_unused]] ur_exp_image_handle_t *phImage) {
6463
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
6564
}
@@ -71,7 +70,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesSampledImageCreateExp(
7170
[[maybe_unused]] const ur_image_format_t *pImageFormat,
7271
[[maybe_unused]] const ur_image_desc_t *pImageDesc,
7372
[[maybe_unused]] ur_sampler_handle_t hSampler,
74-
[[maybe_unused]] ur_mem_handle_t *phMem,
7573
[[maybe_unused]] ur_exp_image_handle_t *phImage) {
7674
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
7775
}

source/adapters/null/ur_nullddi.cpp

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4292,7 +4292,6 @@ __urdlllocal ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
42924292
const ur_image_format_t
42934293
*pImageFormat, ///< [in] pointer to image format specification
42944294
const ur_image_desc_t *pImageDesc, ///< [in] pointer to image description
4295-
ur_mem_handle_t *phMem, ///< [out] pointer to handle of image object created
42964295
ur_exp_image_handle_t
42974296
*phImage ///< [out] pointer to handle of image object created
42984297
) try {
@@ -4303,12 +4302,9 @@ __urdlllocal ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
43034302
d_context.urDdiTable.BindlessImagesExp.pfnUnsampledImageCreateExp;
43044303
if (nullptr != pfnUnsampledImageCreateExp) {
43054304
result = pfnUnsampledImageCreateExp(hContext, hDevice, hImageMem,
4306-
pImageFormat, pImageDesc, phMem,
4307-
phImage);
4305+
pImageFormat, pImageDesc, phImage);
43084306
} else {
43094307
// generic implementation
4310-
*phMem = reinterpret_cast<ur_mem_handle_t>(d_context.get());
4311-
43124308
*phImage = reinterpret_cast<ur_exp_image_handle_t>(d_context.get());
43134309
}
43144310

@@ -4328,7 +4324,6 @@ __urdlllocal ur_result_t UR_APICALL urBindlessImagesSampledImageCreateExp(
43284324
*pImageFormat, ///< [in] pointer to image format specification
43294325
const ur_image_desc_t *pImageDesc, ///< [in] pointer to image description
43304326
ur_sampler_handle_t hSampler, ///< [in] sampler to be used
4331-
ur_mem_handle_t *phMem, ///< [out] pointer to handle of image object created
43324327
ur_exp_image_handle_t
43334328
*phImage ///< [out] pointer to handle of image object created
43344329
) try {
@@ -4340,11 +4335,9 @@ __urdlllocal ur_result_t UR_APICALL urBindlessImagesSampledImageCreateExp(
43404335
if (nullptr != pfnSampledImageCreateExp) {
43414336
result =
43424337
pfnSampledImageCreateExp(hContext, hDevice, hImageMem, pImageFormat,
4343-
pImageDesc, hSampler, phMem, phImage);
4338+
pImageDesc, hSampler, phImage);
43444339
} else {
43454340
// generic implementation
4346-
*phMem = reinterpret_cast<ur_mem_handle_t>(d_context.get());
4347-
43484341
*phImage = reinterpret_cast<ur_exp_image_handle_t>(d_context.get());
43494342
}
43504343

source/adapters/opencl/image.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
5959
[[maybe_unused]] ur_exp_image_mem_handle_t hImageMem,
6060
[[maybe_unused]] const ur_image_format_t *pImageFormat,
6161
[[maybe_unused]] const ur_image_desc_t *pImageDesc,
62-
[[maybe_unused]] ur_mem_handle_t *phMem,
6362
[[maybe_unused]] ur_exp_image_handle_t *phImage) {
6463
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
6564
}
@@ -71,7 +70,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesSampledImageCreateExp(
7170
[[maybe_unused]] const ur_image_format_t *pImageFormat,
7271
[[maybe_unused]] const ur_image_desc_t *pImageDesc,
7372
[[maybe_unused]] ur_sampler_handle_t hSampler,
74-
[[maybe_unused]] ur_mem_handle_t *phMem,
7573
[[maybe_unused]] ur_exp_image_handle_t *phImage) {
7674
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
7775
}

0 commit comments

Comments
 (0)