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.
102 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 checked 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.
See more from me
The comments on this article are closed.
56 comments
Page: «4/6»
  Go to:

Kiwii Sep 12, 2018
Quoting: lucifertdark
Quoting: EndeavourAccuracySo... which game? :P
Yes enquiring minds would like to know. ;)

That has got to be NieR:Automata, with Philip Rebohle's accounts on here and reddit being named after (I think) the main character from that game, and that game also being the first real game he got to work with DXVK.
TheRiddick Sep 12, 2018
Game developers are still finding it easier to get more framerate with DX12 over vulkan. Not sure why but games that offer both next gen renderer options seem to show DX12 doing better... Not completely sure why that happens yet.
RussianNeuroMancer Sep 12, 2018
Quoting: TheRiddickGame developers are still finding it easier to get more framerate with DX12 over vulkan. Not sure why but games that offer both next gen renderer options seem to show DX12 doing better... Not completely sure why that happens yet.
They won't offer anything. They just initialize D3D12 context and use D3D11 API calls inside it. D3D12 "support" in released games is marking gimmick.
KillYourFM Sep 12, 2018
This was a fantastic read, thank you.
But I need to know which game it was? That's a compelling story!
Phlebiac Sep 12, 2018
Quoting: LeopardDX11... covers Windows 7 , 8 too.

I think we'll continue to see Microsoft attempting to force everyone onto Windows 10. They have already been actively working to ensure that older Windows will fail on newer hardware.
https://www.techrepublic.com/article/microsoft-to-end-support-for-windows-7-and-8-on-new-pc-hardware/

Windows 7 has been out of "mainstream support" since January 2015, and will be completely dropped in January 2020. Windows 8.1 is also in "extended support", and is good for 3 years after that, but seriously - that's like running Windows Me or Windows Vista (if you're going to run a crappy OS, why stick with one of the crappiest versions of it?).
https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet

Will Windows 7 get killed off as effectively as Windows XP? I guess it depends on how many glaring security holes are left unpatched. Once the browser vendors (Google/Mozilla) stopped delivering browser updates for XP, it was pretty much game over. Google Chrome relies on the operating system for security, so it was DOA; Mozilla browsers handle it in their own code, so they could have kept XP support going if they chose, but ever since the "we only care about Firefox" guys took over, they are happy to kill off anything that isn't new and shiny.

Back to Linux gaming - I hope that developers continue to realize that Vulkan is a much better bet than DX12, but some of them are much smarter than others. :-p
Phlebiac Sep 12, 2018
Quoting: jensEventually you'll also need to spoof an AMD card for DXVK If you are on NVidia.

I saw this referenced for something else (GTA 5?); got any background info on why this is necessary / why it works? Is it so that it doesn't try to run some Nvidia-specific code, like GameWorks/HairWorks/PhysX/<lockin-of-the-month>?
FitzOmega Sep 12, 2018
Quoting: KillYourFMThis was a fantastic read, thank you.
But I need to know which game it was? That's a compelling story!

Nier:Automata. It's the game that DXVK supported as a passion project and the dev uses the heroin name as a username "YoRHa 2B" (and a fanart of another character from the same game as an avatar).

If you didn't try it yet, it's an amazing game.


Last edited by FitzOmega on 12 September 2018 at 7:28 am UTC
johndoe Sep 12, 2018
Quoting: PhlebiacI saw this referenced for something else (GTA 5?); got any background info on why this is necessary / why it works? Is it so that it doesn't try to run some Nvidia-specific code, like GameWorks/HairWorks/PhysX/<lockin-of-the-month>?

As far as I know nvapi is not implemented in wine 3.7 (also Proton) but in higher versions of wine.
When these games are run on nvidia they try to use nvapi but cannot find it.
The workaround is to spoof AMD to prevent this.

Yes, I think these games try to use specific nvidia features like PhysX, etc.

I'm pretty sure that Valve will soon update Proton to wine 3.15 or maybe upcoming 3.16.

Next DXVK v0.72 will have AMD spoof support for GTA V, Dragon Quest XI and Batman: Arkham Knight.
Look here...
https://github.com/doitsujin/dxvk/commits/master (September 7 and 8 comits).

And last but not least... THANK YOU VERY MUCH Philip and all others who made this possible.
Corben Sep 12, 2018
Great insight. Thank you for this nice interview!
tuubi Sep 12, 2018
View PC info
  • Supporter Plus
Quoting: PhlebiacIs it so that it doesn't try to run some Nvidia-specific code, like GameWorks/HairWorks/PhysX/<lockin-of-the-month>?
Can it really be called lockin if it doesn't actually lock you in? :)

Quoting: johndoeAs far as I know nvapi is not implemented in wine 3.7 (also Proton) but in higher versions of wine.
There's a stub implementation of nvapi in wine-staging. It apparently enables physx, but nothing else. Of course this is enough for many games.

Quoting: johndoeThe workaround is to spoof AMD to prevent this.
The official recommendation is to disable nvapi and nvapi64 for the prefix in winecfg, and that should be enough. EDIT: Nevermind.


Last edited by tuubi on 12 September 2018 at 9:40 am UTC
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.