Consider adapting wine-d3d9 patches to make use of Gallium Nine
Parent issue (ValveSoftware/Proton#66), but likely needs to be a discussion specific to wine maintainers (perhaps the same group). See https://github.com/ValveSoftware/Proton/issues/66#issuecomment-415921207 for a summary of the suggestion, but given the state of d3d9 over vulkan and the performance gains for those able to make use of Gallium Nine it seems worth consideration. Obviously, may have other priorities and this would require maintaining the changes to some degree which is why the topic should be discussed before much effort is given.
The first patch (d3d9-helper.patch) applies cleanly, but (wine-d3d9.patch) has relatively trivial issues applying, but given maintaining a fork of wine it likely does not make sense to try patching it during proton build regardless. The helper patch makes the primary changes of consideration since they are to the primary wine files while the second patch is all d3d9 ddl specific additions. For rough idea the changes to consider:
dlls/ntdll/loader.c | 205 ++++++++++++++++++++----
dlls/ntdll/loadorder.c | 298 ++++++++++++++++++++++++++---------
dlls/ntdll/ntdll_misc.h | 1 +
programs/winecfg/Makefile.in | 1 +
programs/winecfg/main.c | 12 +-
programs/winecfg/resource.h | 5 +
programs/winecfg/staging.c | 93 +++++++++++
programs/winecfg/winecfg.h | 1 +
programs/winecfg/winecfg.rc | 10 ++
9 files changed, 522 insertions(+), 104 deletions(-)
With some work to modify it to toggle when appropriate. This is mostly a question of direction from Valve perspective.