On 7/23/20 6:40 AM, Neal Gompa wrote:
One question though: why doesn't Wine implement something like
libglvnd for swapping wined3d backends dynamically? It seems like that
would be a sturdier way to do things and handle hardware swaps a lot
more gracefully.
It's just the way these wine-fork projects work. Someone thinks they can design a
better wine and instead of working with upstream or upstream rejects their idea they
fork wine and reimplement a DLL or group of subsystems and write their own version.
- DXVK
- D9VK (luckily merged with DXVK now)
- DXGL
- Gallium Nine
- VKD3D (upstream!)
These forks may eventually merge back with upstream as upstream is more open to
changes than a few years ago, but these 3D API forks are very large changes.
I'm not sure how upstream would implement a libglvnd-like interface for these forks.
An automated choice may not be what the user wants. They do not offer identical
feature sets and some have different hardware requirements. TL;DR: It's a mess.