Proton: [Funktionsanfrage]: Gallium Nine Patches

Erstellt am 22. Aug. 2018  ·  123Kommentare  ·  Quelle: ValveSoftware/Proton

Viele (ältere) Spiele verwenden noch dx9. Wäre es für AMD- und Intel-GPU-Benutzer machbar, die Gallium Nine-Patches für Proton zu verwenden, um eine nahezu native Leistung unter Linux zu erzielen? Ich sehe eine viel bessere Leistung beim Spielen älterer Spiele wie Assassin's Creed 1 durch normalen Wein mit Gallium Nine-Patches im Vergleich zu Steam-Spielen mit Proton.

Feature Request

Hilfreichster Kommentar

Dieses Problem sollte berücksichtigt werden, wir sollten in der Lage sein, Gallium Nine zu aktivieren, ohne auf Hacks (wie Protontricks) nur durch Umgebungsvariablen zurückzugreifen.

Es ist einfach zu beheben (Ihr habt bereits viele Forks und Workarounds, um dies zu beheben), Gallium Nine hat jetzt eine bessere GPU-Unterstützung (funktioniert jetzt mit den neuesten Intel-Treibern) und bietet eine 1,5- bis 2-fache Leistungssteigerung gegenüber DXVK und wined3d.

Und Sie haben bereits eine Reihe von Berichten über Spiele erhalten, in denen über eine verbesserte Kompatibilität gesprochen wurde, nur durch die Verwendung von Gallium Nine.

https://github.com/ValveSoftware/Proton/issues/173#issuecomment -499869941
https://github.com/ValveSoftware/Proton/issues/255#issuecomment -415997284
https://github.com/ValveSoftware/Proton/issues/355#issuecomment -415972910
https://github.com/ValveSoftware/Proton/issues/554#issue -354016973
https://github.com/ValveSoftware/Proton/issues/770#issue -354455950
https://github.com/ValveSoftware/Proton/issues/1073#issuecomment -473703760
https://github.com/ValveSoftware/Proton/issues/2704#issuecomment -518029014

Ich weiß, dass dies wahrscheinlich keine Priorität für Sie ist, da dies nur für alte Spiele gilt, aber komm schon, es gibt einen riesigen Katalog großartiger Spiele, die von Gallium Nine profitieren werden.

Alle 123 Kommentare

Dies ist eine viel bessere Option. Und ich habe gehört, dass es (endlich) mit DXVK zusammengeführt wird, sodass wir alle D3D-Versionen von 9 bis 12 abgedeckt haben. Die älteren benötigen sowieso keine Vulkan-Funktionen, ich glaube, die D3D 8-Spiele könnten sogar auf einem Software-Renderer ausgeführt werden in 60 FPS auf moderner Hardware.

Sehr interessant! Wo haben Sie herausgefunden, dass es zu DXVK zusammengeführt werden sollte?

Ich kann nichts dazu finden, also kann ich mich irren. Es wird wahrscheinlich nicht direkt in DXVK eingebunden, sondern eher zusammen mit ihm unterstützt oder in Wine eingebunden. Ich erinnere mich vage an diese beiden Projekte, die im gleichen Kontext erwähnt wurden (was nicht verwunderlich ist), die D3D=>OGL-Übersetzung oder so ähnlich zu ersetzen. Wie auch immer, ich denke, der Vulkan-Overhead ist im Vergleich zum direkten Gallium Nine-Ansatz vernachlässigbar, aber die Vorteile liegen auf der Hand – alle Spieler können es verwenden, nicht nur diejenigen mit FOSS-Treibern. Und es kann sogar noch weiter auf Windows selbst verschoben werden, sodass Windows-Benutzer Spiele aufgrund besserer CPU-Auslastung mit möglicherweise besserer Leistung ausführen oder sie überhaupt ausführen können, da einige ältere Spiele nicht mehr unter modernen Windows, sondern unter Wine funktionieren.

Ich stimme zu, dass VK9 oder etwas Ähnliches die beste Lösung/Implementierung wäre. Soweit ich weiß, ist die aktuelle Version von VK9 jedoch immer noch ein Proof of Concept und unterstützt, wenn überhaupt, nur sehr wenige Spiele. Es kann nur einige einfache directx9-Tests rendern.

Gallium Nine-Patches sind fertig, von vielen Spielern gut getestet und bieten (nahezu) native Leistung. Dies zu implementieren wäre eher trivial, da die Patches bereits vorhanden sind. Es wäre vorerst eine sehr willkommene Ergänzung für alle AMD/Intel-Spieler, bis VK9 ausgereift ist.

VK9 ist noch Jahre von der Fertigstellung entfernt, und ich denke, sogar der Overhead von d3d-pba könnte als "vernachlässigbar" angesehen werden.
Wenn überhaupt, möchte ich, dass Proton (aber sogar vorgelagerter Wein) einige Prioritäten hat.
Sprich, zuerst native (gallium) oder vulkan (dxvk), dann der andere, last but not least wined3d (weil nicht jede GPU da draußen vulkan unterstützt)

ps Nine funktioniert nicht für Intel-Benutzer

Da auf Steam noch Hunderte von Direct3D 9-Spielen gespielt werden und Gallium Nine sich als wesentlich effizienter als herkömmliches d3d9 Wine erwiesen hat, sollte es zumindest über user_setting.py optional sein.

Ich würde lieber VK9 mit DXVK zusammenführen. so haben sie eine gleichmäßige vulkanische Abdeckung.

Klar, in einer idealen Welt. Aber VK9 führt bisher kein einziges Spiel aus und befindet sich nur in der Proof-of-Concept-Phase. Es kann einige einfache dx9-Tests ausführen und das war's. Außerdem betrachtet der Typ, der daran arbeitet, es als Hobbyprojekt und investiert nicht annähernd so viel Arbeit wie der Typ, der DXVK entwickelt. Es könnte Jahre dauern, bis VK9 einsatzbereit ist. Warum nicht in der Zwischenzeit Patches für AMD-Anwender verwenden, die gut getestet und komplett fertig sind?

Ich stimme zu, dass Gallium 9-Patches von AMD-Mesa-Benutzern verwendet werden sollten. Es ist Teil von Mesa, wir brauchen nur die Weinversion, um es verwenden zu können.

Einverstanden. Und wer weiß? Vielleicht profitieren in naher Zukunft nicht nur Radeonsi und Nuveau davon?
https://www.phoronix.com/scan.php?page=news_item&px=Intel-Iris-Gallium

Hatte selbst viel Erfolg damit und die Patches sind gut gepflegt. Mesa-Pakete basieren auf openSUSE und alle arbeiten zusammen. Im Allgemeinen geht es von spielbar mit vielen Rucklern bis zu seidig glatt, während andere Spiele nur einen schwarzen Bildschirm bekommen. Müssen umschaltbar sein oder zwei Versionen von Wine oder so mit den Standardeinstellungen für unterstützte Spiele.

Gallium Nine war meiner Erfahrung nach einfach fantastisch. Es wäre toll, wenn es in Proton enthalten wäre.

Ich persönlich stimme für den All-Vulkan-Ansatz.

@shoober420 Das würde ich irgendwann auch vorziehen. Aber eine funktionierende DX9-zu-Vulkan-Translationsschicht ist noch ein Jahr von der Fertigstellung entfernt, wenn überhaupt. Warum lassen Sie AMD-Benutzer nicht die native dx9-Leistung über Gallium Nine-Patches genießen, die gut getestet und vollständig fertiggestellt sind? Sie müssen nur zusammengeführt werden, damit AMD-Benutzer sofort die native Leistung genießen können.

