Talos Principle unter Linux Mint 18.2 mit Vulkan

Talos Principle unter Linux Mint 18.2 mit Vulkan

Was Ist Nochmal Vulkan? Brauch Ich Das?

~ 140 Fps

Vulkan ist eine Grafik-Programmierschnittstelle um 2D und 3D auf euren Bildschirm zu zaubern.

Aus der Weiterentwicklung der offnen Grafik-Programmierschnittstelle OpenGL ist über OpenGLNext und später über AMDs Mantle im Jahre 2015 die Vulkan API hervorgegangen. Die Vulkan API wird aktiv von der Khronos Group [www.khronos.org] vorangetrieben.

Mit der Vulkan Khronos Group hat sich die Créme de la Créme der Grafikprogrammierer vieler namenhafter Firmen, wie z.b.

CrowTeam (Serious Sam, Talos Principle)

AMD (Readon GPUs)

Nvidia (Geforce GTX GPUs)

Intel (CPU & GPU Chips)]

Crytek (FarCry Serie)

ID Software (Doom Serie)

Valve (Half-Life Serie, CounterStrike Serie, Source Engine, Portal2)

Unity (Rust)

zusammengeschlossen, um mit Vulkan einen neuen Grafik-Programmier-Standart zu erschaffen. Vulkan ist quelloffen und beschränkt sich nicht auf ein bestimmtes Betriebsystem. Ein auf Vulkan basierendes Game läuft also nicht nur unter Windows, sondern auch unter Linux und MacOs oder kann sogar auf einem Android angezeigt werden. Vulkan ist damit quasi der direkte Konkurent zur der DirektX12 Schnittstelle, die als "ClosedSource" von Mircrosoft und nur für die Windows Platform entwickelt wird.

Erwähnenswert ist, das Vulkan als Low-Level API entworfen wurde, um das zu Ermöglichen was vorher nur Konsolen wie einer PS4, einem Nintendo oder XBox vorbehalten war: Die eingebaute Grafik-Hardware programmiertechnisch auf das maximal mögliche auszureizen.

Aus meiner Sicht wird die Vulkan API in Zukunft ein kompletter Game Changer werden, durch den mehr und mehr Tripple A Spiele Titel unter Linux erscheinen. Selbst jetzt ist das ausschließlich für Windows entwickelte Spiel Doom 2016 dank Vulkan unterstützung komplett unter Linux lauffähig.

The Talos Principle war eins der ersten Games welche die Vulkan API nativ unter Linux angesprochen haben.

Hier eine kurze Übersicht der Games die aktuell schon Vulkan unterstützen:

https://en.wikipedia.org/wiki/List_of_games_with_Vulkan_support

Vulkan Präsentation von der Khronos Group:

https://www.khronos.org/assets/uploads/developers/library/overview/vulkan-overview.pdf

Auch wenn sich Vulkan noch Mitten in der Entwicklung befindet, können sich die Ergebnisse bei den Games schon sehen lassen. Ganz vorne mit dabei ist Valve mit den Games auf der Source Engine.

Was bewirkt Vulkan bei The Talos Principle?

Der Unterschied zu den Grafik-Einstellung unter OpenGL sind nicht von der Hand zu weisen. Bei meinem alten Desktop PC aus dem Jahre 2011 mit eingebauten Nvidia GTX 1070 Grafikkarte spielt sich The Talos Principe unter Linux Mint 18.2 in der Full HD Auflösung und maximalen Details:

Grafik-Einstellung Durchschnittliche Bildwiederholfrequenz OpenGL ~ 80 fps Vulkan

Angeblich soll der FPS zuwachs unter Vulkan AMD Radeon Grafikkarten noch deutlicher zu spüren sein. Dazu habe ich aber keine persönlichen Erfahrungswerte und muss mich auf Test-Ergebnisse von Webseiten wie z.b. https://www.phoronix.com/ verlassen.

