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

@Spontaneous: Ich habe es durchgetestet und es kann nicht an dxvk liegen, da es sonst ja auch ohne dxvk flüssig läuft:

Wie neulich geschrieben, schleppe ich Wine nicht mehr beim Produktivsystem mit, da ich es nur noch in Ausnahmefällen brauche, sondern habe dafür eine extra Installation auf einer ext. SSD.

Ich habe dort Wine durch Wine-wow64 ersetzt und wie im ersten Beitrag beschrieben, alles 32-bittige entfernt (ein späterer Test hat gezeigt, dass es keinen Unterschied macht, wenn nur Wine austausche, aber nichts anderes entferne). An der Wine-Konfiguration hatte ich nichts geändert:

Mit dem normalen Wine lädt PipeDream in ca. 6 Sek., mit Wine-wow64 braucht es ca. 43 Sek. - Außerdem ist mir inzwischen aufgefallen, dass wenn ich Esc drücke und das durchscheinende Exit-Menü erscheint, PipeDream dahinter höchstens noch mit 5 fps läuft: Beim normalen Wine bleicht es flüssig.

Wenn ich die Installation aber wie beschrieben in KVM boote (gleich am Anfang mit Strg+Alt+F auf Vollbild geschaltet), lädt PipeDream auch mit Wine-wow64 normal schnell und bleibt auch hinter dem Exit-Menü flüssig.

dxvk war dabei nie installiert (genauso wenig wie vkd3d), also kann es daran nicht liegen. In den Artix- und sogar den Arch-Quellen gibt es dxvk nicht mal mehr. Offenbar ist es generell nicht mehr wichtig.

Ich teste übrigens weiterhin mit Wine 9.20, um direkt vergleichen zu können, da es das normale noch nicht als 9.21 gibt.

Abgesehen davon hatte ich das dxvk aus dem Chaotic-AUR neulich schon mal installiert: Das hat nichts geändert.

AeroFly Pro Deluxe 1.9 läuft dagegen unter den selben Umständen immer flüssig. Aber wenn ich vsync deaktiviere, gibt es Unterschiede:

Direkt gebootet:
  • normales Wine: ca. 700 fps
  • Wine-wow64: ca. 430 fps
In der VM:
  • normales Wine: ca. 500 fps
  • Wine-wow64: ca. 350 fps

Also zumindest 32-bit-3D-Anwendungen sind durch wow64 ca. 1/3 langsamer. - 64-bit-3D-Anwendungen habe ich nicht.

Das 32-bittige XMedia-Recode encodet dagegen mit wow64 gleich schnell: Bei 2,5 Min. Encodingdauer nur 1 Sek. langsamer.



Im Anhang noch die Debug-Meldungen. (Wine ist so ein Messie…) Da tut sich zwischen den Versionen nicht viel.

Ich habe schon beim laden Alt+F4 gedrückt. Dann wird PipeDream sofort beendet, wenn es fertig geladen und sich initialisiert hat und das habe ich per "time" gemessen.
 

Anhänge

Du verstehst schon was DXVK bewirkt und wie man es in einer manuellen Wine Prefix installiert und aktiviert?
Ich glaube, das verstehst du wohl noch nicht ganz. Daher begib dich auf die GitHub Seite von DXVK. Ich habe es selbst durchgespielt mit meinem Laptop. Artix ist installiert und das Starten ohne DXVK verhält sich wie bei dir und mit einfach schnell.
 
Spontaneous schrieb:
Du verstehst schon was DXVK bewirkt und wie man es in einer manuellen Wine Prefix installiert und aktiviert?
Nur theoretisch, da ich es nie gebraucht habe und auch nie andere Wine Prefixes. Wie geschrieben: Alles wofür ich Wine brauchte, funktionierte schon 2019 mit Wine 0,9x auf Anhieb.

Das ist jetzt das erste Mal, das etwas nicht für mich nachvollziehbares passiert.
Ich glaube, das verstehst du wohl noch nicht ganz. Daher begib dich auf die GitHub Seite von DXVK. Ich habe es selbst durchgespielt mit meinem Laptop. Artix ist installiert und das Starten ohne DXVK verhält sich wie bei dir und mit einfach schnell.
Vielleicht später. Mit Wine habe ich erst mal genug gemacht:

