trane87 schrieb:
Mir ist es letztendlich egal, ob Star Citizen auf Linux erscheint oder nicht, aber ein Kollege von mir schwört auf Linux und will nicht mal Windows installieren, obwohl er dafür nicht mal einen vernünftigen Grund nennen kann. Somit hätten wir halt ein Citizen mehr
Zwei, ich kann es mir dank Valve auch leisten, da immer militanter zu werden.
the_plague schrieb:
Naja, dann muss sich an der Treiberoptimierung unter Linux aber noch was tun, gerade bei so einem anspruchsvollen Spiel wie Star Citizen.
Von welchen Treibern sprechen wir hier genau? Das Problem ist nicht gerade einfach. Es gibt 5 verschiedene Treiber, von denen 4 auch tatsächlich praktischen Sinn haben. Und alle brauchen sie OpenGL, während Spiele ausschließlich mit Direct3D entwickelt werden. D3D = Windows. (Stimmt auch nicht so ganz, es gibt einen D3D9 State Tracker für Gallium3D, aber das führt am Thema vorbei)
Die OpenGL Implementierung ist immer zweitrangig (vor allem in den Treibern!), und solange das der Fall ist, haben Spiele unter Linux einfach von Haus aus einen deutlichen Nachteil.
Wenn wir aber OpenGL Implementierung unter Windows und unter Linux vergleichen, stehen die Linuxtreiber extrem gut da. Das Problem ist hierbei wie gesagt eher, dass die OpenGL Implementierung selbst Schrott ist, sowohl unter Linux als unter Windows. Wird schließlich dieselbe Codebasis verwendet! OpenGL kann eine Menge, es gibt viel zu viele Möglichkeiten, ein und dasselbe zu erreichen, das macht es nicht nur für Entwickler etwas schwerer, damit ordentlich umzugehen, sondern auch die Treiber unsäglich kompliziert – und damit schlecht. Das in Kombination mit der Tatsache, dass in den D3D Treiber viel mehr Aufwand gesteckt wird, hat fatale Folgen. Im Einzelnen:
NVidia und
AMD bieten beide einen unfreien
closed source Treiber an, der größtenteils einfach der Windowstreiber ist – vor allem eben in der OpenGL Implementierung. Der von NVidia ist dabei top und ähnlich schnell wie D3D, der von AMD ist grauenvoll. Beide laufen aber unter Linux tendenziell schneller als unter Windows, ganz besonders, wenn du im CPU Limit hängst, weil Linux dort einfach effektiver ist.
Intel hat überhaupt keinen unfreien Treiber für Linux, hier gibt es nur den freien
open source Treiber, der sich
überhaupt keinen Code mit den Treibern für Windows teilt. Früher waren Intel Treiber sowohl unter Windows als auch unter Linux notorisch schlecht, heute sind aber zumindest die für Linux gut und stabil, und im OpenGL Teil auch deutlich besser als die schrottigen Windowstreiber. Intel hat ein großes Team, das nur an diesem Treiber arbeitet, die Zukunft sieht rosig aus, Problem bei Intel ist eher die Hardware, die nicht ganz mitspielt. Intel HD Graphics schön und gut, aber Star Citizen läuft darauf bis auf absehbare Zeit nicht.
AMD bietet anders als NVidia ebenfalls offiziell einen freien Treiber an, der sich mit Windows keinen Code, wohl aber mit dem Intel Treiber sich das hier relevante teilt: Die open source OpenGL Implementierung (Mesa). Leider ist Mesa noch nicht sonderlich ausgereift und optimiert, aber gerade im Fall vom AMD Treiber kommt es immer öfter vor, dass dieser freie Treiber nicht nur stabiler, sondern auch schneller läuft als der proprietäre closed source Treiber – und das wird sich in Zukunft nur bessern, während der geschlossene Treiber von AMD, Catalyst, vermutlich nicht mehr zu retten ist. Ebenso wird AMD auf ein gemeinsames open source Kernelmodul von freiem und unfreiem Treiber umsteigen, was Entwicklungskosten sparen wird, und ich denke mal langfristig wird Catalyst komplett auf Eis gelegt. (Achtung: Spekulation
)
Leider dauert es noch ein bisschen, bis Mesa OpenGL 4.5 Support erreicht, aber es wurde enormer Fortschritt gemacht in den letzten Jahren.
Vulkan hat den großen Vorteil, dass Treiber viel einfacher sein können, und vor allem: Keine spielspezifischen Optimierungen seitens des Treibers nötig sind. Derzeitige Spielentwicklung ist ein ziemlicher Alptraum, ohne diese treiberseitigen Optimierungen
kann ein Spiel gar nicht das Maximum aus einer Grafikkarte herausholen. (Und so am Rande, aus der CPU sowieso nicht, weil hurr durr, wer braucht schon multithreading) Weder bei Direct3D, noch bei OpenGL! Wer ein Gefühl davon bekommen möchte, was für ein Alptraum das ist: Lest diesen sehr aufschlussreichen Beitrag.
http://www.gamedev.net/topic/666419-what-are-your-opinions-on-dx12vulkanmantle/#entry5215019
Kein Gamedev hat eine Ahnung, was im überkomplexen Treiber so passiert. Das sollte auch genauer erklären, warum sich Chris Roberts wie Schnitzel über Mantle gefreut hat, und nun auch über DX12/Vulkan, welche im Wesentlichen Mantle-Kopien sind.
Übrigens steht Mesa dadurch langfristig noch viel besser da: Eine Open Source OpenGL Implementierung, die sogar noch über verschiedene Hardwarehersteller gleich ist, ist ungemein toll für Entwickler, weil der Treiber dann keine rätselhafte schwarze Box mehr ist, bei der keiner weiß, was drin passiert. Jeder kann den Code lesen – und sogar Patches beisteuern. OpenGL wird uns noch lange begleiten, nicht jeder wird sich für einfachere Spiele mit Vulkan herumärgern wollen, deshalb ist das ziemlich wichtig, und eine Art Referenzimplementierung ist genau das, was OpenGL am dringendsten nötig hat.
Öh, etwas viel Text, ich hoffe, das war informativ. ^^
the_plague schrieb:
Ich muss leider eingestehen, dass ich in SteamOS zuviel Hoffnung gelegt hab. War wohl alles heiße Luft. Mal schauen was Vulkan so bringt....
Alleine dass Vulkan so schnelle Fortschritte macht, ist zu guten Teilen Valve zuzuschreiben. Zu allen Teilen, die nicht AMD zuzuschreiben sind, um genau zu sein.