Mit wine-wow64 32-bit-Windowsanwendungen ohne 32-bit-Linux-Bibliotheken ausführen können

Deinorius schrieb:
Einzelne Bereiche bauen der Reihe nach oder synchron einen Frame auf. NTSync/esync/fsync/winesync vergleiche ich am ehesten mit der Logistik. Hapert es an einer Stelle, verzögert sich der gesamte Bau, weil ein Bereich auf den anderen aufbaut und dieser wiederum für einen weiteren vorbereiten muss.
So würde ich eher SMP erklären: Die CPU kann nicht voll ausgelastet werden, wenn Tasks auf die Ergebnisse anderer Tasks warten müssen. - Aber das hat nicht mehr viel mit dem Thema hier zu tun. ;)
 
Caramon2 schrieb:
Linux Kernel 6.14
Ein neuer NT-Synchronisationstreiber reduziert den Overhead bei der Emulation von Windows Programmen unter Linux. Dadurch laufen Windows-Spiele flüssiger und mit weniger Verzögerung.
Ob das wohl wirklich spürbares bringt?
Den habe ich jetzt als .1 bekommen, außerdem neue Versionen von mesa und dxvk.

Bei meiner Hardware und dem Superposition-Benchmark ändert sich aber nur etwas innerhalb der Messtoleranz:
  • AMD FX-8350 (4 GHz X8), mit deaktiviertem TurboCore (spannungsoptimiert: -80 mV Offset)
  • 4x8 GiB DDR3L @ 1,21 V
  • Radeon RX 560D mit 2 GiB RAM (deshalb ist nur 1080p Medium möglich)
Hier im Vergleich:
Code:
linux 6.12.9, mesa 24.3.4, dxvk-mingw 2.5.3, vkd3d-proton-mingw 2.14.1:

Superposition Wine-wow64 10.0:
OpenGL:  2914 Pt, fps: 17,94 min, 21,80 avg, 27,90 max
DirectX: 3118 Pt, fps: 19,59 min, 23,33 avg, 30,29 max

Superposition Linux:
OpenGL:  2950 Pt, fps: 17,92 min, 22,07 avg, 28,37 max
Code:
linux 6.13.4, mesa 24.3.4, dxvk-mingw 2.5.3, vkd3d-proton-mingw 2.14.1:

Superposition Wine-wow64 10.0:
OpenGL:  2913 Pt, fps: 17,97 min, 21,79 avg, 27,96 max
DirectX: 3118 Pt, fps: 19,59 min, 23,32 avg, 30,26 max

Superposition Linux:
OpenGL:  2950 Pt, fps: 18,17 min, 22,07 avg, 28,39 max
Code:
linux 6.13.4, mesa 25.0.1, dxvk-mingw 2.5.3, vkd3d-proton-mingw 2.14.1:

Superposition Wine-wow64 10.0:
OpenGL:  3012 Pt, fps: 18,49 min, 22,53 avg, 29,12 max
DirectX: 3111 Pt, fps: 19,55 min, 23,28 avg, 30,23 max

Superposition Linux:
OpenGL:  3051 Pt, fps: 18,65 min, 22,83 avg, 29,63 max
Code:
linux 6.14.1, mesa 25.0.3, dxvk-mingw 2.6.1, vkd3d-proton-mingw 2.14.1:

Superposition Wine-wow64 10.0:
OpenGL:  3011 Pt, fps: 18,25 min, 22,52 avg, 29,11 max
DirectX: 3123 Pt, fps: 19,58 min, 23,36 avg, 30,37 max

Superposition Linux:
OpenGL:  3049 Pt, fps: 18,63 min, 22,81 avg, 29,58 max

Code:
linux 6.14.6, mesa 25.0.5 (ohne dxvk und vkd3d)

Superposition Wine 10.0 (nicht mehr "wow64"):
OpenGL:  3006 Pt, fps: 18,44 min, 22,49 avg, 29,14 max
DirectX: 2796 Pt, fps: 17,31 min, 20,91 avg, 27,54 max

Superposition Linux:
OpenGL:  3051 Pt, fps: 18,63 min, 22,82 avg, 29,62 max
 
Zuletzt bearbeitet:
Ich kann Win-wow64 nicht mehr nutzen: Ohne dxvk läuft PipeDream viel zu langsam und mit startet XMedia-Recode nicht mehr. Deshalb habe ich wieder das reguläre Wine 10.0 installiert (ich bleibe beim Stable - s. o.) und dxvk und vkd3d entfernt.

Damit habe ich den Superposition nochmal gebencht und oben angehängt.
 
