Linux Support

@foodlfg Thats right, thats what i did and i got the output telling me i need java15. but installing java15 did not solve it unfortunately.
I was thinking the environment variable should be different two so i tried changing it to /usr/lib/jvm/java-15-openjdk-amd64 but thats probably wrong.

EDIT: just got it to work. had to use this command:
export INSTALL4J_JAVA_HOME=/usr/lib/jvm/java-15-oracle

Hi everyone!
I've set up the game on latest Manjaro with Steam Play, and I have a couple of questions:

  • game load time seems quite excessive - it takes about a minute to put me into the game and similar amount of time to close the game after I hit exit. Is this usual or can it be improved in some way? (I have tested it using proton 5.0-x and 5.13-x with same results)
  • tried to watch some replays but most of them gave me error message. (I'm not certain it's client related though, as the message seemed to be complaining about a server resource not found. Still like 80% of my tries were unsuccessful which seems like a lot!) So the question: is that normal / can it be improved etc.

Also I've read some from the comments in this topic and the game itself was pretty stable compared to some. I have managed to watch two ~1 hour replays (with max speed) and there were no problems.
Thanks in advance!

@szopacniger

takes about a minute to put me into the game and similar amount of time to close the game after I hit exit.

strange.
did you use the PROTON_NO_ESYNC=1 flag in Steam before you generated the run file?
without it, it is slow.
probably it is not it. but i have no other idea. the loading wasnt really slow for me.
it may also be a network problem. when you have to connect to other players via the faf server.

as for the replays, same, no idea but make sure you close the game before you start a new replay. can you post the error message?

nice ghetto streams: https://www.twitch.tv/foodlfg

The PROTON_NO_ESYNC flag is set, yes. I don't think it's network related because I was self-hosting a game with no peers. Did not give any error message either, it just took forever.

As an additional information, I enabled Vulkan support and overlay on the system. With Steam it shows the version info and such but when launching via FAF the corner remains empty. Don't know if that's an indicator of something?

what if you start a terminal and type:
export DXVK_HUD=1
export INSTALL4J_JAVA_HOME=/usr/lib/jvm/java-15-oracle - the usual
./downlords-faf-client - the usual

this should work and you should see the fps numbers etc if you are using Proton 5++. Proton 5++ versions have Vulkan translation enabled by default. so probably you are ok.
but anyways, even with OpenGL translation, it should be faster.

unrelated
but i see someone modified the wiki to use oracle jdk.
is that ok? i mean open jdk was not good? im concerned about that oracle jdk is not accessible from every of the linux distribution repositories.

nice ghetto streams: https://www.twitch.tv/foodlfg

Yes, thanks! Overlay and hence vulkan translation appears to be working now. It is still slow though. Joined a game couple of minutes ago and it took like 2.5 mins to start. I was astonished only one dude left till then.

As an aside I was planning to go with openjdk but the specificity of the wiki made me install oracle instead.

Solved! Turned out fsync is enabled by default on newer kernels for Manjaro. Added PROTON_NO_FSYNC=1 to launch options and that did it. It may be advisable to add it to the recommended install process on the wiki since it has no adverse effects.

don't use the new proton_experimental. while it works for FA from steam FA run from FAF fails; this is what you'll get if you try to run it with proton experimental

On another note I'm getting another issue. On my new install of ubuntu 20.10 and with proton 5.13 (in which case the nice error goes away), but my FA stops immediately with no log output as you can see :

2021-01-20 03:53:57.860  INFO 396709 --- [      Thread-24] c.f.client.fa.ForgedAllianceService      : Starting Forged Alliance with command: [/home/t/faf/run, /home/t/.faforever/bin/ForgedAlliance.exe, /init, init.lua, /nobugreport, /log, /home/t/.faforever/logs/game_13674228.log, /gpgnet, 127.0.0.1:13904, /mean, 1261.25, /deviation, 93.3293, /savereplay, gpgnet://127.0.0.1:45827/13674228/tatsu.SCFAreplay, /country, FR, /clan, BPT, /numgames, 2373] in directory: /home/t/.faforever/bin
wineserver: using server-side synchronization.
2021-01-20 03:53:59.067  INFO 396709 --- [pool-3-thread-5] com.faforever.client.game.GameService    : Forged Alliance terminated with exit code 53
2021-01-20 03:53:59.391  INFO 396709 --- [      Thread-24] c.f.client.fa.relay.ice.IceAdapterImpl   : ICE adapter terminated normally

So you haven't made it work on your new setup ever? If that's the case it could be about anything starting with missing dependencies.

yeah but which ones?

and keep in mind it does work from steam.

@tatsu said in Linux Support:

On another note I'm getting another issue.

it is not another issue.
i have mentioned this here before. the run files that Steam generates for newer proton versions dont run the game. the content is different. you can test this easily in terminal with ./your_run_file.

probably Ubuntu LTS and Steam does not play well together.
Proton 5.0 run file was working for me i think, the newer ones did not.

nice ghetto streams: https://www.twitch.tv/foodlfg

Sounds like it should work. First off I was suspecting some lib32 drivers or blocking loopback but if game runs on Steam it should also run via FAF (as far as my understanding goes). Maybe some stupid typo in FAForever config?

@foodlfg But if he can make it work on Steam then the run file itself should be good no?

@szopacniger said in Linux Support:

work on Steam then the run file itself should be good no?

no.
the run file is for debugging originally.
Steam probably doesnt use that when you launch the game from Steam. or it issues other commands before calling it. i dont know exactly.
and i dont know why it creates different run files for different versions of proton either. 😕

the game was working for me from Steam too. with every Proton version.
but the run files did not work for never versions.

nice ghetto streams: https://www.twitch.tv/foodlfg

@foodlfg I see. I was starting out of a misconception then 😞

well that's weird because before, on my ubuntu 20.04, I generated run files up to proton 5.13 as you can see : https://forum.faforever.com/topic/12/linux-support/101

@foodlfg you're right though. I tried Proton 4.11-13 and suddenly it works.

I'm gonna compare the two run files, find differences and mess with it until I find what gives.

wierd.

this is my Proton 4.11-13 file (that works) :

#!/bin/bash
#Run game or given command in environment

cd "/home/t/.local/share/Steam/steamapps/common/Supreme Commander Forged Alliance"
DEF_CMD=("/home/t/.local/share/Steam/steamapps/common/Supreme Commander Forged Alliance/bin/SupremeCommander.exe")
PATH="/home/t/.local/share/Steam/steamapps/common/Proton 4.11/dist/bin/:/home/t/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/bin:/home/t/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/bin:/home/t/.local/share/Steam/ubuntu12_32/steam-runtime/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/t/.dotnet/tools" \
	TERM="xterm" \
	WINEDEBUG="-all" \
	WINEDLLPATH="/home/t/.local/share/Steam/steamapps/common/Proton 4.11/dist/lib64//wine:/home/t/.local/share/Steam/steamapps/common/Proton 4.11/dist/lib//wine" \
	LD_LIBRARY_PATH="/home/t/.local/share/Steam/steamapps/common/Proton 4.11/dist/lib64/:/home/t/.local/share/Steam/steamapps/common/Proton 4.11/dist/lib/:/home/t/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32:/home/t/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_64:/usr/lib/x86_64-linux-gnu/libfakeroot:/lib/i386-linux-gnu:/usr/local/lib:/lib/x86_64-linux-gnu:/lib:/home/t/.local/share/Steam/ubuntu12_32/steam-runtime/lib/i386-linux-gnu:/home/t/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu:/home/t/.local/share/Steam/ubuntu12_32/steam-runtime/lib/x86_64-linux-gnu:/home/t/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu:/home/t/.local/share/Steam/ubuntu12_32/steam-runtime/lib:/home/t/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib:/home/t/.local/share/Steam/steamapps/common/Supreme Commander Forged Alliance" \
	WINEPREFIX="/home/t/.local/share/Steam/steamapps/compatdata/9420/pfx/" \
	SteamGameId="9420" \
	SteamAppId="9420" \
	WINEDLLOVERRIDES="steam.exe=b;mfplay=n;dxvk_config=n;d3d11=n;d3d10=n;d3d10core=n;d3d10_1=n" \
	STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/t/.local/share/Steam" \
	"/home/t/.local/share/Steam/steamapps/common/Proton 4.11/dist/bin/wine" "${@:-${DEF_CMD[@]}}"

and this is my Proton Experimental file (that doesn't) :

#!/bin/bash
#Run game or given command in environment

cd "/home/t/.local/share/Steam/steamapps/common/Supreme Commander Forged Alliance"
DEF_CMD=("/home/t/.local/share/Steam/steamapps/common/Supreme Commander Forged Alliance/bin/SupremeCommander.exe")
PATH="/home/t/.local/share/Steam/steamapps/common/Proton - Experimental/dist/bin/:/usr/bin:/bin" \
	TERM="xterm" \
	WINEDEBUG="-all" \
	WINEDLLPATH="/home/t/.local/share/Steam/steamapps/common/Proton - Experimental/dist/lib64//wine:/home/t/.local/share/Steam/steamapps/common/Proton - Experimental/dist/lib//wine" \
	LD_LIBRARY_PATH="/home/t/.local/share/Steam/steamapps/common/Proton - Experimental/dist/lib64/:/home/t/.local/share/Steam/steamapps/common/Proton - Experimental/dist/lib/:/overrides/lib/x86_64-linux-gnu:/overrides/lib/i386-linux-gnu" \
	WINEPREFIX="/home/t/.local/share/Steam/steamapps/compatdata/9420/pfx/" \
	SteamGameId="9420" \
	SteamAppId="9420" \
	WINEDLLOVERRIDES="steam.exe=b;dotnetfx35.exe=b;dxvk_config=n;d3d11=n;d3d10=n;d3d10core=n;d3d10_1=n;d3d9=n" \
	STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/t/.local/share/Steam" \
	WINE_LARGE_ADDRESS_AWARE="1" \
	GST_PLUGIN_SYSTEM_PATH_1_0="/home/t/.local/share/Steam/steamapps/common/Proton - Experimental/dist/lib64/gstreamer-1.0:/home/t/.local/share/Steam/steamapps/common/Proton - Experimental/dist/lib/gstreamer-1.0" \
	WINE_GST_REGISTRY_DIR="/home/t/.local/share/Steam/steamapps/compatdata/9420/gstreamer-1.0/" \
	MEDIACONV_AUDIO_DUMP_FILE="/home/t/.local/share/Steam/steamapps/shadercache/9420/fozmediav1/audio.foz" \
	MEDIACONV_AUDIO_TRANSCODED_FILE="/home/t/.local/share/Steam/steamapps/shadercache/9420/swarm/transcoded_audio.foz" \
	MEDIACONV_VIDEO_DUMP_FILE="/home/t/.local/share/Steam/steamapps/shadercache/9420/fozmediav1/video.foz" \
	MEDIACONV_VIDEO_TRANSCODED_FILE="/home/t/.local/share/Steam/steamapps/shadercache/9420/swarm/transcoded_video.foz" \
	"/home/t/.local/share/Steam/steamapps/common/Proton - Experimental/dist/bin/wine"  "${@:-${DEF_CMD[@]}}"

no matter how I mix and match the issue does seem to come from the new proton versions.

the thing I can't wrap my head around is that under previous kernels (5.2) it worked on proton 5.13 for me.

I made a new comment in the proton thread : https://github.com/ValveSoftware/Proton/issues/688#issuecomment-764513612
if you guys could please upvote it that would help, thanks.