https://bugs.winehq.org/show_bug.cgi?id=56421
Bug ID: 56421 Summary: Wine crash with a X error Product: Wine Version: 9.4 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winex11.drv Assignee: wine-bugs@winehq.org Reporter: titan.costa@gmail.com Distribution: ---
When I run winecfg, I get the X error:
X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 156 (NV-GLX) Minor opcode of failed request: 43 () Serial number of failed request: 147 Current serial number in output stream: 148 00ec:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded. 00ec:err:winediag:nodrv_CreateWindow L"The explorer process failed to start."
The regression shows the following causes the crash:
commit d287548c77350b81faa946b0977dffcbfcce9b83 => BAD Author: Zhiyi Zhang zzhang@codeweavers.com Date: Wed Feb 28 10:22:23 2024 +0800
Revert "winex11.drv: Handle X error from vkGetRandROutputDisplayEXT()."
This reverts commit 6f9d20806e821ab07c8adf81ae6630fae94b00ef.
6f9d208 was committed to work around a Nvidia driver bug that can cause vkGetRandROutputDisplayEXT() to generate an X exception and crash applications. The bug is later fixed in Nvidia driver 450.56.11 and newer. Thus 6f9d208 is no longer necessary on the newer Nvidia drivers.
Then after 18ae96e, another bug in the Nvidia driver can cause vkGetRandROutputDisplayEXT() to hang forever when XLockDisplay() is called before vkGetRandROutputDisplayEXT() and this bug is still not fixed and affects multiple applications. Reverting 6f9d208 allows us to work around the vkGetRandROutputDisplayEXT() hang bug because then it no longer calls XLockDisplay() before vkGetRandROutputDisplayEXT().
Nvidia driver 455 was released on September 9th 2020 so hopefully the fix is already widespread. We could theoretically still keep 6f9d208 on older Nvidia drivers by doing version checks. But it's more straightforward to remove the workaround since it's not a bug of Wine.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53428
Reverting the commit fixes the crash.
Environment is:
Ubuntu 22.10 NVIDIA GeForce RTX 3070 Laptop Driver version is 535.54.03
https://bugs.winehq.org/show_bug.cgi?id=56421
Christian Costa titan.costa@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |d287548c77350b81faa946b0977 | |dffcbfcce9b83 CC| |titan.costa@gmail.com, | |zzhang@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=56421
--- Comment #1 from Zhiyi Zhang zzhang@codeweavers.com --- So vkGetRandROutputDisplayEXT() still generates X errors with NVidia drivers, which means https://bugs.winehq.org/show_bug.cgi?id=49407 is still not fixed.
https://bugs.winehq.org/show_bug.cgi?id=56421
Zhiyi Zhang zzhang@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE
--- Comment #2 from Zhiyi Zhang zzhang@codeweavers.com --- Marking duplicate.
*** This bug has been marked as a duplicate of bug 49407 ***
https://bugs.winehq.org/show_bug.cgi?id=56421
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #3 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Closing duplicate