https://bugs.winehq.org/show_bug.cgi?id=56603
Bug ID: 56603 Summary: 32-bit OpenGL programs crash with GLX error when run on nVidia RTX3070 in Wine Product: Wine Version: 9.7 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: m.kolesinski@gmail.com Distribution: --- Severity: normal
There appears to be some sort of bug/incompatibility with Wine, 32-bit OpenGL programs, and the official nVidia graphics drivers for Linux.
When testing an old 32-bit OpenGL game based on the Quake III engine (Medal of Honor: Allied Assault, or MOHAA), I get unexpected crashes at application launch, with the following 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: 29067 Current serial number in output stream: 29068
This occurs when testing with a 32-bit or 64-bit prefix, and has occurred on every version of Wine (and Proton) I've ever tried, going back several years, up to the current version (9.7). I have also tried numerous versions of the nVidia drivers, and am currently on the latest version (550.76-1). I am using Arch Linux.
The game runs without this issue on the integrated AMD GPU (Ryzen 5800h APU). The error occurs only for Wine programs. The error occurs if using the discrete (RTX 3070 laptop) GPU in "dedicated" mode, as well as in hybrid mode ("prime-run ...").
Non-wine 32-bit OpenGL programs do not experience this problem. E.g. glxgears32 works fine on the discrete GPU. Similarly, 64-bit e.g. Vulkan games work fine on the integrated and discrete GPU.
This same game in a native Linux binary (MOHAA) also runs without experiencing this issue (it has other issues unrelated to this, as the binary was a pre-release beta...I mention it for comparison purposes).
I have researched this problem at length, and although there are anecdotes of others running into these same errors with various OpenGL programs, there is no apparent solution and I suspect most people just give up, or end up using different hardware.
--- Comment #1 from m.kolesinski@gmail.com --- *** Bug 56604 has been marked as a duplicate of this bug. ***
--- Comment #2 from Ken Sharp imwellcushtymelike@gmail.com --- Does the demo also suffer from this issue?
--- Comment #3 from m.kolesinski@gmail.com --- I found a demo download and tested it, can confirm it suffers from this issue.
https://games.softpedia.com/get/Games-Demo/Medal-of-Honor-Allied-Assault-Sin...
The game launches normally using the AMDGPU drivers on the 5800h, but throws the same GLX error with the RTX3070.
https://bugs.winehq.org/show_bug.cgi?id=56603
m.kolesinski@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |ArchLinux URL| |https://games.softpedia.com | |/get/Games-Demo/Medal-of-Ho | |nor-Allied-Assault-Single-P | |layer.shtml
https://bugs.winehq.org/show_bug.cgi?id=56603
Bernhard Übelacker bernhardu@mailbox.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bernhardu@mailbox.org
--- Comment #4 from Bernhard Übelacker bernhardu@mailbox.org --- Might this be related to a too long opengl extension string? Is the error still happening when limiting it for the nvidia driver via e.g. environment "export __GL_ExtensionStringVersion=17700"? (Similar to what mesa/AMD/Intel does with "export MESA_EXTENSION_MAX_YEAR=2002".)
https://bugs.winehq.org/show_bug.cgi?id=56603
--- Comment #5 from m.kolesinski@gmail.com --- (In reply to Bernhard Übelacker from comment #4)
Might this be related to a too long opengl extension string? Is the error still happening when limiting it for the nvidia driver via e.g. environment "export __GL_ExtensionStringVersion=17700"? (Similar to what mesa/AMD/Intel does with "export MESA_EXTENSION_MAX_YEAR=2002".)
As best I can tell, no. I have tried this and a host of other, nVidia driver-specific workarounds to no avail. None of them changes this behavior. Also, the native Linux binary doesn't suffer from this problem (I realize that's not a guarantee, as the codebase for the Linux version will have some differences).
https://bugs.winehq.org/show_bug.cgi?id=56603
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download
https://bugs.winehq.org/show_bug.cgi?id=56603
Aleksey akontsevich@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |akontsevich@gmail.com
--- Comment #6 from Aleksey akontsevich@gmail.com --- Have same crash on MOHAA with NVIDIA GeForce RTX 3050, openSUSE Tumbleweed, wine-9.10:
======================================================================== Game: Medal of Honor. Classic Trilogy Version: 1.11 / 2.15 / 2.40 Wine: wine-9.10 (using system Wine) ========================================================================
002c:err:winediag:getaddrinfo Failed to resolve your host name IP 002c:err:wineboot:process_run_key Error running cmd L"C:\windows\system32\winemenubuilder.exe -a -r" (126). 0080:fixme:wineusb:add_usb_device Interface 3 has 2 alternate settings; using the first one. 0080:fixme:wineusb:add_usb_device Interface 4 has 2 alternate settings; using the first one. 007c:fixme:wineusb:query_id Unhandled ID query type 0x5. 007c:fixme:wineusb:query_id Unhandled ID query type 0x5. 007c:fixme:wineusb:query_id Unhandled ID query type 0x5. 007c:fixme:wineusb:query_id Unhandled ID query type 0x5. 007c:fixme:wineusb:query_id Unhandled ID query type 0x5. 007c:fixme:wineusb:query_id Unhandled ID query type 0x5. 007c:fixme:wineusb:query_id Unhandled ID query type 0x5. 007c:fixme:wineusb:query_id Unhandled ID query type 0x5. 007c:fixme:wineusb:query_id Unhandled ID query type 0x5. 007c:fixme:wineusb:query_id Unhandled ID query type 0x5. 007c:fixme:wineusb:query_id Unhandled ID query type 0x5. 0104:fixme:msg:ChangeWindowMessageFilter c057 00000001 014c:err:virtual:virtual_setup_exception stack overflow 896 bytes addr 0x72676f72 stack 0x16f0c80 (0x16f0000-0x16f1000-0x1ef0000)