Skip to content

[Bindless][Exp] Windows & DX12 interop. Semaphore ops can take values. #13860

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 37 commits into from
Jun 18, 2024

Conversation

przemektmalon
Copy link
Contributor

The following PI functions have been added to support importing various external handle types for both memory and semaphores:

  • piextImportExternalMemory
  • piextImportExternalSemaphore

The following PI functions and their corresponding pi2ur functions are now deprecated:

  • piextImportExternalSemaphoreOpaqueFD
  • piextMemImportOpaqueFD

All Vulkan tests have been updated to work on both Windows and Linux. Comments have been added to the Vulkan test files to make it easier to read and understand the code.

Support has been added for interoperability of certain DirectX 12 resources, namely dedicated memory resources and fences. A test has been added that uses both functionalities.

Support has been added for semaphore operations to take values passed by the user. The semaphore will either signal a given value, or wait for a value of the user's choice.

The following PI functions have been added to support importing
various external handle types for both memory and semaphores:
  - `piextImportExternalMemory`
  - `piextImportExternalSemaphore`

The following PI functions and their corresponding `pi2ur` functions
are now deprecated:
  - `piextImportExternalSemaphoreOpaqueFD`
  - `piextMemImportOpaqueFD`

All Vulkan tests have been updated to work on both Windows and Linux.
Comments have been added to the Vulkan test files to make it easier to
read and understand the code.

Support has been added for interoperability of certain DirectX 12
resources, namely dedicated memory resources and fences. A test has
been added that uses both functionalities.

Support has been added for semaphore operations to take values passed
by the user. The semaphore will either signal a given value, or wait
for a value of the user's choice.
@przemektmalon przemektmalon requested review from a team as code owners May 21, 2024 09:53
@przemektmalon
Copy link
Contributor Author

przemektmalon commented May 21, 2024

Associated UR PR: oneapi-src/unified-runtime#1639

@@ -1712,10 +1721,18 @@ descriptor struct.
```cpp
namespace sycl::ext::oneapi::experimental {

// Types of external semaphore handles
enum class external_semaphore_handle_type {
opaque_fd = 0,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not: You could maybe write that opaque_fd isn't supported on windows.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added some minor notes to clarify that opaque_fd is only supported on linux based systems. I think going more into depth about which handle types are supported by which operating systems is beyond the scope of this document, and advanced users who want to use the interop APIs will have to know this already when exporting handles from third-party APIs before they even reach SYCL.

Copy link
Contributor

@kbenzie kbenzie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oneapi-src/unified-runtime#1639 has now been merged, please merge in the latest changes from the sycl branch, then update the UR repo/tag/comment as suggested.

@kbenzie kbenzie dismissed JackAKirk’s stale review June 18, 2024 11:32

Requested changes have been made

@JackAKirk JackAKirk self-requested a review June 18, 2024 12:13
@kbenzie
Copy link
Contributor

kbenzie commented Jun 18, 2024

@intel/llvm-gatekeepers please merge

@martygrant martygrant merged commit bd97f28 into intel:sycl Jun 18, 2024
14 checks passed
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.

10 participants