Ubuntu 18.04.1 LTS Generelle Fragen zu Proton und spielen unter Linux

Semnone

Komplett-PC-Aufrüster(in)
Ich habe bisher normal Steam genutzt um auf meinen Linux Systemen zu spielen. Das hat auch soweit ganz gut geklappt.
Nun gibt es ja Proton und bin seit einiger Zeit dabei das zu testen.
Generell finde ich aber keine wirkliche Anleitung wie man das ganze optimal einrichtet. Vielleicht lässt sich das ja hier im Forum zusammenstellen.
Neben dem Umstellen auf Steam beta usw finden sich dann auf den verschiedenen Seiten in den Kommentaren noch einiges mehr was empfohlen wird zu installieren. Da verliere ich dann schnell den Überblick.

Hier mal mein System und was ich bisher gemacht habe:

Ubuntu 18.04.1 LTS
AMD Phenom 2 X4 965
AMD HD 7970
8GB DDR3 RAM

-Steam installiert
-auf beta umgestellt
-Steam Play aktiviert
-Proton 3.16-3 beta ausgewählt
-Mesa Version 18.2.2
-Vulkan Version 1.1.70 Mesa Vulkan 18.3
-LLVM und Clang Version 7
-wine 3.6
-gamemode installiert, aber auch nicht ganz sicher ob der überhaupt funktioniert

Dann habe ich auch noch was zu DXVK gelesen, aber damit noch nix gemacht.

Generell die Frage fehlt da noch was?

Crysis 2 läuft zB ziemlich gut, aber Elex bekomme ich nicht zum laufen.

Ich nutze die Steam Version mit Proton und laut der Liste hier soll Elex auch ganz gut laufen.
https://www.protondb.com/app/411300

Erst konnte ich Elex nicht mal starten, aber als ich in den Startoptionen PROTON_USE_WINED3D11=1 %command% eingetragen habe ging es.
Ich kann dann zwar einen Spielstand laden, aber der Ladescreen geht nicht weg und im Hintergrund läuft das Spiel.

Hat das schon jemand zum laufen gebracht unter Linux und Proton?
 
Sehr wichtig ist bei der HD 7970(auch mit R9 200/300 usw.), dass Du AMDGPU als Treiber nutzt. Sonst wird sehr vieles nicht funktionieren, das bei anderen läuft. Eventuell lädt der Kernel standardmäßig noch das alte radeon-Modul.

Du kannst mit dem Befehl lsmod | grep amdgpu testen, ob das amdgpu-Modul beim Start geladen wurde. Fall ja, sollte er ein paar Zeilen ausspucken, in denen amdgpu steht. Gewissheit, dass das falsche Modul geladen wurde, kannst Du bekommen, wenn Du den gleichen Befehl mit radeon ausführst.
Sollte AMDGPU nicht geladen sein, musst Du dem Kernel über eine Startoption mitteilen, dass er nicht den Standardtreiber, sondern den neuen AMDGPU-Treiber laden soll. Das kannst Du temporär ausprobieren, indem Du im Grub-Bootloader (beim Systemstart) während "Ubuntu" ausgewählt ist, auf die Taste e drückst und dann dort, wo "quiet nospash" usw. steht, hinten noch zwei Optionen anfügst, und zwar: radeon.si_support=0 amdgpu.si_support=1
Hat man eine GPU der Folgegeneration von Southern Islands, Sea Islands(z.B. R9 290X/390X), dann heißen die Optionen stattdessen radeon.cik_support=0 amdgpu.cik_support=1
Mit der Taste F10 kann man dann starten.
Wenn es funktioniert hat, und das AMDGPU-Modul geladen wurde, kann man diese Einstellung dauerhaft übernehmen. Das ist jedoch je nach Distribution eventuell etwas verschieden, und sollte für Ubuntu auf ubuntuusers.de irgendwo stehen. ;)
Hat man eine Tonga-Karte(285/380(X)) oder eine Fiji(Fury) oder neuere Karten, wie Polaris(RX 400/500), bzw. Vega, dann sollte der AMDGPU-Treiber automatisch geladen werden. Somit ist dann nichts zu tun.

Man sollte auch die Microsoft-Schriftarten installieren. Das Paket heißt [b]ttf-mscorefonts-installer[/b]. Seit Proton 3.16-4 sind corefonts bereits in Proton integriert.

