@@ -3359,6 +3359,13 @@ pi_result cuda_piEnqueueMemBufferMap(pi_queue command_queue, pi_mem buffer,
33593359 ret_err = cuda_piEnqueueMemBufferRead (
33603360 command_queue, buffer, blocking_map, offset, size, hostPtr,
33613361 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+ }
33623369 }
33633370
33643371 return ret_err;
@@ -3372,7 +3379,7 @@ pi_result cuda_piEnqueueMemUnmap(pi_queue command_queue, pi_mem memobj,
33723379 pi_uint32 num_events_in_wait_list,
33733380 const pi_event *event_wait_list,
33743381 pi_event *retEvent) {
3375- pi_result ret_err = PI_INVALID_OPERATION ;
3382+ pi_result ret_err = PI_SUCCESS ;
33763383
33773384 assert (mapped_ptr != nullptr );
33783385 assert (memobj != nullptr );
@@ -3385,6 +3392,13 @@ pi_result cuda_piEnqueueMemUnmap(pi_queue command_queue, pi_mem memobj,
33853392 command_queue, memobj, true , memobj->get_map_offset (mapped_ptr),
33863393 memobj->get_size (), mapped_ptr, num_events_in_wait_list, event_wait_list,
33873394 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+ }
33883402 }
33893403
33903404 memobj->unmap (mapped_ptr);
0 commit comments