We get LUIDs from winevulkan if supported by the wine build in question in order to avoid problems like these, we should never hit the code you linked in practice. If your wine doesn't support this, there's nothing we can do on our end since LUIDs are expected to be compatible across APIs.
We get LUIDs from
winevulkanif supported by the wine build in question in order to avoid problems like these, we should never hit the code you linked in practice. If your wine doesn't support this, there's nothing we can do on our end since LUIDs are expected to be compatible across APIs.
Ah I see. I am using CodeWeaver's version of Wine via Crossover 24.0.2, which is Wine 9.0. There is this patch which just was merged a few days ago https://gitlab.winehq.org/wine/wine/-/merge_requests/5616 which should be applicable to me as I am on Wayland, when this comes out in Wine 10.0 I will come back to this issue and see if it still occurs.
@XerTheSquirrel Is this still an issue?
I can give it a try later today.
Same issue still. At normal startup, there is a black screen and the background music plays.
I can at least enter the game via testing maps via the editor, however accessing the options menu freezes the display since it uses the web interface.
msvproc.dllx1 2024-05
Software information
Warcraft 3: Reforged
System information
Apitrace file(s)
N/A Currently.
Weird Stuff
So Warcraft 3 Reforged uses Direct3D 11 for rendering graphics. When in the Main Menu or the "Options -> Options" menu in the actual game it uses a Chromium based browser that is in a separate process called
BlizzardBrowser.exeto render whatever fancy GUI they use. Initially it fails becausemsvproc.dllis missing, copying that over from Windows 10 and setting it to native in Wine fixes that. The log constantly spits out "Failed to find the GPU adapter with the specified Luid." and thenBlizzardBrowser.exejust dies and tries again. I believe what is happening is that Warcraft 3 is saying the GPU is at the given LUID and since the browser is a completely separate process, it is unable to find that LUID because looking at the code in https://github.com/doitsujin/dxvk/blob/c1f665f92be1b6bcd8ef53afbdbb684424cb4942/src/util/util_luid.cpp#L22 generates a new random LUID. There may need to be some kind of IPC or similar so the Chromium browser can render in the context of Warcraft 3 which is in another process.The documentation on
GetAdapterLUIDsays:So, from this I believe that the ID has to be cached somewhere so it can be found again rather than randomly generated.
Note that using built-in DLLs does not work, as in this happens regardless of DXVK being used. Additionally, it matters not whether Virtual Desktop is being used or not.
Log files
The log
BlizzardBrower.exegenerates:Browser-20240519T032605.log
ps aux | grep BlizzardBrowser:psaux.txt
The editor working just fine:
The game completely failing because
BlizzardBrowser.exejust keeps failing over and over and spits the same log file constantly without end: