Dolphin, the GameCube and Wii emulator - Forums

Full Version: OpenGL or Direct3D12?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

andrew143

Hi

I've just signed up so I'm new here. I just would like to know which backend should I use in dolphin (currently using 5.0 Stable Version) as I've seen in some other dolphin threads that Direct3D12 is better than OpenGL, so which one should I choose OpenGL or Direct3D12?

Acer Predator 17 G9-793
CPU: Intel i7 7700HQ 2.80 GHz
GPU: Nvidia GTX 1070
RAM: 24 GB RAM DDR4
OS: Windows 10 Home x64
D3D12 is no longer supported in the latest builds so might as well get used to OpenGL Tongue
OpenGL is the most advanced backend in terms of accuracy.
Knowing your GPU, performance is not really an issue for you. Plus, OpenGL performs very well on NVidia drivers, even outperforming D3D12 in some situations.

Also, stable 5.0 is quite old now, you should upgrade to development versions.
It is sad, but DirectX 12 has been removed in the development builds at some point. It should still be present in the Stable 5.0 (which should be supported on the forums, I think, even if it is getting quite old by today). But you get Vulkan in return for DirectX 12, which actually is pretty good. Vulkan is getting me some solid results, even on my NVidia GPU. DirectX 11 is still faster with with compiled ubershaders on a NVidia GPU, but Vulkan isn't that bad actually. At least Vulkan is providing me with the same speeds compared to DirectX 11with Asynchronous Ubershaders (hybrid). That might be different with Synchronous Ubershaders (exclusive) through. Or... I might not have tested enough of my games.

You should really consider to upgrade to the latest development build which hosts a series of great improvements, even your performance might be better. It simply isn't worth to stick on a build that still has DirectX 12 versus all the improvements which have come since. Even better that that you can use the auto-updater with the development builds so you never have to bother downloading them from Dolphin's webpage.

Perhaps DirectX 12 might return at some point, perhaps not. I believe DirectX 12 was removed because it simply became too much work to maintain it, but since it's removal the structure for maintaining backends has been removed, so a revival of DirectX 12 should be easier the next time. But perhaps DirectX 12 might not be even needed anymore since we have Vulkan. I can see it is not motivating for developers to work on DirectX 12 since it is limited to Windows 10 only.

andrew143

(08-29-2018, 10:03 PM)DrHouse64 Wrote: [ -> ]OpenGL is the most advanced backend in terms of accuracy.
Knowing your GPU, performance is not really an issue for you. Plus, OpenGL performs very well on NVidia drivers, even outperforming D3D12 in some situations.

Also, stable 5.0 is quite old now, you should upgrade to development versions.

Ok, In that case I'll go for OpenGl for now. Thanks for your help!
(08-29-2018, 11:45 PM)Admentus Wrote: [ -> ]DirectX 11 is still faster with with compiled ubershaders on a NVidia GPU, but Vulkan isn't that bad actually.

Right. I forgot NVidia's OpenGL have some performance issues with ubershaders (this is a new option that helps avoid microstutters if your GPU is strong enouth). You might want to switch to DX11 if you want use them, especially for shader sensitive games like Metroid Prime.
Vulkan is faster in some cases but still lacks (minor) features AFAIK, you probably don't want to use it except if you're experiencing slowdowns on others, which is very unlikely on a GTX 1070.
I find Vulkan to be the best backend currently, mostly because I just run The Legend of Zelda: Ocarina of Time - Master Quest and The Legend of Zelda: Collector's Edition for the GameCube. I am a massive Zelda fan, yeah. It doesn't run that bad either for The Wind Waker and Twilight Princess.

Vulkan seems to work great with the Super Mario Galaxy games too, which I am a massive fan of too. But it has been a while. I don't see any performance hits in any of my games with using Vulkan for the most part. Perhaps for Xenoblade Chronicles, but I haven't really played the game in a while. But I use Hybrid Ubershaders anyway.

Then again, with my GTX 1070 I don't think switching my backends will do much for my performance. All backends seem to work evenly. So that might be quite hard to determine which exactly is the best backend. Except for Super Mario Sunshine which demands the OpenGL backend, all other backends just run poorly for that game, at least with a NVidia GPU.
If your hardware has no issues running at full speed and don't have any issues with stuttering, then you have no reason to switch off of GL, our most mature and maintained backend.
(08-31-2018, 05:37 AM)Admentus Wrote: [ -> ]Except for Super Mario Sunshine which demands the OpenGL backend, all other backends just run poorly for that game, at least with a NVidia GPU.
I guess that depends on your settings. I was doing some tests on the various back-ends the other day on SMS with Mario just standing on Delfino Plaza after loading the save file and got the following:
DX11 4x MSAA: 110 FPS
DX11 4x SSAA: 83 FPS (-24%)
OGL 4x MSAA: 132 FPS
OGL 4x SSAA: 65 FPS (-51%!!!)
Vulkan 4x MSAA: 113 FPS
Vulkan 4x SSAA: 73 FPS (-35%)

I really haven't tested any other games extensively since I upgraded my system so I don't know if the hefty advantage of OGL in the MSAA case is typical or just SMS but notice that DX11 has the best performance with SSAA.
(09-02-2018, 12:21 PM)Helios Wrote: [ -> ]If your hardware has no issues running at full speed and don't have any issues with stuttering, then you have no reason to switch off of GL, our most mature and maintained backend.