Check out our Monthly Survey Page to see what our users are running.

NVIDIA sneakily put out a little open source release recently, with a part of the NVAPI SDK now under the MIT license.

This was mentioned by the crew working on the DXVK translation layer in the VKx Discord, who sent along word to me as well. NVAPI is NVIDIA's core software development kit that allows direct access to NVIDIA GPUs and drivers on all Windows platforms.

Now, that doesn't sound interesting for Linux obviously but here's why this actually is important: in the NVAPI Open Source SDK, it directly mentions that the contained "nvapi.h" file that's now provided under the MIT license was done to enable "open source re-implementations of NVAPI for Windows emulation environments"—so the Wine and Proton compatibility layers are what they're getting at without naming them directly.

What's the issue with it then, why did this need to be done? Well, DXVK at times has to work around the NVAPI and it ends up spoofing an AMD GPU for some titles to do this, otherwise they just don't work on Linux with Wine / Proton. Speaking briefly to Philip Rebohle, creator of DXVK, they mentioned to me that there's going to be things that aren't possible to implement but it does now give them something to work with.

It's just another small piece of a much larger puzzle of getting Windows games running on Linux.

You can find the download here if interested. More info on the NVAPI here.

Article taken from GamingOnLinux.com.
45 Likes, Who?
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG, Humble Store and Paradox Interactive. See more here.
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.
See more from me
19 comments
Page: 1/2»
  Go to:

NVidia still suprises me from time to time o.O

Everytime you think they will never properly support anything open source they do.

Once PhysX was open sourced, their contribution to the Vulkan Ray tracing extensions and now NVAPI o.O What next their entire driver or at least proper support for Nouveau? :D
redneckdrow 10 Jul
B-b-b-but WINE Is Not an Emulator!

Good Lord, I hate recursive acronyms, don't you? But in the strictest sense, WINE is more of a compatibility layer; the difference between the two for an end-user is mostly splitting cat hairs.
Hori 10 Jul
Quoting: redneckdrowB-b-b-but WINE Is Not an Emulator!

Good Lord, I hate recursive acronyms, don't you? But in the strictest sense, WINE is more of a compatibility layer; the difference between the two for an end-user is mostly splitting cat hairs.
I both love and hate recursive acronyms at the same time.
It's like that annoying guy with bad jokes but who you still miss when he's not around.
compholio 10 Jul
A few of these APIs are also used by wine-staging, as there's a bunch of features in Windows games that you cannot support without them. (PhysX in Borderlands 2 will refuse to run, for example)
mirv 10 Jul
View PC info
  • Supporter Plus
Quoting: Vortex_AcheronticNVidia still suprises me from time to time o.O

Everytime you think they will never properly support anything open source they do.

Once PhysX was open sourced, their contribution to the Vulkan Ray tracing extensions and now NVAPI o.O What next their entire driver or at least proper support for Nouveau? :D

Strictly speaking they haven't open sourced NVAPI, but instead the interfaces so that NVAPI can be re-implemented within wine. I mean it's still nice, but it really is the bare minimum.


Last edited by mirv on 10 July 2020 at 8:11 pm UTC
Shmerl 10 Jul
Quoting: Vortex_AcheronticEverytime you think they will never properly support anything open source they do.

Mostly when they don't care. When they do, good luck waiting for them to open anything.
TheRiddick 11 Jul
This is also something that is probably required to get RTX features available under Proton/Wine


Last edited by TheRiddick on 11 July 2020 at 4:12 am UTC
jens 11 Jul
View PC info
  • Supporter
Quoting: mirv
Quoting: Vortex_AcheronticNVidia still suprises me from time to time o.O

Everytime you think they will never properly support anything open source they do.

Once PhysX was open sourced, their contribution to the Vulkan Ray tracing extensions and now NVAPI o.O What next their entire driver or at least proper support for Nouveau? :D

Strictly speaking they haven't open sourced NVAPI, but instead the interfaces so that NVAPI can be re-implemented within wine. I mean it's still nice, but it really is the bare minimum.

Well, this is more or less the same that AMD is doing for AMD AGS. The AGS SDK contains the headers and libraries to link against, see https://github.com/GPUOpen-LibrariesAndSDKs/AGS_SDK

So yeah, it is not making NVAPI Open Source, but still the standard way how these kind of SDK's are offered imho.

Having the headers officially available makes it much easier to provide "alternative" implementation. For AMD AGS there is already https://github.com/doitsujin/dxvk-ags which maps the interesting AGS methods to DXVK.

I've tried a bit in the past to apply this to NVAPI and succeeded for one method. Having the headers now makes part of it much less of a Google try-and-error approach. For the curious: https://github.com/jp7677/dxvk-nvapi
Note that I do have a programming background, but not in C or C++. I'm also barely familiar with the graphics domain. I know how to spell "shader" and have a rough picture how to position the different 3D API's, but that's it ;). This repository is really just intelligent copy/paste from DXVK-AGS and several other sources, so all credits should mostly go there. It's also quite a hassle to set this up for minimal gain.


Last edited by jens on 11 July 2020 at 1:42 pm UTC
Nibelheim 11 Jul
A small step for Nvidia but a big step for the implementation under Wine / Proton!
appetrosyan 11 Jul
Good news. It’s never too late to become FOSS friendly.

Spoiler, click me
unless you’re Microsoft.
While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

We have no adverts, no paywalls, no timed exclusive articles. Just 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!

You need to Register and Login to comment, submit articles and more.


Or login with...