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

Remove D3D12 #4424

Merged
merged 1 commit into from May 19, 2017
Merged

Remove D3D12 #4424

merged 1 commit into from May 19, 2017

Conversation

Helios747
Copy link
Contributor

@Helios747 Helios747 commented Nov 5, 2016

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 Reviewable

@Helios747
Copy link
Contributor Author

Helios747 commented Nov 5, 2016

Note: I am not pushing to get this removed ASAP.

I'm just putting it here for when we eventually want to.

@stenzek
Copy link
Contributor

stenzek commented Nov 5, 2016

+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.

@degasus
Copy link
Member

degasus commented Nov 5, 2016

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...

@phire
Copy link
Member

phire commented Nov 5, 2016

The main people this really negatively impacts, are users with NVIDIA 4xx
video cards. Which unfortunately don't support Vulkan but do support d3d12.

I agree with holding off for now. So far, d3d12 hasn't proven to be a much
of a maintenance burden, even when doing crazy video common things like
Abstract Textures, it interfaces in much the same way as d3d11.

@stenzek
Copy link
Contributor

stenzek commented Nov 5, 2016

@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).

@CrossVR
Copy link
Contributor

CrossVR commented Nov 5, 2016

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.

@shellashock
Copy link

shellashock commented Nov 5, 2016

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.

@JMC47
Copy link
Contributor

JMC47 commented Nov 6, 2016

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.

@Helios747
Copy link
Contributor Author

Helios747 commented Nov 6, 2016

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. ;)

@Fallcrest
Copy link

Fallcrest commented Nov 6, 2016

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.

@lioncash
Copy link
Member

lioncash commented May 19, 2017

Takin' the dive y'all.

@lioncash lioncash merged commit 1880a97 into dolphin-emu:master May 19, 2017
8 of 10 checks passed
@Helios747 Helios747 deleted the remove_more_features branch May 19, 2017
@Fallcrest
Copy link

Fallcrest commented May 19, 2017

Someone should go through the bug tracker and close/update the various bugs related to this backend.
https://bugs.dolphin-emu.org/issues/9461
https://bugs.dolphin-emu.org/issues/9701
https://bugs.dolphin-emu.org/issues/9652
https://bugs.dolphin-emu.org/issues/9640
https://bugs.dolphin-emu.org/issues/9964

And several more. (Plus close or update the relevant PRs.)

@Helios747
Copy link
Contributor Author

Helios747 commented May 19, 2017

We know how to use the search function, please stop spamming issues and PRs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
9 participants