Neben den Vorteil einer höhere Framerarte habe ich zudem den Eindruck, dass das Game mit Vulkan nochmal deutlich hübscher und noch dazu gestochen scharf aussieht. Dies gilt nicht nur für Talos sondern auch für Games wie z.b. Dota2 mit Vulkan DLC.

Wenn ihr die Hardware für Vulkan habt und das Game Vulkan schon unterstützt kann ich euch nur ans Herz legen dies zu Verwenden und ggf auftretende Bugs an die Community zurück zu melden.

Meine persönliche Erfahrung ist, dass unter Linux Mint seit Anfang 2017 mit den Vulkan Updates und den neusten Nvidia Treiber sehr stabil läuft.

Selbst über Steam Link ist Talos mit Vulkan kein Problem und macht am Beamer deutlich mehr Spass als unter OpenGL:)

Mir bekannte Probleme mit Vulkan bei Talos: Vsync Option kann das Game im Vulkan Modus zum Absturz bringen

Cinnamon Deskop Overlays wie z.b. Drücken der Lautstärke kann zu dazu führen, dass nichts mehr angezeigt wird Siehe Details dazu im Vulkan Troubleshooting Artikel dieses Guides.

Anmerkung:

Vulkan wird bei Nvidia Grafikkarten erst ab den Geforce 700er Reihe und höher unterstützt.

Vorrausetzungen - Vulkan Hardware

Prüfen welche Hardware bei euch Verbaut ist

Öffnet ein Terminal Fenster und prüft mit dem Befehl lshw (list hardware) welche Grafikkarte verbaut ist und ob diese Vulkan unterstüzt. Für Vulkan wird mindestens eine Grafikmodell der Geforce 700er Serie benötigt

Bei den AMD Readon Grafikkarten wird mindestens die R-Serien für Vulkan vorrausgesetzt.

Im Zweifel, gerade bei solchen im Notebook verbauten Grafikkarten nochmal auf der Herstellerseite oder unter

http://vulkan.gpuinfo.org/

nachschauen.

$ sudo lshw -c video *-display Beschreibung: VGA compatible controller Produkt: GK208M [GeForce GT 730M] Hersteller: NVIDIA Corporation Physische ID: 0 Bus-Informationen: pci@0000:01:00.0 Version: a1 Breite: 64 bits Takt: 33MHz Fähigkeiten: pm msi pciexpress vga_controller bus_master cap_list rom Konfiguration: driver=nvidia latency=0 Ressourcen: irq:36 memory:f2000000-f2ffffff memory:e0000000-efffffff memory:f0000000-f1ffffff ioport:4000(Größe=128) memory:f3000000-f307ffff *-display Beschreibung: VGA compatible controller Produkt: 4th Gen Core Processor Integrated Graphics Controller Hersteller: Intel Corporation Physische ID: 2 Bus-Informationen: pci@0000:00:02.0 Version: 06 Breite: 64 bits Takt: 33MHz Fähigkeiten: msi pm vga_controller bus_master cap_list rom Konfiguration: driver=i915 latency=0 Ressourcen: irq:31 memory:f3400000-f37fffff memory:c0000000-dfffffff ioport:5000(Größe=64) memory:c0000-dffff

Alternativ kann dies auch über die Abfrage des PCI Steckplatzes erfolgen:

$ lspci -nnk | grep "VGA\|'Kern'\|3D\|Display" -A2 00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller [8086:0416] (rev 06) Subsystem: Lenovo 4th Gen Core Processor Integrated Graphics Controller [17aa:221e] Kernel driver in use: i915 -- 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208M [GeForce GT 730M] [10de:1290] (rev a1) Subsystem: Lenovo GK208M [GeForce GT 730M] [17aa:221e]

In dem oberen Beispiel sind in meinem Lenovo Notebook also zwei Grafikkarten vorhanden. Eine langsame Intel VGA und eine vulkanfähige Geforce GT 730M.

Um zu prüfen, welche Treiberversion aktuell von Mint verwendet wird:

