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
Remove D3D12 #4424
Remove D3D12 #4424
Conversation
|
Note: I am not pushing to get this removed ASAP. I'm just putting it here for when we eventually want to. |
|
+1 from me once it becomes a maintenance burden, or a new feature is implemented in common/other backends and nobody feels like porting it to D3D12. At the moment having this code here isn't an issue, but as soon as it is, I'm all for dropping it unless somebody steps up to maintain it. A first good step would be finishing my incomplete PR that fixes a number of major issues, including the 3GB+ memory usage on AMD drivers. |
|
I think this PR is up to @stenzek. If you don't want to maintain the D3D12 backend any more, feel free to drop it. @Helios747 Are you sure that Vulkan has the same performance on AMD and especiall Intel? I'm not so sure on the latter... |
|
The main people this really negatively impacts, are users with NVIDIA 4xx I agree with holding off for now. So far, d3d12 hasn't proven to be a much |
|
@phire Last time I checked Fermi GPUs didn't support D3D12 either. As far as I'm aware the only GPUs where there's D3D12 but no official Vulkan support are Intel Haswell/Broadwell, but you can get it through Mesa (albeit still experimental). |
|
Once I familiarize myself with these APIs I'd probably be interested in helping maintain this backend. I think we should keep it while we see how DX12 vs Vulkan plays out. Hopefully the industry will standardize around Vulkan this time around. Besides, the same things said in this PR about the DX12 backend could just as easily be said about the DX11 backend. While the argument for dropping the DirectX backends could certainly be made, I don't think DX11 has turned out to be such a maintenance burden either. Well, except for depth accuracy: only OpenGL can do that accurately and all other backends make things needlessly complex, though on Vulkan this is purely due to driver bugs. |
|
Just want to add to Stenzek's comment that Skylake's integrated GPUs do not have official driver support for Vulkan either. There are a couple beta Vulkan drivers for Skylake floating around that are not Mesa based (https://software.intel.com/en-us/blogs/2016/06/29/new-intel-graphics-test-driverdriver-for-windows-10-and-windows-781-15404473); but official support won't be around for a while. Would rather not have to download an old developer driver just to use Vulkan on my Intel HD 520. I'll echo the others here and recommend that we only remove D3D12 once it becomes difficult to maintain and Vulkan has fully matured. |
|
I'm one of the people advocating that removing it will be helpful down the line Right now it'd only be damaging to the project to remove it. Also, like with JITIL I do expect people to turn up and maintain it, so, I think even having this PR up is jumping the gun. |
|
I do agree that right now is too early to remove it. I made this PR right now to make everybody aware that this could be something that is cut unless it gets some TLC, since IRC isn't a persistent way to communicate and a reasonable replacement is materializing. ;) |
|
On the software side, Vulkan does support more systems, including legacy Windows systems (8 and 7), and Linux, but it does leave out a number of people on the hardware side. (The thought occured that since Vulkan is supported on Windows 8 and 7, that D3D11 could eventually be removed in favor of Vulkan, although that is something for another day.) With Vulkan not being supported on Broadwell and Haswell iGPUs on Windows (Which is a configuration that a large number of laptop users have, I presume), it seems unclear as to whether or not Vulkan is a suitable replacement. It would be nice to have some statistics for how many users only have those iGPUs under Windows. The irritating thing is that it doesn't seem like Intel is going to provide legacy drivers at all, so we would just have to wait until not a significant number of Dolphin users have systems like that. When the Vulkan backend has reached feature parity with D3D12 and gets better performance than the neglected D3D12 can provide, then I think it would be a more suitable time to consider its removal. Currently, I don't think that the progress in the backend is there. |
ae307f1
to
e9a3ddd
Compare
|
Takin' the dive y'all. |
|
Someone should go through the bug tracker and close/update the various bugs related to this backend. And several more. (Plus close or update the relevant PRs.) |
|
We know how to use the search function, please stop spamming issues and PRs. |
Off topic comments will be moderated
D3D12 was a great addition back in the 4.0 days when we had few other options for easing the pain for users on GPU intensive games. The unfortunate thing was that the backend fell unmaintained and never really cleaned up to reasonable expectations from other devs. It also has it's share of bugs that will never be fixed by devs working on the master branch. None of the graphics devs on Dolphin master want to touch D3D12 anymore. IMO this isn't really "Experimental" anymore. This is just unmaintained.
Especially now that we have Vulkan which not only works on more platforms than just Windows 10, is also maintained actively, and is getting MUCH more attention to reported bugs. All while solving the same problems D3D12 did. It also has the bonus of being a fantastic cross-platform backend for AMD users.
This also solves the irritating problem of having to download a very specific version of the Win10 SDK.
I'd rather cut down on backends and make it clear to the user that D3D12 just really isn't supported nor worth using anymore in Dolphin. One could argue the same thing for JITIL but I'm also of the opinion that JITIL should be removed as well.
@degasus, @stenzek, @Armada651, @lioncash for the love of everything good please make sure I didn't miss anything, ahahaha.
This change is