The main use case of this is in porting. So if someone wanted to make a native port of their game, this library would make it potentially much easier.
Both use wine iirc, Op is talking about applications written directly for Linux.
Edit: im wrong
The README does not say which DirectX version they are targeting. The screenshot show "DirectX 0". Looking at the code, I see a directory called "d3d9", but those files are mostly empty.
So yeah... nothing to see here. Maybe in 5 or 10 years.
Here's the roadmap: https://github.com/...
TL;DR: they're targeting DX9 initially, later expanding to include DX12.
That repo is just pure trolling, read the "Improved performance" section and open some source files and you'll understand why.
Because DirectX apps typically do not only call into DirectX but also the win32 API, since DirectX has historically been a windows-only API. Merging this into mesa would only bloat mesa while not really offering support for many applications at all.
This is a great project in general, but it's quite overshadowed by DXVK which does the same except it translates DX calls to vulkan ones and has excellent success rates in proton and derivatives. I guess this is mildly useful for systems that don't support vulkan but want to run DX apps in raw wine or simply for people who wish not to use DXVK - competition is good for the ecosystem.
This is barely explained and the readme gave me more questions than answers.
I immediately thought it’s going to be a library for Wine to use instead of DXVK/VKD3D.
If that’s only for developers to build Linux ports, very little to no real-world use is expected, unless it’s somehow can offer effortless conversions. Even then developers are likely to prefer relying on Proton/Wine to simply have single binary for both platforms, rather than maintaining them separately.
I wonder how much work it will take for drivers to support the API… Or maybe it won’t need anything in Mesa and will somehow work directly on DRM with strictly platform-agnostic code if that’s possible?
Offering better performance than the likes of DXVK is brave to put it mildly. In many scenarios it can already match or surpass native Windows performance even when running Windows binaries.
OpenGL is actually older. Microsoft just spent a lot of time and money on DX adoption.
Overall, it's the native API of Windows and that has the largest user base. On the other hand, many non-game professional apps use OpenGL/Vulkan
It takes 75 lines to draw a blank window. It takes like three in CoreAnimation in macOS. We really need an OSS take on CoreAnimation but I'm also fine leaving the graphics work to a game engine.
Lower level means you have more control over the small details. However, that also means that you have to reimplement some things from scratch, while higher level frameworks do those things for you.
There’s a few Linux “native” releases on steam that use compatibility layers based on wine behind the scenes, which I think is probably what they mean.
Also, this feels wrong, but… Is wine native? It’s mostly just the windows api implemented as Linux libraries. What’s the distinction that makes it “non-native” compared to other libraries? Is SDL non-native too?
"Native" means "no platform specific runtime translation layers". An app built on SDL does the translation to the final rendering API calls at compile time. But a DX app running on Linux has to do jit translation to ogl/vk when running through wine, which is just overhead.
My understanding is that DXVK implements the Direct3D API using vulkan behind the scenes. So, sure, there might be a bit of overhead versus a more direct implementation. Frankly this doesn’t feel all that different from something like SDL to me. Shaders will have to be compiled into shaders that Vulcan understands, but you could just think of this as part of the front end for shader compilation.
I do agree that it feels less native to me too (particularly over the rest of wine), but it’s sort of an arbitrary distinction.
How is this different from DXVK?
It's made to interact directly with the GPU instead of translating it to the equivalent GPU call in Vulkan.
How would a native implementation be better than DXVK? Wouldn't develops still need to port the rest of their app to Linux to use it? At that point, you could still just include DXVK, would the performance really be that much worse?
Afaik the only way to avoid translating into OpenGL and Vulkan would be to write native drivers. Stuff like gallium-nine, for instance. Is that what this project is doing? Though obviously that's just for the Direct3D side of things and there's a lot more to DirectX than just that. Still, it's hard not to question how much of this is just duplicating work already done for Wine.
Excited to see how this plays out. Looks like there's basically nothing implemented yet though.
Holly Fuck!
One of these days I'll be able to play quake in QubesOS
Is anyone still playing Xonotic? I used to play Nexuiz back before they sold the name, and tried Xonotic recently, only to find servers with maximum one other player idling around. I genuinely thought it's dead.
I know 4 major servers: Feris and 3 Jeff's. Feris is most populated one during European night. And there are pickup servers that usually play 4v4. Also smaller servers exist that occasionally get players like xonotic-relax.ru.
Doesn't work in Qubes
I use Qubes btw. But you wouldnt even know.
Aha, oops!
Midnight posting on mobile makes one prone to spelling errors.
For what its worth my preference with hand held devices remains as the Steam Deck =P
I guess you could say I am an ally of the Ally?
So... What's the advantage compared to Wine? It's hard to imagine people will start developing for DX on Linux instead of going for Vulkan, and that DX alone is enough to run a lot of games for Windows. Or am I completely off here?
Now that Proton is mature, devs generally benefit of getting two platforms while targeting only one.
I don't see many devs going for Vulkan and native ports, so a DirectX on Linux port has even less chances. On top of that, Khronos has the backing of several tech giants, this DX on Linux project is built by 2 random guys with no support whatsoever.
I'm guessing, but I bet old games built for DirectX (almost every game made between 1995 and 2005) will run a lot better on Linux with 1:1 DirectX support.
Probably more exciting to retrogamers then anyone else.
Do games no longer use directx?
I'm pretty sure DirectX is still in use, but it used to be 95% of all games needed it and also crashed with a "you need to configure DirectX exactly and only the way this game demands". That seems to have calmed down, at least.
It's right in the description
This is a Open Source DirectX implementation for Linux, providing native support for DirectX-based applications and games, without relying on Wine's Windows compatibility layer.
Yeah, but in some cases you already achieve better-than-native performance in wine and you don't need Wine just for DX. You would most likely need to explicitly support Linux in addition to Windows, even if Linux could handle DX.
I assume you can expect some performance benefit if you were to integrate this into Wine, but I kinda doubt it will gain too much traction outside of that. Vulkan already exists as a well supported, cross-platform solution and engines are already using it.
This appears to be about reducing complexity and surface area for failure in running DirectX games
Any time you are translating function calls from one interface to another there is more opportunity for mistakes and incompatibilities. If you are implementing the DX functions directly to make the expected hardware calls directly, just as they're implemented in Windows, you are less likely to have unexpected behavior when combining everything.
Think of it like a language translator. It's the difference between translating between two languages or between three. If you write something that is intended to be translated from English to Mandarin by Mitch Microsoft, but Mitch isn't available, so you need to have Larry Linux translate it, which would you rather: translate it from English to Greek, then Greek to Mandarin, or directly from English to Mandarin?
thanks for using Leebra!
go to feed...
I don't think there would be any real benefit to this over DXVK and VKD3D
save