News God of War, GTA IV und Elex 2: DXVK und VKD3D-Proton für besseres Spielen unter Linux

fox40phil schrieb:
Deswegen ist so eine how to für Linux Gaming inkl Tests so wichtig. Ich verstehe da auch fast nur Bhf...

Ich denke mal die meiste Verwirrung entsteht dadurch, dass viele den Aufbau gerne mit Windows vergleichen wollen und man da nur den "einen" Grafiktreiber kennt.
Wenn man hier jetzt von Mesa, X-Server, OpenGL spricht beschreibt das letztlich Vorgänge die bei Windows einfach überaus intransparent ablaufen und daher unbekannt sind.
In der Praxis ist das für den Endbenutzer beider Systeme nicht von Belang!
In einem Beitrag von 2014 hat Thorsten Leemhuis die Struktur der Grafiktreiber unter Linux aufgeschlüsselt. Dabei wird sehr schnell deutlich, dass es garnicht den "einen" Grafiktreiber gibt, sondern es stets ein Verbund aus verschiedenen Komponenten ist. Zu beachten ist, dass der Beitrag von 2014 ist und Vulkan beispielsweise erst seit 2016 existiert und daher garnicht erwähnt wird. Ich werde die Thematik im Zuge der Vereinfachung herrunterbrechen, auch wenn es dann technisch möglicherweise nicht mehr ganz korrekt ist:

Es gibt die Benutzeroberfläche die mittels dem Protokoll X11 mit dem X-Server, dem Fenstersystem (dieses gibt es unter Windows auch), kommuniziert und dieses sich mit der 3D Beschleunigung und Kernelelementen abstimmt um die grafische Umgebung aufzubauen. In diesem Zusammenhang wird gerne mal von Wayland gesprochen. Wayland soll X als Fenstersystem ablösen, weil dieses für die Aufgaben die mittlerweile daran gestellt werden nicht erdacht war. Der Verdrängungsprozess kommt allerdings eher schleppend voran.

OpenGL ist eine Programmschnittelle (API), Vulkan ebenso und wurde als dessen Nachfolger vorgestellt. Allerdings findet hier keine Verdrängung statt, sondern eine Konvergenz. Beide Schnittstellen interagieren miteinander und verschmelzen. Das bekannte Windows Gegenstück von OpenGL ist Direct3D, welches Bestandteil von DirectX (eine Ansammlung an Schnittstellen) ist. Der User flaphoschi hat das in seinem Beitrag kurz angerissen.

Mesa 3D ist eine freie Grafikbibliothek. Wenn man so will bildet sie das Gegenstück zu DirectX. OpenGL und Vulkan werden über diese bereitgestellt. AMDs und Intels Open-Source Treiber sind im Linuxkernel enthalten und greifen auf diese Bibliothek zurück, auch der Community Treiber zu Nvidia Nouveau. Der von Nvidia bereitgestellte Treiber ist proprietär und bringt daher die Schnittstellen selbst mit (Dies kann aber auch zu Schwierigkeiten führen: Wenn nvidia beschließt eine bestimmte Kernelversion nicht zu unterstützen sitzt man nach dem Update vor einem schwarzen Bildschirm). AMD hat neben dem offenen Treiber im Kernel auch noch ein proprietäres Gegenstück (AMDGPU Pro) der auf dem offenen AMDGPU aufsetzt. Diese ist für Endkonsumenten irrelevant.


Die Grafik veranschaulicht nochmal den groben Aufbau der Treiberlandschaft:

tn_thl_Treibergrafik_aak_IG.jpg

Nun kommen wir zu WINE, DXVK und Proton.

Wine Is Not an Emulator! Wine ist kein Emulator, sondern stellt lediglich eine Implementation der Funktionen der Windows-API auf Linux zur Verfügung. Das wird ganz, ganz häufig nicht verstanden!

DXVK steht für DirectX-over-Vulkan und wurde 2018 von doitsujin (der im übrigen auch CB Mitglied ist) veröffentlicht. Es übersetzt die DirectX Anfragen in Vulkan, sodass ein Linuxsystem mit diesen operieren kann. Auch das ist keine Emulation! Deshalb steht es in seiner Leistungsfähigkeit einer nativen Windowsausführung im Durchschnitt kaum nach, hin und wieder übervorteilt es diese sogar (Für letzteres Verhalten bietet der Nutzer mibbio direkt unter diesem Beitrag eine potentielle Erklärung an). DXVK deckt dabei den Bereich von DirectX 9-11 ab. Für DirectX 12 Anfragen wird VKD3D benutzt.

