Proton is working fine with the latest DXVK implementation but when I browse on the log files of the games used by Proton I notice a mismatch between the mesa driver version of my host system and the listed there. What I know so far is that dxvk is a bridge so calls from D3D10/D3D11 can be translated to Vulkan and processed in your host system, thus relying on your graphical driver and the Vulkan mesa driver (Amdgpu RADV in my case).
These are the mesa driver version and the apiversion used by Vulkan listed on the log of the game loaded by Proton (a win64 game):
AMD RADV POLARIS10 (LLVM 7.0.1):
Driver: 18.3.6
Vulkan: 1.1.70
The output of vulkaninfo reports apiversion "1.1.90" which is different form the version "1.1.70" used on Proton:
Vulkan Instance Version: 1.1.107
GPU id : 0
(AMD RADV POLARIS10 (LLVM 8.0.0))
apiVersion = 0x40105a (1.1.90)
driverInfo = Mesa 19.1.0 (LLVM 8.0.0)
The output from glxinfo agrees on the mesa driver version and on the version of LLVM displayed on vulkaninfo:
OpenGL renderer string: Radeon RX 570 Series (POLARIS10, DRM 3.30.0, 5.1.14-arch1-1-ARCH, LLVM 8.0.0)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.1.0
Also, before the vulkan environment initialization happens, the following DLLs are loaded as reported by the log of the game:
Loaded L"C:\windows\system32\vulkan-1.dll" at 0x7fa05e6e0000: builtin
Loaded L"C:\windows\system32\winevulkan.dll" at 0x7fa05e6a0000: builtin
Maybe these DLLs are the causative of such a mismatch.
EDIT: When opening another game on Lutris with custom DXVK_HUD options I can see that both vulkan API version and mesa version match respective versions on my host. Still don't know why Proton has that behaviour.
Summarizing
- LLVM version from Proton is different from the version found on my graphics driver: LLVM 7.0.1 (Proton) - LLVM 8.0.0 (Host)
- Mesa driver version from Proton is different from the version of the mesa driver that provides GL and VK implementation on my host system: Mesa 18.3.6 (Proton) - Mesa 19.1.0 (Host)
- Vulkan API version from Proton is different from the version used by the implementation of Vulkan as reported by vulkaninfo: 1.1.70 (Proton) - 1.1.90 (Host)
I'm missing something here AFAIK Proton doesn't provide it's own mesa implementation. Can anyone shed some light and tell me why such a mismatch exists between these versions?