@shoober420 Ich denke, wir alle bevorzugen diese Route für Protonen. Es ist der logische Schritt nach vorne. Wir bitten Valve nicht, auf eine vulkanische Implementierung von d3d9 zu verzichten. Wir bitten sie, den Leuten auf den offenen Gallium-basierten Treibern zu erlauben, das zu verwenden, was sie bereits haben. Gallium 9 ist bereits Teil unseres Treiber-Stack. Die "Gallium nine patches" für Wine überspringen einfach die standardmäßige d3d9-API-Übersetzung zu opengl und füttern stattdessen die API-Aufrufe direkt an die GPU. Vermeidung von Leistungsverlusten durch API-Übersetzung.

@Mushoz @Xalphenos

Ich sehe, Ihre Jungs weisen darauf hin, Sie haben beide recht. Ich wusste nicht, dass VK9 so weit weg ist. Ich unterstütze dann die Wahl für mehr Optionen. Ich kann eines Tages einen AMD oder Intel verwenden.

Ich habe alle Variationen von Wine, Staging und Nine für openSUSE erstellt. Grundsätzlich müssen Sie nur das entsprechende Patch-Set von https://github.com/sarnex/wine-d3d9-patches anwenden und wie

Als Referenz das openSUSE/wine- Paket, das alle vier Geschmacksrichtungen von Wein erstellt.

  • Wein
  • Wein-neun
  • Wein-Inszenierung
  • wein-inszenierung-neun

Ich bin mir nicht sicher, wie die Situation bei Protonen in Bezug auf die Weininszenierung ist. Wenn niemand sonst dazu kommt und Valve nicht dagegen ist, kann ich dies tun, aber Steam würde eine UI-Option benötigen, um wirklich den Feinschliff hinzuzufügen.

Woran Sie denken, ist #22. Möglicherweise gibt es einen Mechanismus, um eine eigene Laufzeit hinzuzufügen, aber er ist im Moment unbekannt.

Aber für mich sollten Wein und Proton nur einen anmutigen Fallback-Mechanismus haben. Von vulkan über gallium bis opengl.. Abhängig von dem am besten funktionierenden Fallback, den Sie auf Ihrem System verwenden können.

Sicherlich verwandt, aber diese Anfrage muss aus dem gleichen Grund immer optional sein, aus dem Wine Upstream sie nicht zusammenführt ... sie funktioniert nicht auf allen Plattformen und nur mit einer Teilmenge von Karten, die die entsprechenden Mesa-Treiber verwenden können. Dies unterscheidet sich ziemlich von den anderen Änderungen, die in diesem Repo an Wine vorgenommen wurden (außer dass ältere Karten ausgeschlossen werden). #22 würde es jemandem mit einem gebauten Wine-Nine erlauben, es auszuwechseln, aber in diesem Problem geht es darum, es Teil des offiziellen Builds zu haben.

Ja.. und ich sehe nicht, was daran schwer ist, zu überprüfen, welcher Treiber auf welcher Hardware verwendet wird, und es einen Tag zu nennen (das gleiche für vulkan oder opengl sowieso)

Ich auch nicht, habe nie gesagt, dass es nicht so ist. Ich antworte nur auf #22, bei dem es speziell darum geht, benutzerdefinierte Builds außerhalb von Protonen auszuwählen, was nicht das ist, was ich vorschlage, noch dieses Problem.

Angesichts der umfangreichen Unterschiede zwischen ValveSoftware/Wein (3,7) und Wein/Wein (3,7) und des Ansatzes von Valve ist es wahrscheinlich am sinnvollsten, ihn direkt in seine Weingabel zu integrieren. Es müsste dann entweder a) zur Laufzeit umschaltbar sein (möglicherweise automatisch) oder zweimal erstellt werden (glaube, Patches enthalten bereits einen Umschalter zur Kompilierzeit).

Die 3.7-Tag-Patches gelten nicht sauber für ValveSoftware/Wein.

error: patch failed: configure.ac:1261
error: configure.ac: patch does not apply
wine-d3d9.patch:5385: new blank line at EOF.
+

Es mag einfach sein, aber ich kann mir vorstellen, dass dies ein andauerndes Problem ist, das wahrscheinlich ein weiterer Grund wäre, direkt mit dieser Gabel zu verschmelzen.

Sie werden es aktualisieren, sobald sie "Startprobleme" behandeln.

... außerdem wäre es vielleicht produktiver, wenn Sie daran arbeiten würden, das erst in der Inszenierung zu bekommen

Die Aktualisierung der Wine-Version war nicht das, was ich gefragt oder benötigt habe, da ich Patches für 3.7 installiert habe. Was das Staging betrifft, so ist dies eine langfristige Anfrage, an der Wine Upstream nicht interessiert ist, hauptsächlich weil es nicht auf Mac und nicht auf jeder Linux-Hardware funktioniert. Daher integriert Proton eine Vielzahl von Leistungsverbesserungen, die den Umfang der Hardware einschränken ... daher könnte dies für sie von Interesse sein.

Es wäre großartig, es in der Weininszenierung oder im eigentlichen Wein zu haben, aber Sie können viele frühere Probleme finden, die darauf hindeuten, dass dies zu unseren Lebzeiten nicht passieren wird.

Mac ist kein Problem, auch keine Hardwarekompatibilität (_besonders_ nach den letzten Intel-Gerüchten).
Sie können meine Links sehen, warum das meiste.. bezüglich des tatsächlichen Problems, zumindest im Moment, nur mangelnde Anerkennung ist.
(soviel wie, wer weiß, vielleicht haben sie bereits einen Konsens im IRC erreicht)

Auch wenn VK9 für Proton bereit wäre, würde ich die effizienteste Lösung bevorzugen. Bis Proton das anbietet, bleibe ich weiterhin bei meinem alten und bewährten Neun-Patch-Wein für Spiele, die von d3d9 abhängen.

Ich bin mir völlig bewusst, dass Gallium Nine nicht die effizienteste Lösung für alle sein wird (und wahrscheinlich nie sein wird), aber das ist hier nicht mein Punkt. Es als Option für diejenigen zu haben, die zufällig einen Gallium-Treiber verwenden, wäre großartig! :)

Hier ist die Lösung:
https://www.phoronix.com/scan.php?page=news_item&px=Zink-Gallium3D-OpenGL-Vulkan
https://gitlab.freedesktop.org/kusma/mesa/tree/zink/src/gallium/drivers/zink

Grundsätzlich war Gallium3D immer eine dünne Abstraktion zwischen verschiedenen State-Trackern und den Treibern, also nur Schuhlöffel in Vulkan als Treiber und Bam, Sie erhalten alle unterstützten State-Tracker, einschließlich Gallium nine und Mesas OpenGL. Der Shader-Bytecode-Lebenszyklus ist DX9 HLSL-Bytecode von Spiel->TGSI->NIR->SPIRV wow, wenn es funktioniert, funktioniert es .... :)

Das einzige, was ich als "Lösung" sehen kann, ist eine vorübergehende Lücke für Nvidia-Karten, bevor VK9 fertig ist. Dies wäre sicherlich nicht schneller auf AMD.

@jerbear64 Gallium Nine ist jedoch nach allem, was ich sehe, bereits ziemlich kampferprobt, zumindest auf dem amdgpu-Treiber. Ich habe oft gedacht, dass dies von Anfang an möglich gewesen wäre, selbst mit DXVKs Fall, es hätte auch nur ein Zustandstracker innerhalb von Mesa sein können und dann einfach so etwas wie ZINK am Ende für geschlossene Treiber schreiben oder die native Hardware direkt verwenden wo möglich. Beschwere dich aber nicht... :)

