No doubt some of our readers will be in for a busy weekend testing, with another release of DXVK now officially available.
Developer Philip Rebohle put out DXVK 1.4.3 this evening which adds in a new file format for the state cache, which should give smaller files. The state cache from previous versions of DXVK should be converted automatically, so no manual effort is required.
Additionally, even more performance is continuing to be squeezed out of this Vulkan layer for Wine as it has a reduction in CPU overhead. It was noted that it should be of particular benefit to those games that have a large number of different shaders. Frankly, I'm amazed Rebohle can somehow still push the performance even further.
On top of that, a few bug fixes were added into the mix too:
- Fixed incorrect barriers in case graphics shaders write to UAVs.
- Fixed incorrect MSAA sample positions being reported to shaders.
- Fixed some MSVC compiler warnings (#1218).
Find DXVK on GitHub.
It's not that amazing when...Considering this is an outside layer, that the game developers don't give any thought to and it's all unofficial running on an unsupported platform, it's amazing.
It's not that amazing when you see games like Monster Hunter World achieve just 70% of FPS compared to Windows.. Why do some games have such low performance while others can perform, even better than Windows sometimes? Aside from that DXVK is truly amazing.
Both Wine and DXVK still are "translation" layers that convert Windows calls to Linux/vulkan calls. These imply some overhead, as it's not a 1:1 translation with all the APIs outside Wine and DXVK being developed specifically for it, like those on Windows.
It's not that amazing when you see games like Monster Hunter World achieve just 70% of FPS compared to Windows.. Why do some games have such low performance while others can perform, even better than Windows sometimes? Aside from that DXVK is truly amazing.
3/4 of the performance isn't that bad, if you can play at 70~80fps on Windows, you can obviously hit 60fps with some adjustment on Linux.
It IS really amazing
It's not that amazing when you see games like Monster Hunter World achieve just 70% of FPS compared to Windows.. Why do some games have such low performance while others can perform, even better than Windows sometimes? Aside from that DXVK is truly amazing.Different games do vastly different things, and with this little data it's impossible to tell why it runs poorly on your system (are you CPU-bound? GPU-bound?).
Monster Hunter World in particular is known to be crazy (read: stupid) with its multithreading, which can cause all sorts of performance issues on wine especially if you aren't using fsync. Should it be DXVK's fault, then yeah, Nvidia's D3D11 driver still has a significant edge and that isn't likely to ever change, it's a translation layer after all.
Considering this is [...] running on an unsupported platform, it's amazing.While there's truth to that, we're really looking at getting as close to parity as possible, and just 70% of Windows performance is pretty bad to be perfectly honest. Especially when most games get ≥85% these days, at least on AMD GPUs.
Fair enough! Still continues to impress me though and all these improvements you keep doing should add up nicely over time :)Considering this is [...] running on an unsupported platform, it's amazing.While there's truth to that, we're really looking at getting as close to parity as possible, and just 70% of Windows performance is pretty bad to be perfectly honest. Especially when most games get ≥85% these days, at least on AMD GPUs.
While there's truth to that, we're really looking at getting as close to parity as possible, and just 70% of Windows performance is pretty bad to be perfectly honest. Especially when most games get ≥85% these days, at least on AMD GPUs.Do you think that it will be easier to get closer to Windows performance with VKD3D for DX12 games than with DXVK and DX11 games? Considering the similarities DX12 and Vulkan share and the opposite for DX11 and Vulkan.
Do you think that it will be easier to get closer to Windows performance with VKD3D for DX12 games than with DXVK and DX11 games? Considering the similarities DX12 and Vulkan share and the opposite for DX11 and Vulkan.Believe it or not, but mapping D3D12 to Vulkan is harder than D3D11. Yes, the APIs are similar in concept, but there are many little details which make it rather painful and introduce overhead in vkd3d. D3D11 might need more code, but it's fairly straight-forward for the most part since its abstractions are higher-level.
That said, in games where D3D12 is significantly better than D3D11, you'll find that vkd3d beats dxvk by a fair margin as well, so it's by no means slow, but there are quite a few nasty issues to sort out.
Do you think that it will be easier to get closer to Windows performance with VKD3D for DX12 games than with DXVK and DX11 games? Considering the similarities DX12 and Vulkan share and the opposite for DX11 and Vulkan.Believe it or not, but mapping D3D12 to Vulkan is harder than D3D11. Yes, the APIs are similar in concept, but there are many little details which make it rather painful and introduce overhead in vkd3d. D3D11 might need more code, but it's fairly straight-forward for the most part since its abstractions are higher-level.
That said, in games where D3D12 is significantly better than D3D11, you'll find that vkd3d beats dxvk by a fair margin as well, so it's by no means slow, but there are quite a few nasty issues to sort out.
Looked over the list at https://wiki.winehq.org/Vkd3d_known_issues and oboy you where not kidding. The difference in binding model and heap descriptors does not sound fun at all, reducing overhead there is going to be a major pain.
I would like some coding to be done to allow better freesync or VRR support, maybe allowing it to function regardless of monitor(s) setups. That be neat, atm gsync and freesync only work once second monitors are disabled and only if flipping is enabled and compositing is disabled, its got quite a long list of CONDITIONS to get variable refresh rate working.
And even after all that is met, you can still end up with screen flicker like I experience even tho it doesn't exist under Windows (which lets me run at lower VRR rates btw).
Looked over the list at https://wiki.winehq.org/Vkd3d_known_issues and oboy you where not kidding. The difference in binding model and heap descriptors does not sound fun at all, reducing overhead there is going to be a major pain.
What are the advantages of DX12 over Vulkan for developers? I can only think of the Xbox support.
I would like some coding to be done to allow better freesync or VRR support, maybe allowing it to function regardless of monitor(s) setups.All of that is down to the Linux graphics stack, games/dxvk/whatever can't really do anything at all to improve the situation.
What are the advantages of DX12 over Vulkan for developers? I can only think of the Xbox support.Well, for starters, D3D12 works on all Windows 10 systems and has excellent driver support from all vendors.
Windows drivers shipping with Windows Update sometimes don't come with Vulkan support -> games straigt-up don't work. Driver quality is also way worse (AMD is pretty bad, Intel seems to be especially bad, only Nvidia is acceptable these days - and that also was a whole different story ~2 years ago).
Tools are fine these days, but developers who are used to the Microsoft ecosystem will want to use Microsoft's tools, which obviously don't support Vulkan either.
For end users, Vulkan games are always annoying because stuff like OBS doesn't support Vulkan properly.
There's a ton of reasons why we probably won't see many Vulkan games on Windows, but the API itself isn't really one of them (I've seen people rant about how much better designed D3D12 is, but I'd wholeheartedly disagree there).
World of Warcraft Classic started having heavy freezes after reaching to new areas or completing quests, like 1-2 sec freezes.Sounds like your average shader compiler stutter. 1.4.3 does change some shader code and WoW doesn't really make use of the state cache as well as it could.
There have been no other changes in the code that could cause this.
WoW Classis uses DirectX9 doesn't it? is that not D9VK?WoW classic only supports D3D11.
Last edited by YoRHa-2B on 19 Oct 2019 at 1:15 pm UTC
Is it primarily harder because there aren't solutions in place or because the way D3D12 works? Like if Vulkan were to have feature parity with D3D12, if that's right way to put it, would that make mapping to Vulkan easier?Do you think that it will be easier to get closer to Windows performance with VKD3D for DX12 games than with DXVK and DX11 games? Considering the similarities DX12 and Vulkan share and the opposite for DX11 and Vulkan.Believe it or not, but mapping D3D12 to Vulkan is harder than D3D11. Yes, the APIs are similar in concept, but there are many little details which make it rather painful and introduce overhead in vkd3d. D3D11 might need more code, but it's fairly straight-forward for the most part since its abstractions are higher-level.
That said, in games where D3D12 is significantly better than D3D11, you'll find that vkd3d beats dxvk by a fair margin as well, so it's by no means slow, but there are quite a few nasty issues to sort out.
Is it primarily harder because there aren't solutions in place or because the way D3D12 works? Like if Vulkan were to have feature parity with D3D12, if that's right way to put it, would that make mapping to Vulkan easier?Both. There are some extensions in the works that will solve some problems, but others are caused by fundamental differences in the API - Vulkan is a lot more explicit, and that's where things get really nasty. Right now, vkd3d technically violates the Vulkan spec quite badly because of that, and fixing it will be very hard and potentially come at a cost.
Last edited by YoRHa-2B on 19 Oct 2019 at 5:09 pm UTC
err: DxvkMemoryAllocator: Memory allocation failed
err: Size: 33554432
err: Alignment: 256
err: Mem flags: 0x6
err: Mem types: 0x681
err: Heap 0: 1105 MB allocated, 969 MB used, 1149 MB allocated (driver), 7616 MB budget (driver), 8192 MB total
err: Heap 1: 976 MB allocated, 934 MB used, 1035 MB allocated (driver), 11955 MB budget (driver), 11955 MB total
err: DxvkMemoryAllocator: Memory allocation failed
See more from me