Das war dann tatsächlich alles wichtige, es gibt je nach Spiel noch Workarounds, die man machen muss - das sind allerdings immer verschiedene Dinge und je weiter Proton voranschreitet, umso weniger dieser Workarounds sind noch nötig. Z.B. musste ich für GTA V neben der Installation der M$-Schriftarten noch folgendes machen:
Code:
sudo su
echo "DefaultLimitNOFILE=1048576" >> /etc/systemd/system.conf
echo "DefaultLimitNOFILE=1048576" >> /etc/systemd/user.conf
systemctl daemon-reexec
reboot
Quelle

In der Regel sind aber die Damen und Herren, die ein Spiel zum Laufen gebracht haben, so nett, und schreiben die nötigen Schritte auf der protondb.com-Seite mit dazu.

Edit:
Generell finde ich aber keine wirkliche Anleitung wie man das ganze optimal einrichtet.
Der Optimalzustand wäre, dass Du gar nichts einrichten musst. Das klappt aber noch nicht mit jedem Spiel.
LLVM und Clang Version 7
LLVM brauchst Du nicht für Proton. Es ist nur manchmal für Debug-Zwecke (für Entwickler) interessant, mit welcher LLVM-Version RADV/Mesa kompiliert wurde.
Brauchst Du auch nicht, die Installation von Wine führt eventuell je nach Distribution dazu, dass nerviges Zeug umgestellt wird.
gamemode installiert, aber auch nicht ganz sicher ob der überhaupt funktioniert
Er kann die Performance ein wenig verbessern, aber ich habe auch nichts damit gemacht und habe auch keine Performance-Probleme...
Dann habe ich auch noch was zu DXVK gelesen, aber damit noch nix gemacht.
Das brauchst Du genausowenig (selbst installieren) wie Wine ;) - Steam hat Wine mit DXVK in Proton bereits integriert, damit hast Du als Nutzer gar nichts zu tun.

Edit2:
Mesa Version 18.2.2
Es ist auch, um manche Bugs zu beseitigen, nötig, dass man eine noch aktuellere Mesa-Version hat. Z.B. indem man das Oibaf-PPA (evtl. etwas stabiler) oder das Padoka-PPA(evtl. aktueller) zu den Paketquellen von Ubuntu hinzufügt und ein Update macht.
Allerdings hat die Sache einen Haken. Ich habe zwar selbst auch immer die neueste Entwicklerversion der Grafiktreiber, aber es könnte theoretisch zu Problemen kommen, wenn ein Entwickler etwas unachtsam ändert. Man muss sich bewusst sein, dass da zwei Schichten der Qualitätskontrolle übersprungen werden und es zu Problemen führen könnte, wenn man Pech hat. Dann müsste man per Kommandozeile mindestens ein Update anstoßen und hoffen, dass der Bug inzwischen behoben wurde, sonst kann es erst recht ungemütlich werden.

Edit3: Hat man eine Nvidia-Karte sollte man auf jeden Fall den neuesten proprietären (nicht OpenSource/Mesa) Treiber herunterladen (Wurde von VikingGE aber auch schon oft genug geschrieben:)). Nvidia-Karten werden auch seit der letzten Proton-Beta als AMD-Karten erkannt, sodass Nvidia-Karten jetzt auch weniger Probleme machen sollten.
 
Zuletzt bearbeitet:
Schon mal vielen Dank für deine ausführliche Antwort.:daumen:

Das erscheint, wenn ich mit amdgpu teste:
Code:
~$ lsmod|grep amdgpu
amdgpu               2703360  0
chash                  16384  1 amdgpu
i2c_algo_bit           16384  2 amdgpu,radeon
ttm                   106496  2 amdgpu,radeon
drm_kms_helper        172032  2 amdgpu,radeon
drm                   401408  21 drm_kms_helper,amdgpu,radeon,ttm

Sieht doch eigentlich ok aus oder?

Sollte ich denn wine und die anderen Dinge die ich manuell installiert habe wieder deinstallieren?

Ansonsten habe ich alles soweit gemacht. Elex und auch Star Trek Online lassen sich aber nicht starten.
Auf ProtonDB steht leider auch nichts hilfreiches. Bei einigen gehts ohne Probleme Out of the Box und bei anderen wieder nicht.
 
Sieht irgendwie so aus, als ob amdgpu und radeon geladen wurden. eigentlich sollte das radeon-Modul beim lsmod-Befehl nirgendwo auftauchen.

Es wäre vielleicht schon besser, die Startoptionen die ich oben genannt hatte, hinzuzufügen.

Wenn ich mich richtig erinnere ist es bei Ubuntu durch Editieren der Datei /etc/default/grub möglich, in der Zeile linux-default oder so ähnlich, wo standardmäßig nur „quiet nosplash“ stehen müsste. Danach muss der Befehl update-grub ausgeführt und neu gestartet werden
 