Nicht jeder verwendet Mesa.

Am Mittwoch, 26. September 2018, 20:35 Uhr schrieb Alex Fuller, [email protected] :

@jerbear64 https://github.com/jerbear64 Gallium Nine ist schon ganz
kampferprobt aber von dem, was ich sehe, zumindest auf dem amdgpu-Treiber. ich war
dachte oft, dass dies auch mit DXVKs von Anfang an möglich gewesen wäre
Falls es auch nur ein State Tracker in Mesa gewesen sein könnte und dann
schreiben Sie einfach so etwas wie ZINK am Ende für geschlossene Treiber oder verwenden Sie die
native Hardware nach Möglichkeit direkt. Beschwere dich aber nicht... :)


Sie erhalten dies, weil Sie einen Kommentar abgegeben haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/ValveSoftware/Proton/issues/66#issuecomment-424824077 ,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AAipRw-R-g3DJOiWzHdR5SOHBu2X-xCxks5ue8jigaJpZM4WHXpZ
.

@cjwijtmans Nun , damit kann jeder, der einen vorhandenen

Hier ist ein anderer Weg:

https://github.com/GabrielMajeri/d3d9-to-11

dgVoodoo implementiert unter anderem bereits direct3d 1 bis 7 plus 8.1 bis 11, so dass die Neuimplementierung von direct3d9 in direct3d 11 durch das Projekt alle älteren direct3d-Versionen nur über DXVK laufen lassen würde.

@jerbear64 das klingt rückwärts. Neun ist nur bei nVidia nutzlos. Bei AMD nutzt man überwiegend Mesa. Intel baut auch einen neuen Gallium3D-Treiber, so dass dies irgendwann in der Zukunft eine Intel+nouveau+AMD-Lösung sein wird.

Es scheint, dass dgVoodoo an der D3D9-Unterstützung arbeitet:

https://www.vogons.org/viewtopic.php?f=59&t=34931&start=3780#p705374

Es ist auf das Shader-Modell 1.x beschränkt. Dies bedeutet, dass Spiele, die D3D9 mit Shader-Modell 1.x verwenden, mit der nächsten Version auf DXVK ausgeführt werden könnten. Der Nachteil dabei ist, dass dgVoodoo nicht Open Source ist.

Für das, was es wert ist, haben wir jetzt aufgrund der Nachfrage anderer Flatpak-Anwendungen Unterstützung für Mesa-Teil von Gallium Nine jetzt in Steam Flatpak erhalten

@jerbear64 das klingt rückwärts. Neun ist nur bei nVidia nutzlos. Bei AMD nutzt man überwiegend Mesa. Intel baut auch einen neuen Gallium3D-Treiber, so dass dies irgendwann in der Zukunft eine Intel+nouveau+AMD-Lösung sein wird.

Nun, es ist für Nvidia-Benutzer nutzlos, aber es beeinträchtigt nicht die Kompatibilität damit. Es ist in Ordnung, Open-Source-Grafikbenutzern etwas zu geben und nicht Nvidia, wenn es verfügbar ist

Warte, tut es nicht? Ich dachte, der Wine-Teil (der hier besprochen wird) hat es getan. Wie auch immer, es wäre wahrscheinlich schön, dies zu bauen und zu versenden, auch wenn es nicht standardmäßig verwendet wird.

Warte, tut es nicht? Ich dachte, der Wine-Teil (der hier besprochen wird) hat es getan. Wie auch immer, es wäre wahrscheinlich schön, dies zu bauen und zu versenden, auch wenn es nicht standardmäßig verwendet wird.

Es erkennt, ob Galliumnin beim Start des Spiels vorhanden ist und leitet bei Bedarf zur anderen Implementierung weiter

@shanefagan Nicht Gallium-Nine-fähige GPUs könnten in Zukunft die Minderheit sein.
Intel hat Interesse bekundet, Gallium 3d auf allen zukünftigen GPUs zu unterstützen.

@hungrymonkey Ich glaube nicht, dass @shanefagan etwas Gegenteiliges behauptet hat. Auch nVidia GPUs mit proprietären Treibern nehmen immer noch einen massiven Anteil an der Linux-Desktop-Nutzung ein.

@nanonyme gallium nine hat keinen Einfluss auf die proprietären Treiber oder die Verwendung von nvidia. Es prüft, ob der verwendete Treiber g9 unterstützt, und wenn nicht, wird er nicht verwendet. Insbesondere überprüft es, ob bei Mesa g9 aktiviert ist, und überprüft dann, welcher Mesa-Treiber verwendet wird. Wenn kein Mesa-Treiber verwendet wird, kann er die g9-Funktionalität buchstäblich nicht nutzen und wird vollständig ignoriert.

@GloriousEggroll es scheint, dass wir nicht in derselben Sprache sprechen. Dies wurde gerade ein paar Posts weiter oben erklärt.

Eine gute Anmerkung für den Patch ist, dass der Entwickler die WINE-Patches mit der Arbeit bis vor 3 Tagen auf dem neuesten Stand gehalten hat. Ich würde sagen, es wäre gut, es zumindest zu bauen und eine Auswahl als Einstellung für einige Systeme zu haben, bei denen dx3d9-Leistungsprobleme auftreten (wie ich bei Spielen wie SC2 ohne starke Modifikation).

Wie auch immer, es ist gut, die Patches zu verlinken, da ich keine Links gesehen habe https://github.com/sarnex/wine-d3d9-patches

@Mushoz Es läuft mittlerweile Unreal Tournament. Im Laufe des Jahres 2019 _könnte_ voll funktionsfähig sein. Den Fahrplan haben Sie hier .

Das Überspringen von nativen Treibern und Tools, die bereits verwendet werden und bereit sind, zugunsten der Übergangsschicht, die sich in der Entwicklung befindet, erscheint nicht sinnvoll. Wenn überhaupt, sollte Gallium Nine, das bereits fertig ist, als Option für AMD-Benutzer präsentiert werden; sobald/wenn VK9 ankommt, kann es immer noch als Option bleiben.

Ich würde den Hauptnachteil darin sehen, dass mehrere Codepfade die Unterstützung von Spielen möglicherweise erschweren. Andererseits sind die Testergebnisse auch jetzt noch nicht zwischen GPU-Anbietern anwendbar

VK9 funktioniert nicht auf Nicht-amdgpu-Geräten / Pre-GCN-GPUs. Gallium-Nine hingegen könnte möglicherweise auf altem r300g-Material laufen und sogar bis zu GPUs wie meinem VEGA10. Aber ja, diese alten r600g-getriebenen VLIW-GPUs, auf die sich einige meiner Freunde immer noch verlassen, gelten als veraltet.

Genau wie D3D9 selbst.

Ich würde den Hauptnachteil darin sehen, dass mehrere Codepfade die Unterstützung von Spielen möglicherweise erschweren. Andererseits sind die Testergebnisse auch jetzt noch nicht zwischen GPU-Anbietern anwendbar

Nun, es ist ein Vorteil, wenn es funktioniert, vernachlässigbar, wenn es nicht funktioniert. Als Standard könnten Sie immer noch die WINE-Implementierung machen, aber Benutzern erlauben, sie als Umgebungsvariable zu setzen, wenn sie es ausprobieren möchten. Sie tun dies bereits, wenn Sie eine bessere Leistung von WINE selbst als von DXVK erhalten, so dass es kein wirkliches Tooling-Problem von ihnen für die Konfiguration ist. Sie müssen es nur einarbeiten. Sie könnten sogar den Mann einstellen, der den Patch herstellt, um die letzten 10% zu binden, um ihn dorthin zu bringen.

