
Windows could be required to use some Linux apps (Embrace, extend, extinguish) - greatgib
https://twitter.com/greatgib42/status/1262820102300479492
======
greatgib
My comment, copied from the other thread on the same subject:

Here is how I would sum it up:

* They create a new kernel file descriptor: /dev/dxg

* With this, on the Linux of WSL, it is like a direct "pipe" to a Windows host graphical stack.

* So it means that they can put code in Linux application code that will use Windows proprietary graphical stacks, like DirectX through /dev/dxg.

* And so, clearly, this Linux app will not work inside a normal Linux computer that is not a "guest" of Windows.

Now, you can see the "Embrace" and the "Extend"?

And to well understand the article, the following things have to be stressed:
This is not just something to render a Window or something like that, it is a
special "passthrough" api to all the things that are provided by Windows GPU
stack/drivers.

For example, they give the example of Cuda compute API, but also, they kind of
"built" DirectX sdk itself for Linux (debian, ubuntu, ...), but still the
proprietary closed blob that "apps" are expected to use, but that will rely on
/dev/dxg.

Also, if you want to use anything OpenGL on the Linux WSL, they will ensure
that it is translated to DX on Linux side, before going through the same
special DirectX api. The good thing would probably have been to do the
opposite side, ensure that Windows has the proper OpenGL support to be able to
pass gpu acceleration to the Windows host.

------
greatgib
Here is the blog post from Microsoft with all the scary details:
[https://devblogs.microsoft.com/directx/directx-heart-
linux](https://devblogs.microsoft.com/directx/directx-heart-linux)