Caramon2 schrieb:
64-bit-3D-Anwendungen habe ich nicht.

Der Cinebench 11.5 war der letzte, den es auch in einer 32-bit-Version gab.

Die erweiterten Tests müssen aktiviert sein:

C4DvsWine-wow64.png

Zuerst habe ich jeweils den Multicore-Bench 2x laufen lassen und dann den OpenGL auch 2x (FullHD, 75 Hz):
Code:
Wine:
32-bit: 32,24 fps + 6,61
64-bit: 38,64 fps + 6,82

Wine-wow64:
32-bit: 17,93 fps + 6,60
64-bit: 39,53 fps + 6,83
Da ist der 32-bit-wow64-Nachteil noch gravierender, aber auf 64-bit wirkt es sich dafür leicht positiv aus.

Wine-wow64 hatte ich einfach drüber gebügelt und mich anschließend kurz abgemeldet, aber nichts von den 32-bit-Sachen entfernt:
Code:
Paket (2)   Alte Version  Neue Version  Netto-Veränderung

wine        9.20-1                            -554,04 MiB
wine-wow64                9.20-1               581,12 MiB

Gesamtgröße der installierten Pakete:  581,12 MiB
Größendifferenz der Aktualisierung:     27,08 MiB

Danach hatte ich dxvk und vkd3d (32- und 64-bit-Version) installiert (und dann wieder kurz abgemeldet), aber das hatte keinen relevanten Effekt darauf und auch PipeDream blieb so lahm.
 
Schau mal in 'winecfg', ob die Bibliotheken (ich glaube es sind drei oder vier an der Zahl) als 'native' auch wirklich eingebunden sind. Im Prinzip machen die DXVK Installer nichts anderes als automatisiert die Dateien abzulegen und dort einzubinden. Das kann man auch selbst machen. Neustarten oder erneut einloggen braucht man dafür nicht.

Starte Pipe Dreams via Shell. Dort sollte sich DXVK deutlich erkennbar zeigen, wenn es korrekt eingebunden ist.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Caramon2
@aries2747
Heut hat's mich dann doch mal gepackt. Hab mal ein Update installiert:

Code:
app-emulation/wine-vanilla -abi_x86_32 wow64

Allerdings scheint das irgendwie nicht ganz zu funktionieren. Wenn ich testweise mal Spider Solitär starte:
Code:
wine spider.exe
wine: '/home/user/Programme/Spider_win32' is a 32-bit installation, it cannot support 64-bit applications.

Also irgendwas scheint da noch nicht ganz rund zu laufen. Das passiert bei jedem Programm, was ich als 32-Bit-Installation mal installiert hatte. U.a. auch bei Tax.

Muss ich da noch was Bestimmtes setzen, also WINARCH="wow64" z.B.?
 
Also ich musste nicht explizit etwas setzen, es funktioniert bei mir mit Siedler 2 TNG und Simcity 3000 Unlimited ohne das ich irgendwelche speziellen optionen setzen muss.
 
Bin einen Schritt weiter.

Scheint so, als ob sich Wine am existierenden PREFIX stören würde. Ruf ich eine die Exe (Beispiel Spider Solitär) ohne Angabe von WINEPREFIX auf, dann klappt's problemlos.

Das ist natürlich etwas Mist, da ich jedes installierte Wine-Programm noch mal neu installieren muss. Grob überschlagen. Sind 8 Stück.

Update:
Ich geh wieder zurück auf Multilib. Grund ist nicht Wine sondern der Steam-Launcher. Der zieht den ganzen 32-bit-Rattenschwanz hinter sich her. Im Grunde genommen hab ich dann mit ein paar behebbaren Problemen Wine von 32bit befreit, muss aber trotzdem alles wegen Steam doppelt installieren.
 
Zuletzt bearbeitet:
Uridium schrieb:
Schau mal in 'winecfg', ob die Bibliotheken (ich glaube es sind drei oder vier an der Zahl) als 'native' auch wirklich eingebunden sind.
Ich hatte zuerst nur dxvk und vkd3d installiert und sonst gar nichts gemacht. Da der OpenGL-Cinebench trotzdem etwas schneller lief, bin ich davon ausgegangen, dass Wine es automatisch einbindet.