Der Unterschied besteht darin, dass WineHQ Ihnen keine Spiele verkauft und möglicherweise Rückerstattungen vornehmen muss

Ich dachte, deshalb haben wir eine Whitelist...

Die Whitelist wird sicherlich nicht funktionieren, wenn Sie komplizierte Verzweigungen von Betriebsmodi haben

"Kompliziert"

Die Whitelist wird sicherlich nicht funktionieren, wenn Sie komplizierte Verzweigungen von Betriebsmodi haben

Nun, es könnte eine Option sein, die nur von Benutzern selbst aktiviert wird, wenn sie es ausprobieren möchten, wenn die Spielleistung nicht großartig ist

Die Whitelist wird sicherlich nicht funktionieren, wenn Sie komplizierte Verzweigungen von Betriebsmodi haben

Nun, es könnte eine Option sein, die nur von Benutzern selbst aktiviert wird, wenn sie es ausprobieren möchten, wenn die Spielleistung nicht großartig ist

Klingt für mich fair genug.

Ich denke, Sie müssen zuerst libd3dadapter9-mesa in die Steam-Laufzeit integrieren.

Ich denke, Sie müssen zuerst libd3dadapter9-mesa in die Steam-Laufzeit integrieren.

Wie funktioniert libd3dadapter9? Ich weiß, dass GalliumNine im eigentlichen Mesa ist und die Patches zu WINE weisen darauf hin. Ich habe gesehen, dass es ab 18.10 in Ubuntu ist, aber ich habe diese Bibliothek nie wirklich verwendet.

Wie funktioniert libd3dadapter9? Ich weiß, dass GalliumNine im eigentlichen Mesa ist und die Patches zu WINE weisen darauf hin. Ich habe gesehen, dass es ab 18.10 in Ubuntu ist, aber ich habe diese Bibliothek nie wirklich verwendet.

Es adressiert nur den D3D9-State-Tracker von Mesa, genau wie Wines opengl32.dll.so beispielsweise mit gängigen OpenGL-State-Trackern¹.
Bearbeiten: Entschuldigung, ich habe libd3dadapter9 mit der für Wine erstellten DLL verwechselt. Hatte an diesem Tag nicht genug Kaffee. Die fragliche Bibliothek implementiert einen D3D9 State Tracker für Mesa. Vereinfacht: Es bietet native D3D9-Unterstützung ohne zusätzliche Übersetzungsschichten wie WineD3D oder VK9. Schauen Sie sich bei Interesse diese Präsentation an .


¹: Warnung: Die Antwort könnte ungenau sein.

Ich konnte Proton mit neun Patches als lokales Arch-Linux-Build mit --no-steam-runtime erstellen. Das einzige Spiel, das ich bisher getestet habe, ist Valkyria Chronicles 1 und das verhielt sich mit diesem lokalen Build seltsam, z überhaupt gespeichert.

Obwohl diese Probleme möglicherweise damit zusammenhängen, dass Proton mit --no-steam-runtime und nicht mit den neun Patches gebaut wird.

Der Originalpatch von https://github.com/sarnex/wine-d3d9-patches/blob/wine-d3d9-3.16/wine-d3d9.patch brauchte nur einen Fix für den Kontext in configure.ac siehe https://gist .github.com/raetiacorvus/8bf19a733ac131d744030788030941c4 nur die Zeilen 72 und 73 wurden aus dem ursprünglichen Patch entfernt.

Sie müssen immer noch https://github.com/sarnex/wine-d3d9-patches/blob/wine-d3d9-3.16/d3d9-helper.patch anwenden und autoreconf im Weinordner ausführen, nachdem Sie beides angewendet haben Flecken.

Außerdem musste ich -with-d3d9-nine-module=/usr/lib32/d3d/d3dadapter9.so zur wine32-Konfiguration in der folgenden Datei hinzufügen, aber das kann daran liegen, dass die Build-Umgebung nicht richtig eingerichtet wurde? https://github.com/ValveSoftware/Proton/blob/83871c7bf93b785b23b987956b7cc3608d6998b3/build/makefile_base.mak#L713 -L726

Vergessen Sie auch nicht, dass Sie Gallium Nine durch winecfg für jeden pfx aktivieren müssen.

https://github.com/ValveSoftware/Proton/issues/66#issuecomment -447569917

Das sind gute Nachrichten! Trotz anfänglicher Rückschläge ist ein einigermaßen funktionaler Aufbau ein bedeutender Fortschritt. Da ich mich mit Codieren nicht so gut auskenne, können Sie bitte erläutern, warum Sie mit dem Argument --no-steam-runtime ? Funktioniert das Proton, das Sie bauen, nicht mit dem Steam-Client? Ursache von Proton ist es, Steam-Spiele auszuführen, die Steam DRM mit nativem Steam-Client anstelle der Windows-Version erfordern.

@raetiacorvus

Ich habe eine ziemlich große Spielesammlung auf Steam. Bitte lassen Sie es mich wissen, wenn Sie weitere Spiele testen möchten, damit ich versuchen kann, dies zu arrangieren.

Das einzige Spiel, das ich bisher getestet habe, ist Valkyria Chronicles 1 und das verhielt sich mit diesem lokalen Build seltsam, z. B. wurde RX 480 in den Einstellungen als R9 290 erkannt

Dies ist normales Gallium-Nine-Verhalten, mein RX 580 macht dasselbe bei meinen Wine-Staging-Nine-Builds.

Es scheint, als ob keines der Probleme, auf die ich gestoßen bin, mit Gallium 9 zusammenhängen, sondern entweder durch --no-steam-runtime oder durch das Spiel selbst verursacht werden.

@rea987 --no-steam-runtime bedeutet, dass Proton für lokale Bibliotheken anstelle der gepatchten aus dem Docker-Container der Steam-Laufzeit erstellt wird. Es ist immer noch ein gültiges Dampfkompatibilitätswerkzeug und kann als Ersatz für ventilseitige Protonenfreisetzungen verwendet werden. Ein Problem ist bisher, dass die gepatchte Controller-Zuordnung aus der Laufzeit fehlt, was zu dem Problem führte, das ich mit Valkyria Chronicles hatte. Sie könnten dies wahrscheinlich umgehen, indem Sie einige der für Wine verfügbaren Tools verwenden, um Controller korrekt zuzuordnen.

@raetiacorvus Es wäre wunderbar, wenn Sie eine Schritt-für-Schritt-Anleitung zum Kompilieren von Gallium Nine für Proton wäre es auch mit einem Pull-Request, damit @raetiacorvus Mein Angebot, weitere Spiele zum Testen bereitzustellen, steht noch.

Ich habe meine eigene Gabel von Proton mit den Patches gemacht:

https://github.com/popsUlfr/Proton (schauen Sie sich den Zweig proton_3.16_gallium_nine_extras und folgen Sie einfach der Readme)

git clone https://github.com/popsUlfr/Proton.git
cd Proton
git checkout proton_3.16_gallium_nine_extras
git submodule update --init

Es funktioniert auch mit der Steam-Laufzeit, ich musste diesen etwas hässlichen Block von Mesa-Zeug hinzufügen: https://github.com/popsUlfr/Proton/commit/0397af03059c32a6ac5e0213d39769e33f2914df

Ich habe eine Umgebungsvariable PROTON_USE_GALLIUM_NINE=1 hinzugefügt,

