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.
Quoting: YoRHa-2BQuoting: 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.
What about moving the interesting bits and pieces from vkd3d directly into DXVK, thus adding DX12 support to DXVK? I mean you have to to something with your time considering DX11 support is now mostly complete in DXVK.. :)
Last edited by jens on 14 October 2018 at 6:42 pm UTC
Quoting: jensWhat about moving the interesting bits and pieces from vkd3d directly into DXVK, thus adding DX12 support to DXVK? I mean you have to to something with your time considering DX11 support is now mostly complete in DXVK.. :)
Wouldn't that be unnecessary duplication? It's better to make both projects work together if possible, than to duplicate them.
Last edited by Shmerl on 14 October 2018 at 7:00 pm UTC
Quoting: GuestQuoting: ShmerlAre you using patched Wine? Wine didn't catch up yet.
Thank you for the reply. I didn't use patched Wine. But the patch doesn't look like something that I can do myself so I'll be waiting for the next Wine version.
If you wish, I uploaded a pre-patched Wine Source at this link: https://github.com/doitsujin/dxvk/issues/695#issuecomment-429553614
There's also pre-built binary for Debian, it contains only vanilla Wine + Stream Output patch.
There's also the Lutris source if you want which comes with E-Sync/PBA/Staging and Stream Output all in one if you wish: https://github.com/lutris/wine/tree/esync-staging-pba
Hope it helps in some way :)
Last edited by Avehicle7887 on 15 October 2018 at 6:25 pm UTC
R.I.P dreams -_-
HD 4000
Gen 7 still doesn't show ahh well!
Last edited by RossBC on 17 October 2018 at 9:24 am UTC
Quoting: Guesthttps://cgit.freedesktop.org/mesa/mesa/commit/?id=b4eb029062a944c428d6214447a852318e36016e&_sm_au_=iVVrKbQFZqTF5Kr7
For those using radv from mesa-git, VK_EXT_transform_feedback looks to have just been added.
Mesa is gradually moving to Gitlab, so here it's in the new repo:
https://gitlab.freedesktop.org/mesa/mesa/commit/b4eb029062a944c428d6214447a852318e36016e
Bugzilla hasn't been moved yet.
See more from me