Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make DX12 the Default API on Windows #2719

Open
9 of 15 tasks
cwfitzgerald opened this issue Jun 2, 2022 · 5 comments
Open
9 of 15 tasks

Make DX12 the Default API on Windows #2719

cwfitzgerald opened this issue Jun 2, 2022 · 5 comments
Labels
api: dx12 Issues with DX12 or DXGI area: performance How fast things go type: enhancement New feature or request

Comments

@cwfitzgerald
Copy link
Member

cwfitzgerald commented Jun 2, 2022

For a variety of reasons, we want to make DX12 the default API on windows:

  • DXGI swapchains work a lot better on windows than vulkan WSI, particuarly AMD and Intel's. They are much more stable and more well behaved.
  • Cleaner interop with native apis.
  • Better debug layer and ease of bug reports as well as access to tools like PIX.

Before we make the switch, we need to get the DX12 backend tested and the major holdups fixed. This isn't a complete list and please add things as they are found.

Blocking Issues:

There are some driver issues that we may not be able to fix, but we should keep in mind:

@cwfitzgerald cwfitzgerald added type: enhancement New feature or request area: performance How fast things go labels Jun 2, 2022
@cwfitzgerald cwfitzgerald pinned this issue Jun 2, 2022
@cwfitzgerald cwfitzgerald changed the title Make DX12 Primary on Windows Make DX12 the Default API on Windows Jun 2, 2022
@cwfitzgerald cwfitzgerald added the api: dx12 Issues with DX12 or DXGI label Jun 4, 2022
@teoxoy teoxoy added this to the WebGPU Specification V1 milestone Dec 5, 2022
@cwfitzgerald cwfitzgerald unpinned this issue Apr 12, 2023
@ErichDonGubler
Copy link
Member

We're interested in this in the Firefox org. Here's our own Bugzilla entry tracking this: bug 1836816

@ErichDonGubler
Copy link
Member

ErichDonGubler commented Sep 18, 2023

@nical has made Firefox's usage of wgpu-core default to DX12 as the only backend on Windows: bug 1853140

This should indirectly help this issue, since fixing the most salient DX12 issues is our priority, for the time being.

@Elabajaba
Copy link
Contributor

Fwiw I think making dx12 the default backend for firefox on windows at the moment is the wrong choice, since you don't enable the feature to allow suballocating dx12 resources (because of gpu-allocator's windows-rs dependency) which means it'll be significantly slower than the vulkan backend.

@nical
Copy link
Contributor

nical commented Oct 3, 2023

It's a trade-off. With vulkan on windows we have to read every frame back and re-upload them on the dx11 device which renders the rest of the browser which affects performance to an even greater extent. Right now we are more focused on getting things to work reliably. We'll have to untangle the suballocation/windows-rs stuff eventually but switching to vulkan on windows does not bring us closer to where we want to be in the long run.

@jimblandy
Copy link
Member

See also: Traverse-Research/gpu-allocator#181

They'd be cool with switching to windows-bindgen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: dx12 Issues with DX12 or DXGI area: performance How fast things go type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

6 participants