Support us on Patreon to keep GamingOnLinux alive. This ensures we have no timed articles and no paywalls. Just good, fresh content! Alternatively, you can donate through Paypal, Flattr and Liberapay!

Wine 4.6 is officially out with the start of a Vulkan backend for WineD3D

Posted by , | Views: 9,088

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.

22 Likes, Who?
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG and Humble Store. See more information here.
31 comments
Page: «2/4»
  Go to:

mrdeathjr 13 April 2019 at 1:30 am UTC
garpuWhat's MinGW used for now when building it?

Yeah new dependency, mingw for PE files shows configure file at build

garpu 13 April 2019 at 2:49 am UTC
mrdeathjr
garpuWhat'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?
elmapul 13 April 2019 at 8:52 am UTC
mrdeathjrBlazblue Calamity Trigger

image

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


did the intro for Blazz blue worked or its like guilty gear on proton?
also, can you test guilty gear?
mrdeathjr 13 April 2019 at 9:12 am UTC
elmapul
mrdeathjrBlazblue Calamity Trigger

image

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
did the intro for Blazz blue worked or its like guilty gear on proton?
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

DoctorJunglist 13 April 2019 at 11:06 am UTC
garpu
mrdeathjr
garpuWhat'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?
My guess is it could be used for debugging.
elmapul 13 April 2019 at 4:22 pm UTC
mrdeathjr
elmapul
mrdeathjrBlazblue Calamity Trigger

image

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
did the intro for Blazz blue worked or its like guilty gear on proton?
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.
Purple Library Guy 13 April 2019 at 5:16 pm UTC
garpu
mrdeathjr
garpuWhat'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?
Some old Windows dlls might be hard to find now.
etonbears 13 April 2019 at 11:13 pm UTC
Purple Library Guy
QuoteBeginnings 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.
Purple Library Guy 14 April 2019 at 5:31 am UTC
etonbears
Purple Library Guy
QuoteBeginnings 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 detail is welcome. Thanks, that was very helpful.
ryad 14 April 2019 at 11:42 am UTC
etonbearsIt 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!
  Go to:
While you're here, please consider supporting GamingOnLinux on Patreon, Liberapay or Paypal. We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!

Due to spam you need to Register and Login to comment.


Or login with...

Livestreams & Videos
Community Livestreams
See more!
Popular this week
View by Category
Contact
Latest Comments
Latest Forum Posts