Ich habe jetzt mal wieder Zeit gefunden mich mit meinem Linux System zu beschäftigen.
Mittlerweile bin ich auf Ubuntu 18.10 gewechselt.

In der von dir genannten Datei habe ich um die Startoption erweitert. Bin mir nur nicht ganz sicher ob das so korrekt ist:

Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.si_support=0 amdgpu.si_support=1"

Sollte denn wenn es richtig geklappt hat mit dem lsmod Befehl nur noch amdgpu zu finden sein?
Denn da sieht es aus wie vorher.

Folgende Abfrage zeigt jetzt allerdings an das amdgpu genutzt wird. Vorher stand da noch radeon.

Code:
lspci -k | grep -EA3 'VGA|3D|Display'
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X]
    Subsystem: Hightech Information System Ltd. Radeon HD 7990
    Kernel driver in use: amdgpu
    Kernel modules: radeon, amdgpu
 
Zuletzt bearbeitet:
Sieht gut aus. Bei meinem Notebook werden auch beide aufgelistet, tut nicht weh, solange der richtige Treiber läuft.

Arkintosz schrieb:
LLVM brauchst Du nicht für Proton. Es ist nur manchmal für Debug-Zwecke (für Entwickler) interessant, mit welcher LLVM-Version RADV/Mesa kompiliert wurde.
LLVM enthält das Backend für den Shader-Compiler, insofern ist das sehr wohl relevant. Und zur Abwechslung ist jenes in LLVM 7.0.1 mal wieder ein Haufen Dreck, mit dem Spiele, die vorher problemlos liefen, nun das ganze System zum Absturz bringen (z.B. SotTR).
 
Sieht gut aus. Bei meinem Notebook werden auch beide aufgelistet, tut nicht weh, solange der richtige Treiber läuft.


LLVM enthält das Backend für den Shader-Compiler, insofern ist das sehr wohl relevant. Und zur Abwechslung ist jenes in LLVM 7.0.1 mal wieder ein Haufen Dreck, mit dem Spiele, die vorher problemlos liefen, nun das ganze System zum Absturz bringen (z.B. SotTR).

Welches sollte ich dann jetzt installieren? Gibts ne Version die nicht solche Probleme macht?
 
So richtig erfolgreich bin ich da bisher nicht. Elex, Star Trek Online, Lord of the Rings Online oder F.E.A.R. bekomme ich alle nicht zum laufen oder hab massive Fehler. Auch die Tweaks helfen nicht wirklich. Muss ich mich dann wohl erstmal gedulden und mich auf die nativ oder Platinum Spiele beschränken.

Bei den Startoptionen, wei lege ich den mehrere fest? Mit einem Trennzeichen oder einfach so:

Code:
PROTON_USE_WINED3D=1 PROTON_NO_ESYNC=1 %command%
 
Ohne jetzt näher auf das Problem einzugehen, die Syntax ist im Allgemeinen

Code:
Befehl/Aufruf Argument1 Argument2 ... ArgumentX [\CODE]
 
Bei den Startoptionen, wei lege ich den mehrere fest? Mit einem Trennzeichen oder einfach so:

Code:
PROTON_USE_WINED3D=1 PROTON_NO_ESYNC=1 %command%

Genau so. Das sind Environment Variables, die stehen einfach alle vor dem eigentlichen Befehl.

Wobei die wined3d-Option sich nur auf Dx11/10-Spiele auswirkt und nicht unbedingt für bessere Kompatibilität sorgt.

Elex funktioniert nicht (mehr) mit wine, das liegt aber nicht an d3d11 oder esync und lässt sich über die Startoptionen daher nicht beheben. Es lief mal, aber nur, wenn man wine mit einer veralteten GCC-Version compiliert hat.
 
Falls ein Spiel nicht mit Proton funktioniert, dann probier es mal mit Lutris.
Damit kannst du Spiele direkt mit Workarounds installieren; auch aus Steam.
Einfach Lutris installieren, auf der Lutris Webseite das Spiel auswählen, wie z.B. Elex und den Rest Lutris erledigen lassen.
Und noch was: Wenn du auf Linux zocken möchtest, solltest du ein Linux haben, dass immer top aktuell ist.
Bei Ubuntu kannst du zumindest den Kernel auf die neuste Version bringen. Damit holst du meistens mehr aus deiner Hardware heraus.
Oder du wechselt auf eine Rolling Release Distribution wie Manjaro oder Solus OS.
 
Zurück