Commit f86b606
authored
[SYCL][Bindless] Add DX11 memory interop (#19217)
In DX11 Texture1D and Texture3D cannot be shared between process or
devices, so only Texture2D is used but its layout is adapted (height =
1 for 1D and ArraySlices = depth for 3D) for the interop purposes and
testing 1D and 3D image operations on it in the SYCL kernel.
The new DXGI adapter selection fixes issues with non-matching devices
between DX and SYCL which also failed the DX12 tests when more than 1
potential adapter is visible to DirectX. Ideally the introduction of
LUIDs to SYCL will resolve that completely when they are properly
matched. The future flow should change to - 1) create SYCL device (so
the device selection itself can be manipulated via
`ONEAPI_DEVICE_SELECTOR`) , 2) get DXGI adapter for creating a DX
logical device (D3D11 or D3D12) by matching adapter LUIDs (this is going
to depend on a LUID device info query extension for SYCL).
Some notes on synchronisation:
- IKeyedMutex is required for synchronising the access to the shared
resource (texture) between devices or processes.
- Currently the SYCL queue calls wait after submission to execute
immediately and block until completion, but we can use ID3D11Fence
imported in SYCL to signal the completion of the work to D3D11 via SYCL
in the future when this kind of interop is considered.1 parent ebe9758 commit f86b606
File tree
20 files changed
+928
-231
lines changed- sycl
- doc/extensions/experimental
- include/sycl/ext/oneapi
- source/detail
- test-e2e/bindless_images
- dx11_interop
- dx12_interop
- helpers
- unified-runtime
- include
- scripts/core
- source
- adapters
- cuda
- hip
- level_zero
- loader
- layers/validation
20 files changed
+928
-231
lines changedLines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2075 | 2075 | | |
2076 | 2076 | | |
2077 | 2077 | | |
| 2078 | + | |
2078 | 2079 | | |
2079 | 2080 | | |
2080 | 2081 | | |
| |||
2739 | 2740 | | |
2740 | 2741 | | |
2741 | 2742 | | |
| 2743 | + | |
| 2744 | + | |
| 2745 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
406 | 406 | | |
407 | 407 | | |
408 | 408 | | |
| 409 | + | |
| 410 | + | |
409 | 411 | | |
410 | 412 | | |
411 | 413 | | |
| |||
471 | 473 | | |
472 | 474 | | |
473 | 475 | | |
| 476 | + | |
474 | 477 | | |
475 | 478 | | |
476 | 479 | | |
| |||
Lines changed: 76 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
0 commit comments