wineHQ and dx11

(Tau Hopper) #6

Yes, I’ve tried WINEDEBUG=-all and the performance improves a bit - e.g. up to 20 FPS.

I’m also playing at 1920x1080 on Ubuntu 14.04.5 LTS, with NVIDIA driver 384.111 and Linux kernel 4.4.0. I’m also using the latest wine-development version, which in my case -as I said- is 3.7; but I don’t know… I’ll continue to use DX9 for now and keep an eye on the performance with the next Wine releases.

(Whitehound) #7

If it’s not important to you then simply wait until you can update your Ubuntu.

(Whitehound) #8

Only because the topic includes DX11 - there is an interesting development regarding WINE and DX11. The current support for DX11 is implemented over OpenGL, but there is now also a project, which implements it over Vulkan. It’s still in early stages:

But it is already working for benchmarks such as the Unigine engine, and the performance is quite remarkable:

Also interesting is WINE “PBA”, which is a set of patches to WINE that give a bit of extra performance:

(Nora Smith) #9

I’m actually using DXVK with EVE, works like a charm. The only glitch I’ve noticed are very thin red outlines around some transparent effects, e. g. the gate energy effect or explosions. With my GTX 970 and graphics on maximum I get about 120 FPS without significant drops. And, most importantly, it is the first time ever antialiasing works with EVE in Wine!

You do not need any special Wine build, just a recent version (>=3.5 as of DXVK 0.42). Go to the DXVK releases site and download the latest binary release (the .tar.gz file). Open a console, export your desired Wine prefix to the environment and run the appropriate setup script for your Wine arch - done! Don’t forget to untick the “Run clients with DirectX 9” box in the launcher, though.

(Whitehound) #10

Oh, thank you. I’ll give this a try in a minute. I first want to update my driver to the latest Vulkan driver since I’m only using the normal Nvidia driver.

I seem to be having some issue with it.

First of all it appears to work and I can disable the DX9 checkbox in the launcher and do get a working game as well as AA support.

BUT … the performance went up by so much (from ~45fps to ~150fps) that I’ve compared visuals and it doesn’t look as if it is now using DX11, but that it has fallen back to DX9 despite DX9 set to off. There is also no DXVK hud or log file to be found as described on the GitHub README.

(Whitehound) #11

It took a bit more than a couple of minutes for me to get DXVK to run and it still occasionally hangs for me, but if anyone wants to try, here is what I had to do to get it running on Debian 10 / “Buster”:

  • Installing a recent WINE version from WineHQ with Vulkan support enabled (i.e. 3.7. from the development branch). The WINE version that comes with Debian does not have Vulkan support compiled in yet (likely for a good reason).

Followed by (as root or with sudo):

dpkg -i wine-devel-amd64_3.7.0~buster_amd64.deb 
dpkg -i wine-devel-i386_3.7.0~buster_i386.deb 
dpkg -i wine-devel_3.7.0~buster_amd64.deb 
  • Installing the 32-bit libraries of MESA for Vulkan support.
    apt-get install mesa-vulkan-drivers:i386

  • Reinstalling the Nvidia driver 396.18.05 to provide the 32-bit Vulkan library now that MESA support has been installed.

  • Downloading and installing the VulkanSDK for Windows under WINE.
    wine VulkanSDK-

  • Creating the file winevulkan.json and registry keys for 32- and 64-bit as describe here:

  • At this point can one try to run the cube.exe demo in the VulkanSDK directory, to see if it’s all working. One should see a rotating 3D cube:

cd $WINEPREFIX/drive_c/VulkanSDK/
wine cube.exe

One can now start EVE the usual way. When the variable DXVK_HUD=1 is set does one get a small overlay with the Vulkan version and the frame rate.

So now I can fly around a little, but eventually it hangs. I’ve disabled the new Vulkan compiler, but it makes no difference. So I’m going to stop testing at this point and only keep following the development on this.

Hope someone finds this useful and has got more luck with it.

Question about installing on ubuntu 18.04
So what's about Vulkan?
EVE Launcher build 1385477 beta release for linux
(Gharim Turen) #12

Hmm, thats weird. Have wine-devel 3.7 from winehq on buster running, nvidia-driver 390.48
with vulkandrivers for amd64 and i386. I have EVE running with DXVK but it is unplayable because DXVK or wine spams the logfiles full so that it is stoked the whole time. But it works, maybe would it run better with the next version. I have it testet with DXVK 0.42.

(Gharim Turen) #13

Oh, the only thing wat i have made was the json file in windows directory and the registry entries ofc so that the vulkan driver knows, wich driver he must use. the Khronos SDK are not needet.

(Whitehound) #14

I haven’t tried it without the SDK yet, but only noticed that it installs not only the SDK but also a run-time environment. I don’t know if it’s needed or if one can leave it out. However, it helps to see if basic Vulkan support is working and one can test Vulkan itself before one tests DX11 over Vulkan.

(Gharim Turen) #15

Sure thats right. With the SDK you can test before, if the driver works or not and with the cubedemo you have an optical test.

(Whitehound) #16

I’m going to assume that none of the steps will be necessary eventually, but that Vulkan as well as DX11 over Vulkan will work out of the box, and we don’t need to mess around with anything.

Next thing I want to try is this PBA thing. Not sure if I find the time for it though.

(Gharim Turen) #17

What me at the time troubled is the fact, that dxvk replaces two dll’s in the windows system directory. What is PBA?

(Whitehound) #18

See above. I’ve mentioned it at the bottom of:

What amuses me a little is the fact that this guy is a World of Warcraft fan, who according to his own information, didn’t have much knowledge of DirectX nor WINE, and went into his project like Leeroy Jenkins.

(Gharim Turen) #19

Sounds interesting but when it is usefull it will surely be merged in wine stage i think

(Gharim Turen) #20

Today i have it tested again. I have only the two dll’s copied into windows/system32, with winecfg the overrides for both set to native, nothing else and it works. Outside of the hangar
60fps inside 50fps, with dx11 i have outside/inside 30fps with vsync off/on. Antialiasing works too. I must csmt disable, because my cpu is without csmt 10 degrees cooler and run stable as with csmt enabled. Screenshot are uploaded to my website.

(Boyamin) #21

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

(Whitehound) #22

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

(Whitehound) #23

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.

(Anonymous BTard Saurkraut) #24

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

(Ravow) #25

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.