Später habe ich die EndeEnteGeh bemüht, fand das bei git absurd umständlich erklärt und mich dann nach dem englischen Arch-Wiki gerichtet: https://wiki.archlinux.org/title/Wine#VKD3D-Proton

Mit dem Erfolg, dass der OpenGL-Cinebench noch ein Tucken schneller lief, PipeDream dafür gar nicht mehr mit Wine-wow64. - erst nachdem ich in winecfg die dx9-DLL auf "Buildin" gesetzt habe, startete es, aber eben wieder so elend lahm.

Offenbar noch eine Macke vom wow64. - dxvk passt sowieso nicht gut dazu, weil es 32-bit-Abhängigkeiten hat. Und gerade die will man damit ja los werden.

Uridium schrieb:
Neustarten oder erneut einloggen braucht man dafür nicht.
Neulich hatte das be ersten Mal einen Unterschied gemacht, weshalb ich dabei geblieben bin. Heute konnte ich das aber nicht mehr reproduzieren. War neulich wohl was anderes.

Uridium schrieb:
Starte Pipe Dreams via Shell. Dort sollte sich DXVK deutlich erkennbar zeigen, wenn es korrekt eingebunden ist.
Dazu muss ich erst wieder deaktiviert, dass ich die Debugmeldungen deaktiviert habe: Die müllen mir das Terminal viel zu sehr zu, wie ich neulich als zip angehängt hatte.

Ich bin erst mal wieder zurück zum nornalen Wine, jetzt aber mit dxvk und vkd3d, da beides ja nicht groß ist und selbst bei OpenGL-Anwendungen leichte Vorteile bringt.

Neue Wine-wow64-Versionen werden ich im Auge behalten. Die sind ja schnell installiert und getestet.

Selbst nach der ganzen Entwicklungszeit (Sven hat hier schon zu Wine 7 darüber berichtet), ist das bzgl. 32-bit offenbar immer noch sehr "experimentell".
 
Caramon2 schrieb:
PipeDream dafür gar nicht mehr mit Wine-wow64. - erst nachdem ich in winecfg die dx9-DLL auf "Buildin" gesetzt habe, startete es, aber eben wieder so elend lahm.
Ich hab's! :)

dxvk hat einen Bug bzgl. wine-wow64 (zumindest die Versionen aus dem Chaotic-AUR - andere habe ich nicht getestet):

Wenn ich wine-wow64 installiert und eingerichtet habe und dann dxvk installiere, kopiert es die DLLs doppelt in "system32" (also wo die 64-bit-DLLs sind):
Code:
$ setup_dxvk install --symlink
'/home/ich/.wine/dosdevices/c:/windows/system32/dxgi.dll' -> '/home/ich/.wine/dosdevices/c:/windows/system32/dxgi.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/system32/dxgi.dll' -> '/usr/share/dxvk/x64/dxgi.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/dxgi.dll' wurde entfernt
'/home/ich/.wine/dosdevices/c:/windows/system32/dxgi.dll' -> '/usr/share/dxvk/x32/dxgi.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d8.dll' -> '/home/ich/.wine/dosdevices/c:/windows/system32/d3d8.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d8.dll' -> '/usr/share/dxvk/x64/d3d8.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d8.dll' wurde entfernt
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d8.dll' -> '/usr/share/dxvk/x32/d3d8.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d9.dll' -> '/home/ich/.wine/dosdevices/c:/windows/system32/d3d9.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d9.dll' -> '/usr/share/dxvk/x64/d3d9.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d9.dll' wurde entfernt
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d9.dll' -> '/usr/share/dxvk/x32/d3d9.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d10core.dll' -> '/home/ich/.wine/dosdevices/c:/windows/system32/d3d10core.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d10core.dll' -> '/usr/share/dxvk/x64/d3d10core.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d10core.dll' wurde entfernt
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d10core.dll' -> '/usr/share/dxvk/x32/d3d10core.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d11.dll' -> '/home/ich/.wine/dosdevices/c:/windows/system32/d3d11.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d11.dll' -> '/usr/share/dxvk/x64/d3d11.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d11.dll' wurde entfernt
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d11.dll' -> '/usr/share/dxvk/x32/d3d11.dll'
Ist dagegen das normale Wine installiert und eingerichtet, werden sie richtig in "system32" und "syswow64" kopiert:
Code:
$ setup_dxvk install --symlink
'/home/ich/.wine/dosdevices/c:/windows/system32/dxgi.dll' -> '/home/ich/.wine/dosdevices/c:/windows/system32/dxgi.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/system32/dxgi.dll' -> '/usr/share/dxvk/x64/dxgi.dll'
'/home/ich/.wine/dosdevices/c:/windows/syswow64/dxgi.dll' -> '/home/ich/.wine/dosdevices/c:/windows/syswow64/dxgi.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/syswow64/dxgi.dll' -> '/usr/share/dxvk/x32/dxgi.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d8.dll' -> '/home/ich/.wine/dosdevices/c:/windows/system32/d3d8.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d8.dll' -> '/usr/share/dxvk/x64/d3d8.dll'
'/home/ich/.wine/dosdevices/c:/windows/syswow64/d3d8.dll' -> '/home/ich/.wine/dosdevices/c:/windows/syswow64/d3d8.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/syswow64/d3d8.dll' -> '/usr/share/dxvk/x32/d3d8.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d9.dll' -> '/home/ich/.wine/dosdevices/c:/windows/system32/d3d9.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d9.dll' -> '/usr/share/dxvk/x64/d3d9.dll'
'/home/ich/.wine/dosdevices/c:/windows/syswow64/d3d9.dll' -> '/home/ich/.wine/dosdevices/c:/windows/syswow64/d3d9.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/syswow64/d3d9.dll' -> '/usr/share/dxvk/x32/d3d9.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d10core.dll' -> '/home/ich/.wine/dosdevices/c:/windows/system32/d3d10core.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d10core.dll' -> '/usr/share/dxvk/x64/d3d10core.dll'
'/home/ich/.wine/dosdevices/c:/windows/syswow64/d3d10core.dll' -> '/home/ich/.wine/dosdevices/c:/windows/syswow64/d3d10core.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/syswow64/d3d10core.dll' -> '/usr/share/dxvk/x32/d3d10core.dll'
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d11.dll' -> '/home/ich/.wine/dosdevices/c:/windows/system32/d3d11.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/system32/d3d11.dll' -> '/usr/share/dxvk/x64/d3d11.dll'
'/home/ich/.wine/dosdevices/c:/windows/syswow64/d3d11.dll' -> '/home/ich/.wine/dosdevices/c:/windows/syswow64/d3d11.dll.old' umbenannt
'/home/ich/.wine/dosdevices/c:/windows/syswow64/d3d11.dll' -> '/usr/share/dxvk/x32/d3d11.dll'
Ersetze ich dann erst wine durch wine-wow64, startet PipeDream und das in normaler Geschwindigkeit.

Daran, dass alle 32-bit-3D-Anwendungen sehr viel langsamer als beim normalen Wine sind, ändert das aber nicht:

Mit dxvk ist der Unterschied (ohne vsync) noch gravierender:
  • AeroFly Pro Deluxe mit normalen Wine: ca. 1000 fps
  • AeroFly Pro Deluxe mit Wine-wow64: ca. 470 fps an der gleichen Stelle
Oder der OpenGL-Test von Cinebench 11.5 (64-bit / 32-bit):
  • normales Wine: 40,68 fps / 37,23 fps
  • Wine-wow64: 40,41 fps / 18,18 fps
Das betrifft offenbar nur 3D, da encoding eines 720p Musikvideos mit XMediaRecode (32-bit) immer 1:40 Min. gebraucht hat: egal ob Wine oder Wine-wow64 und auch ob dxvk und/oder vkd3d installiert sind oder nicht, hat darauf keinen Effekt.
 

Ähnliche Themen

D
Antworten
8
Aufrufe
1.091
Dexter1997
D
Zurück
Oben