$ glxinfo | grep version server glx version string: 1.4 client glx version string: 1.4 GLX version: 1.4 OpenGL core profile version string: 4.5.0 NVIDIA 387.12 OpenGL core profile shading language version string: 4.50 NVIDIA OpenGL version string: 4.6.0 NVIDIA 387.12 OpenGL shading language version string: 4.60 NVIDIA OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 387.12 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20 GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix,

Vorrausetzungen - Vulkan Grafikkartentreiber


Talos Principle unter Linux Mint 18.2 mit Vulkan image 48
Talos Principle unter Linux Mint 18.2 mit Vulkan image 49

Neusten Grafikkarten Treiber im System installieren

Grundsätzlich funktioniert Talos mit Vulkan auch mit den von Mint unter der Treiberverwaltung mitgeliefertern (Nvidia) Treibern. Dieser ist für eure Linux Mint 18.2 Distribution getestet und offiziell freigegben.

Meiner Meinung kann es je nach Game aber sinnvoll sein, die neusten Grafikkarten-Treiber für euer Beriebsystem zu installieren, um an den Weiterentwicklungen und Verbesserungen von Vulkan profitieren zu können. Mangels vorhandensein einer AMD Readon Grafikkarte, zeige ich hier exemplarisch die Installation für den neusten Nvidia Grafikkartentreiber.

---

Anmerkung zum Troubleshooting:

Die Installation der neusten Treiber birgt ein gewisses Risiko, welches im Fehlerfall insbesondere Linux Anfänger gerne vor anscheinend unlösbare Probleme stellt. Dann nicht gleich aufgeben , sondern Handy zücken und lesen. Sollte es bei der Treiberinstallation wiedererwartend zu Problemen kommen, hilft zunächst ein Blick in die bekannten Hilfestellungen für euer Linux Mint Release[www.linuxmint.com] um z.b. beim Hochfahren mit Boot Optionen wie -nomodset wieder den Cinnamon Desktop zu Gesicht zu bekommen. Anschließend könnt ihr die getätigten Einstellungen gewohnt über die grafische Benutzeroberfläche in der Treiberverwaltung rückgängig zu machen.

Sollte das nicht helfen und euer System nach der einer Treiberinstallation mit einem schwarzen Bildschirm starten, könnt ihr mit der Tastenkombination Str+F1 bis Str-F7 jeweils ein neues Terminal Fenster aufmachen. Über dieses meldet ihr euch am System an und könnt dann über die Konsole die Installation eurer Nvidia Treiber über die Konsole wieder rückgängig machen mit

$ sudo apt-get remove --purge nvidia-* ---

Wie immer unter Linux, gibt mehrere Wege den neusten Nvidia Grafikkartentreiber zu installieren. Ich empfehle, den einfachen Weg über das Hinzufügen einer gepflegten externen Packetquelle (PPAs).

Start --> Anwendungspaketquellen --> PPA --> Neues PPA hinzufügen

Dort fügt ihr wie auf dem Screenshot zu sehen das ppa:graphics-drivers/ppa

von https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa hinzu

Wer wie ich lieber die Console bevorzugt, kann dies über folgende Befehle erledigen:

$ sudo add-apt-repository ppa:graphics-drivers/ppa $ sudo apt-get update

Nach dem Aktualisieren der Packetquellen, steht euch unter den Treiberverwaltung die neusten Nvidia Treiber mit Vulkan zur Auwahl zu Verfügung und kann über einen Klick installiert werden.

Alternative über die Console sucht ihr zunächst welches die aktuellste TreiberVersion ist

$ sudo apt search nvidia und installiert diese über apt

sudo apt install nvidia-387 nvidia-settings

Das System kann nun neu gestartet werden, um die Änderungen vollständig zu aktivieren.

Nach dem Neustart lässt sich mit lsmod und nvidia-smi prüfen ob der Treiber geladen wurde

