Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Wine wow64 or abi_x86_32?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gamers & Players
View previous topic :: View next topic  
Author Message
e8root
n00b
n00b


Joined: 09 Feb 2024
Posts: 71

PostPosted: Mon Mar 04, 2024 5:43 pm    Post subject: Wine wow64 or abi_x86_32? Reply with quote

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
View user's profile Send private message
Ionen
Developer
Developer


Joined: 06 Dec 2018
Posts: 2719

PostPosted: Mon Mar 04, 2024 6:20 pm    Post subject: Re: Wine wow64 or abi_x86_32? Reply with quote

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
View user's profile Send private message
Chiitoo
Administrator
Administrator


Joined: 28 Feb 2010
Posts: 2575
Location: Here and Away Again

PostPosted: Wed Mar 06, 2024 8:07 am    Post subject: Reply with quote

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
View user's profile Send private message
cameta
Veteran
Veteran


Joined: 04 Aug 2004
Posts: 1320

PostPosted: Thu Mar 07, 2024 1:23 am    Post subject: Reply with quote

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
View user's profile Send private message
e8root
n00b
n00b


Joined: 09 Feb 2024
Posts: 71

PostPosted: Mon Mar 11, 2024 4:06 pm    Post subject: Reply with quote

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
View user's profile Send private message
HealerLFG
n00b
n00b


Joined: 08 Feb 2022
Posts: 15

PostPosted: Thu Mar 21, 2024 12:24 pm    Post subject: Reply with quote

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
View user's profile Send private message
e8root
n00b
n00b


Joined: 09 Feb 2024
Posts: 71

PostPosted: Fri Mar 22, 2024 6:09 am    Post subject: Reply with quote

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
View user's profile Send private message
Ionen
Developer
Developer


Joined: 06 Dec 2018
Posts: 2719

PostPosted: Fri Mar 22, 2024 7:10 am    Post subject: Reply with quote

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
View user's profile Send private message
HealerLFG
n00b
n00b


Joined: 08 Feb 2022
Posts: 15

PostPosted: Tue Mar 26, 2024 1:26 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gamers & Players All times are GMT
Page 1 of 1

 
Jump to:  
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