Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal. You can also buy games using our partner links for GOG and Humble Store.
We do often include affiliate links to earn us some pennies. See more here.

What started as a large article talking to developers about Steam Play required splitting off before it became too big. For now, I give you a chat with the developer of DXVK, Philip Rebohle.

For those that aren't quite up to speed, DXVK is a project that provides a Vulkan-based D3D11 and D3D10 implementation for Wine. It's part of what makes Valve's Steam Play "Proton" work. In simple terms, games built to run on Windows via DirectX can be run with DXVK/Proton, so that they can be played on Linux.

I believe that DXVK and Steam Play are some of the most interesting projects to come out in the last few years, which could possibly help push Linux gaming forward. You can see more of my own thoughts in the previous article. I don't want to ramble on too much about what's already said, so here it is below.

GOL: Firstly, as the developer of DXVK, how did you get started with Vulkan and DirectX?

DXVK: “I've always had an interest in graphics programming and used OpenGL in the past for some hobby projects that never really evolved into anything useful, and started experimenting with Vulkan once it came out.

My first contact with D3D11 was actually when I tried to debug a rendering issue with a D3D11 game on wined3d, but since most of its concepts are very similar to what we have in OpenGL and Vulkan, it wasn't too hard to figure out. Except of course for the parts where Microsoft's documentation is terrible, and there are a lot of those... sorry, I just had to rant about that.”

GOL: What gave you the idea for DXVK? Why did you decide to make it?

DXVK: “It's a combination of being dissatisfied with the performance of wine's own D3D11 implementation, not wanting to dual-boot to Windows anymore, and being inspired by the VK9 project which I had been keeping an eye on for some time. And I really wanted to get one specific game to work.”

GOL: Since you're now contracted by Valve, how did that happen? Must have been quite a shock initially to have Valve approach you?

DXVK: “It wasn't all that spectacular - they contacted me when News made the round that DXVK could run Nier [NieR:Automata] back in late January, and when offered to work full-time on the project after a friendly chat, I couldn't really refuse.

There are a lot of things that probably would not have happened if Valve hadn't been backing the project - such as driver developers fixing their Vulkan drivers for DXVK or reporting bugs, or Vulkan getting a transform feedback extension.”

GOL: Do Valve give you much input in the direction of DXVK or do you continue to work on it freely, simply with the backing of Valve to allow you extra time on it?

DXVK: "There are some things that I probably wouldn't have done without them requesting it, such as adding OpenVR support or focusing on certain games early on, or trying to squeeze more performance out of specific workloads. But I spent most of the time just improving overall game compatibility and performance."

GOL: There have been a lot of people asking about anti-cheat, things like Easy Anti-Cheat, BattlEye and so on where the games won't run in Steam Play/Wine. People seem confused where the problem really is. Is it something Wine needs to solve to support them?

DXVK: "I'm certainly not an expert on anti-cheat or DRM technology, but those that don't work are typically very invasive, access Windows kernel APIs, rely on undocumented APIs, and may prevent debugging. All of that makes it very hard for Wine to support them."

GOL: How has the reception been to DXVK? Has it changed since Steam Play?

DXVK: “Depends on who you ask. People who just wanted to play their games on Linux were generally excited when DXVK started running more and more of their games, part of the wine community isn't exactly happy about it being a separate project, and there are of course those who dislike wine in general, but more on that later.

Has it changed since Steam Play? I don't think so. Things just have calmed down over time. Many of those using Proton now have been using Wine, Lutris, DXVK etc. before, and new users seem to be happy with Proton as a whole, which DXVK is a part of.”

GOL: Any hopes for the future for DXVK? How do you feel about developers concerns with it possibly causing less native Linux ports?

DXVK: “It should hopefully fulfil its purpose and make users who currently dual-boot or run some crazy VM setup for gaming switch to Linux as their primary gaming platform, and maybe attract a few new users altogether.

I genuinely don't know if it'll reduce the number of native ports. Maybe it will, maybe we'll get more ports due to a higher market share, maybe some studios will adopt Vulkan for better compatibility with Proton - anything can happen. And while I'd take a good port over wine any day of the week, there's one thing that everyone seems to forget in this discussion: It increases the number of playable games on our platform, and that just can't be a bad thing.”

 

Thanks again for having a chat! It's always great to get some background on such important projects like this. I have to agree with Rebohle's ending remark there too, having more games be compatible on Linux is going to be good for us in the long run.

