The DXVK project just earlier announced merged support for Direct3D 10, though this is separate from the “DXUP” initiative.
The approach being used is somewhat similar to DXUP, by means of using a wrapper around the DX3D11 interfaces – which is enough to run DX3D10-based games such as Crysis, Assassin’s Creed 1, and basically any other game that uses DX3D10 (though games are still being tested, and the dev asks for bug reports via the issue ticket if you can pinpoint the issue to the DXVK wrapper).
The wrapper being used allows for much better interoperability between the two DirectX APIs, so things should overall be smooth.
To run D3D10 games, users will need the native d3dcompiler_43.dll, which can be obtained by using the ‘winetricks d3dcompiler_43’ helper script for WINE.
Users need this native .dll because the D3D10 shader reflection API is implemented as a thin wrapper around the D3D11 API, which is not a part of the D3D11 core DLLS, and are not actually implemented by DXVK.
While D3D10 support is available in the master branch of DXVK, Version 0.65 does not yet have support for it – the devs say binaries should be shipped with the next DXVK release, in around a week.
- The new code implements most of the Direct3D 10.1 core API and the shader reflection API.
- The Effects API is not supported. This is a major issue for many D3D10 sample applications.
- The D3D10-specific text filter and the DXGI_FORMAT_R1_UNORM image format are not supported.
- D3D10 Counters are currently not implemented.
- Stream Output is currently not supported in the D3D11 backend (#135).
The dev so far has tested games such as Crysis and Assassin’s Creed 1, but notes that for Crysis, you need the 64-bit GOG version, because the 32-bit Steam version “will probably not run”.
The dev also noted that users should try enabling RADV_DEBUG=nohiz to possibly avoid corrupted shadows, and that enabling SSAO may crash some games, such as Just Cause 2.