Proton ist das für Endkonsumenten fertige Produkt daraus. Es erzeugt für jedes Spiel einen idealen Wine-Container. Diese Umgebungen werden mit der AppID der jeweiligen Software in steam/steamapps/compatdata/ abgelegt.
Der Nutzer GloriousEggroll erklärt diese Wirkungsweisen auch noch mal in seinen Videos:


Überdies stellt er selbst eine modifizierte Protonversion zu Verfügung.

Auf Korrekturen darf gerne hingewiesen werden.
Ich betone es nochmal ausdrücklich: Das ist alles Nice-to-Know! Nichts davon ist nötig zu wissen um auf Linux zu spielen!

Das letzte was Gorkon angerissen hat ist lediglich der CLI Updateprozess eines OS der Arch-Familie:

pacman -S <Paket1 Paket2>Eines oder mehrere Pakete installieren oder aktualisieren
pacman -SyLokale Datenbank aktualisieren
pacman -SuAlle installierten Pakete aktualisieren

pacman -Syu macht also nichts weiter als das komplette System zu aktualisieren.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Donzi, efferman, Ranayna und 14 andere
Beelzebot schrieb:
Deshalb steht es in seiner Leistungsfähigkeit einer nativen Windowsausführung im Durchschnitt kaum nach, hin und wieder übervorteilt es diese sogar
Dass es mit DXVK gelegentlich sogar besser läuft, könnte ich mir damit erklären, dass Vulkan eine Low-Level API ist und Direct vor Version 12 nocht nicht. Bei Directx 9-11 sagt der Entwickler nur, was er von der Grafikkarte bearbeitet haben möchte, aber nicht das Wie. Darum kümmert sich der Treiber als eine Art Blackbox und der wählt nicht zwangsläufig die optimale Vorgehensweise. Bei Direct 12 und Vulkan kann aber der Entwickler selbst das Wie viel genauer beeinflussen und entsprechend den Anforderungen des Spiels optimieren. Bei der "Übersetzung" von DirectX zu Vulkan können die DXVK-Entwickler eben genauso Optimierungen für bestimmte Spiele vornehmen und damit aus "unoptimierten" Directx 11 Befehlsabfolgen optimierte Vulkan-Aufrufe machen.
 
  • Gefällt mir
Reaktionen: Tanzmusikus und Beelzebot
Wollte mal fragen, ob jemand auch das Problem hat, dass der Blizzard Launcher nicht mehr startet in Lutris. Das lief die ganze Zeit top, seit gestern kann ich diesen zwar in Lutris starten, dann passiert aber nichts mehr.
Ich bekomme folgende Fehlermeldungen:

[0307/105440.425:ERROR:dxva_video_decode_accelerator_win.cc(1397)] DXVAVDA fatal error: could not LoadLibrary: msmpeg2vdec.dll: Modul nicht gefunden. (0x7E)
[0307/105440.426:ERROR:dxva_video_decode_accelerator_win.cc(1405)] DXVAVDA fatal error: could not LoadLibrary: msvproc.dll: Modul nicht gefunden. (0x7E)
info: Game: Battle.net.exe

Habe mich auf Reddit schon mal umgeschaut, aber so richtig schlau bin ich dadurch nicht geworden.
 
Hardware Beschleunigung an oder aus? Die Meldungen hab ich gesehen auch an anderer Ecke.
Wenn man das im Bnet auf aus stellt, sollte die Meldung verschwinden hätt ich vermutet.
 
Zuletzt bearbeitet:
Wo finde ich die Einstellung denn genau? In den Optionen bei Lutris bin ich nicht fündig geworden.

Ach ja, die Fehlermeldungen poppen nicht auf, sondern die habe ich im Log gefunden.
 
Das ist eine Einstellung in der Battle.net App selbst unter Einstellungen>App>Erweiterte Funktionen> Hardwarebeschleunigung des Browsers verwenden.
AppData\Roaming\Battle.net\Battle.net.config
hat eine Zeile
"HardwareAcceleration": "true"
ändert sich was wenn man zwischen true und false wechselt und dann neustartet?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Innensechskant
riloka schrieb:
ändert sich was wenn man zwischen true und false wechselt und dann neustartet?
Leider nicht, kein Unterschied. Aber dennoch Danke für den Tipp. Was ich an Tipps bisher zu meinem Problem gelesen habe ist, dass das es bei manchen geholfen hat to" build dxvk from source". Leider keine weitere Erklärung, was genau man machen muss.