We should have more articles up from other developers in future. Depending on responses this may come in one big feature or a few smaller articles over the next few weeks. We're casting a wide net, so if you're a developer of a game, a game engine, a game porter or anything of the sorts and want to have a chat about Steam Play, do get in touch!

Article taken from GamingOnLinux.com.
100 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. Find me on Mastodon.
See more from me
The comments on this article are closed.
56 comments
Page: «3/6»
  Go to:

omer666 Sep 11, 2018
Quoting: BotonoskiHe makes a great point at the end which is bizarrely not as obvious to some people (I'm including myself) as it really should be. Ultimately it increases the amount of games on the platform and that is not a bad thing.
For me it's been the whole point of Proton since the first official announcement.
I'm a Linux-only user but I was thinking about buying a new console (a Switch, obviously) before the new Steam Play. Now that I can play Sonic Mania, Doom, Nier: Automata, Tekken 7, King of Fighters 98UM/2002UM/XIII/XIV, and many, many more, I am not even considering it any longer.

If that is enough to keep me from buying an additional hardware, I can imagine that it could keep at least some people from dual-booting.
jarhead_h Sep 11, 2018
Quoting: jensI still remember my own words a year ago https://www.gamingonlinux.com/articles/what-games-do-you-want-ported-to-linux-feral-interactive-want-to-know-again.10139/comment_id=99838

I'm now playing GTA5 and Assetto Corsa. ROTTR was a beautiful port from Feral and I guess ED is just around the corner too. Magic!
Thank you so much for everyone involved!

PS: I had my doubts with the effects of DXVK in the beginning, fearing that Linux will become more and more invisible behind wine, but now knowing that Proton counts as Linux I'm all in.

So far for me it's mostly been DOOM. I got Sleeping Dos Definitive working for about five minutes before it crashed and never ran again. Probably already been fixed. I delivered a few "stable" ratings to the compatibility spreadsheet, too. What I noticed is that I could use WINE+DXVK+Lutris to get Far Cry 3 working, and the Rocksteady Arkham games working, but Proton still doesn't work with any of them, and it isn't DXVK getting in the way. Side note, the Arkham Origins seems to work perfectly Proton, so yay, you can play the placeholder cash-in title with the broken combat system and recast voice actors but not the other three that you actually want to play. Oh, well.
Leopard Sep 11, 2018
Quoting: wojtek88
Quoting: crabelI think, Proton is great.
+1
Quoting: crabelMy thanks to everybody who has contributed to this. First of all, the Wine guys, Valve, Mr. Philip Rebohle here and of course all those other people that made this possible.
+1

I am really happy with the state of the Linux gaming. However I have one fear though. What is going to happen if Microsoft releases new Windows and they force DX12 on it? Will it be simple to add it to DXVK, because Vulkan and DX12 are similar, or will it be like reinventing the wheel once again?

P.S. Is Philip Rebohle registered on our site as YoRHa-2B?

They really can't at this point.

Reasons of that are simple:

1-) Game companies became addicted to DX11 because it also covers Windows 7 , 8 too.

2-) DX12 ports available around are really bad , mostly. Because mostly they are using some kind of wrapper on their existing DX11 renderers. They really didn't adapt to DX12 , neither invested in it.

3-) Under that circumsations a new and only DX will be a suicide.

4-) If that happens , that will only strengthen Vulkan after all. Because with Vulkan you can cover Windows 10 , 8 , 7 , Linux , Mac , Android , Nintendo Switch ( although Nvidia NVN api is dominant on there ).

While new DX will be on Xbox and new Windows.

At least that is what i thought.

Large user base is the enemy of Windows right now. They can't risk breaking their compabilities.
jens Sep 11, 2018
  • Supporter
Quoting: jarhead_h
Quoting: jensI still remember my own words a year ago https://www.gamingonlinux.com/articles/what-games-do-you-want-ported-to-linux-feral-interactive-want-to-know-again.10139/comment_id=99838

I'm now playing GTA5 and Assetto Corsa. ROTTR was a beautiful port from Feral and I guess ED is just around the corner too. Magic!
Thank you so much for everyone involved!

PS: I had my doubts with the effects of DXVK in the beginning, fearing that Linux will become more and more invisible behind wine, but now knowing that Proton counts as Linux I'm all in.

So far for me it's mostly been DOOM. I got Sleeping Dos Definitive working for about five minutes before it crashed and never ran again. Probably already been fixed. I delivered a few "stable" ratings to the compatibility spreadsheet, too. What I noticed is that I could use WINE+DXVK+Lutris to get Far Cry 3 working, and the Rocksteady Arkham games working, but Proton still doesn't work with any of them, and it isn't DXVK getting in the way. Side note, the Arkham Origins seems to work perfectly Proton, so yay, you can play the placeholder cash-in title with the broken combat system and recast voice actors but not the other three that you actually want to play. Oh, well.

