Jeroen Bakker
3da222cb9a
Vulkan/OpenXR: Direct3D Bridge
...
Some OpenXR platforms do not support OpenGL or Vulkan. To support these
platforms we use a bridge. Blender still renders in OpenGL/Vulkan, but
will copy the render result into a D3D11 swapchain.
OpenGL doesn this by importing the D3D11 swapchain into the OpenGL
context and perfor OpenGL calls to update the swapchain. However for
vulkan that could lead to construct 3 context for OpenXR
- Blender GPU Context
- OpenXR D3D Context
- New context that imports the Blender render result and the OpenXR
Swapchain image and copies them.
Due to Direct3D limitations importing into a vulkan context has known
issues (driver + extensions). Secondly we are not sure if we are running
on the same device as the OpenXR swapchain. The solution provided with
this PR is to only support CPU data transfers.
**SteamVR using d3d bridge**
SteamVR normally would use the Vulkan binding. But by changing the binding
priority in code you can make it select the D3D bridge.
<img width="1518" alt="Screenshot 2025-04-10 114534.png" src="attachments/f856bb2b-9ad5-4bb2-9cfd-a1412da9edd1">
It has been tested and validated to work using Mixed reality portal as well.
Pull Request: https://projects.blender.org/blender/blender/pulls/137264
2025-04-10 16:15:27 +02:00
..
2025-01-31 17:03:18 +01:00
2023-06-14 17:42:15 +10:00
2025-04-08 05:18:57 +00:00
2023-10-30 21:40:35 +01:00
2025-01-31 17:03:18 +01:00
2025-04-04 18:14:13 +02:00
2025-04-04 18:14:13 +02:00
2024-09-19 11:37:52 +02:00
2025-04-04 18:14:13 +02:00
2025-04-04 18:14:13 +02:00
2025-04-10 16:15:27 +02:00
2025-04-04 18:14:13 +02:00
2023-10-30 21:40:35 +01:00
2025-04-04 18:14:13 +02:00
2023-08-16 00:20:26 +10:00
2025-04-04 18:14:13 +02:00
2025-01-31 17:03:18 +01:00
2025-04-04 18:14:13 +02:00
2023-08-16 00:20:26 +10:00
2025-04-10 10:15:23 +02:00
2025-04-10 16:15:27 +02:00
2025-04-04 18:14:13 +02:00
2025-01-31 17:03:18 +01:00
2025-01-31 17:03:18 +01:00
2025-01-31 17:03:18 +01:00
2025-01-31 17:03:18 +01:00
2024-09-19 11:37:52 +02:00
2024-09-19 11:37:52 +02:00
2023-08-16 00:20:26 +10:00
2023-06-14 17:42:15 +10:00
2023-08-16 00:20:26 +10:00
2023-09-12 14:48:20 +10:00
2025-01-31 17:03:18 +01:00
2025-04-08 10:56:27 +00:00
2025-01-31 17:03:18 +01:00
2025-03-20 19:23:52 +01:00
2024-11-13 13:39:49 +01:00
2024-02-19 15:59:59 +01:00
2024-11-13 13:39:49 +01:00
2025-01-31 17:03:18 +01:00
2023-06-14 17:42:15 +10:00
2023-06-14 17:42:15 +10:00
2025-01-31 17:03:18 +01:00
2025-01-31 17:03:18 +01:00
2025-01-31 17:03:18 +01:00
2025-01-31 17:03:18 +01:00
2023-08-16 00:20:26 +10:00
2025-03-26 10:39:55 +11:00
2025-01-31 17:03:18 +01:00
2025-01-31 17:03:18 +01:00
2023-06-14 17:42:15 +10:00
2023-06-14 17:42:15 +10:00
2023-06-14 17:42:15 +10:00
2024-01-08 12:52:54 -05:00
2023-06-14 17:42:15 +10:00
2025-01-31 17:03:18 +01:00
2023-06-14 17:42:15 +10:00
2025-03-27 16:57:51 +01:00
2025-03-26 10:39:55 +11:00
2025-03-26 10:39:55 +11:00
2025-04-04 22:58:10 +02:00
2025-03-28 14:06:36 +11:00
2024-09-19 11:37:52 +02:00
2025-03-25 06:36:52 +00:00
2025-03-25 06:36:52 +00:00
2025-01-31 17:03:18 +01:00
2023-08-16 00:20:26 +10:00
2025-01-31 17:03:18 +01:00
2025-01-31 17:03:18 +01:00
2025-02-05 18:27:43 -05:00
2024-02-19 15:59:59 +01:00
2023-06-14 17:42:15 +10:00
2025-04-08 05:18:57 +00:00
2025-04-08 05:18:57 +00:00
2024-10-01 18:32:32 +02:00
2025-03-28 13:46:39 +11:00
2025-03-28 13:46:39 +11:00
2025-01-31 17:03:18 +01:00
2024-09-19 11:37:52 +02:00
2024-09-19 11:37:52 +02:00
2025-01-31 17:03:18 +01:00
2025-01-31 17:03:18 +01:00
2023-10-30 21:40:35 +01:00
2025-01-31 17:03:18 +01:00
2025-03-28 13:46:39 +11:00
2023-08-16 00:20:26 +10:00
2025-04-07 11:24:02 +00:00
2024-05-02 10:28:35 +10:00
2025-03-28 13:46:39 +11:00
2025-01-31 17:03:18 +01:00
2025-03-26 10:39:55 +11:00
2024-12-06 17:10:50 +01:00
2023-08-16 00:20:26 +10:00
2025-01-31 17:03:18 +01:00
2024-11-13 13:39:49 +01:00
2025-01-31 17:03:18 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2024-01-23 21:10:33 +01:00
2024-03-26 04:56:03 +01:00
2025-02-04 16:18:19 +01:00
2025-02-04 16:18:19 +01:00
2025-04-08 05:18:57 +00:00
2025-04-02 01:30:13 +02:00
2025-04-08 05:18:57 +00:00
2025-04-08 05:18:57 +00:00
2025-04-08 05:18:57 +00:00
2023-08-16 00:20:26 +10:00
2025-04-08 05:18:57 +00:00
2024-09-06 11:15:57 +02:00
2025-04-08 05:18:57 +00:00
2025-04-08 05:18:57 +00:00
2025-02-05 17:15:35 +01:00
2025-04-08 05:18:57 +00:00
2025-04-08 10:56:29 +00:00
2025-04-08 10:56:29 +00:00
2023-08-16 00:20:26 +10:00
2024-03-06 16:14:34 +01:00
2024-07-09 06:10:17 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2024-04-21 03:28:35 +02:00
2023-08-16 00:20:26 +10:00
2025-04-10 16:15:27 +02:00
2024-07-09 06:10:17 +02:00
2024-07-09 06:10:17 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2025-04-10 16:15:27 +02:00
2025-04-10 16:15:27 +02:00
2025-04-10 16:15:27 +02:00
2025-04-10 08:51:20 +02:00
2025-04-10 09:36:19 +02:00
2025-03-27 16:57:51 +01:00
2024-07-09 06:10:17 +02:00
2025-03-27 16:57:51 +01:00
2023-08-16 00:20:26 +10:00