So toll Linux auch ist, wenn alles läuft, wenn mal was nicht läuft ists leider häufig mit viel Aufwand/Suchen/etc. verbunden.
 
NedFlanders schrieb:
Wo finde ich die Einstellung denn genau? In den Optionen bei Lutris bin ich nicht fündig geworden.
Welche(r) Grafiktreiber ist denn aktuell installiert?
https://github.com/lutris/docs/blob/master/InstallingDrivers.md
Der Nvidia-Treiber sollte halt die Video-Acclerating-Treiber mitbringen.


Ich kann mittels ProtonUp-Qt weitere Wine/Proton-Tools in Lutris (oder Steam) automatisch hinzufügen.
Hier ist eine Wine-Proton-Version von Glorious Eggroll ganz frisch:
https://github.com/GloriousEggroll/wine-ge-custom/releases

Grüße
 
Tanzmusikus schrieb:
Welche(r) Grafiktreiber ist denn aktuell installiert?
https://github.com/lutris/docs/blob/master/InstallingDrivers.md
Der Nvidia-Treiber sollte halt die Video-Acclerating-Treiber mitbringen.
Ich hatte vor Kurzem ein Update gemacht, aktuell ist der 510.54 installiert. Merkwürdigerweise lief nach dem Update erst alles ganz normal.
mibbio schrieb:
Die Anleitung zum selber bauen/kompilieren gibt's in der Readme im offizellen Github-Repo. Einfach zum Abschnitt "Build Instructions" scrollen.
Danke, schau ich mir mal an.
 
Ja, dauert immer ein bisschen die Fehlererkennung & ggf. -behebung.
Manchmal reicht auch einfach ein Neustart. ;)

In meinem Lutris 0.5.9.1 sind seit heute diese neuen Versionen erschienen:
DXVK 1.10
VKD3D 2.6
D3D 2.0
DXVK NVAPI 0.5.3
... und natürlich die neuste Wine-GE-Proton Version für Lutris.

Da muss ich nichts selbst kompilieren. 🤓
Hab nur einfach überall auf (standard) umgestellt.

Lutris_GE-Proton7-5_DXVK1.0_VKD3D2.6_DXVK-NVAPI0.5.3.jpg
 
  • Gefällt mir
Reaktionen: IceKillFX57
Ich muss mal ans Bein pinkeln. Manche Leute sollten gewisse Dinge im Leben lassen. Besonders wenn sie sich bei Problemen nicht ausdrücken oder die ganze Handlung nicht genau oder unvollständig beschreiben können. Den ein oder anderen kennt man nun mal als Linux Distro. Springer oder das die Person mehrere Geräte im Haus hat. So kann man nie aus der Ferne Hilfe geben, weil man nicht weiß um welche Distro. handelt es sich gerade.

Persönlich. Leute greift Euch Linux Arch. Gestern habe ich einiges probiert mit mesa-git und es ging nicht. Kein Problem. Die Standart Pakete wieder installiert und das System läuft. Arch kann man mittlerweile der Massen zerpflücken und easy wieder zusammenbauen ohne eine direkte Neuinstalltion oder das persönliche Daten verloren gehen.
 
