OpenGL vs D3D - Which to use?

I’m seeing there’s been a lot of progress on the D3D side of things in the newest release. So I’m wondering what’s the pros and cons of choosing each one?

For instance, there was a lot of talk about the .slang shaders being the ultimate end-goal and it doesn’t sound like OpenGL supports that (yet) are these shaders better in any fashion, or just ‘newer’?

I know it also mentioned that some cores require OpenGL - Aside from Dolphin I’m not sure what does.

Lastly - Is there any kind of performance boost when comparing the two?

slang shaders behave more consistently across GPUs/drivers, which is nice but ultimately probably doesn’t really matter to people that aren’t writing shaders.

Dolphin, ppsspp, citra, mupen64plus-libretro, ParaLLEl-N64 (except with angrylion gfx plugin), beetle-psx-hw, maybe a handful of others.

Yes, depending on GPU/driver, there can be a pretty substantial bump in framerate.

Ok cool. I think that all makes sense. So like a blur shader isn’t gonna work better for an AMD card, for example, just 'cause it’s slang and not cg or something.

None of those cores seem to be anything I use actively which is nice. Is there a way I can tell what’s being used, or documentation I can read up on somewhere?

Seems like the biggest thing is to just kind of try D3D and OpenGL and see what works best for my system.

People running RetroArch on Surface Pro devices might want to try it, since I seem to recall that previously very poor OpenGL performance was a very real problem on there due to Microsoft’s drivers for GL being very poor on the Surface. So I expect D3D11 to fare much better there.

Usually, it’s up to the quality of the drivers whether OpenGL will run well or not.

To this day, Microsoft creates issues for being able to run OpenGL at acceptable performance levels, see for instance this article -

‘Older games and graphics apps may not work. Windows 10 on ARM supports DirectX 9, DirectX 10, DirectX 11, and DirectX 12, but apps/games that target older versions will not work. Apps that require hardware-accelerated OpenGL will also not work.’

Also, remember that right now the Direct3D 11 driver is significantly faster than the Direct3D 12 driver, so you’re encouraged to use the Direct3D 11 driver instead if you want to go for one of the two.

1 Like

Yeah it seems like anytime I try to use anything DX12 instead of 11 I get crap performance lol. I did see that mentioned in the update as well so I’ll be sure to keep it on the 11.

I switched the setting over last night but passed out on my couch before getting the chance to really test anything out. Not enough hours in the day lol.

That’s good to know about the surface too.

What driver would you want more testing done on?