13 ms·
Wine 8.0
- malkia 4y agoI've just started exploring Wine, trying to get Windows tools working on it, and finding (with wine-5 and wine-7) that there is some slowdown (~250ms), but can't narrow it down exactly to what causes it. It's similar times, whether it's WSL, or under crostini (chromebook), and unfortunately in both I either don't have full `perf` support, but do have `strace` working and it kind of shows that `user32` tries to load lots of fonts (but still hard to say for sure). Wonder if someone here would know and can pin-point me how to debug this easier?
- 29athrowaway 4y agoHave you tried looking at WINE_DEBUG output
- malkia 4y agoI did, especially around +listdll, and made me wonder whether going to native vs builtin would do any difference, I'm slowly getting more to know it, as in the past only used it to launch a game or obscure windows thing on Linux, but now I need to know more about it.
- ubercow13 4y agoYes I have found before that font loading can really slow down wine startup. I've made wine much faster to start before by deleting all references to system fonts in its registry and then hiding system fonts from it while launching it.
- malkia 4y agoThat's a nice lead! - I'll try looking into that more. If you have or remember some more details - please share! Thanks! (One of my use cases is https://github.com/mstorsjo/msvc-wine https://github.com/mstorsjo/msvc-wine - and invocation of `cl.exe` or `link.exe` taking 250ms at each is not going to be great (then again `cl.exe` can be made to input several .cpp/.c files, but it becomes more awkward to express that at the build level).
- ubercow13 4y agoI am looking at the script I used to run foobar2000 in wine, it basically overwrote fontconfig envvars like export FONTCONFIG_FILE="$HOME/wine-fontconfig/fonts.conf" export FONTCONFIG_PATH="$HOME/wine-fontconfig" where fonts.conf is something like <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0"> <its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/> </its:rules> <dir>~/wine-fontconfig/TTF</dir> <include ignore_missing="yes">~/wine-fontconfig/conf.d</include> <cachedir>~/wine-fontconfig/font-cache</cachedir> </fontconfig> and there's just one TTF font I want to use in the TTF folder. Then there are a bunch of references to systemwide fonts in the user.reg and system.reg registry files that I deleted manually, but I forget the exact keys - you can search for 'font' to find them. I also entered registry keys to redirect system fonts to the TTF I had provided, I think using [Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes] or maybe [1]. If you're running CLI tools this might not be needed. If you ever launch wine in that prefix without these environment variables, it will rescan the system fonts and populate the registry again and that seems to slow down future launches. Another thing that made a difference that I just remembered is opening winecfg 'Libraries' tab and adding an entry to set 'winemenubuilder.exe' and 'winebus.sys' to disabled. I am not sure what the consequences of the latter are but it didn't seem to break anything for my use case. There might be other inessential libraries you can disable here if they seem slow in WINE_DEBUG output, I also have winehid.sys disabled here but I can't remember if it made much difference. [1] https://wiki.winehq.org/Font_Replacements https://wiki.winehq.org/Font_Replacements
- malkia 4y agoThis is so awesome!!! Thank you!!!
- malkia 4y agoAnother lead was from godbolt's use of wine to run cl.exe (msvc) - https://github.com/compiler-explorer/compiler-explorer/blob/main/etc/firejail/wine.profile https://github.com/compiler-explorer/compiler-explorer/blob/... - I just learned about `firejail` so maybe interpreting this wrong - but it has this "private-etc passwd,fonts" which means these folders would be empty - according to this doc - https://man7.org/linux/man-pages/man1/firejail.1.html https://man7.org/linux/man-pages/man1/firejail.1.html - so possibly they had similar issues
- coldpie 4y ago> that there is some slowdown (~250ms) Do you mean it takes about 0.25s for the process you launched to start after you told Wine to run it? Every time you boot a Wine prefix, Wine has to "simulate" a Windows boot process (launch Explorer.exe and any other startup services, enumerate fonts and devices, read the registry from disk, etc). You can leave the prefix running in the background, which means it will start your process without having to do all the cold boot stuff. See the "-p" switch to wineserver.
- genpfault 4y ago> WoW64 thunks are implemented for essentially all Unix libraries, enabling a 32-bit PE module to call a 64-bit Unix library. Once the remaining direct PE/Unix calls have been removed, this will make it fully possible to run 32-bit Windows applications without any 32-bit Unix library. Woo! No more giant pile of i386 dependencies!
- Koshkin 4y agoI am probably misreading this, but: what is the use case in which a Windows program must call a Unix library?
- dark-star 4y agoEvery windows program has to (eventually) call a Linux library, since Wine emulates Windows on top of Linux. Take for example "decoding an MP3 frame". A 32bit program calls a Windows API to decode an MP3 frame, that gets intercepted by Wine and forwarded to libmpg123. Since it's a 32bit program, you need (or needed, until now) the 32bit mpg123 library to handle the request. So it's not a matter of a Windows program actually calling a Linux library, but rather Wine forwarding the function call Forwarding 32bit calls to 64bit functions sounds simple, but it is incredibly complex. It might be simple for a function that only takes an int as argument, but on Windows, functions often take pointers to Windows structures, and those structures are often different between 32 and 64 bit. You have to translate them on-the-fly....
- tarotuser 4y agoWine emulates Windows APIs. You would need something like qemu to do arm->x86-64 to do CPU emulation and then use WINE to run Windows programs on a Raspberry Pi.
- skrowl 4y agohttps://github.com/ptitSeb/box64 https://github.com/ptitSeb/box64 can do it a little lighter than a full qemu VM
- nightowl_games 4y ago[flagged]
- GaryPalmer 4y agoProbably portable executable. The file format .exe files.
- account42 4y agoProbably "portable executable" or "Probably portable" executable? ;-)
- captainkrtek 4y agoFrom previous release notes: “Most modules are built in PE format (Portable Executable, the Windows binary format) instead of ELF when the MinGW compiler is available.” https://www.winehq.org/announce/5.0 https://www.winehq.org/announce/5.0
- xiaq 4y agoThis is the release notes of a free software project. While it's fair to criticize that the release notes are hard to understand for end users, accusing the authors of "gatekeeping" makes no sense here.
- psychphysic 4y ago[flagged]
- Vt71fcAqt7 4y ago>gatekeeping >the activity of controlling, and usually limiting, general access to something. >the activity of trying to control who gets particular resources, power, or opportunities, and who does not: Who is trying to control anything? Wine developers have explained PE vs elf in the past (I think even in some past release notes). This is like trying to accuse a math paper of gatekeeping because it uses notation you don't understand. Jargon is a thing.
- shmerl 4y agoCongrats! Playing Cyberpunk 2077 on Linux using Wine + vkd3d-proton is almost magic. Also good to see Wine-Wayland getting closer to being merged.
- dlivingston 4y agoVery excited to have the same experience on Mac once MoltenVK's DirectX 12 layer is complete.
- shmerl 4y agoI don't know how performance will fare in vkd3d-proton going through two layers of translation. Apple still refuses to provide native Vulkan support, so there isn't much that can be done about it. Even on Linux there is some performance overhead comparatively to Windows, but at least it's acceptable.
- spurgu 4y agoThis might be more appropriate as an AskHN but: What do you all use Wine for (and on which OS)? I used to keep trying it for running various poker clients on Linux but none ever really worked properly. I also tried DelftShip (hull designer) on MacOS but couldn't get it to work properly, while an old version of FreeShip (from which DelftShip was forked) did however work IIRC. In short I've tried various apps throughout the years but have found nothing that's actually worked well enough to keep it running to this day. Last time I tried Wine must've been around version 5 though, maybe things have improved since?
- The_SamminAter 4y agoMainly to run stuff like Photoshop, ResourceHacker, IDA, and other Windows-only utilities/programs. For gaming, I almost exclusively use Proton-GE (through the Steam client admittedly). For years on macOS, I used (try) to run stuff on Wine 2.7, with not terrible success. Since then, Wine has progressed leaps and bounds, although I haven’t actively paid attention to most of its changes.
- calvinmorrison 4y agoMostly games. SimCity3000 runs well, as does Age of Empires and Age of Mythology
- rwmj 4y agoWe use mingw to cross-compile binaries for Windows, and wine to run the CI tests. It's quite nice to deliver Windows binaries and never need to touch Windows.
- dosshell 4y agoHow reliable is it? Have you encountered any tests that did not have the same result as on real Windows?
- Salgat 4y agoYeah that makes me nervous. At the very least just use a VM to test your production artifacts before deployment. Must not be a very important product they're releasing.
- amelius 4y agoAnyone working on a MacOS or iOS emulator that runs on Linux?
- monocasa 4y agohttps://www.darlinghq.org/ https://www.darlinghq.org/
- Topgamer7 4y agoI fear that darling has a harder effort in order to run gui apps. Apple is less afraid of changing and breaking their API's. Which makes maintaining an interop layer all the more challenging. I would love for darling to regularly update their site or blog instead of occasionally peaking in their discord for progress.
- dark-star 4y agoWine works outstandingly well on every laptop where I tried it, even with dual graphics cards (Intel+AMD with the DRI_PRIME switch) etc. However, on my main desktop with an nVidia GPU and the proprietary driver, most games show no graphics output at all. Sometimes the game windows flicker into view for a split second, so I know it loads them, but somehow the DirectX-to-Vulkan translation is not working correctly with the nv GPU driver. Even the "vkcube" demo shows the spinning cube in a window without decorations that I cannot grab/move/resize, so I guess it's an issue with the nv driver but I don't really want to switch to nouveau... Might have to do with multiple monitors (one of which is connected to the onboard graphics), I got tired of trying to troubleshoot it after a fruitless 2 hour debugging session...
- jeroenhd 4y agoInteresting, I've never run into Wine-specific problems on my 1080 as far as I can remember (proprietary drivers). Plenty of other typical Nvidia crap, but nothing Wine. Multiple monitors and everything. Tested on Manjaro and Ubuntu 20. One thing I remember having issues with at some point is not rebooting after a graphics driver update, causing the running programs that tried to use hardware acceleration to fail to communicate with the GPU. This was especially a problem with the 32 bit version of the driver and programs that I needed to install to get Wine installed (unless I only wanted to run 64 bit executables). Another issue I've had with Nvidia drivers is that their Wayland support isn't as great as advertised, even with the new drivers. I can't plug in an external screen under Wayland on my laptop, for example, and with just one screen the Wayland compositor messes up the graphics state after a while. Perhaps you're (unknowingly) running Wayland and the compatibility problems come from there? Either way, I hope you figure it out, seeing games and programs just work on Linux is kind of magical.
- dark-star 4y agoHi, thanks for responding. I'm also running Manjaro (same as on my 2 laptops where everything Just Works(TM)...) I'm running Xorg though, no Wayland, so that's definitely not it. I'll keep trying every now and then, of course, but I guess unless vkcube runs properly (like on my laptops...) things won't change
- Koshkin 4y agoI think Wine on Linux has beat OS/2 as a better Windows than Windows.
- jcadam 4y agoI actually haven't used WINE in years - I pretty much only do dev stuff on my Linux boxen now, and there are generally *nix equivalents for most any utility app you need nowadays. Classic Windows gaming I assume is the main use case now?
- donatj 4y agoI've got a handful of small utilities I use that aren't worth firing up a full VM over. RegexBuddy being the main one.
- squarefoot 4y agoApologies for hijacking the thread, although other WINE users may have encountered the same problem: ancient software refusing to install due to wrong free space variable size. Some very very old installers (don't ask :^) from the early 2k if not late 90s report negative free disk space before failing, very likely because they expect a shorter variable as disk free size, probably wrongly defined in the code as signed variable, and are served a longer value they can't use, so the number wraps to negative values. I tried to mount very small partitions but that didn't work, presumably because the variable is still being overwritten by another wrong size one, so it would need a WINE patch, which is beyond my skills. Given however that WINE is being also used to run historical software that Windows refused to run ages ago, I wonder if that feature is already present and I just missed it.
- chungy 4y agoWine will report the same free value that df(1) does, and yes this can break old applications' expectation of sizes when it overflows in 32-bit integers. Since I use ZFS and run ~/.wine on its own dataset, I set the quota to 2t and I'm golden with regards to any app I've seen. Could probably afford way smaller too, but this works for me.
- rOOb85 4y agoIt's been years since I used wine but I do recall you can specify which windows version you mimick. Perhaps if you mimick an old ass version of windows wine will behave properly? A quick Google turns up: https://superuser.com/questions/398178/can-wine-emulate-windows-95#864922 https://superuser.com/questions/398178/can-wine-emulate-wind...
- tastysandwich 4y agoI first used Wine about 15 years ago. Fast forward to today and I'm astonished at how well some things run. I'm not a power-user - not even close. I just want things to "work" without any fiddling. Well luckily, most things seem to work flawlessly (for me). Rocksmith, a video game for playing guitar, worked straight away, even interacting with my USB guitar interface. It even seems to run better than Windows. It also runs the software for updating my multi-effects pedal & loading effects onto it (Zoom G1 Four). Pretty impressed as these are the sort of things that force you onto Windows (at least once-in-a-while).
- the_third_wave 4y agoWine plus a bit of script has kept me using Sketchup 2016 since, well, 2016 (more or less). Once it tell me I need to get a licence - which is no longer available - a simple call to 'sketchup -r' (for 'reinstall') recreates the $WINE_PREFIX with a fresh install, ready for another 30 days. Since I only use it for personal projects like building a 23x11 meter barn, an extension to my house, a quick mockup to test whether I can transport 16 bales of insulation in a horse trailer or the server_cabinet_annex_produce_dryer I'm fine with using an "outdated" version which doesn't even know what a "cloud" is other than a fluffy thing in the sky.
- lorenzofalco 4y agoI like the format of the Wine Announcement