https://bugs.winehq.org/show_bug.cgi?id=51105
Constantine sullome@yandex.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sullome@yandex.com
--- Comment #5 from Constantine sullome@yandex.com --- Now that the game is officially out, I faced that same bug, tried to find a solution and found it. I am posting my experience here because:
1) a bit of research and experimentation was required on my part, current comments weren't enough to make the current game version to work; 2) I found no entry for Diablo 2 Resurrected on WineHQ, and this bug is the only place that currently can be found for help.
First of all, yes, patched DLL is required, and might be obtained from 2 sources: https://github.com/HansKristian-Work/vkd3d-proton/actions/runs/1130860939 https://github.com/lutris/vkd3d/releases/tag/v2.4L-2 That patched vkd3d-proton requires DXGI, so I installed one with `dnf install wine-dxvk-dxgi` (Fedora 34). More on that case can be read in https://github.com/HansKristian-Work/vkd3d-proton#using-vkd3d-proton
However, most important thing is that game uses it's own d3d12.dll now. It is located in the selected for installation folder.
For me, it was not enough to change drive_c/windows/system32/d3d12.dll It was not used. Game used this one: drive_c/Program Files (x86)/Diablo II Resurrected/d3d12.dll
After replacing both of those d3d12.dll with the x64 one from vkd3d-proton, (and configuring in winecfg to use it) game finally works and shows graphics.
It should also be noted that Battle.net periodically checks game files and notices changes in d3d12.dll, requiring user to update the game. It does this on some timer, so it is possible to update the game, replace DLL with the correct one and then start the game. But that fix should be applied after each update.