DXVK, the incredible project that provides a Vulkan-based layer for D3D11 and D3D10 games run with Wine has another release now available. DXVK 1.2.2 is quite a small point release but as always, it still brings with it some nice changes.
This time around Team Sonic Racing has a bug fix to help some startup issues and Planet Coaster should also see less startup issues, although Planet Coaster does need "additional wine patches" as of Wine 4.10.
Also in this release are some CPU overhead optimizations, improved compute shader performance on Nvidia GPUs in some games with Nier: Automata being one that was noted and minor bugs were solved that caused wine test failures.
You can see the full release notes here on GitHub.
Interestingly, one of the actual Wine developers recently called DXVK a "dead end". That comment might seem a little bitter by itself, but explaining it further (more detail again here) they said that essentially "Wine's own Vulkan D3D backend should make DXVK superfluous in the long term". It will be interesting to see the work the Wine team are cooking up officially, when it's ready. However, DXVK is already here and working well for Steam Play. It will be fun to see just how many more optimizations can be done, as it does already perform very well in a lot of games compared to Wine by itself.
The particular Wine dev in question who made that comment, would do well to remember the old wise words always uttered for programming and that never cease to be relevant: "Never re-invent the wheel".
He or she would do well to consider maybe just accepting that the Wine project team doesn't need to create every component of Wine themselves, that they could just embrace the tactic Valve has used of just integrating multiple components together like puzzle pieces in order to make a larger more complete package, like Valve have done by integrating Wine, DXVK, FAudio, etc.. all together into one package and calling it 'Proton'.
There are many areas Wine is still lacking for which there are currently no fixes available, areas which would be better use of their time than recreating an existing highly successful solution. It is still not possible even with Wine 4.10 to run some common and much desired applications (off the top of my head, Adobe Illustrator is still unusable for example) that could be focused on instead.
It would also be worth considering.. perhaps not referring to a very successful project filling a crucial gap left by Wine, as a 'deadend'. A better (and more respectful) choice of words would have been nice.
Last edited by gradyvuckovic on 15 Jun 2019 at 6:00 pm UTC
Interestingly, one of the actual Wine developers recently called DXVK a "dead end".
Haven't there already been misunderstandings between the DXVK authors and the Wine team?
I think it's a pity because such undertones can demotivate people. Besides Wine, DXVK is currently Proton's most important component.
I will test Nier: Automata again next time. It already ran incredibly well on my GTX 970 months ago.
Last edited by 1xok on 15 Jun 2019 at 6:06 pm UTC
Personally, I don't think he was as tactful as he possibly could have been in his recent comments, but far more than he could have been. I don't really mind the odd off-color comment from developers. Even Linus himself is known to express frustration with less than cordial responses. It seems that he's frustrated and might have let that affect his tone ever so slightly. I don't see a need to jump down his throat.
Last edited by Munk on 15 Jun 2019 at 6:18 pm UTC
Before everyone takes offense, hear him (Henri Verbeet) out. I'm not taking sides, but here's the "elaborate explanation" he's referring to in the post linked to the article: https://www.winehq.org/pipermail/wine-devel/2019-January/138023.html
Personally, I don't think he was as tactful as he possibly could have been in his recent comments, but far more than he could have been. I don't really mind the odd off-color comment from developers. Even Linus himself is known to express frustration with less than cordial responses. It seems that he's frustrated and might have let that affect his tone ever so slightly. I don't see a need to jump down his throat.
Have to say, after having read that.. That doesn't change my opinion.
DXVK & D9VK are so nice buuuuuut the shader stutters :'(The shaders need to be compiled when they first run, which can stutter the game. Once they've been compiled and cached, everything should be smooth (until a new shader needs to compile). Obviously this is a less than optimal experience, so Valve's already rolled out a solution to this with Proton - steam downloads the shader cache with the game, so everything's ready to go.
If you're playing without Steam and Proton, I don't think there's much you can do about this other than have the shaders run and compile, knowing that the next time they run they won't stutter.
DXVK & D9VK are so nice buuuuuut the shader stutters :'(The shaders need to be compiled when they first run, which can stutter the game. Once they've been compiled and cached, everything should be smooth (until a new shader needs to compile). Obviously this is a less than optimal experience, so Valve's already rolled out a solution to this with Proton - steam downloads the shader cache with the game, so everything's ready to go.
If you're playing without Steam and Proton, I don't think there's much you can do about this other than have the shaders run and compile, knowing that the next time they run they won't stutter.
The AMDGPU PRO 19.20 Driver Reduces Stutters to almost 0 but video is broken on so many games
And i do use the beta version of proton and games like soul calibur stutter so badly. Once stuttering is solved DXVK will be perfect it already performs close to windows and sometimes beats it in performance
Last edited by bolokanar on 15 Jun 2019 at 7:33 pm UTC
Interestingly, one of the actual Wine developers recently called DXVK a "dead end". That comment might seem a little bitter by itself, but explaining it further (more detail again here)
I guess it all comes to the already much discussed January comment :
I learned about DXVK either near the end of 2017 or near the start of
2018. In February 2018, we reached out to Philip Rebohle—the author of
DXVK—to start a conversation around whether there were any areas we
could cooperate on. One obvious area was the vkd3d shader compiler,
which translates Direct3D shader byte code to SPIR-V (much like DXVK
has to do), but there would have been other possibilities, like
sharing the DXGI implementation, or using a scheme like vkd3d where
Wine's d3d11 could have optionally loaded DXVK as a regular shared
library. That e-mail went unanswered. Now, I appreciate that different
people have different ideas about what's acceptable and what isn't,
but personally I think that's extremely rude and uncivilised.
Nevertheless, e-mail gets lost sometimes, sometimes people are busy,
everyone gets a second chance. So a few months later, since I was
organising WineConf 2018, I sent Philip a personal invitation to
attend WineConf, and perhaps discuss things there. That invitation
went unanswered too, at which point I was pretty much done with DXVK.
It is my understanding that since then both Jeremy White and
CodeWeavers' partners at Valve have tried reaching out to Philip on
the subject, but evidently with little success.
Bottom line, cooperation only works if both sides are trying.
There's one more issue I'd like to address, which isn't about the
wined3d Vulkan backend—also known by its internal codename
"Damavand"—but rather about certain comments along the lines of "Wine
should accept C++ code", "Wine maintainers are mean because they
didn't accept my patch", etc. Leaving aside for the moment the fact
that none of those were the issue with DXVK, that's really not how
this works. Like any project, the Wine project has certain rules,
certain guidelines, and certain standards. Some people may disagree
with some of those, that's fine. Perhaps some people would like to see
some rules or guidelines changed, standards raised or lowered. That's
fine too, and the way to go about that would be to become a well
respected member of the Wine community, make your argument, and
perhaps if enough people find your argument convincing, it may even
happen. On the other hand, shouting from the sidelines, on the
internet, is rather unlikely to be effective. Similarly, a lot of
these rules, guidelines and standards are well known even outside the
Wine project. If you knowingly start some project that conflicts with
those, best of luck to you and we hope you have fun, but it's really
not on the Wine project if that code then doesn't end up going into
upstream Wine. And last, but not least, "Wine developers should work
on what I tell them to". No.
Anyway it's fine as long as proton can filter out the best of both world.
Last edited by minidou on 15 Jun 2019 at 7:34 pm UTC
I have one and only question: But does Witcher 3 get performance like on Windows?If you expect it to be on par with Windows then you're going to be disappointed most of the time (especially on Nvidia), but Witcher 3 certainly runs quite well.
With DXVK+D9VK we are already at a point where WineD3D is the dead endYou can't really say that. wined3d targets a large number of non-gaming applications (which DXVK just cannot run), so wine very much needs wined3d. DXVK focusses solely on games and gaming performance.
And while I don't really want to participate in pointless internet drama, Henri Verbeet basically already names the problem with his very own statement: long term. I don't know how much work they've been doing in the background since the announcement of the Vulkan backend, but for all it's worth it might take another year to become useful, it might even take two. And even when it does start running games, frame rate counters will tell whether DXVK is going to be superfluous or not.
Last edited by YoRHa-2B on 15 Jun 2019 at 8:31 pm UTC
I guess it's not all his fault and some people on the internet can be really mean, but answering to these people especially is not really the way to go IMO.
@YoRHa-2B - Thank you for your work Philip.
I have one and only question: But does Witcher 3 get performance like on Windows?
Well i mean can you run it smoothly on windows if the answer is yes it will be perfectly playable under proton linux if ran like crap on windows on your system then no you wont have a good experience.
Once stuttering is solved DXVK will be perfect it already performs close to windows and sometimes beats it in performance
Let's not get carried away there. For the most part performance is good, even very good, but still notably worse than Windows. Especially on Nvidia. On AMD there are the weird exceptions, but this is mostly because AMD can't write a proper driver to save their live and the open source Linux driver outperforms the proprietary Windows driver in some games like Hitman 2. But this has less to do with DXVK and more with AMD. Also the reason you don't see such anomalies on Nvidia.
Obviously, that being said DXVK is nothing short of a miracle for Linux gaming. Only wish the project would branch out to software besides games, but hey - you can't really complain, all things considered :).
Last edited by mao_dze_dun on 16 Jun 2019 at 7:11 am UTC
I have one and only question: But does Witcher 3 get performance like on Windows?
No idea, but I personally don't care to compare it to Windows, since I'm not using it. I evaluate performance based on my hardware. And TW3 runs very well. Sapphire Pulse Vega 56 produces around 70-80 fps on 1920x1200 on max settings (hairworks off).
For higher resolution, I plan to get Navi though.
Last edited by Shmerl on 16 Jun 2019 at 8:19 am UTC
But this has less to do with DXVK and more with AMD. Also the reason you don't see such anomalies on Nvidia.Well, let's not praise Nvidia too much here. AMD's D3D11 driver being really bad in some CPU-limited scenarios is one thing, Nvidia's Vulkan driver underperforming in some GPU-limited scenarios is another.
Part of the reason might be that I have a much better understanding of the GCN architecture than anything Nvidia has put out, so not everything that DXVK does may be optimal for Nvidia, but someone on the VKx discord posted a few microbenchmarks recently that test GPU-bound perf (just standard stuff like alpha blending, etc.), and it turns out that while all of them run at ~95-100% of native performance on my RX 480 when using DXVK, their 2080 Ti only managed around 30%. And that definitely just shouldn't happen.
Last edited by YoRHa-2B on 16 Jun 2019 at 12:43 pm UTC
But this has less to do with DXVK and more with AMD. Also the reason you don't see such anomalies on Nvidia.Well, let's not praise Nvidia too much here. AMD's D3D11 driver being really bad in some CPU-limited scenarios is one thing, Nvidia's Vulkan driver underperforming in some GPU-limited scenarios is another.
Part of the reason might be that I have a much better understanding of the GCN architecture than anything Nvidia has put out, so not everything that DXVK does may be optimal for Nvidia, but someone on the VKx discord posted a few microbenchmarks recently that test GPU-bound perf (just standard stuff like alpha blending, etc.), and it turns out that while all of them run at ~95-100% of native performance on my RX 480, their 2080 Ti only managed around 30%. And that definitely just shouldn't happen.
I hope the situation for Nvidia will get better in the future, as I own a 1070Ti.
Do you see anything that runs in the direction, to get better performance out of Nvidia?
See more from me