Wieso hast du nicht einfach zwei prefixes verwendet? Eines mit und das andere ohne dxvk?
 
@Deinorius: Ich nutze Wine fast gar nicht und wenn ich es mal brauche, soll es einfach funktionieren.

Das tut das wow64 immer mal wieder nicht und ich muss wieder basteln, was ggfs. neue Probleme verursacht und ich wieder basteln muss, usw.

Der Aufwand hat den Nutzen schon lange überschritten und mich hat sowieso gestört, dass ich zusätzlich dxvk installieren musste, wodurch ich dann eben doch nicht auf die 32-bit-Repos verzichten konnten.

Jetzt hat es sich selbst schachmatt gesetzt, also Adios … und alles was ich mit Wine noch nutze läuft wieder: Einfach so.

Wie mein Vater gerne sagt: „Was man nicht hat, geht nicht kaputt.“ - Sozusagen seine Version von "Keep it simple" ;)
 
Ich hatte gerade eine längere Unterhaltung mit der Opera-KI über dxvk, vkd3d, normal oder MinGW und auch in wie weit man Winetricks dafür nutzen kann und einige andere Möglichkeiten davon.

Da kam einiges zusammen (auch bzgl. Wine_wow64) und es erscheint mir schlüssig, soweit ich das beurteilen kann (von den enthaltenen Tabellen wird leider die Formatierung nicht übernommen):
Andreas:
Ich nutze ein Arch-Derivat und dort gibt es für Wine dxvk-bin und vkd3d. Welche Vorteile bietet die? Es funktioniert ja auch ohne beides.

Aria:
Hier eine ausführliche Erklärung zu den Vorteilen von dxvk-bin und vkd3d bei der Nutzung von Wine auf einem Arch-Derivat:

Hintergrund: Wine und Grafik-APIs

Wine ermöglicht es, Windows-Programme unter Linux auszuführen, indem es Windows-API-Aufrufe in Linux-kompatible Aufrufe übersetzt. Viele Windows-Spiele und Anwendungen nutzen jedoch DirectX (insbesondere Direct3D) für Grafik. Wine selbst implementiert Direct3D, aber die native Unterstützung ist oft nicht optimal oder performant.

Was sind dxvk-bin und vkd3d?

1. dxvk-bin

DXVK steht für "DirectX Vulkan".
Es ist eine Übersetzungsschicht (Translation Layer), die Direct3D 9, 10 und 11 Aufrufe in Vulkan-API-Aufrufe umwandelt.
Vulkan ist eine moderne, performante Grafik-API, die von vielen Linux-Grafiktreibern gut unterstützt wird.
dxvk-bin ist die vorgefertigte Binärversion von DXVK, die man einfach installieren kann.

2. vkd3d

VKD3D ist eine ähnliche Übersetzungsschicht, aber speziell für Direct3D 12.
Es übersetzt Direct3D 12 Aufrufe in Vulkan.
Auch hier wird Vulkan als Backend genutzt, um eine bessere Performance und Kompatibilität zu erreichen.

Vorteile von dxvk-bin und vkd3d gegenüber Wine ohne diese

1. Verbesserte Grafikperformance

Wine's eigene Direct3D-Implementierung ist oft langsamer und weniger effizient.
DXVK und VKD3D nutzen Vulkan, das eine moderne und effiziente Grafik-API ist, was zu deutlich besseren Frameraten und geringerer CPU-Last führt.
Besonders bei Spielen ist der Performance-Gewinn spürbar.

2. Bessere Kompatibilität mit Spielen und Anwendungen

Viele Spiele sind für Direct3D optimiert.
DXVK und VKD3D bieten eine bessere Unterstützung für moderne Grafikfeatures, die Wine nativ nicht oder nur unzureichend unterstützt.
Dadurch laufen mehr Spiele stabiler und mit weniger Grafikfehlern.

3. Nutzung moderner Grafiktreiber

Vulkan wird von aktuellen Grafiktreibern (NVIDIA, AMD, Intel) sehr gut unterstützt.
DXVK und VKD3D profitieren direkt von den Treiberoptimierungen und neuen Features.

4. Aktivierung ist optional, aber empfohlen

Wine funktioniert auch ohne DXVK und VKD3D, da es eigene Direct3D-Implementierungen hat.
Ohne diese Übersetzungsschichten ist die Grafikperformance aber meist schlechter.
Für einfache Anwendungen oder ältere Spiele kann Wine ohne diese ausreichen.
Für moderne Spiele und grafikintensive Anwendungen sind dxvk-bin und vkd3d stark zu empfehlen.

