You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
vulkan: add DXGI flip-model interop swapchain via D3D12 direct back-buffer sharing (Windows)
Vulkan renders directly into the DXGI flip-model back buffers, which are created on a LUID-matched interop D3D12 device and shared into Vulkan as external-memory images (no copy). A shared D3D12 fence orders Vulkan rendering ahead of a no-op present command list that binds each back buffer and transitions it to PRESENT. Opt-in via VulkanSwapchainKind / WGPU_VULKAN_SWAPCHAIN_KIND; the native VK_KHR_swapchain path stays the default.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+25Lines changed: 25 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,6 +42,31 @@ Bottom level categories:
42
42
43
43
## Unreleased
44
44
45
+
### Major changes
46
+
47
+
#### DXGI swapchain for Vulkan on Windows
48
+
49
+
The Vulkan backend can now present via a D3D12 swapchain on Windows. D3D12 swapchains generally perform more consistently, give more control over frame pacing, and may use optimizations that are not available to native vulkan swapchains. For now this is default-off feature, though in the future it may be enabled by default.
50
+
51
+
Turn it on at instance creation, or if your program is using wgpu environment variables set `WGPU_VULKAN_SWAPCHAIN_KIND` to `native`, `dxgi-hwnd`, or `dxgi-visual`:
52
+
53
+
```diff
54
+
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
While all graphics debuggers still broadly function, Nsight and Radeon GPU Profiler work as expected, but RenderDoc will only capture the D3D12 work, unless you explicitly use `Device::start_graphics_debugger_capture` on the wgpu device which will capture the vulkan work. The interop D3D12 device honors the same Agility SDK configuration as the DX12 backend, via `VulkanBackendOptions::agility_sdk`.
67
+
68
+
By @cwfitzgerald in [#8388](https://github.com/gfx-rs/wgpu/pull/8388).
0 commit comments