View previous topic :: View next topic |
Author |
Message |
e8root Tux's lil' helper
Joined: 09 Feb 2024 Posts: 94
|
Posted: Mon Mar 04, 2024 5:43 pm Post subject: Wine wow64 or abi_x86_32? |
|
|
Like in the topic name: which solution it the best today?
In theory abi_x86_32 way should be more compatible, performant and stable but will spam system with dozen of abi_x86_32 dependencies. I thought it will be just few packages that Wine really needs but in practice even trying to minimize number of abi_x86_32 packages at some point their number quickly got out of hand and installing completely unrelated to wine packages I got messages during emerge I need to add abi_x86_32 USE flags to bunch of packages. Portage is designed in such a way that that to guarantee everything works exactly as configured and in that it can be quite irritating and forcing me to emerge 32-bit binaries for things Wine will most probably never need just because dependent packages for dependent packages have abi_x86_32 flag. Not only this uses disk space but most importantly causes emerge world take much longer.
Personally after reading about improvements in wow64 in wine 9 I quickly emerged newest wine-stating without abi_x86_32 with wow64 flag and I ran 3dmark2001se and got roughly similar score. Immediately after I got to purge system from abi_x86_32 packages. It required much more manual effort than it in theory should need. Probably I didn't do it correctly and I ended up backing up world file and then removing most of my system (eg. I even dropped Xorg) as I figured it might be quickest way. Not sure if it was but after I made system abi_x86_32 free I emerged everything right back up from world file and it works fine.
The only abi_x86_32 packages I have currently are app-emulation/wine-gecko and dev-util/mingw64-toolchain installed by wine and dev-libs/boehm-gc, dev-libs/libatomic_ops and sys-apps/sandbox which use flags are probably part of profile because I cannot make them emerge without abi_x86_32.
So far the only difference I noticed is no support for 16-bit applications and because some older programs used 16-bit installers they are more problematic to install. Otherwise I didn't see any issues running old 32-bit Windows applications. The only issue is that since I purged abi_x86_32 packages I had no easy way to test if something doesn't work if its due to using wow64. For that I installed Gentoo in a folder, configured system to be able to run X11 applications and then installed wine-staging with abi_x86_32 in there with the same portage config I normally use and interestingly enough it even works and even 3d acceleration runs just fine. Very old 16-bit applications work in Wine using this method. It also feels like good way to have spare system to test bunch of unstable versions of packages reducing risk of breaking my main system.
Anwys, Gentoo wiki for Wine doesn't really mention wow64 as an alternative for emerging bunch of 32-bit versions of packages but seeing how there is no "stable" Wine 9.x and there are supposedly great improvements in this function specifically in Wine 9 it makes some sense. It feels that as soon as we have stable Wine 9 it might might be a good idea to update Wiki to mention wow64. If 16-bit support is all we loose we are all used to not being able to run those on 64-bit versions of Windows and it isn't such a big deal. Personally I found all this abi_x86_32 both confusing at first and very irritating... not only at first but each time I had to add bunch of packages to portage configuration. It is also apparently the only solution to run old Windows games for systems without multilib which is overtime becoming more common configuration.
Anyways, what are the opinions on Wine with wow64? _________________ Unix Wars - Episode V: AT&T Strikes Back |
|
Back to top |
|
|
Ionen Developer
Joined: 06 Dec 2018 Posts: 2858
|
Posted: Mon Mar 04, 2024 6:20 pm Post subject: Re: Wine wow64 or abi_x86_32? |
|
|
e8root wrote: | Personally after reading about improvements in wow64 in wine 9 I quickly emerged newest wine-stating without abi_x86_32 with wow64 flag and I ran 3dmark2001se and got roughly similar score. | Afaik the performance impact that Wine devs mentioned in the NEWS is mostly noticeable when a game is cpu-bound (i.e. these games rendering on one or two cpu thread stuck at 100% cpu). There will be cpu overhead to translate and ultimately use the 64bit ELF libraries.
Not that it's something I tested myself nor looked too deep into.
Quote: | The only abi_x86_32 packages I have currently are app-emulation/wine-gecko and dev-util/mingw64-toolchain installed by wine | Might be interesting to note that these packages are treated specially and you can enable USE=abi_x86_32 even on a /no-multilib/ profile. Even briefly tested wow64 on a llvm-musl no-multilib profile and could run 32bit windows applications fine.
Albeit I wouldn't jump on no-multilib given switching back away from it if need it for something (e.g. steam) can be tedious without toolchain support.
Quote: | So far the only difference I noticed is no support for 16-bit applications and because some older programs used 16-bit installers they are more problematic to install. | Had forgotten about that bit, might consider noting it in the USE description later so users that happen to need it don't switch too eagerly.
Quote: | Gentoo wiki for Wine doesn't really mention wow64 as an alternative for emerging bunch of 32-bit versions of packages but seeing how there is no "stable" Wine 9.x and there are supposedly great improvements in this function specifically in Wine 9 it makes some sense. | Wine 9.0 was stabled a few days ago already (9.1+ won't given that's a new dev cycle, but there will be a 9.0.1 stable eventually). Wiki is just that nobody has worked on it yet, anyone can (personally never even read the page so I'll abstain )
While I have added USE=wow64 myself to wine ebuilds, I have hardly used/tested it so I don't have much to comment on. Stll sticking abi_x86_32 for now myself, will likely switch later when it matured. Not in a hurry given I need to keep abi_x86_32 libs around for testing wine anyway (given I maintain the packages atm). Eventually will consider switching Gentoo's default as well so that users can just "emerge wine-vanilla" and have it be emerged without having to set anything -- but not rushing anything. It will be disruptive if not asked for and likely require a news item -- Edit: it is already default on /no-multilib/ tho
Recently added USE=wow64 to wine-proton-9.0.9999 too (live ebuild) and seems to work last I tried (that is not proton, works like normal wine but is valve's fork of it for proton with various game compatibility patches), still a bit to go before proton-9.0 releases though. |
|
Back to top |
|
|
Chiitoo Administrator
Joined: 28 Feb 2010 Posts: 2730 Location: Here and Away Again
|
Posted: Wed Mar 06, 2024 8:07 am Post subject: |
|
|
I am a bit surprised that at least 3dmark2001se indeed seems to run okay from a quick test (didn't do any comparison or anything).
I've been mainly testing with something else from around 2001 (originally), that runs at less than 1 FPS in the new wow64 mode, and just now gave an Alien VS Predator D3D11 benchmark a test that I had laying around, and that one isn't happy about it either, so it's definitely still an "expect problems" kind of a deal.
Additionally, at least some people working on Wine refer to it with "crippled 3D support" [1] still (and there are indeed other issues too), which doesn't seem too great either. :]
So I would definitely not recommend it for any general use yet, but could recommend trying it out, if one is keen to test it, and if it works for their application(s)... that's great!
As for our wiki article, yeah, been meaning to give it some time and update it... but it just has not happened... in a while. Maybe soon!?
1. https://www.winehq.org/mailman3/hyperkitty/list/wine-devel@winehq.org/message/K4AKMFXJ27KHE6LMVLWXV5QU5UBXDENV/ _________________ Kindest of regardses. |
|
Back to top |
|
|
cameta Veteran
Joined: 04 Aug 2004 Posts: 1351
|
Posted: Thu Mar 07, 2024 1:23 am Post subject: |
|
|
The pharaoh game doesn't work with wine-vanilla-9.0. Once the presentation has been run, the screen remains black except for the mouse and only the sound is heard. With wine-vanilla-8.0.2 it works perfectly.
Could the problem be related to this USE?
+ + wayland : Enable dev-libs/wayland backend _________________ Si algo falla LEE el jodido manual, Si sigue fallando LEE BIEN el jodido manual. |
|
Back to top |
|
|
e8root Tux's lil' helper
Joined: 09 Feb 2024 Posts: 94
|
Posted: Mon Mar 11, 2024 4:06 pm Post subject: |
|
|
I figured to move to "stable" wine package since I can use chrooted environment and so I installed wine-vanilla 9.0 in my main system and it seemed to work fine but during tests in hacky Wayfire-9999 build with adaptive sync (VRR) (note: wayfire-9999 doesn't build at the moment) it worked fine until I alt-tabbed out of the game Prodeus after which when I tried to switch back to it it didn't grab my keyboard/mouse in effect making it impossible to continue.
I guess the definition of 'stable' depends on various things and when living on wayland bleeding edge it is best to just grab newest versions. I general if its just to play games its probably best to grab latest ~amd64 version of staging and/or proton. 9999 stuff seems to just be upstream and it isn't always guaranteed to build let alone work depending on what pull requests were just merged
Anyways, regarding abi_x86_32 I think the only source of overhead can be calls between Windows domain and Linux so things like OpenGL calls mentioned by wine devs. Also other types of system calls including Vulkan used by wrappers. Still when I did tests with 3dmark2001se it didn't result in significant score reduction or really any. It is hard to say because score fluctuates between the runs and on abi_x86_32 the highest score I saw was ~250K and on wow64 ~248. To be honest I ran tests only few times. In either case unless 16-bit support is needed I think wow64 is good to go in wine 9.x. _________________ Unix Wars - Episode V: AT&T Strikes Back |
|
Back to top |
|
|
HealerLFG n00b
Joined: 08 Feb 2022 Posts: 15
|
Posted: Thu Mar 21, 2024 12:24 pm Post subject: |
|
|
I am interested in WoW64 for the purpose of dumping 32-bit dependencies as well. The biggest hurdle for me is the steam client itself... The steam client makes wine prefixes specific to each game, with per-game fixes within the prefix, and it also specifies the version of Proton needed on a per-game basis.
The steam client *itself* is 32-bit, so if we were to try and run the windows steam client under WoW64, we would lose the tight coupling of how the linux steam client handles proton prefixes per-game. If valve were to just release a 64-bit client, it wouldn't be so terrible, we would be able to run the (hypothetical) 64-bit linux steam client, and just use an up-and-coming version of proton with WoW64 support for the games that require 32 bit libraries and binaries... |
|
Back to top |
|
|
e8root Tux's lil' helper
Joined: 09 Feb 2024 Posts: 94
|
Posted: Fri Mar 22, 2024 6:09 am Post subject: |
|
|
I didn't install Steam yet but now I see you are right - Steam requires bunch of abi_x86_32 dependencies in which case one might as well continue to use wine with 32-bit packages it rather than trying wow64. Alternatively gentoo wiki mentions Flatpak as possible Steam 32-bit dependency hell solution...
Personally I will attempt to configure Steam on separate chrooted gentoo install where abi_x86_32 is configured. I already tested such solution working for wine-staging on Xorg but I have yet to try using gui-wm/gamescope and Steam. If that works then I will go with that approach for now. Even if it ultimately wont save build time now having to update two gentoo systems I will definitely not want to install any 32-bit packages on my main system.
BTW. I tested latest stable wine-proton 8.0.5c and wow64 works on it just fine. Apparently Wine 9.x only improves wow64 support. _________________ Unix Wars - Episode V: AT&T Strikes Back |
|
Back to top |
|
|
Ionen Developer
Joined: 06 Dec 2018 Posts: 2858
|
Posted: Fri Mar 22, 2024 7:10 am Post subject: |
|
|
e8root wrote: | BTW. I tested latest stable wine-proton 8.0.5c and wow64 works on it just fine. Apparently Wine 9.x only improves wow64 support. | It was pretty work-in-progress back on wine-8, I don't think 32bit opengl will even work with it when 32bit ELF libraries are missing. Wine only officially announced this as mostly usable in the news for wine-9, while 8 only said that there was some progress toward it.
Edit: also in case anyone is confused, USE=wow64 is for the "new style" support without multilib, USE="abi_x86_64 abi_x86_32" is wow64 too and that's been around since forever
The ebuild also does not support it unless you modified things, the wine-proton-9.0.9999 ebuild does though (that's based on experimental_9.0 branch). I doubt Valve tests with that configuration at all though, so it could have unexpected issues with their patchsets. Valve has little motivation as long as their own client still needs 32bit libs and they ship "most" libraries they need for proton either way (which ends up needing less than when building wine yourself, but well).
Last edited by Ionen on Tue Mar 26, 2024 1:58 pm; edited 1 time in total |
|
Back to top |
|
|
HealerLFG n00b
Joined: 08 Feb 2022 Posts: 15
|
Posted: Tue Mar 26, 2024 1:26 pm Post subject: |
|
|
e8root wrote: | Alternatively gentoo wiki mentions Flatpak as possible Steam 32-bit dependency hell solution...
|
Someone with more knowledge than me can clarify, but I do believe the flatpak only gets around compiling the 32-bit *dependencies*. I think you still need abi_x86_32 support in-kernel and multilib profile to support it, but I could be wrong. |
|
Back to top |
|
|
e8root Tux's lil' helper
Joined: 09 Feb 2024 Posts: 94
|
Posted: Mon Apr 29, 2024 12:47 pm Post subject: |
|
|
You need 32-bit support in enabled kernel to run Win32 application via either abi_x86_32 or wow64 USE flags.
Multilib not sure. I still need multi-lib for printer drivers which despite being for amd64 are actually just the same 32-bit drivers as ones for i386. Here I would also need few CUPS abi_x86_32 dependencies but I used workaround and just copied SO files from chrooted Gentoo install where I have abi_x86_32 USE flag set in make.conf and made a script to update these SO's and it works.
Where it comes to Steam I installed Steam via flatpak and it runs in Gamescope beautifully. Starts full screen and launches games no issues... after using
Code: | dbus-run-session flatpak run com.valvesoftware.Steam |
and running it as normal user.
Imho still flatpak solution beats infecting system with dozen dependencies in 32-bit. And Steam requires some ridiculous amount of packages. Last time I tested (in that chrooted Gentoo install) it required even more dependencies than Gentoo's Steam wiki lists. It doesn't make any sense when Steam itself is just something nice to have and Flatpak solution just works.
@Ionen
Yeah, I botched that test.
Wine 8.x didn't have wow64 use flag. I thought back then I have right version of wine selected but didn't verify it and/or didn't use launcher script with exact version. _________________ Unix Wars - Episode V: AT&T Strikes Back |
|
Back to top |
|
|
jhon987 Guru
Joined: 18 Nov 2013 Posts: 302
|
Posted: Fri May 10, 2024 9:03 am Post subject: |
|
|
I want to add to this thread, as someone who used a no-multilib until a few days ago - the reason i switched to multilib was WINE. And also, if i'm wrong, please feel free to correct me.
So, i had CONFIG_IA32_EMULATION enabled in the kernel, i don't quite remember well but i think i also had:
CONFIG_X86_X32_ABI
CONFIG_COMPAT_32
CONFIG_COMPAT
CONFIG_COMPAT_FOR_U64_ALIGNMENT
all enabled in the kernel, and yet when i tried installing Fallout game (which has a 32bit installer) i kept getting segmentation fault upon trying to run the installer, although WOW64 was enabled.
I also tried using flatpak for that purpose, but that failed too.
Notepad, which came bundled with WINE - did run (accorindg to file tool, it seems it is a 32bit program).
Obviously, being able to run notepad was not the reason i installed WINE in the first place. And so, i embarked at the tedious task of switching to multilib profile and reinstalling packages with ABI_32 and all of a sudden everything worked in WINE, including the Fallout installer.
So, yes, i'm saying that multilib is compulsory, according to my experience.
I'd love to be proven wrong (maybe outdated) on that one, so i could rid of the ABI_32 stuff |
|
Back to top |
|
|
e8root Tux's lil' helper
Joined: 09 Feb 2024 Posts: 94
|
Posted: Fri May 10, 2024 5:13 pm Post subject: |
|
|
Ok but does Fallout installer work with the same version of Wine with multilib with wow64 instead of abi_x86_32?
You can test this only reemerging wine itself with wow64 instead abi_x86_32.
Also which version of wine? _________________ Unix Wars - Episode V: AT&T Strikes Back |
|
Back to top |
|
|
Genas n00b
Joined: 29 May 2024 Posts: 2
|
Posted: Wed May 29, 2024 4:51 pm Post subject: Re: Wine wow64 or abi_x86_32? |
|
|
e8root wrote: | Like in the topic name: which solution it the best today?
In theory abi_x86_32 way should be more compatible, performant and stable but will spam system with dozen of abi_x86_32 dependencies. I thought it will be just few packages that Wine really needs but in practice even trying to minimize number of abi_x86_32 packages at some point their number quickly got out of hand and installing completely unrelated to wine packages I got messages during emerge I need to add abi_x86_32 USE flags to bunch of packages. Portage is designed in such a way that that to guarantee everything works exactly as configured and in that it can be quite irritating and forcing me to emerge 32-bit binaries for things Wine will most probably never need just because dependent packages for dependent packages have abi_x86_32 flag. Not only this uses disk space but most importantly causes emerge world take much longer.
Personally after reading about improvements in wow64 in wine 9 I quickly emerged newest wine-stating without abi_x86_32 with wow64 flag and I ran 3dmark2001se and got roughly similar score. Immediately after I got to purge system from abi_x86_32 packages. It required much more manual effort than it in theory should need. Probably I didn't do it correctly and I ended up backing up world file and then removing most of my system (eg. I even dropped Xorg) as I figured it might be quickest way. Not sure if it was but after I made system abi_x86_32 free I emerged everything right back up from world file and it works fine.
The only abi_x86_32 packages I have currently are app-emulation/wine-gecko and dev-util/mingw64-toolchain installed by wine and dev-libs/boehm-gc, dev-libs/libatomic_ops and sys-apps/sandbox which use flags are probably part of profile because I cannot make them emerge without abi_x86_32.
So far the only difference I noticed is no support for 16-bit applications and because some older programs used 16-bit installers they are more problematic to install. Otherwise I didn't see any issues running old 32-bit Windows applications. The only issue is that since I purged abi_x86_32 packages I had no easy way to test if something doesn't work if its due to using wow64. For that I installed Gentoo in a folder, configured system to be able to run X11 applications and then installed wine-staging with abi_x86_32 in there with the same portage config I normally use and interestingly enough it even works and even 3d acceleration runs just fine. Very old 16-bit applications work in Wine using this method. It also feels like good way to have spare system to test bunch of unstable versions of packages reducing risk of breaking my main system.
Anwys, Gentoo wiki for Wine doesn't really mention wow64 as an alternative for emerging bunch of 32-bit versions of packages but seeing how there is no "stable" Wine 9.x and there are supposedly great improvements in this function specifically in Wine 9 it makes some sense. It feels that as soon as we have stable Wine 9 it might might be a good idea to update Wiki to mention wow64. If 16-bit support is all we loose we are all used to not being able to run those on 64-bit versions of Windows and it isn't such a big deal. Personally I found all this abi_x86_32 both confusing at first and very irritating... not only at first but each time I had to add bunch of packages to portage configuration. It is also apparently the only solution to run old Windows games for systems without multilib which is overtime becoming more common configuration.
Anyways, what are the opinions on Wine with wow64? |
Using Wine with the `wow64` flag on Gentoo seems to be a viable alternative to the `abi_x86_32` method, especially with the improvements in Wine 9.x. While `wow64` may lack 16-bit application support, it significantly reduces the clutter and dependencies associated with `abi_x86_32` packages, streamlining the system and improving emerge performance. Given your positive experience and the ability to run most 32-bit applications without issues, it seems practical to recommend this method, particularly for those who don't need 16-bit support. Updating the Gentoo Wiki to include `wow64` as an alternative once Wine 9.x is stable would indeed be beneficial for the community. |
|
Back to top |
|
|
Chiitoo Administrator
Joined: 28 Feb 2010 Posts: 2730 Location: Here and Away Again
|
Posted: Wed May 29, 2024 5:17 pm Post subject: Re: Wine wow64 or abi_x86_32? |
|
|
Genas wrote: | Using Wine with the `wow64` flag on Gentoo seems to be a viable alternative to the `abi_x86_32` method, especially with the improvements in Wine 9.x. While `wow64` may lack 16-bit application support, it significantly reduces the clutter and dependencies associated with `abi_x86_32` packages, streamlining the system and improving emerge performance. Given your positive experience and the ability to run most 32-bit applications without issues, it seems practical to recommend this method, particularly for those who don't need 16-bit support. Updating the Gentoo Wiki to include `wow64` as an alternative once Wine 9.x is stable would indeed be beneficial for the community. |
The Wiki article already mentions it since a couple of months ago.
I will repeat myself a little here, but, yes, it will work for some use-cases, but for others it is more or less completely broken.
So, one needs to try it out and see if it works for their use-case, but one should not be surprised if it is unusable still. _________________ Kindest of regardses. |
|
Back to top |
|
|
xgivolari Tux's lil' helper
Joined: 26 Jul 2021 Posts: 102
|
Posted: Thu May 30, 2024 12:11 pm Post subject: |
|
|
HealerLFG wrote: | e8root wrote: | Alternatively gentoo wiki mentions Flatpak as possible Steam 32-bit dependency hell solution...
|
Someone with more knowledge than me can clarify, but I do believe the flatpak only gets around compiling the 32-bit *dependencies*. I think you still need abi_x86_32 support in-kernel and multilib profile to support it, but I could be wrong. |
No-multilib steam flatpak user here. Only kernel support for 32bit is required on the host, a multilib profile is not necessary. Everything else is provided by the flatpak runtime. |
|
Back to top |
|
|
Genas n00b
Joined: 29 May 2024 Posts: 2
|
Posted: Thu May 30, 2024 4:54 pm Post subject: Re: Wine wow64 or abi_x86_32? |
|
|
Chiitoo wrote: | Genas wrote: | Using Wine with the `wow64` flag on Gentoo seems to be a viable alternative to the `abi_x86_32` method, especially with the improvements in Wine 9.x. While `wow64` may lack 16-bit application support, it significantly reduces the clutter and dependencies associated with `abi_x86_32` packages, streamlining the system and improving emerge performance. Given your positive experience and the ability to run most 32-bit applications without issues, it seems practical to recommend this method, particularly for those who don't need 16-bit support. Updating the Gentoo Wiki to include `wow64` as an alternative once Wine 9.x is stable would indeed be beneficial for the community. |
The Wiki article already mentions it since a couple of months ago.
I will repeat myself a little here, but, yes, it will work for some use-cases, but for others it is more or less completely broken.
So, one needs to try it out and see if it works for their use-case, but one should not be surprised if it is unusable still. |
While the Gentoo Wiki already mentions the `wow64` method, it's important to note that its effectiveness can vary by use-case, so users should test it and not be surprised if it proves unusable for their specific needs. |
|
Back to top |
|
|
Chiitoo Administrator
Joined: 28 Feb 2010 Posts: 2730 Location: Here and Away Again
|
Posted: Thu May 30, 2024 5:02 pm Post subject: Re: Wine wow64 or abi_x86_32? |
|
|
Genas wrote: | Chiitoo wrote: | Genas wrote: | Using Wine with the `wow64` flag on Gentoo seems to be a viable alternative to the `abi_x86_32` method, especially with the improvements in Wine 9.x. While `wow64` may lack 16-bit application support, it significantly reduces the clutter and dependencies associated with `abi_x86_32` packages, streamlining the system and improving emerge performance. Given your positive experience and the ability to run most 32-bit applications without issues, it seems practical to recommend this method, particularly for those who don't need 16-bit support. Updating the Gentoo Wiki to include `wow64` as an alternative once Wine 9.x is stable would indeed be beneficial for the community. |
The Wiki article already mentions it since a couple of months ago.
I will repeat myself a little here, but, yes, it will work for some use-cases, but for others it is more or less completely broken.
So, one needs to try it out and see if it works for their use-case, but one should not be surprised if it is unusable still. |
While the Gentoo Wiki already mentions the `wow64` method, it's important to note that its effectiveness can vary by use-case, so users should test it and not be surprised if it proves unusable for their specific needs. |
Indeed, and that was also done.
Let me know, though, if you feel it's lacking still! _________________ Kindest of regardses. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|