Beelzebot
Lt. Commander
- Registriert
- Aug. 2017
- Beiträge
- 1.163
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:
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:
YouTube
An dieser Stelle steht ein externer Inhalt von YouTube, der den Forumbeitrag ergänzt. Er kann mit einem Klick geladen und auch wieder ausgeblendet werden.
Ich bin damit einverstanden, dass YouTube-Embeds geladen werden. Dabei können personenbezogene Daten an YouTube übermittelt werden. Mehr dazu in der Datenschutzerklärung.
YouTube
An dieser Stelle steht ein externer Inhalt von YouTube, der den Forumbeitrag ergänzt. Er kann mit einem Klick geladen und auch wieder ausgeblendet werden.
Ich bin damit einverstanden, dass YouTube-Embeds geladen werden. Dabei können personenbezogene Daten an YouTube übermittelt werden. Mehr dazu in der Datenschutzerklärung.
Ü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 -Sy | Lokale Datenbank aktualisieren |
pacman -Su | Alle installierten Pakete aktualisieren |
pacman -Syu macht also nichts weiter als das komplette System zu aktualisieren.
Zuletzt bearbeitet: