The DXVK project, which brings Vulkan-based D3D11 implementation for Linux / Wine, has been doing great things in regards to performance and optimization when running Direct3D 11 games under Wine – and now they’re bringing Direct3D 9 support as well.
The D3D9 for DXVK shouldn’t be confused with the VK9 initiatives for D3D9 support mapped to Vulkan, as it is a separate initiative still in the early stages. What this proposed D3D9 support DXVK should do is convert D3D9 API calls to D3D11, and then it will use DXVK’s built in D3D11 to Vulkan conversion. It’s nearly the same idea as DXUP for D3D10 to D3D11 conversation so it can convert to Vulkan via DXVK.
The brain behind the proposals, Gabriel Majeri, is currently pursuing D3D9-to-D3D11-to-Vulkan instead of a more directly routed D3D9-to-Vulkan, because DXVK will be able to leverage its existing DXBC shader compiler, and a lot of additional D3D9 features that can map nicely to a D3D11 conversion.
If you’d like a preview of the pull request, check it out here.