Zusammenfassung

Komponente Zweck Vorteile
dxvk-bin Übersetzt Direct3D 9/10/11 in Vulkan Bessere Performance, moderne Grafikfeatures, stabilere Spiele
vkd3d Übersetzt Direct3D 12 in Vulkan Unterstützung für neueste Direct3D-Version, bessere Performance bei D3D12-Spielen
Wine ohne Eigene Direct3D-Implementierung Funktioniert, aber meist schlechtere Grafikperformance und Kompatibilität

Fazit

Wenn du Spiele oder Anwendungen mit anspruchsvoller Grafik unter Wine auf deinem Arch-Derivat nutzt, sind dxvk-bin und vkd3d sehr empfehlenswert, um eine bessere Performance und Kompatibilität zu erreichen. Ohne diese läuft Wine zwar auch, aber oft mit suboptimaler Grafikleistung.

Falls du möchtest, kann ich dir auch Tipps geben, wie du dxvk und vkd3d in Wine korrekt aktivierst und konfigurierst.

Andreas:
Ja, das wäre hilfreich.

Aria:
Gerne! Hier eine detaillierte Anleitung, wie du dxvk-bin und vkd3d in Wine auf deinem Arch-Derivat korrekt aktivierst und konfigurierst, um die beste Grafikperformance zu erzielen.

Schritt-für-Schritt Anleitung zur Aktivierung von DXVK und VKD3D in Wine

1. Voraussetzungen prüfen

Stelle sicher, dass du die Pakete dxvk-bin und vkd3d installiert hast. Unter Arch-Derivaten kannst du das z.B. mit pacman prüfen und installieren:

sudo pacman -S dxvk-bin vkd3d

Du solltest eine aktuelle Wine-Version installiert haben, idealerweise Wine-Staging, da diese oft bessere Unterstützung für DXVK/VKD3D bietet.

2. Vulkan-Treiber prüfen

Vulkan muss auf deinem System korrekt installiert und funktionsfähig sein.
Prüfe mit:

vulkaninfo

Wenn dieser Befehl Fehler zeigt, musst du Vulkan-Treiber für deine Grafikkarte installieren (z.B. vulkan-radeon für AMD, vulkan-intel für Intel, nvidia-utils für NVIDIA).

3. DXVK und VKD3D in Wine aktivieren

Wine kann DXVK und VKD3D automatisch erkennen und nutzen, wenn die entsprechenden DLLs im Wine-Prefix vorhanden sind.

Automatische Installation der DLLs mit wine-dxvk und wine-vkd3d

Arch-Pakete wie dxvk-bin und vkd3d installieren die DLLs systemweit, aber du musst sie in deinem Wine-Prefix aktivieren.
Nutze das Skript wine-dxvk (meist mit dxvk-bin mitgeliefert) oder manuell:

# Beispiel für manuelle Installation in einem Wine-Prefix
WINEPREFIX=~/.wine wine64 setup_dxvk.sh install
WINEPREFIX=~/.wine wine64 setup_vkd3d.sh install

Alternativ kannst du das Tool winetricks verwenden, um DXVK und VKD3D zu installieren:

WINEPREFIX=~/.wine winetricks dxvk
WINEPREFIX=~/.wine winetricks vkd3d

4. DLL-Overrides in Wine konfigurieren

Öffne winecfg :

WINEPREFIX=~/.wine winecfg

Gehe zum Reiter Bibliothek (Libraries).
Füge für folgende DLLs Overrides hinzu (je nach Bedarf):

DLL-Name Override-Typ Zweck
d3d9 native, builtin DXVK für Direct3D9
d3d10 native, builtin DXVK für Direct3D10
d3d10_1 native, builtin DXVK für Direct3D10.1
d3d11 native, builtin DXVK für Direct3D11
dxgi native, builtin DXVK für DXGI (DirectX Graphics Infrastructure)
d3d12 native, builtin VKD3D für Direct3D12

Setze die Overrides auf native, then builtin, damit Wine zuerst die Vulkan-basierten DLLs von DXVK/VKD3D nutzt.

5. Wine-Prefix neu starten und testen

Starte dein Spiel oder deine Anwendung mit dem konfigurierten Wine-Prefix:

WINEPREFIX=~/.wine wine your_game.exe

Du kannst die Nutzung von DXVK/VKD3D überprüfen, indem du die Umgebungsvariable DXVK_LOG_LEVEL auf info setzt:

WINEPREFIX=~/.wine DXVK_LOG_LEVEL=info wine your_game.exe

