-
Notifications
You must be signed in to change notification settings - Fork 798
[SYCL][E2E][Bindless] Add Vulkan interop test sampled_images_semaphore.cpp #16300
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
[SYCL][E2E][Bindless] Add Vulkan interop test sampled_images_semaphore.cpp #16300
Conversation
…e.cpp The test extends sampled_images.cpp test with semaphore import/wait. Only sycl waiting for vulkan semaphore is tested. Vulkan waiting for sycl semaphore isn't added, because the test's output is buffer and interop between vulkan and sycl buffers isn't supported.
| @@ -0,0 +1,9 @@ | |||
| // REQUIRES: cuda | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| // REQUIRES: cuda | |
| // REQUIRES: aspect-ext_oneapi_bindless_images | |
| // REQUIRES: aspect-ext_oneapi_external_semaphore_import |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done. Changed to cuda || (windows && level_zero && aspect-ext_oneapi_bindless_images)
|
|
||
| #ifdef TEST_SEMAPHORE_IMPORT | ||
| // Extension: wait for imported semaphore | ||
| q.ext_oneapi_wait_external_semaphore(handles.sycl_wait_external_semaphore); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so to clarify, the sequence is:
- submit VK operations and signal the semaphore
- SYCL waits on
sycl_wait_external_semaphoreto ensure VK operations are complete before queuing up any compute operation - q.wait_and_throw() is simply to wait on the sycl Q for compute to complete right? we don't have any signal on an external semaphore that VK will wait on here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in the unsampled test case we have a sycl_done_semaphore that is passed into q.submit() but Im not sure who is waiting on that: https://github.com/intel/llvm/blob/sycl/sycl/test-e2e/bindless_images/vulkan_interop/unsampled_images.cpp#L251
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so to clarify, the sequence is:
- submit VK operations and signal the semaphore
- SYCL waits on
sycl_wait_external_semaphoreto ensure VK operations are complete before queuing up any compute operation- q.wait_and_throw() is simply to wait on the sycl Q for compute to complete right? we don't have any signal on an external semaphore that VK will wait on here?
yes, correct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in the unsampled test case we have a
sycl_done_semaphorethat is passed into q.submit() but Im not sure who is waiting on that: https://github.com/intel/llvm/blob/sycl/sycl/test-e2e/bindless_images/vulkan_interop/unsampled_images.cpp#L251
in that test vulkan is waiting on the semaphore at
| submission.pWaitSemaphores = &syclDoneSemaphore; |
This test doesn't have this workflow because as explained in the commit message this test uses sycl buffer as output and there is no interop support between sycl buffer and vulkan buffer.
|
@intel/llvm-gatekeepers please merge, thanks |
The test extends sampled_images.cpp test with semaphore import/wait. Only sycl waiting for vulkan semaphore is tested.
Vulkan waiting for sycl semaphore isn't added, because the test's output is buffer and interop between vulkan and sycl buffers isn't supported.