iXit / wine-nine-standalone

Build Gallium Nine support on top of an existing WINE installation
GNU Lesser General Public License v2.1
272 stars 23 forks source link

Failed to create direct3d device error message after enabling galliumnine #28

Closed tatsujb closed 5 years ago

tatsujb commented 5 years ago

I ran the following :

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
sudo mv winetricks /usr/bin
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks
python3 -m pip install --user pipx
~/.local/bin/pipx ensurepath
eval "$(cat .bashrc | tail -n +10)"
pipx install protontricks
pipx upgrade protontricks
protontricks 9420 galliumnine
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20190310-next - sha256sum: 287fb2be71bb02dfccab6abf9eccded45cfda0765c11b94857eca5f5fa166c9e with wine-4.2 and WINEARCH=win64
Executing w_do_call galliumnine
Executing load_galliumnine 
Executing cd /tmp/winetricks.R7VSGaWG
Downloading https://api.github.com/repos/iXit/wine-nine-standalone/releases/latest to /tmp/winetricks.R7VSGaWG
--2019-04-21 19:29:52--  https://api.github.com/repos/iXit/wine-nine-standalone/releases/latest
Resolving api.github.com (api.github.com)... 192.30.253.117, 192.30.253.116
Connecting to api.github.com (api.github.com)|192.30.253.117|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3911 (3,8K) [application/json]
Saving to: ‘release.json’

release.json        100%[===================>]   3,82K  --.-KB/s    in 0s      

2019-04-21 19:29:52 (8,43 MB/s) - ‘release.json’ saved [3911/3911]

Executing cd /home/t
Executing rm -rf /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine
Executing mkdir -p /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine
Executing tar -C /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine --strip-components=1 -zxf /home/t/.cache/winetricks/galliumnine/gallium-nine-standalone-v0.4.tar.gz
Executing mv /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine/lib32/d3d9-nine.dll.so /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/syswow64/d3d9-nine.dll
Executing mv /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine/bin32/ninewinecfg.exe.so /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/syswow64/ninewinecfg.exe
Executing mv /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine/lib64/d3d9-nine.dll.so /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/system32/d3d9-nine.dll
Executing mv /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine/bin64/ninewinecfg.exe.so /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/system32/ninewinecfg.exe
Executing rm -rf /media/home/t/.steam/steam/steamapps/compatdata/9420/pfx/dosdevices/c:/windows/temp/_galliumnine/galliumnine
Executing /media/home/t/.steam/steam/steamapps/common/Proton 4.2/dist/bin/wine ninewinecfg -e

before this the game ran fine.

after it though, I get the "Failed to create direct3d device" error box.

What am I doing wrong?

the game is using the default wineprefix (64bit) perhaps that's wrong?

my launch arguments in steam for this game (which worked before said commands) are the following :

PROTON_NO_ESYNC=1, PROTON_DUMP_DEBUG_COMMANDS=1, PROTON_USE_GALLIUM_NINE=1, PROTON_GALLIUM_NINE_MODULEPATH="/usr/lib/i386-linux-gnu/d3d/d3dadapter9.so.1:/usr/lib/x86_64-linux-gnu/d3d/d3dadapter9.so.1" %command%

tatsujb commented 5 years ago

I'm looking into mesa. I was not aware of it, does not having it explain my issue?

siro20 commented 5 years ago

Please provide additional information:

tatsujb commented 5 years ago

so to answer you :

here were my outputs with different drivers: with "418" :

$ glxinfo | grep "OpenGL version"
OpenGL version string: 4.6.0 NVIDIA 418.56

with "340" :

$ glxinfo | grep "OpenGL version"
OpenGL version string: 4.4.0 NVIDIA 340.107

with the two above, I get "Failed to create direct3d device" "perhaps missing graphics driver"

with "Nouveau" (no longer preinstalled with ubuntu 19.04 nvidia 418 comes stock instead) :

$ glxinfo | grep "OpenGL version"
OpenGL version string: 4.3 (Compatibility Profile) Mesa 19.0.2

and the game runs basically as a backscreen, so broken beyond use, but when you run the commands I typed above + this (although I'm pretty sure the ppa is useless on ubuntu 19.04 since mesa is supposed to be stock) the game runs flawlessly.

I guess it's solved now though I would like a canonical answer for good : "is Nouveau required to benefit from gallium-nine?"

siro20 commented 5 years ago

yes it requires mesa and a compatible gallium driver, of which nouveau is one. That's documented here:

If proton ship gallium nine and doesn't depend on mesa, that's a proton bug.