Both Arkham Knight and Arkham City require dotnet which Proton does not has built-in. Eventually you'll also need to spoof an AMD card for DXVK If you are on NVidia.

Arkham Knight requires dotnet452. I haven't yet spend some time to see what it needs to get dotnet452 to install correctly. I guess it should be something like 'winetricks dotnet452' with a system wine(*) into the proton prefix.

Arkham City has a similar confirmed workaround (haven't tried it myself) https://github.com/ValveSoftware/Proton/issues/309#issuecomment-415633734

* with a wine version that knows how to handle a dotnet installation into a 64bit prefix. Afaik wine 3.12 could do that, but 3.13 and 3.14 had regressions in it that prevented this. I'm now waiting for wine 3.15 to enter the Fedora repositories..
Leopard Sep 11, 2018
Quoting: Guest
Quoting: Scoopta
Quoting: GuestIt's sad that people would be upset that Proton is a separate project than Wine. Valve has in my opinion done everything right with this. They've hired the actual Wine devs to make changes and made everything 100% open source which allows the Wine devs to backport anything they want into the Wine project. Valve needed this to be a separate project so they wouldn't be hindered by philosophies that differ from their own. They are a business and they need it to work for gaming, not office packages, not utilities, etc. They needed this project to be separate to make leaps and bounds and reach their long-term goals without snags. Whoever is upset about that simply isn't using their heads about how much Valve has done for the Wine project and Linux gaming.
I don't think that's what he was saying. I think he was saying people are salty that DXVK is not part of wine although maybe I misunderstood.

That even so the logic is ignorant to be upset about that. This is why.

1) The project was already a translation layer before Valve hired him, so it was probably far less time and effort keeping it that way than moving everything over into Wine.

2) Moving into Wine could have caused issues with differing reasons as I've already suggested, such as different philosophies.

3) Having it as a translation layer promotes the use of the layer in non-wine based projects ( Hello native ports! )

4) It's all open source, if Wine wants it, it's up for the taking, so what's the problem?

4-) Wine has a strict rule. They only accept C language , while DXVK is C++.
wojtek88 Sep 11, 2018
Quoting: jensArkham City has a similar confirmed workaround (haven't tried it myself) https://github.com/ValveSoftware/Proton/issues/309#issuecomment-415633734
I am the author of last compatibility report and I can confirm this workaround works. Just change OS to WinXP with winecfg, press play and wait little bit long during first run, while .NET is installed (about 45 minutes). After that Batman Arkham City works fine.
Liam Dawe Sep 11, 2018
Quoting: jarhead_h
Quoting: YoRHa-2B
Quoting: EndeavourAccuracyUnless I'm mistaken, Beat Saber uses DirectX and OpenVR (for Vive), which means DXVK is part of what allows me to play the game on Linux with Proton. I'm quite happy with Valve's request and your work.
Yep, Beat Saber uses the DXVK+OpenVR combo. It was the game for me to work with, and it was a pain to get it to work because of how VR initialization works. In case of Vulkan, you need to enable certain device and instance extensions, which basically requires initialization to happen in a specific order, but D3D11 doesn't have *any* restrictions on that, so a lot of trickery was required to get it to work.

I don't know who you are exactly, but whatever part you had in this THANK YOU. This may just seem like just a game thing, but that game thing will open up the world to a future without being dependent on any big tech giant like Microsoft or Apple. We cannot thank any of you enough for that.
Psst, he's the creator of DXVK ;)
Nevertheless Sep 11, 2018
Quoting: Brisse
Quoting: crabelCurious:
What do the Wine people themselves think? I mean, the actual developers/contributors?

https://www.codeweavers.com/about/blogs/jwhite/2018/8/22/wine-and-steam-a-major-milestone

:)

Yeah right! Thank you Codeweavers as well of course!
lucifertdark Sep 11, 2018
Quoting: EndeavourAccuracySo... which game? :P
Yes enquiring minds would like to know. ;)

ps I can also confirm the workaround for Arkham City works very well.
TheRiddick Sep 12, 2018
"good port", yes it seems we only get a handful of those which is something the anti-wine community forgets, there are plenty of Linux native games on my list that work better with their windows version via dxvk then native...
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring 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!
The comments on this article are closed.