We do often include affiliate links to earn us some pennies. See more here.

In late December last year, the developer of the VK9 project emailed us about hitting another milestone with their project to get Direct3D 9 applications to run with Vulkan.

The 23rd milestone required "the implementation of basic shader support":

It does this by taking the older Direct X "DXBC" bytecode and converts it to SPIR-V, the cross-API standard from Khronos Group which Vulkan uses.

An interesting project for sure, will be fun to see what happens with it and if anyone actually makes use of it in future. You can see the full blog post here, the GitHub page is here.

Article taken from GamingOnLinux.com.
Tags: Vulkan
20 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.
11 comments
Page: 1/2»
  Go to:

Duckeenie Jan 7, 2018
Would it be viable to fold this into wine at some point?
Ehvis Jan 7, 2018
View PC info
  • Supporter Plus
Quoting: DuckeenieWould it be viable to fold this into wine at some point?

Before that even becomes a question, it needs to be better than what Wine currently has. If that will even happen, it will be quite some time in the future.
Duckeenie Jan 7, 2018
Quoting: Ehvis
Quoting: DuckeenieWould it be viable to fold this into wine at some point?

Before that even becomes a question, it needs to be better than what Wine currently has. If that will even happen, it will be quite some time in the future.

Assuming the project is not being done purely for fun or research purposes, it's a question that needs to be asked before the project even begins. Vulkan doesn't do Direct Input, Sound, Networking etc. VK9 would have to at least work in conjunction with WINE if it is to be any use for playing games on Linux.
MayeulC Jan 7, 2018
Well, I think this can always be made to work with wine at a later date. It is, after all, a reimplementation of the D3D API, a bit like gallium nine. I wouldn't be surprised if there could be some code sharing there on the wine side. Wine can take care of the rest of the DX APIs.

This could end up being interesting on embedded devices where Vulkan is the only available API.
neowiz73 Jan 7, 2018
I'm surprised VK9 isn't in the list for apps for favorite FOSS project. to me this has been one of / if not the most important development for Wine, it will help in getting a dx10/11 to Vulkan implementation working later. which will help with less degradation of performance in wine, not to mention the ability to port things over from DX9 to Android as well as Windows ports.
CSTM does a wonderful job, but I think Vulkan will help a lot more.


Last edited by neowiz73 on 7 January 2018 at 6:34 am UTC
Guest Jan 7, 2018
Quoting: neowiz73I'm surprised VK9 isn't in the list for apps for favorite FOSS project.

And yet early on i saw some people ( not on this forum ) claim it was a waste of time
neowiz73 Jan 7, 2018
Quoting: Guest
Quoting: neowiz73I'm surprised VK9 isn't in the list for apps for favorite FOSS project. to me this has been one of / if not the most important development for Wine, it will help in getting a dx10/11 to Vulkan implementation working later. which will help with less degradation of performance in wine, not to mention the ability to port things over from DX9 to Android as well as Windows ports.
CSTM does a wonderful job, but I think Vulkan will help a lot more.

FYI, there already is an ongoing approach for dx11->vulkan for wine. It evolves very fast..: DXVK
And the wine devs themselfes are working on DX12->vulkan :).

Cu,
Christian

right, I thought I had read that before as well. but couldn't remember all the details. that name of the project helps a ton thanks :) i had it starred but not watched, doh...


Last edited by neowiz73 on 7 January 2018 at 7:07 pm UTC
TheRiddick Jan 8, 2018
I can imagine it being great for NVIDIA users but RADV users have some issues with Vulkan performance under Linux, so until that happens the inbuilt Wine D3D9 methods are likely to be better for AMD users for a while.

I think this project is quite good for the future of old game support, I can imagine sometime in the future everyone running their d3d9 games through wine and linux for that backward compatibility. Sure they still work under Windows, but for how long I wonder.... I envision a future where MS drop DX9 and DX11 support in their OS eventually.


PS. This guys website does not work with Chromium spins such as Vivaldi, not sure if it works with Chromium/Chrome.

Nevermind, turns out Ublock thinks his articles are ads. LOL


Last edited by TheRiddick on 8 January 2018 at 4:38 am UTC
roothorick Jan 8, 2018
Quoting: TheRiddickI can imagine it being great for NVIDIA users but RADV users have some issues with Vulkan performance under Linux, so until that happens the inbuilt Wine D3D9 methods are likely to be better for AMD users for a while.

Given the D3D->OGL overhead of Wine itself, unlikely. D3D->Vulkan requires a great deal less overhead, so VK9/DXVK would probably still be faster. Not to mention, you're moving a significant chunk of that overhead to the (usually) significantly-less-busy GPU.


Last edited by roothorick on 8 January 2018 at 9:20 pm UTC
roothorick Jan 9, 2018
Quoting: GuestSome things might actually be slower (or not, really no idea!). Mostly it comes from dynamic state updates: GL can just do them, where as Vulkan requires an entirely new pipeline to be constructed.

You can have multiple pipelines and switch between them, though; VK9/DXVK could compile a "pipeline cache" consisting of the last hundred or so state combinations the application requested. Since the vast majority of applications repeatedly cycle through the same states each frame, this more-or-less emulates what the application would be doing were it a native Vulkan application, and in any case all but destroys the performance impact of that particular architectural difference.

Meanwhile in OpenGL land, there really isn't a 1:1 mapping between DX9/DX11 states and OpenGL states, and a lot of things in DX11 are impossible in OpenGL, requiring some really complicated workarounds, and in a few cases copying framebuffers to system RAM and doing it in software. Yes, really. wined3d resorts to software rendering under certain circumstances. (Invariably, there's a fundamentally different way to achieve the same effect purely through OGL calls, but that doesn't help you much when you don't know what you're gonna do in advance.)


Last edited by roothorick on 9 January 2018 at 3:03 pm 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.
Buy Games
Buy games with our affiliate / partner links: