@@ -528,35 +528,35 @@ ur_result_t migrateImageToDevice(ur_mem_handle_t Mem,
528528 // dimensionality
529529 if (Image.ImageDesc .type == UR_MEM_TYPE_IMAGE2D) {
530530 memset (&CpyDesc2D, 0 , sizeof (CpyDesc2D));
531- CpyDesc2D.srcMemoryType = CUmemorytype_enum::CU_MEMORYTYPE_HOST;
532531 CpyDesc2D.srcHost = Image.HostPtr ;
533532 CpyDesc2D.dstMemoryType = CUmemorytype_enum::CU_MEMORYTYPE_ARRAY;
534533 CpyDesc2D.dstArray = ImageArray;
535534 CpyDesc2D.WidthInBytes = PixelSizeBytes * Image.ImageDesc .width ;
536535 CpyDesc2D.Height = Image.ImageDesc .height ;
537- UR_CHECK_ERROR (cuMemcpy2D (&CpyDesc2D));
538536 } else if (Image.ImageDesc .type == UR_MEM_TYPE_IMAGE3D) {
539537 memset (&CpyDesc3D, 0 , sizeof (CpyDesc3D));
540- CpyDesc3D.srcMemoryType = CUmemorytype_enum::CU_MEMORYTYPE_HOST;
541538 CpyDesc3D.srcHost = Image.HostPtr ;
542539 CpyDesc3D.dstMemoryType = CUmemorytype_enum::CU_MEMORYTYPE_ARRAY;
543540 CpyDesc3D.dstArray = ImageArray;
544541 CpyDesc3D.WidthInBytes = PixelSizeBytes * Image.ImageDesc .width ;
545542 CpyDesc3D.Height = Image.ImageDesc .height ;
546543 CpyDesc3D.Depth = Image.ImageDesc .depth ;
547- UR_CHECK_ERROR (cuMemcpy3D (&CpyDesc3D));
548544 }
549545
550546 if (Mem->LastEventWritingToMemObj == nullptr ) {
551- if (Image.ImageDesc .type == UR_MEM_TYPE_IMAGE1D) {
552- UR_CHECK_ERROR (
553- cuMemcpyHtoA (ImageArray, 0 , Image.HostPtr , ImageSizeBytes));
554- } else if (Image.ImageDesc .type == UR_MEM_TYPE_IMAGE2D) {
555- CpyDesc2D.srcHost = Image.HostPtr ;
556- UR_CHECK_ERROR (cuMemcpy2D (&CpyDesc2D));
557- } else if (Image.ImageDesc .type == UR_MEM_TYPE_IMAGE3D) {
558- CpyDesc3D.srcHost = Image.HostPtr ;
559- UR_CHECK_ERROR (cuMemcpy3D (&CpyDesc3D));
547+ if (Image.HostPtr ) {
548+ if (Image.ImageDesc .type == UR_MEM_TYPE_IMAGE1D) {
549+ UR_CHECK_ERROR (
550+ cuMemcpyHtoA (ImageArray, 0 , Image.HostPtr , ImageSizeBytes));
551+ } else if (Image.ImageDesc .type == UR_MEM_TYPE_IMAGE2D) {
552+ CpyDesc2D.srcMemoryType = CUmemorytype_enum::CU_MEMORYTYPE_HOST;
553+ CpyDesc2D.srcHost = Image.HostPtr ;
554+ UR_CHECK_ERROR (cuMemcpy2D (&CpyDesc2D));
555+ } else if (Image.ImageDesc .type == UR_MEM_TYPE_IMAGE3D) {
556+ CpyDesc3D.srcMemoryType = CUmemorytype_enum::CU_MEMORYTYPE_HOST;
557+ CpyDesc3D.srcHost = Image.HostPtr ;
558+ UR_CHECK_ERROR (cuMemcpy3D (&CpyDesc3D));
559+ }
560560 }
561561 } else if (Mem->LastEventWritingToMemObj ->getQueue ()->getDevice () !=
562562 hDevice) {
0 commit comments