Check out our Monthly Survey Page to see what our users are running.
We do often include affiliate links to earn us some pennies. See more here.

vkd3d 1.7 is out now for the Wine translation layer

By - | Views: 25,818

The Wine team just announced the release of vkd3d version 1.7, their Direct3D 12 to Vulkan translation layer. Not to be confused with VKD3D-Proton, Valve's own fork of it with a focus on gaming with Proton.

Here's the main highlights of vkd3d 1.7:

  • Support for many more HLSL features and intrinsics.
  • Much improved support for the Direct3D shader model 1/2/3 HLSL profiles.
  • Public vkd3d-shader API for parsing and serialising DXBC blobs.
  • Miscellaneous bug fixes.

The full changes:

*** libvkd3d-shader

- New features for the HLSL source type:
  - Support for calling user-defined functions.
  - Support for array parameters to user-defined functions.
  - Much improved support for the Direct3D shader model 1/2/3 profiles.
  - Support for the SV_DispatchThreadID, SV_GroupID, and SV_GroupThreadID
    compute shader system-value semantics.
  - Support for the optional "offset" parameter of the texture object Load()
    method.
  - Support for the all() intrinsic function.
  - Support for the distance() intrinsic function.
  - Support for the exp() and exp2() intrinsic functions.
  - Support for the frac() intrinsic function.
  - Support for the lit() intrinsic function.
  - Support for the reflect() intrinsic function.
  - Support for the sin() and cos() intrinsic functions.
  - Support for the smoothstep() intrinsic function.
  - Support for the sqrt() and rsqrt() intrinsic functions.
  - Support for the step() intrinsic function.
  - Support for the transpose() intrinsic function.
  - Support for the case-insensitive variants of the "float" and "dword" data
    types.
  - Partial support for minimum precision data types like "min16float". These
    are currently interpreted as their regular counterparts.
  - Improved constant propagation support, in particular to constant
    propagation through swizzles.

- HLSL static variables are now properly zero-initialised.

- The Direct3D shader model 4 and 5 disassembler outputs sample counts for
  multi-sampled resource declarations.

- New interfaces:
  - vkd3d_shader_parse_dxbc() provides support for parsing DXBC blobs.
  - vkd3d_shader_serialize_dxbc() provides support for serialising DXBC blobs.
  - vkd3d_shader_free_dxbc() is used to free vkd3d_shader_dxbc_desc
    structures, as returned by vkd3d_shader_parse_dxbc().
  - The VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE compile option
    can be used to specify whether SPIR-V shaders targeting Vulkan
    environments should write point sizes for geometry and tessellation
    shaders. If left unspecified, point sizes will be written.

Want help managing Wine on Linux? You can try BottlesLutris and the Heroic Launcher.

Article taken from GamingOnLinux.com.
14 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 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. Find me on Mastodon.
See more from me
3 comments

Pikolo Mar 25, 2023
WTF is a case-insensitive float? Case sensitiveness would normally be a feature for text data types, not numbers
whizse Mar 25, 2023
View PC info
  • Supporter
Quoting: PikoloWTF is a case-insensitive float? Case sensitiveness would normally be a feature for text data types, not numbers
https://gitlab.winehq.org/wine/vkd3d/-/commit/dd36215a00174a1db560021562bad84cd37e3071
AIUI, essentially it allows for declaring a variable using "float" or "FLOAT"?
Pikolo Mar 27, 2023
Quoting: whizse
Quoting: PikoloWTF is a case-insensitive float? Case sensitiveness would normally be a feature for text data types, not numbers
https://gitlab.winehq.org/wine/vkd3d/-/commit/dd36215a00174a1db560021562bad84cd37e3071
AIUI, essentially it allows for declaring a variable using "float" or "FLOAT"?
Didn't expect that! So it means some shaders are wrongly cased, DirectX's HLSL parser does not care and Wine will just have to work with it for compatibility.

Thank you for indulging my curiosity.


Last edited by Pikolo on 27 March 2023 at 11:40 am 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!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.