Skip to content

Conversation

@nrspruit
Copy link
Contributor

  • When SYCl Calls the L0 adapter without a signal event, L0 creates an internal event.
  • Given in order command queue, the internal event for the wait/signal is implicitly added to the wait list of the next command if executeCommandList is called.
  • This ensures that the internal event is properly synchronized with the command queue during that next call given SYCL is failing to create a UR event for tracking the wait/signal.

- When SYCl Calls the L0 adapter without a signal event, L0 creates an internal event.
- Given in order command queue, the internal event for the wait/signal is
implicitly added to the wait list of the next command if executeCommandList is called.
- This ensures that the internal event is properly synchronized with the command queue
during that next call given SYCL is failing to create a UR event for tracking the wait/signal.

Signed-off-by: Neil R. Spruit <[email protected]>
@nrspruit nrspruit requested a review from a team as a code owner August 22, 2025 16:10
@enm-intel
Copy link

Are there any unit or conformance tests that test the issue this PR fixes?

@nrspruit
Copy link
Contributor Author

Are there any unit or conformance tests that test the issue this PR fixes?

https://github.com/intel/llvm/blob/sycl/sycl/test-e2e/bindless_images/vulkan_interop/unsampled_images.cpp will reproduce the issue, however only sporadically so that means a new CTS is needed to validate the sycl side does not get executed before the Vulkan dependency is executed.

@nrspruit
Copy link
Contributor Author

it should be noted, that while this is needed to fix the issue for L0 indirect internal events, the root bug is that external semaphores in sycl are not implemented properly.

@nrspruit
Copy link
Contributor Author

@intel/bindless-images-reviewers , please review, this addresses the missing support for internal events given external semaphore. I will be working on adding a CTS to cover this gap in another review, but adding that CTS will result in new failures since the larger bug is in the SYCL layer itself.

@nrspruit
Copy link
Contributor Author

@intel/llvm-gatekeepers please merge when available, thank you!

@sarnex sarnex merged commit abec681 into intel:sycl Aug 29, 2025
36 checks passed
AlexeySachkov pushed a commit to AlexeySachkov/llvm that referenced this pull request Sep 10, 2025
…intel#19859)

- When SYCl Calls the L0 adapter without a signal event, L0 creates an
internal event.
- Given in order command queue, the internal event for the wait/signal
is implicitly added to the wait list of the next command if
executeCommandList is called.
- This ensures that the internal event is properly synchronized with the
command queue during that next call given SYCL is failing to create a UR
event for tracking the wait/signal.

Signed-off-by: Neil R. Spruit <[email protected]>
AlexeySachkov added a commit that referenced this pull request Sep 23, 2025
This is a joined cherry-pick of:

---

[UR][L0] Remove Driver Exp Implementation of External Semaphore
(#19835)

- Intel L0 GPU Driver no longer supports the Driver Exp Implementation
of External Semaphore and the code has been removed from the codebase,
therefore the support needs to be removed from the adapter to allow
compiling with newer ze_intel_gpu.h headers.
- L0 Spec implementation is the only version required for customer
support.

Patch-by: Neil R. Spruit <[email protected]>

---

[UR][L0] urBindlessImagesGetImageMemoryHandleTypeSupportExp correction
(#19667)

VK_FORMAT_R8G8B8A8_UNORM is supported on L0 urt, correction to
verifyCommonImagePropertiesSupport.

Patch-by: Zhang, Winston <[email protected]>

---

[UR][L0][V2] Fixed supported logic for external semaphore
(#19863)

Patch-by: Neil R. Spruit <[email protected]>

---

[UR][L0] Fix Implict Event sync during external semaphore wait/signal
(#19859)

- When SYCl Calls the L0 adapter without a signal event, L0 creates an
internal event.
- Given in order command queue, the internal event for the wait/signal
is implicitly added to the wait list of the next command if
executeCommandList is called.
- This ensures that the internal event is properly synchronized with the
command queue during that next call given SYCL is failing to create a UR
event for tracking the wait/signal.

Patch-by: Neil R. Spruit <[email protected]>
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.

4 participants