Merkmale :

  • Gallium Neun offensichtlich
  • Path of Exile dx11-Patch: https://bugs.winehq.org/show_bug.cgi?id=42695
  • Erzwinge wined3d11, wenn es keine Vulkan-Unterstützung gibt: #1749
  • Aktivieren Sie ffmpeg standardmäßig und erstellen Sie damit FAudio: #2082
  • GLSL-Schalter, um GLSL-Shader zu deaktivieren und stattdessen ARB-Shader zu verwenden, um das Stottern mit wined3d zu reduzieren

Hier ist ein Build zum Testen:
~ Proton_3.16-5_Gallium_Nine_Extras.tar.xz ~
~ Proton 3.16-5 Gallium Neun Extras 0.1.0 ~
~ Proton 3.16-5 Gallium Neun Extras 0.1.1 ~
~ Proton 3.16-6 Gallium Neun Extras 0.1.1 ~
~ Proton 3.16-6 Gallium Neun Extras 0.1.2 ~
Proton 3.16-6 Gallium Neun Extras 0.1.3

$ mkdir -p ~/.steam/root/compatibilitytools.d
$ tar xf Proton_3.16-6_Gallium_Nine_Extras_0.1.3.tar.xz -C ~/.steam/root/compatibilitytools.d

In Ihrem Steamplay-Tab sollte es als Proton 3.16-6 Gallium Nine Extras angezeigt werden

Übrigens habe ich dies der README hinzugefügt, nach dem Konfigurationsschritt müssen Sie make all dist anstelle von nur make dist ausführen, oder Sie erhalten am Ende nur win64 wine und sonst nichts. Dies scheint also ein Fehler in der README des offiziellen Protons zu sein oder sich einfach so auf meinem eigenen System zu verhalten, ich bin mir nicht sicher.

Tolle Arbeit @popsUlf!

Werden generische 32-Bit-, 64-Bit- und/oder Multiarch-Versionen auf der GitHub-Seite Ihres Forks verfügbar sein?

Danke für die Mühe und Gabel!

@rea987 Gefällt https://github.com/popsUlfr/Proton/releases/tag/proton-3.16-5-gne-0.1.0

Sagen Sie mir, ob es bei Ihnen in Ordnung ist, ich habe keinen Zugriff auf eine AMD-Karte, um dies gründlich zu testen :/

Hrm, ich habe die Anweisungen befolgt, aber es sieht so aus, als würde Steam nicht das aufnehmen, was sich im erstellten Verzeichnis befindet. Das Dropdown-Menü des Kompatibilitätstools zeigt nur die "regulären" Steam-Versionen an.

Irgendwelche Ideen, was ich falsch machen könnte? Ich bin auf KDE NEON 18.04 (grundsätzlich Ubuntu), wenn sich daran etwas ändert?

@popsUlf Genau! Das ist eine klarere und erklärende Art, es zu verteilen. Ja, ich brauche auch eine AMD-Karte, um es richtig zu testen. :-/

@AndrewLoom Befindet sich Ihre Steam-Installation im ~/.local/share/Steam oder ~/.steam ? Weil ich das spätere verwenden musste, damit es funktioniert.

Danke rea987! D'Oh, das ist jetzt so offensichtlich, aber ich habe immer noch nicht daran gedacht. :-)

@AndersDala Kein Problem, das ist ein Thema, das in letzter Zeit viele Leute verwirrt. Vielleicht kann @popsUlfr die ~/.steam hinzuweisen?

Ich besitze eine AMD Radeon Vega 56. Ich habe sie erfolgreich installiert und für alle Windows-Spiele ausgewählt, aber es scheint, dass Spiele wie A Hat in Time oder Dragon Age: Origins nicht funktionieren, wenn ich Gallium Nine mit PROTON_USE_GALLIUM_NINE aktiviere =1 (mit sauberem Präfix), ein Fenster wird nicht einmal angezeigt. Mit PROTON_USE_GALLIUM_NINE=0 laufen sie einwandfrei.

Ich besitze eine AMD Radeon Vega 56. Ich habe sie erfolgreich installiert und für alle Windows-Spiele ausgewählt, aber es scheint, dass Spiele wie A Hat in Time oder Dragon Age: Origins nicht funktionieren, wenn ich Gallium Nine mit PROTON_USE_GALLIUM_NINE aktiviere =1 (mit sauberem Präfix), ein Fenster wird nicht einmal angezeigt. Mit PROTON_USE_GALLIUM_NINE=0 laufen sie einwandfrei.

Gleiche GPU und gleiches Ergebnis bei mir. Die Spiele (Dishonered, Dead Space) starten nicht mit Gallium.

@Mastergatto , @archfan Haben Sie Gallium Nine-fähige Mesa-Treiber installiert?

https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers

Ja, ich bin auf Arch und habe mesa-git vom AUR installiert. Es kommt mit Gallium Nine aktiviert.

@archfan Alles

Ja, da Gallium Nine standardmäßig mit dem mesa-Paket aktiviert ist, zumindest für AMD-Karten unter ArchLinux. Ich habe auch Wein-Inszenierungs-Gallium, in dem Gallium Nine wie beabsichtigt funktioniert.

Können Sie sich die Ausgabe ansehen, wenn sie mit Gallium Nine betrieben wird?
Fügen Sie also in den Startoptionen für das Spiel Folgendes hinzu:

PROTON_DUMP_DEBUG_COMMANDS=1 PROTON_USE_GALLIUM_NINE=1 %command%

Führen Sie das Spiel aus.
Dadurch werden einige Protonenskripte in /tmp/proton_<username>
Starten Sie ./run , um die Ausgabe anzuzeigen.

Um sicherzugehen, wechseln Sie auch zu einem anderen Proton und starten Sie Steam neu. Wechseln Sie nun zum Gallium-Nine-Proton.

BEARBEITEN: Um diesen Thread nicht zu verschmutzen, wäre es meiner Meinung nach besser, ihn hier zu diskutieren: https://github.com/popsUlfr/Proton/issues/2

Es tut mir auch leid, wenn dies Ihre Hoffnungen geweckt hat und nicht sofort funktioniert. Ich habe dies lokal beibehalten, der Gallium-Nine-Teil war eher ein "Was wäre wenn" für den Fall, dass ich auf AMD testen könnte. Ich beschloss, es trotzdem zu teilen, da diese Diskussion immer prominenter wurde und es möglicherweise nützlich sein könnte, etwas über die Unterstützung von Gallium neun in Protonen in Gang zu bringen :)
Die anderen eingebauten Funktionen könnten auch nützlich sein, also ...

Gallium Nine arbeitet in Proton mit https://github.com/dhewg/nine

Es überrascht nicht, dass dies das Steam-Overlay unterbricht, aber ansonsten funktioniert es gut.

Gallium Nine arbeitet in Proton mit https://github.com/dhewg/nine

Es überrascht nicht, dass dies das Steam-Overlay unterbricht, aber ansonsten funktioniert es gut.

hey, schön!

Könntest du eine Anleitung geben, was du gemacht hast? Ich bin ein bisschen verloren.

Ein weiteres Projekt, das als Alternative dazu geprüft werden sollte https://github.com/Joshua-Ashton/d9vk

Anscheinend sollten wir Protonentricks verwenden, um all diese Leckereien zu bekommen?

weiß jemand davon?

Anscheinend sollten wir Protonentricks verwenden, um all diese Googdies zu bekommen?

weiß jemand davon?

Guter Anruf. Ich würde ehrlich gesagt eine Lösung ohne Protontricks bevorzugen, aber ich werde das so schnell wie möglich versuchen.

Ich tat dies :

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
sudo mv winetricks /usr/bin
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks
python3 -m pip install --user pipx
~/.local/bin/pipx ensurepath
eval "$(cat .bashrc | tail -n +10)"
pipx install protontricks
pipx upgrade protontricks
protontricks 9420 galliumnine

