Wine Staging 1.9.6 has been released with Vulkan support

We are happy to announce the release of Wine Staging 1.9.6. This version adds support for Vulkan and fixes for various other bugs.

This release adds a first version of a Vulkan wrapper to make the Vulkan API accessible to applications running in Wine. The work was started by Erich E. Hoover and later finished by other Wine Staging maintainers. The code translates the Windows specific surface extensions to the corresponding X11 / XCB extensions and passes the remaining functions on the host Vulkan library. Although this seems to be an easy task on first sight, there are various pitfalls that make this wrapper more complicated than you might think. While the Vulkan API is almost binary compatible in 64 bit (except the differences in the calling convention), properly translating Vulkan calls on 32 bit turned out to be a bit difficult.

The biggest problem on 32-bit is caused by alignment differences when using 64 bit integers in structures. On Windows a 64 bit integer is aligned on a 8 byte memory address, while compilers on most other systems only align them on a 4 byte boundary. Passing such a structure without conversion to the host library would cause problems and eventually lead to a crash. As the Vulkan API contains more than 120 structures, we had to spent a lot of time to implement structure and array conversions, which make the 32-bit version slightly slower than the 64-bit version. The final implementation adds about 10.000 lines of code to the Wine Staging code base.

Although this is the first beta version, we are happy to say that this version already passes all (~80300) Khronos Vulkan conformance tests (32 + 64 bit) when using a compliant driver on the host system. We also tested the windows version of the game “The Talos Principle” and various samples from the LunarG SDK and so far, we aren’t aware of any bugs. If you still encounter any issues, feel free to open a bug report. Here is a screenshot showing The Talos Principle running in Wine Staging using the Vulkan option:


Before talking about the smaller additions, there is another important announcement regarding this release. We are aware that a big group of people uses Wine Staging because of the CSMT (command-stream multi-threading) patch-set, and we are glad to see that there is again (slow, but steady) progress to include this feature in the development version of Wine. The whole process also has a downside though. Various design goals have been changed during the up-streaming process and we are currently not aware of any fully functional patch-set, which provides all CSMT features. So far the multi-threading part, which contains the actual performance improvement, is not upstream yet and the remaining patches are getting more and more incompatible. Working around all those problem (which we did in the last releases) is not possible in the long term, and we therefore decided to disable CSMT support in this release. If you depend on this feature, you should not update to Wine Staging 1.9.6. The feature might be available in future versions again, so don’t forget to check the release notes.

As mentioned at the beginning, we also added several smaller fixes. There are several patches to improve the compatibility with Python 3.5 as well as patches to improve Wines gdiplus.dll implementation. Here is the usual list of all changes, without those which already have been accepted upstream:

  • Do not update iosb.Status after FSCTL_PIPE_LISTEN call (Python 3.5)
  • Implement GdipCreateMetafileFromStream (Captvty v3, Wine Bug #40325)
  • Implement support for WICPixelFormat32bppGrayFloat (SlovoEB 2.1, Wine Bug #36517)
  • Fake success in dwmapi.DwmSetWindowAttribute function (Epic Games Launcher)
  • Implement support for Vulkan (Wine Bug #40164)
  • Fix pointer to custom dialog control data (Wine Bug #40303)
  • Populate CA certificate store in registry (Python 3.5)
  • Fix handling of GetOverlappedResult when status remains STATUS_PENDING (Python 3.5)
  • Implement semi-stub for ws2_32 DisconnectEx (Python 3.5)
  • Implement wuauserv dummy service (Python 3.5 installer)
  • Fix handling of INTERNET_INVALID_PORT_NUMBER in HttpOpenRequestW (Wine Bug #40169)
  • Implement windowscodecs.WICCreateBitmapFromSection(Ex) (Paprika Recipe Manager, Wine Bug #40273)
  • Implement a better stub for IPicture::SaveAsFile (JawsEditor, Wine Bug #8532)
  • Implement query operation in reg.exe (Wine Bug #24017)



Mariner Software 50% off sale is going on now

Mariner Software has a huge 50% off spring sale going on this and next week this is your chance save 50% off their great word editing, blogging, journal and recipe software.

Clear Insight Products has a really nice page setup about this sale and and Mariner Software. You should take the time and check the site out.

Because I have been a fan of this software for so long Mariner sent me a promo code and have allowed me to pass it on to my Clear Insight Productions connections.

This promotion is for a limited time though. At 11:59pm Central time on Sunday, March 27th 2016, the sale will come to an end. So visit the eStore and use PRN6 when you check out to receive your discount.​

“One of the best blog editors we’ve seen.”
MacWorld Magazine

“Really like this app a lot and always looking forward the next revision with its new features. I have been happily using MacJournal since the beginning. Sometimes I even get up to using it half of the days which is a lot for me.”
Howard R. Lieberman
Chairman CEO
Silicon Valley Innovation Institute

“This is a thank you for a superb product. I am writing more than I have done for quite some time. It is journal writing and getting my thoughts down in words. I love that I can specify different types of journals and make sub journals. It is so easy and everything is in one place. This is so wonderful and everything is dated. I really appreciate the convenience and ease of using MacJournal. Later I may take a look at your stuff for writers. Thanks again.”
Bicki Smith
MacJournal user