$ nvidia-smi +-----------------------------------------------------------------------------+ | NVIDIA-SMI 387.12 Driver Version: 387.12 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GT 730M Off | 00000000:01:00.0 N/A | N/A | | N/A 42C P0 N/A / N/A | 809MiB / 983MiB | N/A Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 Not Supported | +-----------------------------------------------------------------------------+

$ lsmod | grep nvidia nvidia_uvm 675840 0 nvidia_drm 45056 8 nvidia_modeset 897024 7 nvidia_drm nvidia 13815808 617 nvidia_modeset,nvidia_uvm drm_kms_helper 151552 2 i915,nvidia_drm drm 352256 6 i915,nvidia_drm,drm_kms_helper

Sollte hier keine Ausgabe erfolgen, wurden wahrscheinlich die die nouveau Treiber geladen

Mit folgender kurzen Gegenprüfung prüfen ob der freie Open Source Treiber nouveau geladen wurde mit

$ lsmod | nouveau

Insbesondere bei Notebooks mit zwei Grafikkarten kann es sein, dass nicht der nvidia sondern der nouveau Treiber beim Bootvorgang angezogen wird. In solchen Fällen kann das Blacklisten des nouveau Treibers Abhilfe schaffen. Dazu die Datei /etc/modprobe.d/blacklist-nouveau.conf anlegen und mit einem Editor eurer Wahl und sudo rechten öffnen und folgende Zeile unten ergänzen:

blacklist nouveau options nouveau modeset=0

Änderungen werden bei einem Neustart gezogen.

Falls dem nicht so sein sollte, kann eine Aktualisierung des initramfs Image Abhilfe schaffen:

# Einschränkung der für den Bootvorgang relevanten Module für den aktuellen Kernel $ sudo update-initramfs -u

Anmerkung zu Hybrid Grafikkarten im Notebook

Die ehemalige Bumblebee Lösung ist obsolet und veraltet! Nvidia liefert ihre Nvidia Optimus Technologie [de.wikipedia.org] mit neuen Linux Kerneln (z.b. ab Mint 18.1) mit den Nvidia Treiber über das nvidia-prime Packet aus. Siehe

https://wiki.ubuntuusers.de/Hybrid-Grafikkarten/PRIME/

Ich bin leider anfangs in diese Falle getappt hab das nicht richtig verstanden dummerweise versucht Bumblebee und Prime gleichzeitig zu installieren...war ne dumme idee...

Nvidia Settings Tweaks

Performance Modeo

Bei Notebooks mit zwei Grafikkarten sicherstellen, dass PRIME im Performance Mode läuft (und nicht die langsame Intel Graka genommen wird)

PowerMizr

Sicherstellen, dass ihr auch die maximalen Takt euer Grafikkarte vor dem Gamen zur Verfügung habt. Bei Black Mesa ist es mir schon passiert, dass er im Akku Betrieb gemeint hat er müss Strom sparen und hat die Grafikkarte runtergetaktet....

Vorrausetzungen - Vulkan Libs


Talos Principle unter Linux Mint 18.2 mit Vulkan image 90
Talos Principle unter Linux Mint 18.2 mit Vulkan image 91

Im Betriebsystem Mint müssen die Vulkan Pakete libvulkan1 und vulkan-utils installiert sein.

Bei anderen Linux Distrubutionen können die Namen der Pakete entsprechen abweichen

Vulkan Libs Installieren (GUI)

Mint Menü --> Anwendungspaketverwaltung --> nach "vulkan" suchen

Anschließend die oben genannten Pakete libvulkan1 und vulkan-utils nacheinander installieren

Vulkan Libs Installieren (über Konsole)

sudo apt install libvulkan1 vulkan-utils

Prüfen ob die Pakete installiert sind. Wird durch das i gekennzeichnet

$ sudo apt search vulkan p libvulkan-dev - Vulkan loader library -- development files p libvulkan-dev:i386 - Vulkan loader library -- development files i libvulkan1 - Vulkan loader library p libvulkan1:i386 - Vulkan loader library p mesa-vulkan-drivers - Mesa Vulkan graphics drivers p mesa-vulkan-drivers:i386 - Mesa Vulkan graphics drivers i vulkan-utils - Miscellaneous Vulkan utilities p vulkan-utils:i386 - Miscellaneous Vulkan utilities