aber jetzt gibt das Spiel (das funktionierte) mir eine Fehlermeldung aus: "Fehler beim Erstellen des Direct3D-Geräts"

@tatsujb Ich glaube nicht, dass das die richtige Seite dafür ist, aber hier geht es. Verwenden Sie Ubuntu 18.04 oder Mint 19? Weil oibafs Mesa-Treiber für diese Versionen von Ubuntu/Mint seit Dezember/Januar für Gallium Nine defekt sind. Ich hatte das gleiche Problem, bin auf Ubuntu Mate 19.04 umgestiegen und jetzt funktioniert es.

@rea987 Ich verwende Ubuntu 19.04, ich versuche es noch einmal. BEARBEITEN naja es hilft nicht. was hast du noch gemacht? Welche Laufargumente hast du und welches Spiel funktioniert bei dir?

@tatsujb Ehrlich gesagt nicht viel.

  • Ich habe Mesa-PPAs von Drittanbietern vermieden, da die Gallium Nine-Kompatibilität von
  • Ich habe sichergestellt, dass sowohl libd3dadapter9-mesa als auch libd3dadapter9- mesa:i386 installiert sind.
  • /usr/bin/winetricks manuell durch die neueste Version ersetzt: https://wiki.winehq.org/Winetricks
  • ~/.cache/winetricks gelöscht
  • Gallium Nine Standalone (neueste) über Protontricks neu installiert.

@rea987

ja das war der trick. Seitdem hatte ich es herausgefunden, danke!

es wäre schön, sowohl galliumnine als auch d9vk zu haben. Ich habe sie heute auf Hat in Time verglichen und Galliumnine läuft viel besser (20% oder mehr fps) und stottert nicht, wenn Sie das erste Mal ein neues Gebiet besuchen. Beides würde zu höheren Chancen führen, ein bestimmtes directx9-Spiel mit guter Leistung auszuführen, da einige Titel mit dem einen oder anderen brechen könnten.

In einer idealen Welt würde der Renderer elegant von native auf vulkan auf opengl zurückgreifen (oder die Priorität der ersten beiden ändern, wenn d9vk schließlich einen intrinsischen Vorteil haben sollte, aber immer noch).
Stattdessen scheint Valve (und sogar Codeweavers angesichts des ganzen Spotts um Nine) darauf konzentriert zu sein, nur einen schönen "gut genug" Garten für die neuesten Karten zu schaffen, anstatt alles und die Küchenspüle in Betrieb zu nehmen. Sie werden nicht einmal die automatische Prüfung für Karten hinzufügen, denen es an Vulkan fehlt

Hier meine 20 Cent:

Jetzt, da wir Gallium Nine Standalone haben, ist es ziemlich einfach zu bedienen, da Sie keine Patches mehr für Wein benötigen. Alles, was Sie tun müssen, ist: (1) mesa-libd3d9 vom Paketmanager Ihrer Distribution zu installieren (2) Nine mit winetricks oder dem Installationsskript in Ihrem wine-Präfix installieren.

Was die "bessere" Option ist: Ich habe nicht vor, hier einen Flammenkrieg zu beginnen, also werde ich nur teilen, was ich bisher gefunden habe: https://github.com/Joshua-Ashton/d9vk/issues/ 95#issuecomment -492651741 ― das bedeutet natürlich nur, dass Nine auf meinem System mit den bisher ausprobierten Titeln schneller war, was möglicherweise nicht repräsentativ dafür ist, wie sie auf den Computern anderer Leute funktionieren würden. BEARBEITEN: Mir ist klar, dass Nine derzeit keine Option für NVidia-Benutzer ist, aber es funktioniert einigermaßen gut mit AMD (radeonsi) und Intel (iris) und wird sich auf NVidia verbessern, sobald Zink ausgereift genug ist.

Nine Standalone ist in der Tat absolut ein Kinderspiel.
Irgendwie scheint es jedoch * jedes Mal *, wenn Sie die Entwickler darauf hinweisen, auf taube Ohren zu stoßen.
Ich weiß nicht, ob vielleicht Diskussionen nicht hinter Türen / IRC hätten stattfinden können und ich möchte auch nicht brennen - aber ich weiß nicht, was ich sonst sagen soll, um sie dazu zu bringen, den *gegenwärtigen* Stand der Dinge anzuerkennen verdammter Code, und nicht das karikative Bild, das sie in ihren Köpfen darüber haben, was das Projekt vor einem halben Jahrzehnt war.

Mir ist klar, dass Nine derzeit keine Option für NVidia-Benutzer ist, aber es funktioniert relativ gut mit AMD (radeonsi) und Intel (iris) und wird sich auf NVidia verbessern, sobald Zink ausgereift genug ist.

Es läuft auch gut auf r600g. GPUs, die von r600g unterstützt werden, haben übrigens keine Vulkan-Unterstützung.

Auf nvidia wechsle ich vorerst zwischen einem Ubuntu mit installiertem 418 und einem Ubuntu mit installiertem Nouveau, damit ich Mesa und Gallium Nine aktivieren kann. Die Performance mit nativen Linux-Spielen, die unter Nouveau laufen können, ist akzeptabel und die Wine-Gallium-Nine-Spiele laufen wirklich gut.

Aber natürlich kann ich es kaum erwarten, dass Mesa auch Nvidia unterstützt.

Ich denke, das wird jetzt von D9VK gelöst. Ich habe es mit SC2 und ein paar anderen Spielen getestet und es funktioniert sehr gut. Hoffentlich wird das in Zukunft in DXVK integriert und die Patches auch auf Proton übertragen.

d9vk schneidet immer noch viel schlechter ab als Gallium Nine, aber ja, selbst nur die integrierte d9vk-Unterstützung wäre großartig, da dies bereits schwieriger als Gallium Nine ist, um sie in eine vorhandene Protoneninstallation zu integrieren

Ein weiterer kniffliger Teil des Versands von d9vk ist, dass es die neueste Mesa erfordert. nicht nur die neueste Version, sondern basiert auf mesa-git. Um es für eine Vielzahl von Distributionen zugänglich zu machen, müssen Sie möglicherweise sogar mesa-git mitliefern oder Benutzer anweisen, herauszufinden, wie sie mesa-git für ihre Distribution erhalten

@shanefagan Nein, d9vk ist viel, viel langsamer als neun, siehe meine Ergebnisse in meinem vorherigen Beitrag.

Es gibt eine Standalone-Version, die einfach zu installieren ist. Vielleicht können sie mit Proton ausgeliefert und mit einem Argument aktiviert werden. D9VK ist großartig, aber wie andere schon sagten, ist es langsamer und verwendet oft hochmoderne Treiber. Die Installation von Gallium über winetricks funktioniert, aber eine integrierte Option wäre wirklich schön.

Eigenständig: https://github.com/iXit/wine-nine-standalone

Hallo!~ Hat noch jemand leise Abstürze auf 4.11-6 beim Starten von Spielen mit installiertem Gallium Nine Standalone?

@Bryophyllum dasselbe, das Spiel startet nicht nach der Installation von Galliumnine über Protontricks.
Das Schlimmste daran ist, dass es keine einfache Möglichkeit gibt, festzustellen, ob Galliumnin überhaupt läuft.

Tatsächlich hat das nach einigem Ausprobieren funktioniert:

Können Sie sich die Ausgabe ansehen, wenn sie mit Gallium Nine betrieben wird?
Fügen Sie also in den Startoptionen für das Spiel Folgendes hinzu:

