Performance optimizations are also a key focus of this release. The library has improved constant folding, allowing operations such as mad(), round(), and trigonometric functions like sin() to be efficiently handled at compile time, resulting in faster execution and cleaner code. Additionally, the libvkd3d-shader component has been refined to manage branched code in HLSL shaders more effectively, extending its capabilities down to shader model 2.0 and earlier.
The update also includes added support for integer types in conditional expressions across shader models 1 to 3, ensuring accurate calculations without needing alternative methods. Furthermore, various legacy Direct3D bytecode instructions—including bem, tex, texbem, texbeml, and texcoord—are now correctly translated, enhancing the compatibility of older content. The team is also working on improving support for Metal Shading Language (MSL) and OpenGL Shading Language (GLSL).
To assist developers in working with older Direct3D bytecode, new tools such as vkd3d_shader_d3dbc_source_info and vkd3d_shader_scan_thread_group_size_info have been introduced. The release also addresses bugs from prior versions, including updates to the vsir_program_iterator_insert_before_and_move() function, which is aimed at improving shader compilation processes.
In summary, vkd3d 1.18 represents a significant advancement in translating Direct3D content for Vulkan platforms, providing developers with enhanced capabilities and a more reliable experience. The source code for this release is available through the usual channels, including the WineHQ download page and GitLab.
Looking ahead, the vkd3d team is likely to continue refining the library, potentially expanding support for newer shader models and enhancing performance metrics even further. As Vulkan gains traction in the gaming industry, updates like these will be crucial for developers aiming to optimize their applications for diverse hardware configurations
vkd3d 1.18 released
The vkd3d team has released version 1.18, a significant update to their Direct3D-to-Vulkan translation library that brings numerous improvements and new features. The update includes advancements such as support for CreateCommandList1() on ID3D12Device4 interface, improved performance through constant folding, and enhanced shader execution flow. Additionally, the team has refined older systems by adding support for integer types in conditional expressions and translating Direct3D bytecode instructions from the past.
