https://bugs.winehq.org/show_bug.cgi?id=49631
Bug ID: 49631 Summary: Wine does not fill in Vulkan device LUID property when running in Virtual Desktop Product: Wine Version: 5.13 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winevulkan Assignee: wine-bugs@winehq.org Reporter: sashok.olen@gmail.com Distribution: ArchLinux
Hi. Previously, this game has an issue with Vulkan backend not being selectable in the video settings, even in normal fullscreen mode, but in recent versions this issue was resolved by Wine exposing Vulkan device LUID property. However, it doesn't seem to work when the game is running in Virtual Desktop mode, it just reverts to its DX11 backend, which suggests there is a bug with LUID property when Wine is in virtual desktop mode. I've additionally tested this with standalone vkd3d-proton and it also reports that it can't find LUID property when in virtual desktop. I could attach a log for WWZ but I honestly see no need as there seems to be absolutely nothing Vulkan related in the output and you can reproduce the issue with standalone (Windows DLL) Vkd3d-Proton as well.
https://bugs.winehq.org/show_bug.cgi?id=49631
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |o.dierick@piezo-forte.be
--- Comment #1 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello
A WINEDEBUG=+vulkan debug log will surely have vulkan related contents.
Could you provide a link to the standalone vkd3d-proton application, so that we don't have to search for it?
Regards.
https://bugs.winehq.org/show_bug.cgi?id=49631
--- Comment #2 from Alexandr Oleynikov sashok.olen@gmail.com --- I think the easiest way to reproduce this would be to just run the vulkan test from dlls/vulkan-1/tests/ with virtual desktop enabled. If I run it in normal mode, there are no faliures and LUID is set properly: vulkan.c:212: Device 'GeForce GTX 1070', device UUID: {b2da86a7-e117-c09f-d36d-f9052e8030fa}, driver UUID: {76fcdb08-9c22-4d0e-c1c5-24b51a62a1f5}, device LUID: 00000000:000003f2. But in virtual desktop, 2 tests fails and LUID is zeroed out: vulkan.c:212: Device 'GeForce GTX 1070', device UUID: {b2da86a7-e117-c09f-d36d-f9052e8030fa}, driver UUID: {76fcdb08-9c22-4d0e-c1c5-24b51a62a1f5}, device LUID: 00000000:00000000.
https://bugs.winehq.org/show_bug.cgi?id=49631
Liam Middlebrook loothelion@nvidia.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |loothelion@nvidia.com
--- Comment #3 from Liam Middlebrook loothelion@nvidia.com --- I was discussing this with Alexandr in a chat earlier today and noted that the issue likely stems from some difference in the RROutput values being passed into vkGetRandROutputDisplayEXT() in order to match up VkPhysicalDevice objects to RROutput objects. This is how winex11 gets the vulkan_uuid information, so that winevulkan can query it and be sure that it's grabbing the proper LUID for a given VkPhysicalDevice.
I think the immediate questions here are:
1. Is winex11 hitting the path where get_gpu_properties_from_vulkan() is being called for any x11drv_gpu objects?
2. If so, what are the differences in RROutputs being passed to vkGetRandrOutputDisplayEXT()? Under a virtual desktop is there ever a case where the call succeeds?
https://bugs.winehq.org/show_bug.cgi?id=49631
Zhiyi Zhang zzhang@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zzhang@codeweavers.com Ever confirmed|0 |1 Status|UNCONFIRMED |NEW
--- Comment #4 from Zhiyi Zhang zzhang@codeweavers.com --- get_gpu_properties_from_vulkan() is not getting called in Virtual Desktop mode. It requires the XRandR display device handler. I think we can make it work in Virtual Desktop mode as well, e.g., by passing the primary randr output to vkGetRandROutputDisplayEXT if RandR is available even if running in Virtual Desktop.
https://bugs.winehq.org/show_bug.cgi?id=49631
--- Comment #5 from Zhiyi Zhang zzhang@codeweavers.com --- We can probably just return the host primary GPU for Virtual Desktop. The Virtual Desktop mode is used mostly for virtualizing the monitor, not the GPUs. So it's probably alright. I will look into this.
https://bugs.winehq.org/show_bug.cgi?id=49631
--- Comment #6 from Zhiyi Zhang zzhang@codeweavers.com --- Created attachment 67842 --> https://bugs.winehq.org/attachment.cgi?id=67842 patch
https://bugs.winehq.org/show_bug.cgi?id=49631
--- Comment #7 from Alexandr Oleynikov sashok.olen@gmail.com --- The patch works, thanks!
https://bugs.winehq.org/show_bug.cgi?id=49631
Zhiyi Zhang zzhang@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED Fixed by SHA1| |aadae4d1ea173dfa30e09d6cc81 | |6bb174e35f90d
--- Comment #8 from Zhiyi Zhang zzhang@codeweavers.com --- Upstreammed in aadae4d1ea173dfa30e09d6cc816bb174e35f90d
https://bugs.winehq.org/show_bug.cgi?id=49631
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 5.16.