PROTON_DUMP_DEBUG_COMMANDS=1 PROTON_USE_GALLIUM_NINE=1 %command%

Führen Sie das Spiel aus.
Dadurch werden einige Protonenskripte in /tmp/proton_<username>
Starten Sie ./run , um die Ausgabe anzuzeigen.

Um sicherzugehen, wechseln Sie auch zu einem anderen Proton und starten Sie Steam neu. Wechseln Sie nun zum Gallium-Nine-Proton.

EDIT: Um diesen Thread nicht zu verschmutzen, denke ich, es wäre besser, ihn hier zu diskutieren: popsUlfr#2

Es tut mir auch leid, wenn dies Ihre Hoffnungen geweckt hat und nicht sofort funktioniert. Ich habe dies lokal beibehalten, der Gallium-Nine-Teil war eher ein "Was wäre wenn" für den Fall, dass ich auf AMD testen könnte. Ich beschloss, es trotzdem zu teilen, da diese Diskussion immer prominenter wurde und es möglicherweise nützlich sein könnte, etwas über die Unterstützung von Gallium neun in Protonen in Gang zu bringen :)
Die anderen eingebauten Funktionen könnten auch nützlich sein, also ...

Wenn ich von Steam starte, wird "Treiber installieren" oder ähnliches angezeigt und Galliumnine deaktiviert, bevor das Spiel gestartet wird.
Das Starten des Spiels über gedumpte Skripte deaktiviert jedoch nicht Galliumnine und das Spiel startet damit.

@tuxutku Einige der Spiele, mit denen ich Gallium Nine Standalone auf Proton 4.11 ausprobiert habe, stürzen entweder lautlos ab oder starten unabhängig von diesem Problem wie gewohnt, jedoch mit Wines DX9-to-OpenGL-Übersetzungsschicht. Sie funktionieren alle unter 4.2-9 einwandfrei, wenn Gallium Nine Standalone installiert ist.

Das Schlimmste daran ist, dass es keine einfache Möglichkeit gibt, festzustellen, ob Galliumnin überhaupt läuft.

Nicht ganz. Wenn Sie den Steam-Client über die CLI ausführen, wird eine Nachricht von Gallium Nine entweder in Grün oder Rot angezeigt, wenn ein Spiel gestartet wird; jedoch wird in diesem Fall nichts ausgegeben.

Mit PROTON_LOG=1 erhalte ich diese Fehlermeldung, wenn ich versuche, GTA SA auszuführen:

10264.098:0031:0032:err:module:import_dll Library d3d9.dll (which is needed by L"Z:\\var\\home\\user\\.local\\share\\Steam\\steamapps\\common\\Grand Theft Auto San Andreas\\gta-sa.exe") not found

Ich weiß nicht, was es verursacht und wie ich es behebe, aber hoffentlich kann jemand die Ursache dieses Problems herausfinden, indem er alle Hinweise zusammenfügt.

Ich werde ein neues Problem über die Deaktivierung von Galliumnine durch den Steam-Client vor dem Start des Spiels öffnen. Ich habe dieses Problem bei einem anderen Spiel

Hallo @tuxutku , diese Funktionsanfrage ist der richtige Ort, um das neue Verhalten zu diskutieren. Es hört sich so an, als ob die Änderung zur gleichen Zeit geschah, als d9vk zu Proton hinzugefügt wurde, und könnte ein Nebeneffekt davon sein, dass Proton dies verwaltet.

Das Schlimmste daran ist, dass es keine einfache Möglichkeit gibt, festzustellen, ob Galliumnin überhaupt läuft.

Nicht ganz. Wenn Sie den Steam-Client über die CLI ausführen, wird eine Nachricht von Gallium Nine entweder in Grün oder Rot angezeigt, wenn ein Spiel gestartet wird; jedoch wird in diesem Fall nichts ausgegeben.

Mit PROTON_LOG=1 erhalte ich diese Fehlermeldung, wenn ich versuche, GTA SA auszuführen:

10264.098:0031:0032:err:module:import_dll Library d3d9.dll (which is needed by L"Z:\\var\\home\\user\\.local\\share\\Steam\\steamapps\\common\\Grand Theft Auto San Andreas\\gta-sa.exe") not found

@Bryophyllum ist nicht so einfach zu sehen, ob Native Direct3D 9 v0.5.0.356-release is active. For more information visit https://github.com/iXit/wine-nine-standalone gepostet wird.
Wenn Sie beispielsweise das Tomb Raider-Spiel 2013 ./run Befehl Ich musste ein Register mit regedit optimieren , um das Spiel mit Galliumnine zu spielen

Spiele mit VAC funktionierten früher mit Wein afaik. aber jetzt tun sie es aus irgendeinem Grund nicht. CSGO beschwert sich über nicht übereinstimmende Dateisignaturen. TF2 nennt keinen konkreten Grund.

Aus irgendeinem Grund hat PROTON_DUMP_DEBUG_COMMANDS=1 bei Team Fortress 2 nicht funktioniert und ich musste ein Skript aus einem anderen Spiel kopieren und modifizieren.

#!/bin/bash
#Run game or given command in environment

cd "/home/utku/took/happytosharemysteamapps/steamapps/common/Team Fortress 2"
DEF_CMD=("/home/utku/took/happytosharemysteamapps/steamapps/common/Team Fortress 2/hl2.exe" "-steam" "-dev" "-secure" "-game" "tf" "-w" "1366" "-h" "768")
PATH="/home/utku2/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-4/dist/bin/:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/bin:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/bin:/home/utku3/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/utku3/.local/bin" \
    TERM="xterm" \
    WINEDEBUG="-all" \
    WINEDLLPATH="/home/utku2/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-4/dist/lib64//wine:/home/utku2/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-4/dist/lib//wine" \
    LD_LIBRARY_PATH="/home/utku2/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-4/dist/lib64/:/home/utku2/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-4/dist/lib/:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_64:/usr/lib/x86_64-linux-gnu/libfakeroot:/lib/i386-linux-gnu:/usr/local/lib:/usr/local/lib/libstrangle/lib32:/usr/local/lib/libstrangle/lib64:/lib/x86_64-linux-gnu:/lib32:/libx32:/lib:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib:" \
    WINEPREFIX="/home/utku/took/happytosharemysteamapps/steamapps/compatdata/440/pfx/" \
    WINEESYNC="1" \
    SteamGameId="440" \
    SteamAppId="440" \
    WINEDLLOVERRIDES="steam.exe=b;mfplay=n;d3d11=n;d3d10=n;d3d10core=n;d3d10_1=n;dxgi=n;d3d9=n" \
    STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/utku2/.local/share/Steam" \
    "/home/utku2/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-4/dist/bin/wine" steam.exe "${@:-${DEF_CMD[@]}}"

2019-10-29_19:24:52:660867031
TF2-Ausgang

2019-10-29_19:31:59:209339350
csgo-Ausgabe

Hier ist auch das Skript, das automatisch von PROTON_DUMP_DEBUG_COMMANDS=1 generiert wird:

#!/bin/bash
#Run game or given command in environment

