D3d11, part 1
Work on supporting d3d11 clients. Status: Got first light, got COM set up better, got minimal test added. Still need to set up fences aka timeline semaphores, those will be a separate MR.
Builds on !1300 (merged) , !1322 (merged)
Merge request reports
Activity
added 14 commits
-
17f93639...40954142 - 5 commits from branch
monado:master
- 7a1f7257 - xrt: Fix typo
- c77a5193 - comp: Fix comment typo
- 46a12c33 - build: Support d3d11
- f356479a - build: Add d3d11 to config header.
- 92838742 - xrt: Add interfaces for D3D11
- e993327c - wip
- 614f4cbc - xrt: Add a d3d11 error
- 31a937cc - more d3d work
- f75af27d - c/client: Tidy D3D11
Toggle commit list-
17f93639...40954142 - 5 commits from branch
added 11 commits
- 8ac32bb0 - xrt: Rename interface: reserved word in msvc.
- a555e9d5 - d3d comp fix build
- 8b0fa6a0 - comp: Guard gcc pragmas
- 30550111 - comp: Fix warnings on MSVC
- cae0b46c - xrt: Add to the openxr include header.
- be156151 - st/oxr: Work on d3d11
- def33ee7 - st/oxr: Fix typo in comment
- d0edc89b - st/oxr: Update extension support header to mention D3D11
- e2e6f8d8 - Fixup extension support.
- 1fceccff - scripts: Adjust formatting in generated code.
- c988666e - st/oxr: D3d11 work
Toggle commit listadded 3 commits
Chat transcripts:
[2:17 PM] @ryan.pavlik : @wallbraker is there an easy way (good interface) to get the VkPhysicalDevice suggested by the compositor? (Or some user-defined type? Trying to get an adapter LUID to d3d)
[6:54 AM] @wallbraker: It hangs off the xrt_system_compositor_info struct which is on the xrt_system_compositor struct.
[7:23 AM] @haagch : that reminds me, we have two env vars,
XRT_COMPOSITOR_FORCE_GPU_INDEX
selects the gpu that the compositor runs on. by default gpu that the compositor runs on is suggested to openxr clients, but it is also possible to setXRT_COMPOSITOR_FORCE_CLIENT_GPU_INDEX
to change which gpu is suggested to openxr clients, in case you really want to to experiment with running your compositor on an igpu and the openxr app on a dedicated gpu. iirc on linux that works fine with amd and intel (as long as only linear textures are shared), but not with nvidia.[9:24 AM] @ryan.pavlik: @haagch yeah, i was thinking about that feature. I knew you had added it but I wasn't sure where it lived, and I didn't remember the env var for it. Right now I just have it selecting a device on its own, have bigger problems (can't allocate in vulkan and import into d3d11, apparently - must go the other way)
Consensus from the few of us talking about this so far in OpenXR offtopic chat is that it does seem like you can't allocate in vulkan and import into d3d11, that you must do the other direction. I'll have to see what plumbing needs to change there to support that: we do have "xina" (xrt_image_native_allocator) but right now that's just used on Android out-of-process to do client-side allocations, not sure how that would work for both in/out-of-process but only for one API. There was no immediately-apparent solution that used D3D12, either, in my brief skimming.
Edited by Rylie Pavlikadded 772 commits
-
dec61361...8ed5a082 - 756 commits from branch
monado:main
- 1331e93b - xrt: Fix typo
- 11e0d7ed - comp: Fix comment typo
- 3631289e - xrt: Rename interface: reserved word in msvc.
- 5dcb5c36 - comp: Fix warnings on MSVC
- 3ed593df - st/oxr: Fix typo in comment
- 0a05fac4 - scripts: Adjust formatting in generated code.
- 02435cc0 - xrt: clarify comment
- 03f435c2 - build: Support d3d11
- a6728532 - build: Add d3d11 to config header.
- 9ceca285 - xrt: Add interfaces for D3D11
- 05fcfa32 - xrt: Add a d3d11 error
- 678f79e7 - comp: Initial work on d3d comp client
- d8323645 - xrt: Add to the openxr include header.
- c95f3438 - st/oxr: Work on d3d11
- 764cdfa1 - st/oxr: Update extension support header to mention D3D11
- 37421a32 - st/oxr: D3d11 work
Toggle commit list-
dec61361...8ed5a082 - 756 commits from branch
added 10 commits
- d24375f8 - st/oxr: Tidy order of extensions (NFC)
- 2535c88b - build: Support d3d11
- 0d8c3929 - build: Add d3d11 to config header.
- f9db4d53 - xrt: Add interfaces for D3D11
- 21f5aecd - xrt: Add a d3d11 error
- e94a57ea - comp: Initial work on d3d comp client
- 969d430d - xrt: Add to the openxr include header.
- 94c6a971 - st/oxr: Work on d3d11
- 066df563 - st/oxr: Update extension support header to mention D3D11
- 6ffe3dc6 - st/oxr: D3d11 work
Toggle commit listadded 43 commits
-
6ffe3dc6...a10206dc - 35 commits from branch
monado:main
- fdfeb9f0 - build: Support D3D11
- 2d19b9f4 - st/oxr: Update extension support header for D3D11
- 39f5ae5a - xrt: Add interfaces for D3D11
- 6aa85a5f - xrt: Add a D3D11 swapchain import error
- 64170d43 - xrt: Add D3D11 to the OpenXR include header
- 4be5e995 - c/client: Initial work on D3D11 client compositor
- 430fd4e3 - st/oxr: Work on D3D11
- 3fb8f0c5 - st/oxr: Work on D3D11
Toggle commit list-
6ffe3dc6...a10206dc - 35 commits from branch
added 12 commits
-
3fb8f0c5...bc89a232 - 4 commits from branch
monado:main
- 91bff15f - build: Support D3D11
- adcb8d0b - st/oxr: Update extension support header for D3D11
- f5db043f - xrt: Add D3D11 to the OpenXR include header
- 4f0b1f9e - xrt: Add interfaces for D3D11
- 735fe083 - xrt: Add a D3D11 swapchain import error
- 986bffb2 - c/client: Initial work on D3D11 client compositor
- 17680ecc - st/oxr: Work on D3D11
- b0d9401d - st/oxr: Work on D3D11
Toggle commit list-
3fb8f0c5...bc89a232 - 4 commits from branch
added 42 commits
-
b0d9401d...7a039543 - 33 commits from branch
monado:main
- 8199da0b - build: Support D3D11
- 3df9c915 - st/oxr: Update extension support header for D3D11
- 4cc344d3 - xrt: Add D3D11 to the OpenXR include header
- 54606d09 - xrt: Add interfaces for D3D11
- 99637ab8 - xrt: Add a D3D11 swapchain import error
- 4bb1a3c4 - c/client: Initial work on D3D11 client compositor
- 290b8a08 - st/oxr: Work on D3D11
- b8acbaa9 - st/oxr: Work on D3D11
- ba863692 - wip
Toggle commit list-
b0d9401d...7a039543 - 33 commits from branch
added 10 commits
- 274e0cac - header improvements
- 0d3cedfb - auxiliary: Add new d3d helper library
- bb89c0c8 - c/util cleanup
- af7faa49 - comp/main: Store LUID
- 8e93aeda - comp/client: fixup
- 049bdd45 - a/math: Fix warning
- fdf621df - d3d: fixup
- d606cf42 - comp/client: fixup
- 37cc8afb - d3d fixup
- d9b89506 - tests: Fix warnings
Toggle commit listadded 11 commits
- 362908db - xrt: Add interfaces for D3D11
- 66cffefe - xrt: Add a D3D11 swapchain import error
- 15ef84ae - xrt: Add GPU LUID to xrt_system_compositor_info
- 504b70e6 - auxiliary: Add new d3d helper library
- 8290ec49 - comp/client: Initial work on D3D11 client compositor
- cad569b5 - st/oxr: Work on D3D11
- e2cbd9c1 - comp/util: Query GPU LUID when possible
- 1c02a412 - comp/main: Store LUID
- 2a0b501e - st/oxr: Grab LUID from Vulkan if possible
- a7148078 - a/math: Fix warning
- 11c720ca - tests: Fix warnings
Toggle commit listadded 14 commits
- d47ce1f2 - build: Support D3D11
- c918b097 - st/oxr: Update extension support header for D3D11
- 4b3f8cb9 - xrt: Add D3D11 to the OpenXR include header
- db9c00d0 - xrt: Add interfaces for D3D11
- 4fa07f37 - xrt: Add a D3D11 swapchain import error
- b23a1dfd - xrt: Add GPU LUID to xrt_system_compositor_info
- cd4b939b - auxiliary: Add new d3d helper library
- 35920f55 - comp/client: Initial work on D3D11 client compositor
- 02e4d96b - st/oxr: Work on D3D11
- d27abc52 - comp/util: Query GPU LUID when possible
- 34b25fa8 - comp/main: Store LUID
- 4eb96c21 - st/oxr: Grab LUID from Vulkan if possible
- 5be5db8b - a/math: Fix warning
- 1cd5552a - tests: Fix warnings
Toggle commit listadded 8 commits
- fa2ec235 - auxiliary: Add new d3d helper library
- a7a97cd1 - comp/client: Initial work on D3D11 client compositor
- cb4331d9 - st/oxr: Work on D3D11
- ce15b40a - comp/util: Query GPU LUID when possible
- 2deec5c2 - comp/main: Store LUID
- f25e7267 - st/oxr: Grab LUID from Vulkan if possible
- ef0e0c1d - a/math: Fix warning
- 9a15ca7d - tests: Fix warnings
Toggle commit list- Resolved by Rylie Pavlik
Cool! :D
I'm thinking we probably want
XRT_OS_WINDOWS
over_WIN32
, but if there is a good reason for it that's fine. And at least for the LUID stuff I don't think we need to hide it behind a ifdef, the field is available (maybe not valid) on all platforms right?