Im Terminal werden dann Logs angezeigt, die bestätigen, dass DXVK oder VKD3D aktiv sind.

6. Optional: Performance-Tweaks und Fehlerbehebung

Falls Probleme auftreten, kannst du in winecfg die DLL-Overrides anpassen oder temporär deaktivieren.
Nutze winetricks für zusätzliche DirectX-Komponenten, falls nötig.
Achte darauf, dass dein Vulkan-Treiber aktuell ist.
Für Spiele mit speziellen Anforderungen gibt es oft Community-Tipps (z.B. ProtonDB, WineHQ AppDB).

Zusammenfassung

Schritt Beschreibung
1. Pakete installieren dxvk-bin, vkd3d, Wine (idealerweise Staging)
2. Vulkan prüfen vulkaninfo ausführen
3. DXVK/VKD3D installieren setup_dxvk.sh install oder winetricks
4. DLL-Overrides setzen winecfg → Bibliotheken → native, then builtin
5. Testen Spiel starten, Logs mit DXVK_LOG_LEVEL=info
6. Fehler beheben Treiber aktualisieren, Overrides anpassen

Wenn du möchtest, kann ich dir auch eine Beispiel-Konfiguration oder Skripte für die Automatisierung erstellen. Möchtest du das?

Andreas:
Ja, das würde mich interessieren.

Aria:
Hier ist eine Beispiel-Konfiguration und ein einfaches Skript, mit dem du die Installation und Aktivierung von DXVK und VKD3D in einem Wine-Prefix auf deinem Arch-Derivat automatisieren kannst.

Beispiel: Automatisches Setup-Skript für DXVK und VKD3D in Wine

Speichere das folgende Skript z.B. als setup-wine-vulkan.sh und mache es ausführbar ( chmod +x setup-wine-vulkan.sh ):

#!/bin/bash

# Pfad zum Wine-Prefix (anpassen falls nötig)
WINEPREFIX="${HOME}/.wine"

echo "Starte Setup für DXVK und VKD3D im Wine-Prefix: $WINEPREFIX"

# Prüfen, ob Wine installiert ist
if ! command -v wine &> /dev/null; then
echo "Wine ist nicht installiert. Bitte zuerst installieren."
exit 1
fi

# Prüfen, ob Vulkan funktioniert
if ! vulkaninfo &> /dev/null; then
echo "Vulkan scheint nicht korrekt installiert zu sein. Bitte Vulkan-Treiber installieren."
exit 1
fi

# DXVK installieren (vorausgesetzt dxvk-bin ist installiert)
if [ -x "/usr/share/dxvk/setup_dxvk.sh" ]; then
echo "Installiere DXVK..."
WINEPREFIX="$WINEPREFIX" /usr/share/dxvk/setup_dxvk.sh install
else
echo "DXVK Setup-Skript nicht gefunden. Bitte dxvk-bin installieren."
exit 1
fi

# VKD3D installieren (vorausgesetzt vkd3d ist installiert)
if [ -x "/usr/share/vkd3d/setup_vkd3d.sh" ]; then
echo "Installiere VKD3D..."
WINEPREFIX="$WINEPREFIX" /usr/share/vkd3d/setup_vkd3d.sh install
else
echo "VKD3D Setup-Skript nicht gefunden. Bitte vkd3d installieren."
exit 1
fi

# DLL-Overrides in winecfg setzen (manuell empfohlen)
echo "Bitte öffne jetzt winecfg und setze folgende DLL-Overrides auf 'native, then builtin':"
echo "d3d9, d3d10, d3d10_1, d3d11, dxgi, d3d12"
echo "Dies ist notwendig, damit DXVK und VKD3D genutzt werden."

echo "Setup abgeschlossen. Du kannst jetzt dein Spiel mit Wine starten."

exit 0

Nutzung des Skripts

Skript speichern und ausführbar machen:

chmod +x setup-wine-vulkan.sh

Skript ausführen:

./setup-wine-vulkan.sh

Nach der Installation öffnet sich nicht automatisch winecfg , das machst du manuell:

WINEPREFIX=~/.wine winecfg

Im Reiter Bibliotheken die genannten DLLs ( d3d9 , d3d10 , d3d10_1 , d3d11 , dxgi , d3d12 ) jeweils auf native, then builtin setzen.

Optional: Automatische DLL-Override-Konfiguration (fortgeschritten)

Die DLL-Overrides werden in der Datei user.reg im Wine-Prefix gespeichert. Man kann sie auch per Skript setzen, aber das ist komplexer und fehleranfällig. Für die meisten Nutzer ist die manuelle Einstellung in winecfg sicherer und einfacher.

