@@ -183,7 +183,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendLaunchKernel(
183183 auto ret = CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernel (kernelHandle, threadGroupDimensions,
184184 hSignalEvent, numWaitEvents, phWaitEvents,
185185 launchParams);
186- return flushImmediate (ret, true );
186+ return flushImmediate (ret, true , hSignalEvent );
187187}
188188
189189template <GFXCORE_FAMILY gfxCoreFamily>
@@ -196,7 +196,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendLaunchKernelInd
196196 }
197197 auto ret = CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelIndirect (kernelHandle, pDispatchArgumentsBuffer,
198198 hSignalEvent, numWaitEvents, phWaitEvents);
199- return flushImmediate (ret, true );
199+ return flushImmediate (ret, true , hSignalEvent );
200200}
201201
202202template <GFXCORE_FAMILY gfxCoreFamily>
@@ -210,7 +210,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendBarrier(
210210 checkAvailableSpace ();
211211 }
212212 ret = CommandListCoreFamily<gfxCoreFamily>::appendBarrier (hSignalEvent, numWaitEvents, phWaitEvents);
213- return flushImmediate (ret, true );
213+ return flushImmediate (ret, true , hSignalEvent );
214214}
215215
216216template <GFXCORE_FAMILY gfxCoreFamily>
@@ -244,7 +244,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendMemoryCopy(
244244 ret = CommandListCoreFamily<gfxCoreFamily>::appendMemoryCopy (dstptr, srcptr, size, hSignalEvent,
245245 numWaitEvents, phWaitEvents);
246246 }
247- return flushImmediate (ret, true );
247+ return flushImmediate (ret, true , hSignalEvent );
248248}
249249
250250template <GFXCORE_FAMILY gfxCoreFamily>
@@ -286,7 +286,8 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendMemoryCopyRegio
286286 srcPtr, srcRegion, srcPitch, srcSlicePitch,
287287 hSignalEvent, numWaitEvents, phWaitEvents);
288288 }
289- return flushImmediate (ret, true );
289+
290+ return flushImmediate (ret, true , hSignalEvent);
290291}
291292
292293template <GFXCORE_FAMILY gfxCoreFamily>
@@ -300,7 +301,8 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendMemoryFill(void
300301 checkAvailableSpace ();
301302 }
302303 auto ret = CommandListCoreFamily<gfxCoreFamily>::appendMemoryFill (ptr, pattern, patternSize, size, hSignalEvent, numWaitEvents, phWaitEvents);
303- return flushImmediate (ret, true );
304+
305+ return flushImmediate (ret, true , hSignalEvent);
304306}
305307
306308template <GFXCORE_FAMILY gfxCoreFamily>
@@ -312,7 +314,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendSignalEvent(ze_
312314 checkAvailableSpace ();
313315 }
314316 ret = CommandListCoreFamily<gfxCoreFamily>::appendSignalEvent (hSignalEvent);
315- return flushImmediate (ret, true );
317+ return flushImmediate (ret, true , hSignalEvent );
316318}
317319
318320template <GFXCORE_FAMILY gfxCoreFamily>
@@ -324,7 +326,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendEventReset(ze_e
324326 checkAvailableSpace ();
325327 }
326328 ret = CommandListCoreFamily<gfxCoreFamily>::appendEventReset (hSignalEvent);
327- return flushImmediate (ret, true );
329+ return flushImmediate (ret, true , hSignalEvent );
328330}
329331
330332template <GFXCORE_FAMILY gfxCoreFamily>
@@ -350,7 +352,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendPageFaultCopy(N
350352 } else {
351353 ret = CommandListCoreFamily<gfxCoreFamily>::appendPageFaultCopy (dstAllocation, srcAllocation, size, flushHost);
352354 }
353- return flushImmediate (ret, false );
355+ return flushImmediate (ret, false , nullptr );
354356}
355357
356358template <GFXCORE_FAMILY gfxCoreFamily>
@@ -359,7 +361,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWaitOnEvents(ui
359361 checkAvailableSpace ();
360362 }
361363 auto ret = CommandListCoreFamily<gfxCoreFamily>::appendWaitOnEvents (numEvents, phWaitEvents);
362- return flushImmediate (ret, true );
364+ return flushImmediate (ret, true , nullptr );
363365}
364366
365367template <GFXCORE_FAMILY gfxCoreFamily>
@@ -371,7 +373,8 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWriteGlobalTime
371373 checkAvailableSpace ();
372374 }
373375 auto ret = CommandListCoreFamily<gfxCoreFamily>::appendWriteGlobalTimestamp (dstptr, hSignalEvent, numWaitEvents, phWaitEvents);
374- return flushImmediate (ret, true );
376+
377+ return flushImmediate (ret, true , hSignalEvent);
375378}
376379
377380template <GFXCORE_FAMILY gfxCoreFamily>
@@ -407,7 +410,7 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendImageCopyRegion
407410 }
408411 auto ret = CommandListCoreFamily<gfxCoreFamily>::appendImageCopyRegion (hDstImage, hSrcImage, pDstRegion, pSrcRegion, hSignalEvent,
409412 numWaitEvents, phWaitEvents);
410- return flushImmediate (ret, true );
413+ return flushImmediate (ret, true , hSignalEvent );
411414}
412415
413416template <GFXCORE_FAMILY gfxCoreFamily>
@@ -424,7 +427,8 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendImageCopyFromMe
424427 }
425428 auto ret = CommandListCoreFamily<gfxCoreFamily>::appendImageCopyFromMemory (hDstImage, srcPtr, pDstRegion, hSignalEvent,
426429 numWaitEvents, phWaitEvents);
427- return flushImmediate (ret, true );
430+
431+ return flushImmediate (ret, true , hSignalEvent);
428432}
429433
430434template <GFXCORE_FAMILY gfxCoreFamily>
@@ -441,7 +445,8 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendImageCopyToMemo
441445 }
442446 auto ret = CommandListCoreFamily<gfxCoreFamily>::appendImageCopyToMemory (dstPtr, hSrcImage, pSrcRegion, hSignalEvent,
443447 numWaitEvents, phWaitEvents);
444- return flushImmediate (ret, true );
448+
449+ return flushImmediate (ret, true , hSignalEvent);
445450}
446451
447452template <GFXCORE_FAMILY gfxCoreFamily>
@@ -455,18 +460,21 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendMemoryRangesBar
455460 checkAvailableSpace ();
456461 }
457462 auto ret = CommandListCoreFamily<gfxCoreFamily>::appendMemoryRangesBarrier (numRanges, pRangeSizes, pRanges, hSignalEvent, numWaitEvents, phWaitEvents);
458- return flushImmediate (ret, true );
463+ return flushImmediate (ret, true , hSignalEvent );
459464}
460465
461466template <GFXCORE_FAMILY gfxCoreFamily>
462- ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::flushImmediate(ze_result_t inputRet, bool performMigration) {
467+ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::flushImmediate(ze_result_t inputRet, bool performMigration, ze_event_handle_t signalEvent ) {
463468 if (inputRet == ZE_RESULT_SUCCESS) {
464469 if (this ->isFlushTaskSubmissionEnabled ) {
465470 inputRet = executeCommandListImmediateWithFlushTask (performMigration);
466471 } else {
467472 inputRet = executeCommandListImmediate (performMigration);
468473 }
469474 }
475+ if (signalEvent) {
476+ Event::fromHandle (signalEvent)->setCsr (this ->csr );
477+ }
470478 return inputRet;
471479}
472480
0 commit comments