Prüfen der installierten Vulkan Version mit Vulkaninfo

$ vulkaninfo =========== VULKAN INFO =========== Vulkan API Version: 1.0.61

Talos Principle - Vulkan Aktivieren

Talos Public Beta mit den neusten Vulkan Features runterladen

Steam --> Bibliothek --> The Talos Principle --> Rechtklick auf die Eigenschaften --> Betas --> Public Beta auswählen

Talos starten und Grafikoptionen auf Vulkan umstellen

Voilá

Unter den Optionen --> Extras --> Benchmark

könnt ihr im 60 Sek Benchmarks Vulkan im Vergleich zu OpenGL testen ;-)

Talos Principle - Vulkan Troubleshooting

Sollte das Spiel Abstürzen gibt es im Game Ordner euerer Talos Installation vorbildlich eine Talos.log und eine Talos.All.log welche nützliche Informationen darüber liefern können, warum euer Fehler aufgetreten ist. Mit diesen Logs könnt ihr generell im Talos Forum um entsprechende Hilfestellung fragen.

~/.local/share/Steam/steamapps/common/The Talos Principle/Log/Talos.log ~/.local/share/Steam/steamapps/common/The Talos Principle/Log/Talos.All.log

Anmerkung:

Das ~ Zeichen ist die übrigens die Kurzschreibweise für den pfad zum home Verzeichnis des angemeldeten Benutzers.

~ ==> /home/deinusername/

In diesem Artikel entseht eine kleine Troubleshooting Sammlung von bekannten Problemen mit Vulkan in Talos und welche Workarounds / Hilfestellung mir dazu bekannt sind.

Vsync abschalten

Weil die Vsync Einstellung aktuell im Vulkan Modus noch Probleme mit Talos verursacht, solte das Häkchen für Vsync nicht aktiviert sein.

Die Talos.ini löschen

In der Talos.ini werden die Konfigurationen gespeichert. Anscheinend gibt es einen bekannten Bug, der dazu führt, dass unter Linux die Vulkan Einstellungen initial nicht richtig in die Die Talos.ini geschrieben werden können. Es ist bekannter Workaround die Talos.ini zu löschen. Sie befindet sich unter them Pfad

Ubuntu:

/home/deinusername/Steam/userdata/deineSteamUserId/257510/local/Talos.ini

Mint:

~/.local/share/Steam/userdata/deineSteamUserId/257510/local/Talos.ini

Vulkan über die Startoptionen explizit setzen

Öffnen der Startoptionen:

Steam --> Bibliothek --> The Talos Principle --> Rechtklick auf die Eigenschaften

+gfx_strAPI "VLK"

Talos Prozess mit htop elegant beenden

Gerade beim Rumspielen mit Vulkan kann es schonmal vorkommen, dass sich der Game Prozess aufhängt. Neben den herkömmlichen Methoden mit dem Befehl "kill -9 TalosProzessID" verwende ich gerne das kleine programm "htop".

Das heißt ich hab immer eine Terminal Fenster offnen und wenn sich das Game nicht beenden lassen will, dann wechsel ich in das Terminalfenster und rufe htop auf.

-> Dann mit F4 nach "Talos" suchen

-> Prozess mit Pfeiltasten markieren

-> Mit F9 den Prozess beenden

Dies funktioniert übrigens für andere Games genauso ;-)

Talos im Vulkan Modus minimieren

Möchte man kurz auf den Desktop wechsel, hilft im Vulkan-Modus folgender Trick:

Alt+Enter drücken, dadurch wechselt das Spiel in den Fenster-Modus und kann ganz normal minimiert werden.

Quellen:

https://steamcommunity.com/app/257510/discussions/0/371919771762670053/

Source: https://steamcommunity.com/sharedfiles/filedetails/?id=1179867394					

More The Talos Principle guilds