Wenn du möchtest, kann ich dir auch ein Beispiel geben, wie man mit winetricks DXVK und VKD3D installiert und konfiguriert, oder wie man ein spezielles Wine-Prefix für ein bestimmtes Spiel mit Vulkan-Unterstützung anlegt. Möchtest du das?

Andreas:
Ja bitte. Mit winetricks kenne ich mich nicht aus.

Aria:
Gerne! Hier eine ausführliche Einführung und Anleitung, wie du mit winetricks DXVK und VKD3D in einem Wine-Prefix installierst und konfigurierst. Winetricks ist ein praktisches Skript, das viele Einstellungen und Installationen in Wine vereinfacht.

Was ist Winetricks?

Winetricks ist ein Hilfsprogramm, das es dir ermöglicht, einfach zusätzliche Windows-Komponenten, Bibliotheken und Einstellungen in einem Wine-Prefix zu installieren und zu konfigurieren. Es automatisiert viele manuelle Schritte.

Winetricks installieren (falls noch nicht vorhanden)

Unter Arch-Derivaten kannst du winetricks so installieren:

sudo pacman -S winetricks

Schritt-für-Schritt: DXVK und VKD3D mit Winetricks installieren

1. Wine-Prefix auswählen oder neu erstellen

Ein Wine-Prefix ist ein isolierter Ordner, in dem Wine Programme und Einstellungen speichert. Standardmäßig ist es ~/.wine .

Du kannst einen neuen Prefix z.B. so anlegen:

export WINEPREFIX=$HOME/.wine-vulkan
wineboot

wineboot initialisiert den neuen Prefix.

2. DXVK mit Winetricks installieren

Führe folgenden Befehl aus, um DXVK (für Direct3D 9/10/11) zu installieren:

WINEPREFIX=$HOME/.wine-vulkan winetricks dxvk

Dieser Befehl lädt und installiert automatisch die nötigen DXVK-Bibliotheken in den angegebenen Wine-Prefix.

3. VKD3D mit Winetricks installieren

Für Direct3D 12 installiere VKD3D mit:

WINEPREFIX=$HOME/.wine-vulkan winetricks vkd3d

4. DLL-Overrides setzen (optional, aber empfohlen)

Winetricks kann auch DLL-Overrides setzen, damit Wine die nativen Vulkan-DLLs von DXVK/VKD3D nutzt.

Führe dazu aus:

WINEPREFIX=$HOME/.wine-vulkan winetricks dlls d3d9 d3d10 d3d10_1 d3d11 dxgi d3d12

Dieser Befehl setzt die genannten DLLs auf native (also die von DXVK/VKD3D) und nicht die eingebauten von Wine.

5. Wine-Prefix testen

Starte nun ein Spiel oder eine Anwendung mit dem Vulkan-unterstützten Wine-Prefix:

WINEPREFIX=$HOME/.wine-vulkan wine your_game.exe

Zusammenfassung der wichtigsten Befehle

Zweck Befehl
Wine-Prefix anlegen export WINEPREFIX=$HOME/.wine-vulkan && wineboot
DXVK installieren WINEPREFIX=$HOME/.wine-vulkan winetricks dxvk
VKD3D installieren WINEPREFIX=$HOME/.wine-vulkan winetricks vkd3d
DLL-Overrides setzen WINEPREFIX=$HOME/.wine-vulkan winetricks dlls d3d9 d3d10 d3d10_1 d3d11 dxgi d3d12
Spiel starten WINEPREFIX=$HOME/.wine-vulkan wine your_game.exe

Tipps

Ersetze $HOME/.wine-vulkan durch den Pfad deines gewünschten Wine-Prefix.
Du kannst mehrere Wine-Prefixe für verschiedene Spiele oder Anwendungen anlegen, um unterschiedliche Konfigurationen zu nutzen.
Wenn du winecfg öffnest ( WINEPREFIX=$HOME/.wine-vulkan winecfg ), kannst du die Einstellungen und DLL-Overrides auch manuell prüfen.

Falls du möchtest, kann ich dir auch eine kurze Anleitung geben, wie du mit winetricks weitere nützliche Windows-Komponenten installierst oder wie du Probleme mit Vulkan-Treibern löst. Möchtest du das?

Andreas:
Nur zu. :)

Aria:
Super, hier eine kurze Anleitung zu weiteren nützlichen Winetricks-Komponenten und Tipps zur Vulkan-Treiber-Fehlerbehebung:

Weitere nützliche Winetricks-Komponenten für Spiele und Anwendungen

Manche Spiele oder Programme benötigen zusätzliche Windows-Komponenten, die du mit Winetricks einfach installieren kannst:

Komponente Zweck / Nutzen Winetricks-Befehl
vcrun2019 Microsoft Visual C++ 2019 Redistributable winetricks vcrun2019
dotnet48 Microsoft .NET Framework 4.8 winetricks dotnet48
directx9 DirectX 9 Runtime (für ältere Spiele) winetricks directx9
corefonts Windows-Schriftarten (für korrekte Textanzeige) winetricks corefonts
xact Microsoft XAudio (für Sound in Spielen) winetricks xact

Beispiel: Um Visual C++ 2019 und DirectX9 zu installieren, führst du aus:

WINEPREFIX=$HOME/.wine-vulkan winetricks vcrun2019 directx9

Vulkan-Treiber: Fehlerbehebung und Tipps

Wenn Vulkan nicht funktioniert oder Spiele abstürzen, prüfe Folgendes:

Vulkan-Installation prüfen:

vulkaninfo

Wenn Fehler auftreten, fehlen wahrscheinlich Vulkan-Treiber.

Treiber installieren:

Für AMD-Grafikkarten:

sudo pacman -S vulkan-radeon

Für Intel-Grafikkarten:

sudo pacman -S vulkan-intel

Für NVIDIA-Grafikkarten:

sudo pacman -S nvidia-utils

Treiber-Version prüfen:

Nutze nvidia-smi (NVIDIA) oder glxinfo | grep "OpenGL version" (AMD/Intel), um sicherzustellen, dass die Treiber aktuell sind.

Umgebungsvariablen setzen (optional):

Manchmal hilft es, Umgebungsvariablen zu setzen, um Vulkan-Probleme zu umgehen oder zu debuggen:

export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json # Beispiel für NVIDIA
export VK_LAYER_PATH=/usr/share/vulkan/explicit_layer.d

Logs prüfen:

Starte dein Spiel mit DXVK-Logging, um Probleme zu erkennen:

WINEPREFIX=$HOME/.wine-vulkan DXVK_LOG_LEVEL=warn wine your_game.exe

Fazit

Winetricks erleichtert die Installation von Windows-Komponenten und Vulkan-Wrappern.
Vulkan-Treiber müssen korrekt installiert und aktuell sein.
Zusätzliche Komponenten wie Visual C++ oder .NET Framework sind oft nötig.
Logs und Umgebungsvariablen helfen bei der Fehlersuche.

Wenn du möchtest, kann ich dir auch Beispielbefehle für spezifische Spiele geben oder bei konkreten Fehlermeldungen helfen. Lass es mich wissen!

Andreas:
Es gibt von dxvk und vkd3d auch mingw Versionen: Welche Vor- oder Nachteile haben die bei der Nutzung von Wine unter Linux?

Aria:
Hier eine ausführliche Erklärung zu den Vor- und Nachteilen der MinGW-Versionen von DXVK und VKD3D bei der Nutzung von Wine unter Linux:

Hintergrund zu MinGW-Versionen von DXVK und VKD3D

MinGW (Minimalist GNU for Windows) ist eine Entwicklungsumgebung, die es ermöglicht, Windows-Programme mit GNU-Tools zu kompilieren.
Die MinGW-Versionen von DXVK und VKD3D sind speziell für die Windows-Umgebung gebaut, um dort als native DLLs zu fungieren.
Im Gegensatz dazu sind die regulären Versionen von DXVK und VKD3D für den Einsatz unter Linux (bzw. Wine auf Linux) kompiliert.

Vorteile der MinGW-Versionen bei Nutzung unter Wine auf Linux

Native Windows-Kompatibilität

MinGW-Versionen sind native Windows-Binaries, die direkt in einem Wine-Prefix als Windows-DLLs verwendet werden können.
Sie sind oft die Versionen, die in Kombination mit Wine (oder Proton) genutzt werden, um eine möglichst native Windows-Umgebung zu simulieren.
Bessere Integration in Wine-WoW64-Umgebungen

Für 64-Bit-Wine-Prefixe mit WoW64 (Windows 32-bit on 64-bit) sind MinGW-Builds oft besser geeignet, da sie speziell für Windows-Architekturen gebaut sind.
Das kann zu besserer Kompatibilität und Stabilität führen.
Aktualität und Community-Support

MinGW-Versionen werden oft von Projekten wie Proton (Valve) genutzt und gepflegt, was bedeutet, dass sie schneller Bugfixes und Optimierungen erhalten.
Sie sind häufig die bevorzugte Wahl für Gaming unter Wine/Proton.

Nachteile der MinGW-Versionen bei Nutzung unter Linux

Abhängigkeit von Wine-Umgebung

MinGW-Versionen sind Windows-Binaries, sie benötigen Wine, um unter Linux zu laufen.
Sie können nicht direkt als native Linux-Bibliotheken genutzt werden, was die Flexibilität einschränkt.
Build-Komplexität und Wartung

MinGW-Builds erfordern eine spezielle Cross-Compile-Umgebung, was die Wartung und Anpassung erschwert.
Für Entwickler unter Linux ist es oft einfacher, native Linux-Builds zu verwenden.
Performance-Unterschiede

In manchen Fällen können native Linux-Builds von DXVK/VKD3D (also nicht MinGW) durch direkte Nutzung von Vulkan-Treibern und Systembibliotheken geringfügig performanter sein.
Allerdings ist der Unterschied meist gering und hängt stark vom Setup ab.

Vorteile der nativen Linux-Versionen von DXVK und VKD3D

Direkte Nutzung von Linux-Systembibliotheken und Vulkan-Treibern ohne Umweg über Wine.
Einfachere Installation und Integration in Linux-Distributionen (z.B. als Pakete).
Leichtere Anpassung und Debugging für Linux-Entwickler.

Wann welche Version nutzen?

Nutzungsszenario Empfohlene Version Begründung
Wine auf Linux für Spiele (Standard) MinGW-Versionen Bessere Kompatibilität, von Proton genutzt
Entwicklung und Debugging unter Linux Native Linux-Versionen Einfachere Anpassung, direkter Zugriff
Native Windows-Umgebung (ohne Wine) MinGW-Versionen Windows-kompatible DLLs
Spezielle Linux-Setups oder Container Native Linux-Versionen Einfachere Integration

Fazit

Die MinGW-Versionen von DXVK und VKD3D sind speziell für die Nutzung in Wine (Windows-Umgebung unter Linux) optimiert und bieten meist die beste Kompatibilität und Performance für Spiele.
Native Linux-Versionen sind eher für Entwickler und spezielle Setups gedacht, die direkt auf Linux-Bibliotheken zugreifen wollen.
Für die meisten Nutzer, die Wine auf Linux verwenden, sind die MinGW-Versionen die bessere Wahl.

Andreas:
Kann man die MinGW-Versionen auch mit Winetricks installieren, oder zumindest in Wine einrichten, wenn sie installiert sind.

Aria:
Winetricks bietet keine direkte Option, um speziell die MinGW-Versionen von DXVK oder VKD3D zu installieren. Winetricks installiert in der Regel die Standard-Versionen, die für Wine unter Linux kompiliert sind.

MinGW-Versionen mit Winetricks?

Winetricks unterstützt keine gezielte Installation der MinGW-Builds von DXVK oder VKD3D.
Winetricks lädt und installiert die Versionen, die als native Linux-Bibliotheken für Wine gedacht sind, nicht die Windows-MinGW-Binaries.

MinGW-Versionen in Wine einrichten

Wenn du die MinGW-Versionen von DXVK oder VKD3D bereits installiert hast (z.B. aus Proton-Projekten oder selbst kompiliert), kannst du sie manuell in deinem Wine-Prefix einrichten:

Manuelle Installation der DLLs:

Kopiere die MinGW-DLLs ( d3d11.dll , dxgi.dll , d3d12.dll usw.) in den system32 -Ordner deines Wine-Prefix, z.B.:

~/.wine/drive_c/windows/system32/

DLL-Overrides setzen:

Öffne winecfg und setze die entsprechenden DLLs ( d3d11 , dxgi , d3d12 usw.) auf native, then builtin.
Umgebungsvariablen anpassen (optional):

Manche MinGW-Versionen benötigen spezielle Umgebungsvariablen oder Pfade, um korrekt zu funktionieren.

Fazit

Winetricks ist nicht für die Installation der MinGW-Versionen von DXVK/VKD3D ausgelegt.
Die MinGW-Versionen müssen manuell in den Wine-Prefix eingebunden und konfiguriert werden.
Für die meisten Nutzer ist die Standard-Version, die Winetricks installiert, ausreichend und einfacher zu handhaben.

Wenn du möchtest, kann ich dir eine Schritt-für-Schritt-Anleitung geben, wie du die MinGW-DLLs manuell in deinem Wine-Prefix installierst und konfigurierst. Möchtest du das?

Andreas:
Nein danke, das kenne ich schon.

Aria:
Alles klar! Wenn du zu einem späteren Zeitpunkt noch Fragen hast oder Unterstützung bei Wine, DXVK, VKD3D oder anderen Themen brauchst, stehe ich dir gerne zur Verfügung. Viel Erfolg und viel Spaß beim Spielen unter Linux!
 
  • Gefällt mir
Reaktionen: Pummeluff
Caramon2 schrieb:
und auch in wie weit man Winetricks dafür nutzen kann
Das habe ich eben mit Wine 10.0 (der aktuellen Stable) ausprobiert.

Da ich keine speziellen Prefixes nutze (auch nichts mit D3D12 - deshalb kein vkd3d), einfach nur winetricks dxvk: dxvk wurde geladen ins Prefix installiert und auch die entsprechenden DLL-Konfigurationen auf "native" gesetzt.

Rein von den Werten her hat es beim Superposition zwar nur knapp 10% gebracht, aber der effektive Unterschied war deutlich: ohne dxvk ruckelten manche Szenen wie Sau, mit dxvk hakte es nur noch alle paar Sek. kurz:

Win-10.0.png
Win-10.0+dxvk.png

Trotz des leicht geringeren Ergebnisses (was zeigt, das sowas nichts wert ist) lief die Linux-Version am saubersten. Es Hakte nur am Anfang ein paar mal kurz und der Rest war flüssig:

linux.png

Die niedrigen Ergebnisse kommen durch die alte Raden RX 560D, aber für solche Vergleiche finde ich das optimal, da man viel eher Leistungsunterschiede bemerkt, als hätte ich eine HighEnd-GraKa, die auch ohne dxvk zig fantasillionen fps schafft und sowieso alles flüssig ist.

Übrigens gibt es keine speziellen wow64-Versionen mehr, da das inzwischen in der normalen Version integriert ist:

Transition to the new WoW64 wine and wine-staging

Eigentlich wollte ich für den Vergleich die aktuelle Version installieren (wie von der KI empfohlen), aber die ist viel größer geworden:
Code:
Paket (1)   Alte Version  Neue Version  Netto-Veränderung  Größe des Downloads
world/wine  10.0-1        10.19-1              966,28 MiB           223,70 MiB

Gesamtgröße des Downloads:              223,70 MiB
Gesamtgröße der installierten Pakete:  1530,09 MiB
Größendifferenz der Aktualisierung:     966,28 MiB
Merkwürdigerweise geschah das beim eigentlich marginalen Wechsel von der 10.8-1 auf die 10.8-2 (Artix-Archiv):
Code:
wine-10.8-1-x86_64.pkg.tar.zst                     17-May-2025 17:21     62M
wine-10.8-2-x86_64.pkg.tar.zst                     21-May-2025 20:26    217M
Bevor ich mir das installiere, will ich erst man wissen wieso. Zumal die staging-Version noch die normale Größe hat:
Code:
Paket (2)           Alte Version  Neue Version  Netto-Veränderung  Größe des Downloads
wine                10.0-1                            -563,81 MiB                   
world/wine-staging                10.19-1              585,71 MiB            73,30 MiB

Gesamtgröße des Downloads:              73,30 MiB
Gesamtgröße der installierten Pakete:  585,71 MiB
Größendifferenz der Aktualisierung:     21,90 MiB

Nachtrag:

Ich habe wine-staging installiert, dadurch wurden alle lib32-Paktete verweist und konnten gelöscht werden (sozusagen apt autoremove --purge), aber Superposition hat damit nicht funktioniert: Es startete, der Benchmark wurde initialisiert, aber statt dass er dann durchgeführt wurde, war ich wieder auf dem Desktop. Superposition lief noch, ich startete den Benchmark neu, er wurde wieder Initialisiert und zack, wieder auf dem Desktop.

Das gleiche, wenn ich das Preset gelöscht und neu generiert habe (ich habe nur diesen grässlich kontrastarmen Skin deaktivieren, ansonsten nichts geändert), egal ob mit oder ohne dxvk.

Also wieder zurück zu Wine Stable.

Dafür habe ich dann winetricks vkd3d ausgeführt. Das war genauso unproblematisch, wie bei dxvk. Auf den Superposition-Bench hatte das natürlich keine Auswirkung, da der noch dx11 ist.
 
Zuletzt bearbeitet:

Ähnliche Themen

D
Antworten
8
Aufrufe
1.154
Dexter1997
D
Zurück
Oben