@@ -3359,6 +3359,13 @@ pi_result cuda_piEnqueueMemBufferMap(pi_queue command_queue, pi_mem buffer,
3359
3359
ret_err = cuda_piEnqueueMemBufferRead (
3360
3360
command_queue, buffer, blocking_map, offset, size, hostPtr,
3361
3361
num_events_in_wait_list, event_wait_list, retEvent);
3362
+ } else {
3363
+ if (retEvent) {
3364
+ auto new_event =
3365
+ _pi_event::make_native (PI_COMMAND_TYPE_MEM_BUFFER_MAP, command_queue);
3366
+ new_event->record ();
3367
+ *retEvent = new_event;
3368
+ }
3362
3369
}
3363
3370
3364
3371
return ret_err;
@@ -3372,7 +3379,7 @@ pi_result cuda_piEnqueueMemUnmap(pi_queue command_queue, pi_mem memobj,
3372
3379
pi_uint32 num_events_in_wait_list,
3373
3380
const pi_event *event_wait_list,
3374
3381
pi_event *retEvent) {
3375
- pi_result ret_err = PI_INVALID_OPERATION ;
3382
+ pi_result ret_err = PI_SUCCESS ;
3376
3383
3377
3384
assert (mapped_ptr != nullptr );
3378
3385
assert (memobj != nullptr );
@@ -3385,6 +3392,13 @@ pi_result cuda_piEnqueueMemUnmap(pi_queue command_queue, pi_mem memobj,
3385
3392
command_queue, memobj, true , memobj->get_map_offset (mapped_ptr),
3386
3393
memobj->get_size (), mapped_ptr, num_events_in_wait_list, event_wait_list,
3387
3394
retEvent);
3395
+ } else {
3396
+ if (retEvent) {
3397
+ auto new_event = _pi_event::make_native (PI_COMMAND_TYPE_MEM_BUFFER_UNMAP,
3398
+ command_queue);
3399
+ new_event->record ();
3400
+ *retEvent = new_event;
3401
+ }
3388
3402
}
3389
3403
3390
3404
memobj->unmap (mapped_ptr);
0 commit comments