cd "/mnt/WD-green/common/Counter-Strike Global Offensive"
DEF_CMD=("/mnt/WD-green/common/Counter-Strike Global Offensive/csgo.exe" "-steam")
PATH="/home/utku2/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-4/dist/bin/:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/bin:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/bin:/home/utku3/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/utku3/.local/bin" \
    TERM="xterm" \
    WINEDEBUG="-all" \
    WINEDLLPATH="/home/utku2/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-4/dist/lib64//wine:/home/utku2/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-4/dist/lib//wine" \
    LD_LIBRARY_PATH="/home/utku2/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-4/dist/lib64/:/home/utku2/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-4/dist/lib/:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_64:/usr/lib/x86_64-linux-gnu/libfakeroot:/lib/i386-linux-gnu:/usr/local/lib:/usr/local/lib/libstrangle/lib32:/usr/local/lib/libstrangle/lib64:/lib/x86_64-linux-gnu:/lib32:/libx32:/lib:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu:/home/utku2/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib:" \
    WINEPREFIX="/home/utku/took/happytosharemysteamapps/steamapps/compatdata/730/pfx/" \
    WINEESYNC="1" \
    SteamGameId="730" \
    SteamAppId="730" \
    WINEDLLOVERRIDES="steam.exe=b;mfplay=n;d3d11=n;d3d10=n;d3d10core=n;d3d10_1=n;dxgi=n;d3d9=n" \
    STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/utku2/.local/share/Steam" \
    "/home/utku2/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-4/dist/bin/wine" steam.exe "${@:-${DEF_CMD[@]}}"

Ich habe csgo nicht ausprobiert, aber tf2 läuft und hat kein Vakuumproblem unter Weindampf

@tuxutku warum

@tuxutku
Was hat das mit Gallium 9 zu tun?

Ich habe gefragt, weil ich wirklich neugierig bin. Beende die Downvotes

@tuxutku warum

weil Source-1-Spiele unter Linux nicht gut genug laufen?
Mit Galliumnin schnitten sie schlechter ab, aber das bedeutet nicht, dass einheimische Häfen gut abschneiden. Sie schneiden im Vergleich zu Windows-Pendants sehr schlecht ab.
Die neuen Gefahrenzonenkarten von CS:GO sind auf AMD a10-9620p + rx 540 direkt unspielbar (~15fps).
Wenn zu viel Geometrie in der Szenerie vorhanden ist, sinkt die Framerate in allen Source-1-Spielen, die ich bisher getestet habe, stark ab (Nuclear Dawn, cs:go, tf2, half-life 2, half-life 2 team Deathmatch).
left4dead2 ist eine Ausnahme und nutzt die GPU tatsächlich gut genug

die Annahme ist "der Code ist schlecht" und nicht "die Aufrufe werden durch GL und nicht durch vulkan interpretiert", oder?

Wenn Sie ein funktionierendes vulkan-natives Spiel haben, wären die Ergebnisse im nativen Modus nicht zu 100% besser?

Da dies extern von Proton mit Protontricks verfügbar ist, würde ich sagen, dass diese Funktionsanforderung ziemlich überholt ist.

Wenn die manuelle Behebbarkeit eine Überlegung wert wäre, könnten wir die Hälfte der Probleme hier schließen.

Da dies extern von Proton mit Protontricks verfügbar ist, würde ich sagen, dass diese Funktionsanforderung ziemlich überholt ist.

Steam selbst deaktiviert Galliumnine immer, wenn das Spiel gestartet oder der Cache bestätigt wird. Außerdem gibt es kein Protonen-Flag, um es zu aktivieren, und es erfordert manuelle Updates.

Ich habe festgestellt, dass Galliumnine oft nicht nur schneller ist als die standardmäßige wined3d-Übersetzung (auf r600), sondern es scheint auch Probleme mit dem Vollbild für viele Spiele zu beheben (z. B. Oberster Commander FA). Das Hinzufügen zu Proton scheint ziemlich einfach zu sein Angesichts der Standalone-Version würde ich nicht sagen, dass es eine "unterstützte" Option sein sollte, aber es wäre schön, sie als Workaround/Erweiterung integriert zu haben.

Ich glaube, dies wird seit Proton 5 unterstützt

EDIT: nvm ich denke an d9vk

Ich glaube, dies wird seit Proton 5 unterstützt

EDIT: nvm ich denke an d9vk

Ja ... d9vk funktioniert leider nicht mit r600. :/

Dieses Problem sollte berücksichtigt werden, wir sollten in der Lage sein, Gallium Nine zu aktivieren, ohne auf Hacks (wie Protontricks) nur durch Umgebungsvariablen zurückzugreifen.

Es ist einfach zu beheben (Ihr habt bereits viele Forks und Workarounds, um dies zu beheben), Gallium Nine hat jetzt eine bessere GPU-Unterstützung (funktioniert jetzt mit den neuesten Intel-Treibern) und bietet eine 1,5- bis 2-fache Leistungssteigerung gegenüber DXVK und wined3d.

Und Sie haben bereits eine Reihe von Berichten über Spiele erhalten, in denen über eine verbesserte Kompatibilität gesprochen wurde, nur durch die Verwendung von Gallium Nine.

https://github.com/ValveSoftware/Proton/issues/173#issuecomment -499869941
https://github.com/ValveSoftware/Proton/issues/255#issuecomment -415997284
https://github.com/ValveSoftware/Proton/issues/355#issuecomment -415972910
https://github.com/ValveSoftware/Proton/issues/554#issue -354016973
https://github.com/ValveSoftware/Proton/issues/770#issue -354455950
https://github.com/ValveSoftware/Proton/issues/1073#issuecomment -473703760
https://github.com/ValveSoftware/Proton/issues/2704#issuecomment -518029014

Ich weiß, dass dies wahrscheinlich keine Priorität für Sie ist, da dies nur für alte Spiele gilt, aber komm schon, es gibt einen riesigen Katalog großartiger Spiele, die von Gallium Nine profitieren werden.

Irgendein Update zu diesem Thema? @popsUlfr hat leider vor mehr als einem Jahr aufgehört, neue Proton-Builds mit nativer D3D9-Unterstützung bereitzustellen.

Irgendein Update zu diesem Thema? @popsUlfr hat leider vor mehr als einem Jahr aufgehört, neue Proton-Builds mit nativer D3D9-Unterstützung bereitzustellen.

Ich habe normales Proton + Gallium Nine Standalone verwendet. Ich habe es mit winetricks installiert und DXVK deaktiviert

Ich habe normales Proton + Gallium Nine Standalone verwendet. Ich habe es mit winetricks installiert und DXVK deaktiviert

Gut zu wissen! Welche Proton-Version hast du verwendet und wie hast du DXVK deaktiviert? WineD3D hat mich das letzte Mal gestört, als ich das ausprobiert habe.

@crt0mega galliumnine ("d3d9") wird immer durch dxvk oder wined3d ersetzt

Proton-5.9-GE-8-ST/proton:
            if "wined3d" in g_session.compat_config:
                dxvkfiles = ["dxvk_config"]
                wined3dfiles = ["d3d11", "d3d10", "d3d10core", "d3d10_1", "d3d9"]
            else:
                dxvkfiles = ["dxvk_config", "d3d11", "d3d10", "d3d10core", "d3d10_1", "d3d9"]
                wined3dfiles = []

es muss repariert werden...

oder wir können Proton-5.9-GE-8-ST/dist/bin/wine ohne Proton (und ohne Steam-Spiele) verwenden
ps: Galliumnin einrichten:
WINE="./Proton-5.9-GE-8-ST/dist/bin/wine" WINEPREFIX=~/.steam/steam/steamapps/compatdata/372000/pfx/ ./Proton-5.9-GE-8-ST/ Protonfixes/Weintricks --force Galliumnine

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

AwesamLinux picture AwesamLinux  ·  3Kommentare

kforney picture kforney  ·  3Kommentare

raikirii picture raikirii  ·  3Kommentare

ghost picture ghost  ·  3Kommentare

BLaDZer picture BLaDZer  ·  3Kommentare