@@ -84,6 +84,7 @@ ur_exp_command_buffer_handle_t_::getSyncPoint(ur_event_handle_t event) {
8484 throw UR_RESULT_ERROR_OUT_OF_RESOURCES;
8585 }
8686 syncPoints.push_back (event);
87+ usedSyncPoints.push_back (false );
8788 return static_cast <ur_exp_command_buffer_sync_point_t >(syncPoints.size () - 1 );
8889}
8990
@@ -99,6 +100,7 @@ ur_event_handle_t *ur_exp_command_buffer_handle_t_::getWaitListFromSyncPoints(
99100 UR_LOG (ERR, " Invalid sync point" );
100101 throw UR_RESULT_ERROR_INVALID_VALUE;
101102 }
103+ usedSyncPoints[pSyncPointWaitList[i]] = true ;
102104 syncPointWaitList[i] = syncPoints[pSyncPointWaitList[i]];
103105 }
104106 return syncPointWaitList.data ();
@@ -132,9 +134,13 @@ ur_result_t ur_exp_command_buffer_handle_t_::finalizeCommandBuffer() {
132134 if (!isInOrder) {
133135 ZE2UR_CALL (zeCommandListAppendBarrier,
134136 (commandListLocked->getZeCommandList (), nullptr , 0 , nullptr ));
135- for (auto &event : syncPoints) {
136- ZE2UR_CALL (zeCommandListAppendEventReset,
137- (commandListLocked->getZeCommandList (), event->getZeEvent ()));
137+ for (size_t i = 0 ; i < usedSyncPoints.size (); ++i) {
138+ if (!usedSyncPoints[i]) {
139+ continue ;
140+ }
141+ ZE2UR_CALL (
142+ zeCommandListAppendEventReset,
143+ (commandListLocked->getZeCommandList (), syncPoints[i]->getZeEvent ()));
138144 }
139145 ZE2UR_CALL (zeCommandListAppendBarrier,
140146 (commandListLocked->getZeCommandList (), nullptr , 0 , nullptr ));
0 commit comments