-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Labels
area: wsiIssues with swapchain management or windowingIssues with swapchain management or windowingbackend: vulkanIssues with VulkanIssues with Vulkanplatform: windowsIssues with integration with windowsIssues with integration with windowstype: enhancementNew feature or requestNew feature or request
Description
We have a long history of swapchain related issues on vulkan windows.
- Don't use VkSurface and EglSurface on supported platforms #8100
- FIFO present modes lead to a long wait for semaphores on Vulkan #8310
- Increased input-to-screen latency on vulkan #6932
- Vulkan color space is different when rendering to swap chain (sRGB) #4842
- Window resizing lags with white rectangles on Windows #5374
- Screen flickering on Nvidia Optimus #3452
- Portable window transparency: alpha mode? #3486 .
And apis that are blocked on vulkan swapchains not having the extensions needed to do a good job of latency reduction.
All of these problems do not exist on DX12 where we're using a DXGI swapchain.
Previously we've discussed switching the default backend to DX12 on windows (#2719) to help eliminate these problems, but with the shader story being what it is, that's not really a way forward.
The next best thing is to do interop with a DXGI swapchain on windows so that we get the tools that the DXGI swapchain provides. These include
- FrameLatencyWaitableObject and sane latency controls
- DXGI frame statistics
- Much better frame pacing
I'm very motivated to get this in, so let me lay out my plan for landing this and rolling it out.
- Factor out swapchain to abstracted interface #8356
- Implement DXGI Swapchain on Vulkan #8388
- Ask people to test using the new swapchain, make sure it's solid.
- Once confident and still early in the release cycle, turn it on by default so more people can test with it.
- Before release when getting people to test us, make sure they test the swapchain on windows.
- If solid, release with it by default, if not go a version without it by default for more testing and bug fixes.
aevyrieaevyrie, Wumpf and elytldr
Metadata
Metadata
Assignees
Labels
area: wsiIssues with swapchain management or windowingIssues with swapchain management or windowingbackend: vulkanIssues with VulkanIssues with Vulkanplatform: windowsIssues with integration with windowsIssues with integration with windowstype: enhancementNew feature or requestNew feature or request