Another biweekly release of the compatibility layer Wine is out now! As the developers continue the progress towards getting Wine working fully with Wayland in version 8.12. Reminder: once a year a new stable release is made with the next being Wine 9.0, and Wine is just one part of what allows Steam Play Proton to play some of the biggest games around on Linux desktop and Steam Deck.
The main highlights of this release:
- Initial support for painting windows in the Wayland driver.
- Command stream performance improvements in WineD3D.
- Various bug fixes.
31 bugs were noted as solved with this release including fixes for: Combat Mission Shock Force (a bug from 2007!), Starcraft II, Flutter SDK, Excel 2016, Harry Potter Magic Awakened and plenty more miscellaneous fixes for expected behaviour of Windows apps.
Want help managing Wine on Linux? You can try Bottles, Lutris and the Heroic Launcher.
When Wine 8.10 couldn't even run "wine notepad.exe" (not even winecfg would run to get that off the ground) with a bunch of dll errors an being unable to start the explorer shell, I tried a plain build of 8.10 and it was still broken.
I saw mrdeathjr post a similar error for Wine 8.10 and that's when I knew for sure it wasn't just me and my toolchains etc.
But now everything I have in Lutris works perfectly with Wine 8.11 (TKG with Esync, Fsync) as my system wine including, most importantly, the EA app. Hopefully 8.12 will be equally fine.
P.S. For continuity, yes, Wine 8.12 TKG is good for me, same as 8.11. I've been using it for my system wine for a few days now and all my stuff in Lutris works the same.
Last edited by Grogan on 12 Jul 2023 at 12:37 am UTC
But now everything I have in Lutris works perfectly with Wine 8.11 (TKG with Esync, Fsync) as my system wine including, most importantly, the EA app. Hopefully 8.12 will be equally fine.
Never tried using fsync since I didn't figure out a clean way to apply those patches to upstream Wine.
But I build Wine + esync (from staging patchset). It works well so far.
Never tried using fsync since I didn't figure out a clean way to apply those patches to upstream Wine.
But I build Wine + esync (from staging patchset). It works well so far.
Unless it's just been rebased, I don't think it ever would. There's a lot of MacGyvering that goes on with TKG, like reverts so the patches will apply, for example.
I use the "frogging family" build system, especially for my Proton builds. I like it because it's native builds with my toolchains, not containerized tomfoolery with valve's environment.
https://github.com/Frogging-Family/wine-tkg-git
Kron4ek usually has a current wine staging already done up, ready to build (using that same build generator). Well, in a day or so it will be 8.12 probably.
https://github.com/Kron4ek/wine-tkg
Last edited by Grogan on 9 Jul 2023 at 6:30 am UTC
https://github.com/Frogging-Family/wine-tkg-git
I think I looked at that and its configuration files. But it looks convoluted and overcomplicated when I'm trying to simply get upstream Wine + fsync. I got close but not quite to just getting only fsync in addition, so I gave up on that.
In contrast, Wine staging patches are maintained as very straightforward patches over upstream Wine, so I'm using esync patchset from there.
Last edited by Shmerl on 9 Jul 2023 at 6:40 am UTC
Last edited by Shmerl on 9 Jul 2023 at 6:42 am UTC
The TKG patches are very complicated, and I get in over my head when things are broken.
I've not heard anything more about that... just like you don't hear too much about them superseding dxvk anymore (and their vkd3d doesn't cut the mustard for DX12 gaming)
From what I've heard, their official vkd3d isn't meant as a replacement for vkd3d-proton, because they intend it to be usable on macOS over MoltenVK, so they are avoiding more advanced and recent Vulkan features that won't work there. In contrast vkd3d-proton is using whatever is available in Vulkan for best performance so I expect it to be always better (on Linux). Same goes for dxvk I assume.
winesync on the other hand was intended as a real successor to esync / fsync on Linux, but it seems to be stuck in some limbo.
Last edited by Shmerl on 9 Jul 2023 at 7:21 am UTC
Do you know if there is a way to use VKD3D-Proton for non-Steam games? I very much doubt I'll have need of more advanced D3D12 features, but it would be good to know.I've not heard anything more about that... just like you don't hear too much about them superseding dxvk anymore (and their vkd3d doesn't cut the mustard for DX12 gaming)From what I've heard, their official vkd3d isn't meant as a replacement for vkd3d-proton, because they intend it to be usable on macOS over MoltenVK, so they are avoiding more advanced and recent Vulkan features that won't work there. In contrast vkd3d-proton is using whatever is available in Vulkan for best performance so I expect it to be always better (on Linux). Same goes for dxvk I assume.
On the other hand, I've never understood what the point of disabling VKD3D in Lutris's options is...it ships with WINE, and it's the only compatibility layer WINE has for D3D12. I guess it might make more sense with their own runtime?
Do you know if there is a way to use VKD3D-Proton for non-Steam games? I very much doubt I'll have need of more advanced D3D12 features, but it would be good to know.
I simply build dxvk and vkd3d-proton periodically and have them enabled in the prefix (as symlinks). So once that is set, you don't need to update the prefix, just update the built dlls in whatever location you store them which will update them for all prefixes that linked them.
For building, I made this script:
https://gist.github.com/shmerl/3d49bee2ca04c1016f72366dca9438ce
But I think both dxvk and vkd3d proton provide periodic releases where you can get their DLLs if you don't want to build them yourself.
The issue with stock vkd3d is not simply lack of features - it's going to perform worse because it's not using all available Vulkan options.
Last edited by Shmerl on 9 Jul 2023 at 8:21 am UTC
For DXVK, I just use the winetricks verb and that has worked fine, but Winetricks doesn't provide a way keep verbs like dxvk up-to-date, unfortunately. Thanks for that script—that might become my preferred way of installing/updating dxvk outside of Lutris!Do you know if there is a way to use VKD3D-Proton for non-Steam games? I very much doubt I'll have need of more advanced D3D12 features, but it would be good to know.
I simply build dxvk and vkd3d-proton periodically and have them enabled in the prefix (as symlinks). So once that is set, you don't need to update the prefix, just update the built dlls in whatever location you store them.
For building, I made this script:
https://gist.github.com/shmerl/3d49bee2ca04c1016f72366dca9438ce
But I think both dxvk and vkd3d proton provide periodic releases where you can get their DLLs if you don't want to build them yourself.
I was under the impression that VKD3D-Proton had some fixes/features that were specific to the Steam runtime. But if it's for general use, that's great.
The issue with stock vkd3d is not simply lack of features - it's going to perform worse because it's not using all available Vulkan options.Worse performance is not much of an issue with visual novels because so little is going on most of the time, but it would be great to have better performance, of course.
Thanks for that script—that might become my preferred way of installing/updating dxvk outside of Lutris!
Note that the script is only building dxvk and vkd3d-proton (on Debian). You need to install them separately (and adjust the build scrript to your distro as needed).
I think winetrick verb copies dxvk dlls, while I prefer to use symlinks instead as above.
I was under the impression that VKD3D-Proton had some fixes/features that were specific to the Steam runtime. But if it's for general use, that's great.
It's OK for general use, it's not tied to Steam runtime.
Last edited by Shmerl on 9 Jul 2023 at 8:55 am UTC
Ah sorry for my reading comprehension haha!Thanks for that script—that might become my preferred way of installing/updating dxvk outside of Lutris!
Note that the script is only building dxvk and vkd3d-proton (on Debian). You need to install them separately (and adjust the build scrript to your distro as needed).
I think winetrick verb copies dxvk dlls, while I prefer to use symlinks instead as above.
Yes, the winetricks verb copies them. Lutris bundles DXVK and VKD3D-Proton with its runtime, so that might actually be the easiest way of using and keeping up with DXVK.
DISPLAY='' WAYLAND_DISPLAY='wayland-0'
and run it.Currently notepad.exe works for me :)
EDIT: Just found out that this is not working for me in the wine-staging 8.12 official arch package as it did in the wine-wl-git aur package :(
Last edited by sobinsiril on 11 Jul 2023 at 12:07 pm UTC
If anyone is wondering how to run Wine using the Wayland Driver, prepend the wine command with the Environment VariableDISPLAY='' WAYLAND_DISPLAY='wayland-0'
and run it.
Currently notepad.exe works for me :)
EDIT: Just found out that this is not working for me in the wine-staging 8.12 official arch package as it did in the wine-wl-git aur package :(
May be building it is behind some optional config key that's disabled by default?
https://gitlab.winehq.org/wine/wine/-/blob/master/configure#L4420
00fc:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
00fc:err:winediag:nodrv_CreateWindow L"Make sure that your X server is running and that $DISPLAY is set correctly."
See more from me