Installing Direct X 11 on Ubuntu 20.04
I’m trying to play Dragon Quest 11 on Ubuntu using Proton DB 5.13.6. The game keeps coming up saying Direct X 11 is required. I’m playing it on a Macbook Pro 2012 with the following specs: Intel Core i5-3210M CPU @ 2.50GHz x 4 Intel HD Graphics 4000 (IVB GT2) Ubuntu 20.04.2 LTS 64-bit I tried installing wine but it kept saying something about gecko, which I tried to research but didn’t understand. I found a post saying that I need a Vulkan drive, but that Vulkan doesn’t run on a Macbook pro that so old. Is there anyway to install Direct X 11 or any work-arounds?
Steam uses proton for cross platform support. It works on a new Macbook pro 2015 that I have but unfortunately I can’t install the game on that machine. That makes me wonder if it’s a issue with the processor or graphics card being too old.
Windows or Linux is irrelevant, I play Windows games on Wine all the time without loss of performance. People should be more careful before commenting on things they don’t have direct experience with, spreading false myths around.
2 Answers 2
I’m not sure if Wine ever successfully supported DirectX 11. I think it was never finished. More recently people that have been using Vulkan are reporting even better framerates than using Wine’s native DirectX 9. I don’t recall the entire installation procedure. You will need to obtain the latest winetricks from GitHub, then:
chmod +x /path/winetricks sudo ln -s /path/winetricks /usr/bin
WINEPREFIX=~/.wine_test64 WINEARCH=win64 winecfg < the above will create your initial wine prefix >WINEPREFIX=~/.wine_test64 WINEARCH=win64 winetricks < pick "Select Default Wine Prefix" and pick "Install DLL's or Windows components", search for dxvulkan or dvkd3d > < to avoid having to write all that big command everytime you can simply rename ~/.wine_test64 to ~/.wine and then you will be able to type only winetricks when needed. That's the default location of wine. >
I never used Vulkan, but if I’m not mistaken you will also need to install the i386 versions of your graphics drivers, penGL libraries, Vulkan libraries, etc.
Verify which ones you are missing using these commands:
dpkg -l | grep glx dpkg -l | grep gl1 dpkg -l | grep mesa dpkg -l | grep vk
Most games provide a way to revert back to Direct X 9 (d3d9) Most times, all you have to do is delete or rename the d3d11 DLL file in the game’s directory. Have you tried that? Only leave the d3d9 file there, and the game should pick it up at startup. Other games require you to run it from command line adding parameters such as -d3d9 to the end of the command line
Another problem that might happen sometimes (and this happened to me a few months back) is that sometimes Wine installation becomes confused and the video drivers are not installed, or they are installed only for 32-bit Wine, or other times they only work in 64-bit Wine for don’t work for 32-bit applications. In this case, I had to reinstall one of the wine packages, the amd64 one, and that fixed the problem for me. Other time, I had to install i386 video drivers as described at the end of my answer above, the ones ending in glx or mesa, that fixed it to play older 32-bit 3D games.
He probably isn’t here /usr/lib/ . Like on my device.
ldconfig -p | grep vulkan libvulkan_radeon.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libvulkan_radeon.so libvulkan_radeon.so (libc6) => /lib/i386-linux-gnu/libvulkan_radeon.so libvulkan_intel.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libvulkan_intel.so libvulkan_intel.so (libc6) => /lib/i386-linux-gnu/libvulkan_intel.so libvulkan.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libvulkan.so.1 libvulkan.so.1 (libc6) => /lib/i386-linux-gnu/libvulkan.so.1 libvulkan.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libvulkan.so
ldd `which vulkaninfo` linux-vdso.so.1 (0x00007fff3cdd4000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7490a6f000) libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f7490a45000) libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f7490908000) libwayland-client.so.0 => /lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007f74908f7000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7490716000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f74906fb000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7490507000) /lib64/ld-linux-x86-64.so.2 (0x00007f7490b20000) libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f7490501000) libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f74904f9000) libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007f74904ed000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f74904ca000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f749037b000) libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f749035f000)
ldd /usr/lib/libvulkan.so.1* ldd: /usr/lib/libvulkan.so.1*: Нет такого файла или каталога
vulkaninfo ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS32 ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_intel.so: wrong ELF class: ELFCLASS32 INTEL-MESA: warning: Haswell Vulkan support is incomplete
root@Venue-11-Pro-7130-vPro:/home/mct# sudo dpkg -l | grep glx ii libglx-mesa0:amd64 20.2.6-0ubuntu0.20.04.1 amd64 free implementation of the OpenGL API -- GLX vendor library ii libglx-mesa0:i386 20.2.6-0ubuntu0.20.04.1 i386 free implementation of the OpenGL API -- GLX vendor library ii libglx0:amd64 1.3.2-1~ubuntu0.20.04.1 amd64 Vendor neutral GL dispatch library -- GLX support ii libglx0:i386 1.3.2-1~ubuntu0.20.04.1 i386 Vendor neutral GL dispatch library -- GLX support ii libxcb-glx0:amd64 1.14-2 amd64 X C Binding, glx extension ii libxcb-glx0:i386 1.14-2 i386 X C Binding, glx extension root@Venue-11-Pro-7130-vPro:/home/mct# sudo dpkg -l | grep gl1 ii libegl1:amd64 1.3.2-1~ubuntu0.20.04.1 amd64 Vendor neutral GL dispatch library -- EGL support ii libgl1:amd64 1.3.2-1~ubuntu0.20.04.1 amd64 Vendor neutral GL dispatch library -- legacy GL support ii libgl1:i386 1.3.2-1~ubuntu0.20.04.1 i386 Vendor neutral GL dispatch library -- legacy GL support ii libgl1-mesa-dri:amd64 20.2.6-0ubuntu0.20.04.1 amd64 free implementation of the OpenGL API -- DRI modules ii libgl1-mesa-dri:i386 20.2.6-0ubuntu0.20.04.1 i386 free implementation of the OpenGL API -- DRI modules ii libgstreamer-gl1.0-0:amd64 1.16.2-4 amd64 GStreamer GL libraries ii libwayland-egl1:amd64 1.18.0-1 amd64 wayland compositor infrastructure - EGL library ii libwayland-egl1:i386 1.18.0-1 i386 wayland compositor infrastructure - EGL library root@Venue-11-Pro-7130-vPro:/home/mct# sudo dpkg -l | grep mesa ii libegl-mesa0:amd64 20.2.6-0ubuntu0.20.04.1 amd64 free implementation of the EGL API -- Mesa vendor library ii libgl1-mesa-dri:amd64 20.2.6-0ubuntu0.20.04.1 amd64 free implementation of the OpenGL API -- DRI modules ii libgl1-mesa-dri:i386 20.2.6-0ubuntu0.20.04.1 i386 free implementation of the OpenGL API -- DRI modules ii libglapi-mesa:amd64 20.2.6-0ubuntu0.20.04.1 amd64 free implementation of the GL API -- shared library ii libglapi-mesa:i386 20.2.6-0ubuntu0.20.04.1 i386 free implementation of the GL API -- shared library ii libglu1-mesa:amd64 9.0.1-1build1 amd64 Mesa OpenGL utility library (GLU) ii libglu1-mesa:i386 9.0.1-1build1 i386 Mesa OpenGL utility library (GLU) ii libglx-mesa0:amd64 20.2.6-0ubuntu0.20.04.1 amd64 free implementation of the OpenGL API -- GLX vendor library ii libglx-mesa0:i386 20.2.6-0ubuntu0.20.04.1 i386 free implementation of the OpenGL API -- GLX vendor library ii libosmesa6:i386 20.2.6-0ubuntu0.20.04.1 i386 Mesa Off-screen rendering extension ii mesa-utils 8.4.0-1build1 amd64 Miscellaneous Mesa GL utilities ii mesa-va-drivers:amd64 20.2.6-0ubuntu0.20.04.1 amd64 Mesa VA-API video acceleration drivers ii mesa-va-drivers:i386 20.2.6-0ubuntu0.20.04.1 i386 Mesa VA-API video acceleration drivers ii mesa-vdpau-drivers:amd64 20.2.6-0ubuntu0.20.04.1 amd64 Mesa VDPAU video acceleration drivers ii mesa-vdpau-drivers:i386 20.2.6-0ubuntu0.20.04.1 i386 Mesa VDPAU video acceleration drivers ii mesa-vulkan-drivers:amd64 20.2.6-0ubuntu0.20.04.1 amd64 Mesa Vulkan graphics drivers ii mesa-vulkan-drivers:i386 20.2.6-0ubuntu0.20.04.1 i386 Mesa Vulkan graphics drivers root@Venue-11-Pro-7130-vPro:/home/mct# sudo dpkg -l | grep vk ii libvkd3d1:i386 1.1-4 i386 Direct3D 12 to Vulkan translation - library ii lunarg-vkconfig 1.2.170.0~rc2-1lunarg20.04-1 amd64 LunarG GUI tool to configure Vulkan layers
# ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples VULKAN_SDK=~/Downloads/VulkanSDK/1.2.170/x86_64 PATH=$VULKAN_SDK/bin:$PATH LD_LIBRARY_PATH=$VULKAN_SDK/lib:$LD_LIBRARY_PATH VK_LAYER_PATH=$VULKAN_SDK/etc/explicit_layer.d
DRI_PRIME=1 glxinfo | grep OpenGL OpenGL vendor string: Intel Open Source Technology Center OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 4200 (HSW GT2) OpenGL core profile version string: 4.5 (Core Profile) Mesa 20.2.6 OpenGL core profile shading language version string: 4.50 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 3.0 Mesa 20.2.6 OpenGL shading language version string: 1.30 OpenGL context flags: (none) OpenGL extensions: OpenGL ES profile version string: OpenGL ES 3.1 Mesa 20.2.6 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10 OpenGL ES profile extensions:
Try PlayOnlinux. I haven’t tried the games, but it seems to me that it has all the tools for this.
Directx 11 linux proton
30 сен. 2019 в 6:44
When attempting to run Terraforming Mars using Proton (4.2-9) I get this error (Proton 4.11-6 had same error):
Failed to initialize graphics.
Make sure you have DirectX 11 installed, have up to date
drivers for your graphics card and have not disabled
3D acceleration in display settings.
InitializeEngineGraphics failed
I’m trying to determine if this is requires a new graphics card or if I just don’t have the right driver/software installed. The card doesn’t support vulkan but that isn’t actually a requirement, is it?
OS: Mint 19.2 (kernel: 4.15.0-54)
GPU: GeForce GT 520 (yes it’s old)
Driver: nvidia 390.129 (nvidia-driver-390 package)
(There’s beta support for a 396 driver — would that help, assuming I can get it to work?)
30 сен. 2019 в 8:33
I have seen this error from Unity games on old rig I use for old games, because it has ancient video card with DirectX 10. that error appeared because video card failed to meet DX11 support requirement, however same game worked well on that card from windows.
GT 520 should have native DX11 support, right? maybe proton tries to run it with DX12? try to add launch params to game to force DX9, DX11, no Vulkan and such. Maybe something can work.
Ideally Proton should check your card and load games in DX mode instead of Vulkan. also if it is Unity game check latest Unity engine requirements, they might need newer card make
30 сен. 2019 в 12:30
This got it to work. Runs a bit slowly and a few graphics issues (background has blinking squares) but that’s understandable with WINE + old card, and it’s quite playable.
1 окт. 2019 в 9:04
Yes, WineD3D might work for most games that run DirectX 10 and 11, but not as many as DXVK, nor as quickly.
DXVK is a lot faster, but unfortunately it requires Vulkan support.
I’m not sure the exact specs of the older nVidia Cards. The older AMD cards had a limiting factor that the earlier ones were physically incapable of running Vulkan. I do not know if those limitations exist in older nVidia cards as well, or if it’s just Vendor lock. (nVidia is famous for it’s vendor lock.)
23 дек. 2019 в 11:13