Blog: Current state of Vulkan, DX11 and more

Michael Müller - Wed, 25 Jan 2017

During the last year Wine has seen a lot of changes in various areas, and it is easy to lose track of which applications or games are already working properly, and which parts of Wine need further improvements. To solve this problem, Wine development uses the code freeze before each stable release to give developers time to revisit bugs and test applications. Although Wine Staging is not directly affected by the feature freeze, we also decided to do some more extensive testing while preparing the release candidates.

In this blog post I have collected some of the more interesting results. If you for example had the impression that Direct3D 11 is still completely unusable in Wine, this list will prove you wrong. There are lots of features still missing from Wines D3D11 implementation but luckily not every application depends on them. As you can see below, it is even possible to get some AAA games to work. For applications and games which use Direct3D your results might differ depending on your hardware and graphic driver. I used a Geforce GTX 660 with the binary NVIDIA driver for testing. This is not exactly the best card for gaming, but I usually start games in Wine to fix bugs and rarely play them. Please also note that it is not a good idea to enable CSMT for Direct3D 11 games - the patchset was originally written for older versions of Direct3D, and various aspects are not fully compatible yet. To avoid any slowdown caused by fixmes, we recommend to start Wine with the environment variable WINEDEBUG=-all.

The following test results were obtained with Wine Staging 2.0 or one of its release candidates. If you want to know how well these applications work in the development or stable branch, please also take a look at the AppDB. If your application is not listed below, just give it a try. Your feedback might help to get it working in future versions of Wine and Wine Staging. So don't forget to open bug reports for any issues you encounter and submit your test results.


DOOM (2016)

DOOM is the first big Windows-only game that provides support for the new Vulkan API and we were eager to try it out. When DOOM dropped the Denuvo protection in December, it was finally possible to get the game working in Wine with only a few additional patches. Everything necessary is now part of Wine Staging and you should be able to enjoy DOOM at almost native speed when using the Vulkan renderer. If you don't trust me, you can for example take a look at this comparison. There might be a few minor bugs left, but all major functions of the game (single player, multi player, ...) work as expected.


DOOM

DOOM
Hitman: Absolution

This game surprised the most as it works quite well even though it requires Direct3D 11. It needed a small patch, which is now part of Wine Staging 2.0, but otherwise I was not able to find any major bugs during my short test. You have to be careful which graphic options you enable, otherwise you might get some graphical glitches, but it is definitely playable at first glance.


Hitman: Absolution

Hitman: Absolution
Unigene Heaven (DX11)

This benchmarking application supports Direct3D 9, Direct3D 11 and OpenGL. During my tests I decided to give Direct3D 11 a try. It needed some small fixes to get it going (included in the 2.0 Staging release), but everything seems to work now. You cannot use tessellation since hull and domain shaders are not yet implemented, but otherwise it should start. Enabling Anti-aliasing or Ambient Occlusion will result in graphical glitches. The Direct3D 11 support needs more work, but it is not as incomplete as some people might think.


Unigine Heaven (DX11)

Unigine Heaven (DX11)
Tomb Raider (2013)

This game basically behaves like Hitman: Absolution. It works quite well in Direct3D 11 mode, but you might get graphical glitches depending on the selected graphic options. One difference is that Tomb Raider also allows you to use Direct3D 9 instead.


Tomb Raider

Tomb Raider
Shantae and the Pirate's Curse

The game uses Direct3D11 and requires support for deferred contexts. In this case, we have added the necessary patches during our release testing. As you can see on the screenshots, the game works already pretty well in the latest version of Wine Staging.


Shantae and the Pirate's Curse

Shantae and the Pirate's Curse
Need For Speed Most Wanted (2012)

Need For Speed Most Wanted was another Direct3D game on my test list. While it started fine in Wine Staging 2.0, it had serious performance issues. The car was almost uncontrolable, even with lowest graphic settings. With better hardware you might have more luck, but it probably needs additional debugging and some patches to work properly.


Need For Speed Most Wanted (2012)

Need For Speed Most Wanted (2012)
Distribution platforms

Before you can play a game, you often have to download it first. We therefore spent some time on improving the support for Steam, Uplay, Origin, GOG Galaxy and Battle.net in the past. In Wine Staging 2.0, you should be able to use Steam, Uplay, Origin and GOG Galaxy in Windows 7 mode without any big issues. In the Battle.net client we fixed the bug that popup menus do not show up correctly. There are some issues left, most of them have an easy workaround though. You should start Steam with the -no-cef-sandbox parameter and in Origin you need to disable the "Origin In Game" overlay as it is not yet compatible with Wine.


Steam (Win 7)

Origin (Win 7)

Uplay (Win 7)

Battle.net (Win XP)