Skip to content

[UR][L0v2] Fork-join pattern#22333

Draft
KFilipek wants to merge 2 commits into
intel:syclfrom
KFilipek:worktree-urt-1059-fork-join
Draft

[UR][L0v2] Fork-join pattern#22333
KFilipek wants to merge 2 commits into
intel:syclfrom
KFilipek:worktree-urt-1059-fork-join

Conversation

@KFilipek

Copy link
Copy Markdown
Contributor

The L0v2 out-of-order queue uses 4 command list managers but records graph capture only on manager 0. Two paths broke the fork-join pattern:

  1. Routing — getNextCommandListId() round-robined operations to an arbitrary command list. An op waiting on an event from a capturing queue could land on a non-capture list, escaping
    capture, so queueIsGraphCaptureEnabledExp returned false. Fixed by routing such ops to the capture command list when any wait event comes from a capturing queue.
  2. Barrier — enqueueEventsWaitWithBarrier() cross-links all command lists via per-list barrier events. During capture this would fork the other lists without joining them back, producing a
    capture error. Fixed by applying the barrier on the capture list only while capture is active.

Removes the UUR_KNOWN_FAILURE_ON(LevelZeroV2) guard from the ForkJoinPattern conformance test.

KFilipek added 2 commits June 16, 2026 16:58
Route operations waiting on an event from a capturing queue to the capture
command list instead of an arbitrary one, so the fork is recorded.
Avoids forking the other command lists, which would never join back.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant