https://bugs.winehq.org/show_bug.cgi?id=49407
Bug ID: 49407 Summary: Display device initialization fails due to vkGetRandROutputDisplayEXT() causing X exception on dual Nvidia / Intel GPU configuration (regression). Product: Wine Version: 5.10 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: winex11.drv Assignee: wine-bugs@winehq.org Reporter: pgofman@codeweavers.com Distribution: ---
Wine can't create any window on the mentioned configuration after 145cfce1135a7e59cc4c89cd05b572403f188161:
winex11.drv: Add a Vulkan UUID property for GPUs. A Vulkan UUID property is used to find the corresponding GPU in SetupAPI. Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com Signed-off-by: Liam Middlebrook lmiddlebrook@nvidia.com Signed-off-by: Alexandre Julliard julliard@winehq.org
$ xrandr --listproviders
Providers: number : 2 Provider 0: id: 0x1b8 cap: 0x1, Source Output crtcs: 4 outputs: 4 associated providers: 1 name:NVIDIA-0 Provider 1: id: 0x1e9 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 4 associated providers: 1 name:modesetting
The exception happens when vkGetRandROutputDisplayEXT is called with Nvidia device for Provider 1 (modesetting):
X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 155 (NV-GLX) Minor opcode of failed request: 31 () Serial number of failed request: 147 Current serial number in output stream: 147
This looks like a bug between between vulkan implementation and xrandr, as vulkan spec for vkGetRandROutputDisplayEXT clearly says that it should return VK_NULL_HANDLE for missing output.
Still I guess we might need a temporary solution as it looks like Wine is going to be totally broken on such configurations until this is fixed elsewhere.