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.

Today, the Wine developers officially announced that vkd3d for translating Direct3D 12 to Vulkan in Wine has reached 1.0.

Here's what they said in the release announcement:

This is the first release of vkd3d. A lot of Direct3D 12 features are still missing and bugs are expected. The current version was tested mainly with demo applications. A number of features that are being worked on have been deferred to the next development cycle. This includes in particular geometry and tessellation shaders support, various shader translation improvements, as well as various improvements for core Direct3D 12 methods.

vkd3d includes libvkd3d, which is the main component. It's the 3D graphics library built on top of Vulkan and they say it has an "API very similar to Direct3D 12". They've already implemented a lot of Direct3D 12 features including Graphics and compute pipelines, Command lists, command allocators and command queues, Descriptors and descriptor heaps and so on.

It also includes libvkd3d-shader, a library which will do the translation of shader model 4 and 5 bytecode to SPIR-V. They say the API for it is not yet set in stone. Again, plenty of work has been done and a lot is already supported, but they do specifically mention that Shader model 5.1 is not yet supported.

It also includes libvkd3d-utils, which they say has simple implementations of many functions which could be useful for source ports of Direct3D 12 applications.

So many fun things going on with Wine right now it's hard to keep track of it all. 

You can see their release announcement here.

Article taken from GamingOnLinux.com.
Tags: Vulkan, Wine
18 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. You can also follow my personal adventures on Bluesky.
See more from me
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
22 comments Subscribe
Page: 1/2»
  Go to:

Shmerl 23 May 2018
Hopefully Wine developers can also explain to Khronos how they need to use stream output (transform feedback ) with Vulkan in vkd3d.

So far no one answered their last question here.


Last edited by Shmerl on 23 May 2018 at 6:34 pm UTC
pete910 23 May 2018
View PC info
  • Supporter Plus
Hopefully Wine developers can also explain to Khronos how they need to use stream output (transform feedback ) with Vulkan in vkd3d.

So far no one answered their last question here.

How would this help perf/what games would need this?
Avehicle7887 23 May 2018
Hopefully Wine developers can also explain to Khronos how they need to use stream output (transform feedback ) with Vulkan in vkd3d.

So far no one answered their last question here.

I never understood how that feature is present in OpenGL but not yet available in Vulkan.
edmondo 23 May 2018
Hopefully Wine developers can also explain to Khronos how they need to use stream output (transform feedback ) with Vulkan in vkd3d.

How would this help perf/what games would need this?

Here you can find some games using stream output:
DXVK: Stream Output not supported (#135)
Leopard 23 May 2018
Hopefully Wine developers can also explain to Khronos how they need to use stream output (transform feedback ) with Vulkan in vkd3d.

So far no one answered their last question here.

How would this help perf/what games would need this?

Witcher 3 needs this afaik
Shmerl 23 May 2018
Witcher 3 needs this afaik

Quite a few D3D11 games need it. D3D12 also has it, so it's a missing feature for vkd3d as well.
Zelox 23 May 2018
Have anyone tryed witcher 3 with this and got it working?
Shmerl 24 May 2018
Have anyone tryed witcher 3 with this and got it working?

Witcher 3 is using D3D11, and vkd3d is for D3D12, so it's not useful for it. It might be useful for their future game, if CDPR will foolishly use D3D12 instead of Vulkan for Cyberpunk 2077.


Last edited by Shmerl on 24 May 2018 at 12:05 am UTC
Shmerl 24 May 2018
I never understood how that feature is present in OpenGL but not yet available in Vulkan.

Apparently it was planned, but wasn't included in the initial release. Not all OpenGL features are present in Vulkan. Some are missing if they can be implemented using existing Vulkan features. But transform feedback is quite difficult to implement.
TheRiddick 24 May 2018
Witcher 3 works with DXVK, but physX hair doesn't work and there are some NPCs suffering triangle-hell mutations. Apparently related to missing Stream output.
I have a funny feeling DXVK will figure out a workaround that just resolves it another way instead of relying on VulkanAPI to do it. Hopefully.
Shmerl 24 May 2018
I have a funny feeling DXVK will figure out a workaround that just resolves it another way instead of relying on VulkanAPI to do it.

So far there is no efficient way to do it. I hope this will be resolved though.
TheRiddick 24 May 2018
Well it could be passed to OpenGL to be done. Not sure how well that will work however, could kill performance, but then again we are talking about a small part of a game being affected here not the entire render pipeline.
Guppy 24 May 2018
:o maybe bloodbowl2 will finally work now
pete910 24 May 2018
View PC info
  • Supporter Plus
Hopefully Wine developers can also explain to Khronos how they need to use stream output (transform feedback ) with Vulkan in vkd3d.

How would this help perf/what games would need this?

Here you can find some games using stream output:
DXVK: Stream Output not supported (#135)

There's a few , Although 4 of them have native support so kinda moot for those.

I take it its a DX11 thing only or does DX12 have it too ?
Shmerl 24 May 2018
Well it could be passed to OpenGL to be done. Not sure how well that will work however, could kill performance, but then again we are talking about a small part of a game being affected here not the entire render pipeline.

That would probably require OpenGL 4.6 if at all possible. Mesa is still not ready with it.
pete910 24 May 2018
View PC info
  • Supporter Plus
Well it could be passed to OpenGL to be done. Not sure how well that will work however, could kill performance, but then again we are talking about a small part of a game being affected here not the entire render pipeline.

That would probably require OpenGL 4.6 if at all possible. Mesa is still not ready with it.

Well, It's OSS so get cracking! I'm sure a man of your calibre could soon whip it into shape say a week ?
Shmerl 24 May 2018
Well, It's OSS so get cracking!

Several Mesa developers are working on it. It's quite a big task, that requires switching to NIR first.
pete910 24 May 2018
View PC info
  • Supporter Plus
Well, It's OSS so get cracking!

Several Mesa developers are working on it. It's quite a big task, that requires switching to NIR first.

Well, Stop posting in here and crack on !

You may stop winging at what's missing then in mesa when you appreciate the work/time involved.
Shmerl 24 May 2018
Well, Stop posting in here and crack on!

Be my guest and help with that effort if you can :) I recommend you to refrain from telling people to stop posting here though for no valid reason.


Last edited by Shmerl on 24 May 2018 at 6:32 pm UTC
pete910 27 May 2018
View PC info
  • Supporter Plus
Well, Stop posting in here and crack on!

Be my guest and help with that effort if you can :) I recommend you to refrain from telling people to stop posting here though for no valid reason.

Seems my post disappeared so I'll repeat.

Please refrain from bitching about lack of features in Mesa like you are entitled or something.
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.