@@ -552,6 +552,10 @@ UR_APIEXPORT ur_result_t UR_APICALL urUSMPitchedAllocExp(
552
552
size_t *pResultPitch) {
553
553
std::shared_lock<ur_shared_mutex> Lock (hContext->Mutex );
554
554
555
+ UR_ASSERT (hContext && hDevice, UR_RESULT_ERROR_INVALID_NULL_HANDLE);
556
+ UR_ASSERT (widthInBytes != 0 , UR_RESULT_ERROR_INVALID_USM_SIZE);
557
+ UR_ASSERT (ppMem && pResultPitch, UR_RESULT_ERROR_INVALID_NULL_POINTER);
558
+
555
559
static std::once_flag InitFlag;
556
560
std::call_once (InitFlag, [&]() {
557
561
ze_driver_handle_t DriverHandle = hContext->getPlatform ()->ZeDriver ;
@@ -606,6 +610,10 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesImageAllocateExp(
606
610
ur_exp_image_mem_handle_t *phImageMem) {
607
611
std::shared_lock<ur_shared_mutex> Lock (hContext->Mutex );
608
612
613
+ UR_ASSERT (hContext && hDevice, UR_RESULT_ERROR_INVALID_NULL_HANDLE);
614
+ UR_ASSERT (pImageFormat && pImageDesc && phImageMem,
615
+ UR_RESULT_ERROR_INVALID_NULL_POINTER);
616
+
609
617
ZeStruct<ze_image_desc_t > ZeImageDesc;
610
618
UR_CALL (ur2zeImageDesc (pImageFormat, pImageDesc, ZeImageDesc));
611
619
@@ -641,6 +649,11 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
641
649
ur_exp_image_handle_t *phImage) {
642
650
std::shared_lock<ur_shared_mutex> Lock (hContext->Mutex );
643
651
652
+ UR_ASSERT (hContext && hDevice && hImageMem,
653
+ UR_RESULT_ERROR_INVALID_NULL_HANDLE);
654
+ UR_ASSERT (pImageFormat && pImageDesc && phMem && phImage,
655
+ UR_RESULT_ERROR_INVALID_NULL_POINTER);
656
+
644
657
ZeStruct<ze_image_desc_t > ZeImageDesc;
645
658
UR_CALL (ur2zeImageDesc (pImageFormat, pImageDesc, ZeImageDesc));
646
659
@@ -669,7 +682,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
669
682
ZeImage = UrImage->ZeImage ;
670
683
*phMem = nullptr ;
671
684
}
672
- } else {
685
+ } else if (MemAllocProperties. type == ZE_MEMORY_TYPE_DEVICE) {
673
686
ze_image_pitched_exp_desc_t PitchedDesc;
674
687
PitchedDesc.stype = ZE_STRUCTURE_TYPE_PITCHED_IMAGE_EXP_DESC;
675
688
PitchedDesc.pNext = nullptr ;
@@ -688,6 +701,8 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
688
701
(hContext->ZeContext , hDevice->ZeDevice , ZeImage));
689
702
UR_CALL (createUrMemFromZeImage (hContext, ZeImage, /* OwnZeMemHandle*/ true ,
690
703
ZeImageDesc, phMem));
704
+ } else {
705
+ return UR_RESULT_ERROR_INVALID_VALUE;
691
706
}
692
707
693
708
static std::once_flag InitFlag;
@@ -741,6 +756,15 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesImageCopyExp(
741
756
ur_rect_region_t hostExtent, uint32_t numEventsInWaitList,
742
757
const ur_event_handle_t *phEventWaitList, ur_event_handle_t *phEvent) {
743
758
std::scoped_lock<ur_shared_mutex> Lock (hQueue->Mutex );
759
+
760
+ UR_ASSERT (hQueue, UR_RESULT_ERROR_INVALID_NULL_HANDLE);
761
+ UR_ASSERT (pDst && pSrc && pImageFormat && pImageDesc,
762
+ UR_RESULT_ERROR_INVALID_NULL_POINTER);
763
+ UR_ASSERT (!(UR_EXP_IMAGE_COPY_FLAGS_MASK & imageCopyFlags),
764
+ UR_RESULT_ERROR_INVALID_ENUMERATION);
765
+ UR_ASSERT (!(pImageDesc && UR_MEM_TYPE_IMAGE1D_BUFFER < pImageDesc->type ),
766
+ UR_RESULT_ERROR_INVALID_IMAGE_FORMAT_DESCRIPTOR);
767
+
744
768
ZeStruct<ze_image_desc_t > ZeImageDesc;
745
769
UR_CALL (ur2zeImageDesc (pImageFormat, pImageDesc, ZeImageDesc));
746
770
@@ -843,6 +867,11 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesImageCopyExp(
843
867
UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesImageGetInfoExp (
844
868
ur_exp_image_mem_handle_t hImageMem, ur_image_info_t propName,
845
869
void *pPropValue, size_t *pPropSizeRet) {
870
+ UR_ASSERT (hImageMem, UR_RESULT_ERROR_INVALID_NULL_HANDLE);
871
+ UR_ASSERT (UR_IMAGE_INFO_DEPTH >= propName,
872
+ UR_RESULT_ERROR_INVALID_ENUMERATION);
873
+ UR_ASSERT (pPropValue || pPropSizeRet, UR_RESULT_ERROR_INVALID_NULL_POINTER);
874
+
846
875
auto *UrImage = reinterpret_cast <_ur_image *>(hImageMem);
847
876
ze_image_desc_t &Desc = UrImage->ZeImageDesc ;
848
877
switch (propName) {
0 commit comments