DXVK [GitHub], the awesome Vulkan-based D3D11 and D3D10 implementation that's used in Wine and Steam Play's Proton has just put out version 0.90 after the latest release of the Vulkan API.
As mentioned in the weekend roundup (typical of this to happen just after…), the Vulkan API now has the VK_EXT_transform_feedback extension supported. This does require you to update your GPU drivers. To quote my own article since it's important and I don't want people to miss it:
NVIDIA have already pushed out 396.54.09 of their beta Vulkan driver to support it, along with AMD's RADV for Mesa getting a bunch of patches for it and Intel's ANV driver also getting patches.
The biggest addition in DXVK 0.90 is support for Stream Output, which fixes rendering issues in a lot of games when run in Wine with DXVK. Here's what the developer said:
Implemented Stream Output (#695, #135). This fixes rendering issues in a lot of games, most notably missing characters or NPCs in Unity Engine-based games and The Witcher 3, Nvidia Hairworks in The Witcher 3 and Final Fantasy XV, as well as issues in Quake Champions, Overwatch, and other games.
As for bug fixes and improvements, here's what made it in:
- Assassin's Creed Odyssey: Slight reduction of CPU overhead
- Bioshock: Fixed race condition in D3D10 mode (#655)
- Dark Souls 3: Fixed bug causing resolution changes not to be applied correctly
- The Evil Within: Fixed regression causing random geometry to be rendered
Really amazing progress as always, can't wait to see this included in Steam Play seems like it's going to be quite a difference. It doesn't seem like there's much left for DXVK to do, although there's no doubt small performance improvements could still be made with enough time.
* https://raw.githubusercontent.com/ValveSoftware/wine/266d11ab06d55dc4ca34e5842cc3ab945b6e9b0b/include/wine/vulkan.h
* https://raw.githubusercontent.com/ValveSoftware/wine/266d11ab06d55dc4ca34e5842cc3ab945b6e9b0b/include/wine/vulkan_driver.h
* https://raw.githubusercontent.com/ValveSoftware/wine/266d11ab06d55dc4ca34e5842cc3ab945b6e9b0b/dlls/winevulkan/make_vulkan
* https://raw.githubusercontent.com/ValveSoftware/wine/266d11ab06d55dc4ca34e5842cc3ab945b6e9b0b/dlls/winevulkan/vulkan_thunks.c
* https://raw.githubusercontent.com/ValveSoftware/wine/266d11ab06d55dc4ca34e5842cc3ab945b6e9b0b/dlls/winevulkan/vulkan_thunks.h
* https://raw.githubusercontent.com/ValveSoftware/wine/266d11ab06d55dc4ca34e5842cc3ab945b6e9b0b/dlls/winevulkan/vulkan.c
* https://raw.githubusercontent.com/ValveSoftware/wine/266d11ab06d55dc4ca34e5842cc3ab945b6e9b0b/dlls/winevulkan/vulkan_private.h
* https://raw.githubusercontent.com/ValveSoftware/wine/266d11ab06d55dc4ca34e5842cc3ab945b6e9b0b/dlls/winevulkan/winevulkan.spec
Last edited by Shmerl on 14 October 2018 at 4:06 am UTC
Result (rotfiends are working in TW3):
Last edited by Shmerl on 14 October 2018 at 4:44 am UTC
Quoting: Avehicle7887Quoting: elmapul"Nvidia Hairworks in The Witcher 3 and Final Fantasy XV,"
so, hair works is finally working?
In Witcher 3 it surely works, looks rather nice I must say as well, except it killed my fps by 10-15 :p
I just spent over an hour in Vikings, Stream Output works like a charm :)
whats your rig?
Quoting: ShmerlWine patch (closer to upstream): https://github.com/doitsujin/dxvk/files/2475485/winevulkan-transform-feedback.patch.txtThat min FPS number and most stuttering can be avoided with pba patch. I'm surprised that it's now part of upstream wine already.
Result (rotfiends are working in TW3):
Quoting: C_Monk3yThat min FPS number and most stuttering can be avoided with pba patch. I'm surprised that it's now part of upstream wine already.
PBA shouldn't be relevant for it, it's for wined3d.
Quoting: Sil_el_motNow i only have to wait till this get implemented in ProtonIt already is implemented in Proton (just based on a DXVK build that is three days old).
Quoting: Blauer_HungerI'd really like to see compatibility with vkd3d and implementations of the other D3D versions in wine by using a common dxgi.dllI'm already working on hacking vkd3d support into dxvk somehow. It's not an ideal solution, but it should work since vkd3d doesn't interact with DXGI all that much.
A "common" dxgi.dll to host all of vkd3d, dxvk, and wined3d is just impossible to achieve. DXGI is not designed to allow that, and there are significant drawbacks: vkd3d doesn't even implement proper device selection, and with the current state of Wine's DXGI, it just can't.
DXVK can be refactored to kind of work with wine's dxgi provided that wine implements a DXVK-compatible swap chain, but we'd lose a number of things (device selection like vkd3d, some game compatibility hacks which cannot be fixed otherwise, probably the HUD, and all that stuff).
At the same time, DXVK can't ever support wined3d because d3d11 and d3d10 are tightly coupled to their respective DXGI implementation.
Last edited by YoRHa-2B on 14 October 2018 at 10:41 am UTC
Quoting: GuestBut Nvidia Hairworks doesn't work with this combination for me. Am I doing something wrong? Or is this feature not implemented right now?
Are you using patched Wine? Wine didn't catch up yet.
See more from me