wineHQ and dx11

How are you getting a later version of the nvidia-driver on debian buster ? Are you installing it manually ?

Yes, I do. But DXVK is said to work with slighter older drivers, too. I think 390.xx should also work.

I’ve tested the PBA patches now and the game works despite the author claiming his patches would be in an alpha state and with various flawed assumptions. The PBA patches use the “d3d_perf” debug channel, which confirmed these were indeed working.

But there was no major performance gain to be found. With AA on and inside the station did the framerate stay the same, only on the outside and only with AA turned off did it spike a bit more than usual (DX9 - 150fps vs 160fps with PBA patches).

Interesting stuff, but probably best to wait until its final and is pulled into WINE.

You are correct that DXVK works with version 390.xx, however it is now officially unsupported. Driver version 396 has a new shader compiler that DXVK uses, and it significantly decreases shader compilation times and memory consumption

NVIDIA 396.18 Linux Driver Reaches Beta With New Vulkan SPIR-V Compiler - Phoronix.

1 Like

DXVK work really well now.

My overclocked RX480 (3840x2160, AA OFF) do 100 fps inside station and 150ish fps in space. So In the event that CCP ditch DX9, we have a good backup plan for both main card vendor :slight_smile:

With nine I get > 250fps in space with spike to 300.
But that DXVK is way better than the default wine D3D11->OpenGL that lower the fps in the 50’s.

Note, there is also a new way to compile shaders with vulkan using the latest Mesa git, and a specific envar, I did not test it yet.

1 Like

I am getting a black background with Wine 3.8 and DXVK on a RX470. But I am stuck on Mesa 17.3.6 for now, which could be the reason.

Did you check that your Vulkan are properly working, You also have to have the Vulkan ICD installed and configured.

When I try to rune “wine cube.exe” I get an error message about missing ID.

There is some missunderstanding from your side, how DXVK works. You don’t need to install inside from wine some vulkan related stuff, DXVK uses the vulkan implementation from linux, its a ‘wrapper’ to the linux-vulkan stuff. Just try cube or cube32 from terminal. Search in your package manager something like khronos or vulkan development there should be cube as demo lay inside.

Ah. That works. EVE still hangs but looking at the issues on github several games still have a similar behaviour.

The hangs with Nvidia seem to have something to do with the OpenGL setting “Allow Flipping”. When this is turned off does it no longer hang.

So that’s a good step forward. Some issues remain, but now it’s playable with DX11 and on a pretty decent level.

Issues I’ve seen so far:

  • VSync settings such as Interval Two to Four still only produce 60fps instead of the 30fps, 20fps and 15fps. Update: this has now been addressed with a patch and should become part of the next release.
  • The speed meter and the ring around it flicker.
  • The HUD of the 1st person camera is broken and flickers.

This was with all settings set to High, WINE 3.9 + Nvidia 396.24.02 (GTX960) + DXVK 0.53.

A note on the Vulkan SDK for Windows. Installing it lets one test WINE’s Vulkan implementation. This is useful to test if the “WINE Vulkan to Linux Vulkan” mapping is working correctly and to exclude any issues with it. DXVK uses WINE’s Vulkan API to implement DirectX. It does not directly use Linux’s Vulkan API. Instead and as a result of this can DXVK run under WINE as well as under Windows itself, where it also translates DX11 to Vulkan. It’s not actually needed for Windows and more of a proof of concept. The Vulkan SDK for Windows when installed under WINE helps to debug DXVK and allows one to enable a verification layer:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation

This will dump out a lot of information of what’s going on in Vulkan.

The CPU usage (over 8 cores) has gone down quite a bit with DXVK for me. With DX9 over OpenGL at 60fps did it use about 40% of the CPU. With DX11 over Vulkan has it gone down to 15% at 60fps.

DXVK uses the Windows API for Vulkan. Using the Linux version of the Vulkan SDK helps to test Vulkan directly on Linux. So this is something one can do, too, in an attempt to detect and fix issues.

One needs to have:

  • The Vulkan API on Linux supported through the graphics driver.
  • WINE with builtin support for the Vulkan API on Windows, which not all versions of WINE have enabled and may require one to get WINE directly from WineHQ or to compile it oneself.
  • DXVK

The Vulkan SDK is useful for debugging and for testing basic functionality of the layers involved here. The Vulkan SDK for Windows when installed under WINE lets one test and debug DXVK. The Vulkan SDK for Linux lets one test the availability of the Vulkan API on Linux.

This only for a clarification.

On another note, the Vulkan API in WINE only supports Vulkan version 1.0. Version 1.1 has seen a change in the license to Vulkan, which made version 1.1 incompatible to WINE’s license. This legal issue has been resolved recently however:

So we should soon be seeing version 1.1 getting implemented in WINE and one can expect DXVK to then make use of the newer Vulkan version at a later time.

The latest Nvidia driver 396.24.10 (Vulkan beta) fixes the hanging issue and DXVK works now more reliably.

Download link: https://developer.nvidia.com/linux-3962410

Just 396.24.10 installed works flawless with or without composite manager. The only thing which i have seen is, that EVE reset my antialiasing settings to disabled every start. Used DXVK was a own build from version 0.61.

And Nvidia 296.45 is out, too, and supposedly has the same fixes regarding Vulkan plus some more.

The wonderful joys of a new driver! :smile_cat:

README / Download

Did you have tested the LTS Driver 390.77 by the way? He should have the same fixes too.

No, I haven’t.

Maybe you have a look by Phoronix

Oh, I’m fine with 296.24.10 and the newer drivers. I’m just happy to share the update.

Do you still rely on the older driver?

No, but it maybe easier to build .deb packages from the LTS driver instead of the 396.24.10.
Using atm 396.24.10 too :slight_smile: