The Wine 4.6 development release is now available and it includes some rather interesting updates, along with plenty of bug fixes.
Here's the highlights of Wine 4.6:
- Beginnings of a Vulkan backend for WineD3D.
- Support for loading Mono libraries from a shared location.
- Libwine.dll no longer needed when using Wine DLLs on Windows.
- Regression tests compiled directly to PE format.
- Support for the Split Button Common Control.
- Complex structs support in the typelib marshaller.
- Video capture ported to Video4Linux version 2.
- Initial version of the Debug Engine DLL.
They also noted 50 bugs have been marked as solved as of this release. As always, this doesn't mean all 50 were fixed in Wine 4.6, as some were only re-tested and found as solved in previous releases. The list of fixes includes Warframe, Mass Effect, a fix for BattlEye, The Sims, Revenant and plenty more.
Wine getting fixes for BattlEye is a curious one, since the official line from BattlEye is that they can only support titles with native ports. It will be very interesting to see if that really is the case or if Wine can get to a stage where it works with it.
You can find the full release announcement here.
Grand Theft Auto San Andreas + Mods
![](https://i.imgur.com/g1zanHk.png)
Last test with Pentium G3258 @ 4.1ghz + Artic Cooling Alpine 11 Plus
https://www.youtube.com/watch?v=V5gi6toZnXk
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=2pOP7duOulw
Resident Evil 6 + Mods
![](https://i.imgur.com/t30gnFA.png)
Last test with Pentium G3258 @ 4.1ghz + Artic Cooling Alpine 11 Plus
https://www.youtube.com/watch?v=THYmmDqss3Y
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=SUBlXq7HlKA
Blazblue Calamity Trigger
![](https://i.imgur.com/g1Qvn5j.png)
Last test with Pentium G3258 @ 4.1ghz + Artic Cooling Alpine 11 Plus
https://www.youtube.com/watch?v=VsRr6hyEOtI
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=c5XSfnkDUnQ
Valkyrie Drive
![](https://i.imgur.com/vtjbHqp.png)
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=dAtJIC3sqr4
Touhou Scarlet
Spoiler, click me
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=kKiV9v7swSI
Juiced 2
![](https://i.imgur.com/j6bmlYx.png)
Last test with Pentium G3258 @ 4.1ghz + Artic Cooling Alpine 11 Plus
https://www.youtube.com/watch?v=Kum-pgk5B9I
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=PI9KjCfIuto
TMNT Mutants in Manhattan
Spoiler, click me
Last test with Pentium G3258 @ 4.1ghz + Artic Cooling Alpine 11 Plus
https://www.youtube.com/watch?v=snl7C4a10Do
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=-HBgoR3FKCE
FarCry 3 Blood Dragon DX9/DXVK
Spoiler, click me
Spoiler, click me
Last test with Pentium G3258 @ 4.1ghz + Artic Cooling Alpine 11 Plus
https://www.youtube.com/watch?v=CpKT9u0NnD0
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=RDPB24aUXXk
DXVK With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=K6BazAzln74
Yager
![](https://i.imgur.com/GgWXMlI.png)
Last test with Pentium G3220 @ 3.0ghz
https://www.youtube.com/watch?v=yod6CywKS5w
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=umpfc6IuLaE
Mafia 1
Spoiler, click me
Last test with Pentium G3258 @ 4.1ghz + Artic Cooling Alpine 11 Plus
https://www.youtube.com/watch?v=ihhW54-D_xM
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=vKJGfXt79Ns
The Punisher
Spoiler, click me
Last test with Pentium G3258 @ 4.1ghz + Artic Cooling Alpine 11 Plus
https://www.youtube.com/watch?v=GzilvRjxEWg
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=tJee2yEQsAU
^_^
Last edited by mrdeathjr on 13 Apr 2019 at 9:16 am UTC
Last edited by jens on 12 Apr 2019 at 8:08 pm UTC
@mrdeathjr I'm correct that these are just screenshots of random games (with the albeit new wine version) that probably worked since long ago in wine?
Yeah in some cases yes but is not completly secure because in each user case results can differ
^_^
Great times ahead :)
Another exciting Wine release, the good news don't end here though - ahead of the official announcement, the Staging release for 4.6 will include the popular eSync patches.
Great times ahead :)
Is it a sign that esync patches were refactored and will be considered for inclusion in upstream Wine? A major useful feature like that should really be upstream.
Last edited by Shmerl on 12 Apr 2019 at 7:39 pm UTC
Will Wine Staging esync work with DXVK? Do I have to activate that for every specific Wineprefix somehow?
esync is activated with an environment variable, as long as Wine is built with it:
WINEESYNC=1
So you can put it in your game start script.
Last edited by Shmerl on 12 Apr 2019 at 8:07 pm UTC
Beginnings of a Vulkan backend for WineD3D.I'm confused about just what this represents and how it interacts with or complements or duplicates DXVK and certain sister projects to DXVK.
Beginnings of a Vulkan backend for WineD3D.I'm confused about just what this represents and how it interacts with or complements or duplicates DXVK and certain sister projects to DXVK.
It's an idependent project, not a duplicate. Wine team tried to contact DXVK author multiple times, without any response. In addition, DXVK is writen in C++, Wine adopted pure C. So, they decided to make their own Vulkan adapter, totally different from DXVK. Basically, it will not interact with DXVK, like the actual OpenGL version of WINED3D do.
What's MinGW used for now when building it?
Yeah new dependency, mingw for PE files shows configure file at build
^_^
What's MinGW used for now when building it?
Yeah new dependency, mingw for PE files shows configure file at build
^_^
Oh, I bet it's for the change in libwine.dll. That would make sense--you just cross-compile them now. Although why would one use WINE dlls on Windows? Wouldn't you use windows dlls on windows?
Blazblue Calamity Triggerdid the intro for Blazz blue worked or its like guilty gear on proton?
![](https://i.imgur.com/g1Qvn5j.png)
Last test with Pentium G3258 @ 4.1ghz + Artic Cooling Alpine 11 Plus
https://www.youtube.com/watch?v=VsRr6hyEOtI
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=c5XSfnkDUnQ
also, can you test guilty gear?
Blazblue Calamity Triggerdid the intro for Blazz blue worked or its like guilty gear on proton?
![](https://i.imgur.com/g1Qvn5j.png)
Last test with Pentium G3258 @ 4.1ghz + Artic Cooling Alpine 11 Plus
https://www.youtube.com/watch?v=VsRr6hyEOtI
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=c5XSfnkDUnQ
also, can you test guilty gear?
No for now dont work because wmv dont work correctly in proton because proton use wine64 prefix meanwhile plain wine no x64 allow use wmv without issues
^_^
My guess is it could be used for debugging.What's MinGW used for now when building it?
Yeah new dependency, mingw for PE files shows configure file at build
^_^
Oh, I bet it's for the change in libwine.dll. That would make sense--you just cross-compile them now. Although why would one use WINE dlls on Windows? Wouldn't you use windows dlls on windows?
Blazblue Calamity Triggerdid the intro for Blazz blue worked or its like guilty gear on proton?
![](https://i.imgur.com/g1Qvn5j.png)
Last test with Pentium G3258 @ 4.1ghz + Artic Cooling Alpine 11 Plus
https://www.youtube.com/watch?v=VsRr6hyEOtI
With Core i3 8350K Tri-Core @ 5.0ghz + Zalman CNPS 10x Performa+
https://www.youtube.com/watch?v=c5XSfnkDUnQ
also, can you test guilty gear?
No for now dont work because wmv dont work correctly in proton because proton use wine64 prefix meanwhile plain wine no x64 allow use wmv without issues
^_^
i hope vale ask then to convert those videos to something else (or if they cant, because they lost acess to the game code and cant redirect it to use other format instead, at least they should provide the video in both formats)
so instead of an entire feature be missing, or they have to pay the royalites for each player who want to play the game on linux, they can pay once and get ride of the royalites entirely.
Some old Windows dlls might be hard to find now.What's MinGW used for now when building it?
Yeah new dependency, mingw for PE files shows configure file at build
^_^
Oh, I bet it's for the change in libwine.dll. That would make sense--you just cross-compile them now. Although why would one use WINE dlls on Windows? Wouldn't you use windows dlls on windows?
Beginnings of a Vulkan backend for WineD3D.I'm confused about just what this represents and how it interacts with or complements or duplicates DXVK and certain sister projects to DXVK.
It is complicated, but I'll tell you what I believe is true, though this requires some detail ( sorry! ).
The Wine Project contains a native OS library, called "winelib", that implements the lowest level layer of pure 'C' language Windows APIs that is generally known as WIN32. If you have the source code for an WIN32 application, you can compile directly against this "winelib" implementation, resulting in an entirely native binary that you can run directly on your OS.
Wine also provides a "virtual Windows" environment if, as is more usual, you do not have the source code. This environment knows how to read Windows-formatted executables/libraries, and load them into memory to run as if they are native-format for your OS. It also knows how to slectively combine Windows-formatted executables/libraries with the winelib implementation of any WIN32 function calls the executables/libraries make.
This "mixed mode" of Windows-format executable code, combined with the native winelib implementation of WIN32 is enabled by using a Wine virtual filesystem, better known as the "Wine Prefix".
If you look at "C:\windows\*" in your Wine Prefix ( the default location is "~/.wine/" under Linux ) you will see directories full of the same filenames you normally see on windows. But if you look carefully, you will note that all of the libraries ( C:\windows\system32\*.dll, for example ) are tiny files, and all the same size. This is becaus they do not contain any implementation, they are just entry points to winelib; these entry points are what wine refers to as "builtin" versions of windows libraries.
If you use wine to run a Windows-format executable, it uses these tiny "builtin" dlls to invoke the implementation in winelib. But what if you have problems, and the winelib implementation of a windows library does not work well with your Windows application? Well, you CAN try to replace the offending winelib library, by just overwriting the version in the Wine Prefix with one copied from a Windows installation, then run the "winecfg" command to tell wine you have replaced the builtin library. If you are lucky, it solves your problem. If you are unlucky, the problem gets worse, or you end up replacing half of your Wine Prefix trying to work out which combination of dlls works best.
Now, why did I go into that detail? The reason is that this is the mechanism by which DXVK is implemented. Wine does not actually contain a working implementation of D3D10 or D3D11 in winelib. The "correct" way to fix this would be to join the Wine project, learn all about the existing winelib code-base and coding practices, then design and implement a harmonious, bug-free, maintainable implementation of D3D10/11 within winelib. What Philip Rebohle decided to do was create a replacement for the set of DLLs that normally provide D3D10/11 in Windows, using Vulkan to implement the D3D features, then you simply drop these DLLs into a Wine Prefix, use winecfg to indicate you are overriding the builtin implementation for these DLLs, and magically your game works.
I can completely understand why Philip did it this way, as it means he does not impact the Wine Project at all, does not nead to learn how to be part of it, and can just get on with making DXVK work in a development environment he is comfortable with.
However, there is a problem with this. While 4 of the 5 DLLs DXVK replaces are stand-alone and independent, DXGI.DLL is not. DXVK will allow you to run D3D10 and D3D11 games, but breaks games using WineD3D, which also implements DXGI.DLL. This is why the Wine developer was trying to coordinate DXGI use with Philip Rebohle.
I'm sure this will get sorted out eventually.
The detail is welcome. Thanks, that was very helpful.Beginnings of a Vulkan backend for WineD3D.I'm confused about just what this represents and how it interacts with or complements or duplicates DXVK and certain sister projects to DXVK.
It is complicated, but I'll tell you what I believe is true, though this requires some detail ( sorry! ).
It is complicated, but I'll tell you what I believe is true, though this requires some detail ( sorry! ).
Wow, very informative. Thanks for this great post!
See more from me