@@ -1307,9 +1307,9 @@ ur_result_t UR_APICALL urEnqueueUSMFill(
1307
1307
auto pfnUSMFill = getContext ()->urDdiTable .Enqueue .pfnUSMFill ;
1308
1308
getContext ()->logger .debug (" ==== urEnqueueUSMFill" );
1309
1309
1310
- ur_event_handle_t hEvent = nullptr ;
1310
+ ur_event_handle_t hEvents[ 2 ] = {} ;
1311
1311
UR_CALL (pfnUSMFill (hQueue, pMem, patternSize, pPattern, size,
1312
- numEventsInWaitList, phEventWaitList, &hEvent ));
1312
+ numEventsInWaitList, phEventWaitList, &hEvents[ 0 ] ));
1313
1313
1314
1314
const auto Mem = (uptr)pMem;
1315
1315
auto MemInfoItOp = getMsanInterceptor ()->findAllocInfoByAddress (Mem);
@@ -1320,13 +1320,13 @@ ur_result_t UR_APICALL urEnqueueUSMFill(
1320
1320
getMsanInterceptor ()->getDeviceInfo (MemInfo->Device );
1321
1321
const auto MemShadow = DeviceInfo->Shadow ->MemToShadow (Mem);
1322
1322
1323
- const ur_event_handle_t hEventWait = hEvent;
1324
- UR_CALL (EnqueueUSMBlockingSet (hQueue, (void *)MemShadow, 0 , size, 1 ,
1325
- &hEventWait, &hEvent));
1323
+ UR_CALL (EnqueueUSMBlockingSet (hQueue, (void *)MemShadow, 0 , size, 0 ,
1324
+ nullptr , &hEvents[1 ]));
1326
1325
}
1327
1326
1328
1327
if (phEvent) {
1329
- *phEvent = hEvent;
1328
+ UR_CALL (getContext ()->urDdiTable .Enqueue .pfnEventsWait (
1329
+ hQueue, 2 , hEvents, phEvent));
1330
1330
}
1331
1331
1332
1332
return UR_RESULT_SUCCESS;
@@ -1356,9 +1356,9 @@ ur_result_t UR_APICALL urEnqueueUSMMemcpy(
1356
1356
auto pfnUSMMemcpy = getContext ()->urDdiTable .Enqueue .pfnUSMMemcpy ;
1357
1357
getContext ()->logger .debug (" ==== pfnUSMMemcpy" );
1358
1358
1359
- ur_event_handle_t hEvent = nullptr ;
1359
+ ur_event_handle_t hEvents[ 2 ] = {} ;
1360
1360
UR_CALL (pfnUSMMemcpy (hQueue, blocking, pDst, pSrc, size,
1361
- numEventsInWaitList, phEventWaitList, &hEvent ));
1361
+ numEventsInWaitList, phEventWaitList, &hEvents[ 0 ] ));
1362
1362
1363
1363
const auto Src = (uptr)pSrc, Dst = (uptr)pDst;
1364
1364
auto SrcInfoItOp = getMsanInterceptor ()->findAllocInfoByAddress (Src);
@@ -1373,23 +1373,22 @@ ur_result_t UR_APICALL urEnqueueUSMMemcpy(
1373
1373
const auto SrcShadow = DeviceInfo->Shadow ->MemToShadow (Src);
1374
1374
const auto DstShadow = DeviceInfo->Shadow ->MemToShadow (Dst);
1375
1375
1376
- const ur_event_handle_t hEventWait = hEvent;
1377
1376
UR_CALL (pfnUSMMemcpy (hQueue, blocking, (void *)DstShadow,
1378
- (void *)SrcShadow, size, 1 , &hEventWait , &hEvent ));
1377
+ (void *)SrcShadow, size, 0 , nullptr , &hEvents[ 1 ] ));
1379
1378
} else if (DstInfoItOp) {
1380
1379
auto DstInfo = (*DstInfoItOp)->second ;
1381
1380
1382
1381
const auto &DeviceInfo =
1383
1382
getMsanInterceptor ()->getDeviceInfo (DstInfo->Device );
1384
1383
auto DstShadow = DeviceInfo->Shadow ->MemToShadow (Dst);
1385
1384
1386
- const ur_event_handle_t hEventWait = hEvent;
1387
- UR_CALL (EnqueueUSMBlockingSet (hQueue, (void *)DstShadow, 0 , size, 1 ,
1388
- &hEventWait, &hEvent));
1385
+ UR_CALL (EnqueueUSMBlockingSet (hQueue, (void *)DstShadow, 0 , size, 0 ,
1386
+ nullptr , &hEvents[1 ]));
1389
1387
}
1390
1388
1391
1389
if (phEvent) {
1392
- *phEvent = hEvent;
1390
+ UR_CALL (getContext ()->urDdiTable .Enqueue .pfnEventsWait (
1391
+ hQueue, 2 , hEvents, phEvent));
1393
1392
}
1394
1393
1395
1394
return UR_RESULT_SUCCESS;
@@ -1425,10 +1424,10 @@ ur_result_t UR_APICALL urEnqueueUSMFill2D(
1425
1424
auto pfnUSMFill2D = getContext ()->urDdiTable .Enqueue .pfnUSMFill2D ;
1426
1425
getContext ()->logger .debug (" ==== urEnqueueUSMFill2D" );
1427
1426
1428
- ur_event_handle_t hEvent = nullptr ;
1427
+ ur_event_handle_t hEvents[ 2 ] = {} ;
1429
1428
UR_CALL (pfnUSMFill2D (hQueue, pMem, pitch, patternSize, pPattern, width,
1430
1429
height, numEventsInWaitList, phEventWaitList,
1431
- &hEvent ));
1430
+ &hEvents[ 0 ] ));
1432
1431
1433
1432
const auto Mem = (uptr)pMem;
1434
1433
auto MemInfoItOp = getMsanInterceptor ()->findAllocInfoByAddress (Mem);
@@ -1440,13 +1439,13 @@ ur_result_t UR_APICALL urEnqueueUSMFill2D(
1440
1439
const auto MemShadow = DeviceInfo->Shadow ->MemToShadow (Mem);
1441
1440
1442
1441
const char Pattern = 0 ;
1443
- const ur_event_handle_t hEventWait = hEvent;
1444
1442
UR_CALL (pfnUSMFill2D (hQueue, (void *)MemShadow, pitch, 1 , &Pattern,
1445
- width, height, 1 , &hEventWait , &hEvent ));
1443
+ width, height, 0 , nullptr , &hEvents[ 1 ] ));
1446
1444
}
1447
1445
1448
1446
if (phEvent) {
1449
- *phEvent = hEvent;
1447
+ UR_CALL (getContext ()->urDdiTable .Enqueue .pfnEventsWait (
1448
+ hQueue, 2 , hEvents, phEvent));
1450
1449
}
1451
1450
1452
1451
return UR_RESULT_SUCCESS;
@@ -1481,10 +1480,10 @@ ur_result_t UR_APICALL urEnqueueUSMMemcpy2D(
1481
1480
auto pfnUSMMemcpy2D = getContext ()->urDdiTable .Enqueue .pfnUSMMemcpy2D ;
1482
1481
getContext ()->logger .debug (" ==== pfnUSMMemcpy2D" );
1483
1482
1484
- ur_event_handle_t hEvent = nullptr ;
1483
+ ur_event_handle_t hEvents[ 2 ] = {} ;
1485
1484
UR_CALL (pfnUSMMemcpy2D (hQueue, blocking, pDst, dstPitch, pSrc, srcPitch,
1486
1485
width, height, numEventsInWaitList, phEventWaitList,
1487
- &hEvent ));
1486
+ &hEvents[ 0 ] ));
1488
1487
1489
1488
const auto Src = (uptr)pSrc, Dst = (uptr)pDst;
1490
1489
auto SrcInfoItOp = getMsanInterceptor ()->findAllocInfoByAddress (Src);
@@ -1499,10 +1498,9 @@ ur_result_t UR_APICALL urEnqueueUSMMemcpy2D(
1499
1498
const auto SrcShadow = DeviceInfo->Shadow ->MemToShadow (Src);
1500
1499
const auto DstShadow = DeviceInfo->Shadow ->MemToShadow (Dst);
1501
1500
1502
- const ur_event_handle_t hEventWait = hEvent;
1503
1501
UR_CALL (pfnUSMMemcpy2D (hQueue, blocking, (void *)DstShadow, dstPitch,
1504
- (void *)SrcShadow, srcPitch, width, height, 1 ,
1505
- &hEventWait , &hEvent ));
1502
+ (void *)SrcShadow, srcPitch, width, height, 0 ,
1503
+ nullptr , &hEvents[ 1 ] ));
1506
1504
} else if (DstInfoItOp) {
1507
1505
auto DstInfo = (*DstInfoItOp)->second ;
1508
1506
@@ -1511,14 +1509,14 @@ ur_result_t UR_APICALL urEnqueueUSMMemcpy2D(
1511
1509
const auto DstShadow = DeviceInfo->Shadow ->MemToShadow (Dst);
1512
1510
1513
1511
const char Pattern = 0 ;
1514
- const ur_event_handle_t hEventWait = hEvent;
1515
1512
UR_CALL (getContext ()->urDdiTable .Enqueue .pfnUSMFill2D (
1516
- hQueue, (void *)DstShadow, dstPitch, 1 , &Pattern, width, height, 1 ,
1517
- &hEventWait , &hEvent ));
1513
+ hQueue, (void *)DstShadow, dstPitch, 1 , &Pattern, width, height, 0 ,
1514
+ nullptr , &hEvents[ 1 ] ));
1518
1515
}
1519
1516
1520
1517
if (phEvent) {
1521
- *phEvent = hEvent;
1518
+ UR_CALL (getContext ()->urDdiTable .Enqueue .pfnEventsWait (
1519
+ hQueue, 2 , hEvents, phEvent));
1522
1520
}
1523
1521
1524
1522
return UR_RESULT_SUCCESS;
0 commit comments