SteinAlex schrieb:
Ich muss mal ans Bein pinkeln. Manche Leute sollten gewisse Dinge im Leben lassen. Besonders wenn sie sich bei Problemen nicht ausdrücken oder die ganze Handlung nicht genau oder unvollständig beschreiben können. Den ein oder anderen kennt man nun mal als Linux Distro. Springer oder das die Person mehrere Geräte im Haus hat. So kann man nie aus der Ferne Hilfe geben, weil man nicht weiß um welche Distro. handelt es sich gerade.
Aktuell geht es um meinen Gaming PC mit Pop OS (siehe Sig). Das Problem ist bei Linux leider immer mal, dass Dinge nicht mehr funktionieren, die am Tag zuvor noch ohne Probleme funktioniert haben und wo man dann kaum Möglichkeiten hat das Ganze nachzuvollziehen, wie in meinem Beispiel. Nvidia Treiber aktualisiert, danach laufen Lutris, bzw. der Battlenet Launcher wie sie sollen. Kurz darauf passiert nichts mehr, wenn man Lutris startet und dann den Battlenet Launcher starten will. Die Fehlermeldung habe ich ja gepostet, wobei ich nicht verstehe, weshalb die Dateien "msmpeg2vdec.dll" und "msvproc.dll" jetzt plötzlich nicht mehr gefunden werden. So etwas ist als Laie nunmal nicht so einfach nachvollziehbar.
Tanzmusikus schrieb:
Ja, dauert immer ein bisschen die Fehlererkennung & ggf. -behebung.
Manchmal reicht auch einfach ein Neustart. ;)
Das hat leider nicht funktioniert. Ich habe mir auch mal deinen Tipp zu Herzen genommen und die Wine-Proton-Version von Glorious Eggroll runtergeladen und in Lutris eingebunden. Leider immer das gleiche Fehlerbild:

Lutris startet, nach einem Klick auf den Battlenet Launcher ("Spielen") passiert nichts.
 
Pop Os ist nun mal bekannt, das es nach Updates schon mal nicht mehr laufen mag. In der Vergangenheit ist es sogar passiert und bekannt, das es zweimal nach Updates, man das ganze OS wieder aufsetzen musste. Also kommt mir sowas überhaupt nicht auf mein Gerät. Entweder Ubuntu oder Debian, wenn man diesen Weg gehen möchte. Lasst die Finger von diesen XXX Distros.
 
riloka schrieb:
Danke dir, das liest sich so ähnlich wie bei mir. Ich habe auch festgestellt, dass der Launcher vom Battlenet nach ca. 5 Minuten startet, danach aber nichts mehr weiter passiert. Ich werde den Battlenet Launcher nochmal neu installieren, evtl. hat Blizzard ja etwas daran geupdatet/geändert und das Problem liegt dort.

Edit: daran lags leider nicht...
SteinAlex schrieb:
Pop Os ist nun mal bekannt, das es nach Updates schon mal nicht mehr laufen mag. In der Vergangenheit ist es sogar passiert und bekannt, das es zweimal nach Updates, man das ganze OS wieder aufsetzen musste. Also kommt mir sowas überhaupt nicht auf mein Gerät. Entweder Ubuntu oder Debian, wenn man diesen Weg gehen möchte. Lasst die Finger von diesen XXX Distros.
Bisher lief Pop OS bei mir relativ problemlos bis auf ein paar kleine Fehlerchen, die ich aber auch mit anderen Distros immer mal hatte. Ich werde aber mal schauen, ob ein Umstieg evtl. etwas bringen könnte. Linux Mint sollte dann auch eine gute Option sein, oder?
 
NedFlanders schrieb:
Danke dir, das liest sich so ähnlich wie bei mir. Ich habe auch festgestellt, dass der Launcher vom Battlenet nach ca. 5 Minuten startet, danach aber nichts mehr weiter passiert. Ich werde den Battlenet Launcher nochmal neu installieren, evtl. hat Blizzard ja etwas daran geupdatet/geändert und das Problem liegt dort.


5Minuten und es hängt?
https://bugs.winehq.org/show_bug.cgi?id=49412#c23 irgendwie kommt mir das von LoL bekannt vor.
Man müsste mal gucken ob der Patch es besser macht.
 
LoL ist so eine Sache auf Linux. Hier sollte man Riot in den Arsch treten, das sie noch keinen richtigen Linux Client gemacht haben und generell immer mal gerne Steine in den Weg legen. Mac OS Client gibt es, also was soll das mit Linux?

Wenn man das Inst.Script von Lutris nimmt oder über Lutris installieren lässt, dann klappt das so halbwegs. Man muss noch etwas nachhhelfen. Steht einmal alles, dann läuft das Spiel. Abgesehen von ständiger schwammiger Maus und Spiel Start von fast 5 Minuten.

Der spez. LoL Client ist "Garena" und ist nur von den Thai. Raum bestimmt. Es ist nicht möglich auf den EUW oder den anderen bekannten Servern zu verbinden mit einen entsprechenden Account.

Eine Runde ist immer ganz lustig dort. Trotz hoher Verbindung bis zu 450ms, kann man die Leute trotz allen abziehen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Tanzmusikus und Innensechskant
Zurück
Oben