[Bug 59372] New: Regression: wine completely broken in the presence of non-graphics gl devices since 11.1
http://bugs.winehq.org/show_bug.cgi?id=59372 Bug ID: 59372 Summary: Regression: wine completely broken in the presence of non-graphics gl devices since 11.1 Product: Wine Version: 11.1 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: critical Priority: P2 Component: -unknown Assignee: wine-bugs@list.winehq.org Reporter: devnull@uvos.xyz Distribution: --- Created attachment 80319 --> http://bugs.winehq.org/attachment.cgi?id=80319 glxinfo output Hi, I run a machine with a bit of an unusual set of devices: 1x AMD RX 7900 XTX 3x AMD MI100 CDNA accelerators The CDNA devices are not GPUS, they have no rendering hardware, they however are exposed as opengl devices via radeonsi, this is so that you can use them to execute compute shaders only, you can not create a graphics pipeline them. In wine 11.0 everything works fine, but starting in wine 11.1 no wine process can run successfully (not even winecfg), as wine seams to insist on attempting to create a graphics que on one of the mi100s, no combination of DRI_PRIME or other environment variables seams to dissuade wine from trying this. All other glx/egl clients work fine and use the RX 7900 XTX as expected. I am running an x11 session. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #1 from uvos <devnull@uvos.xyz> --- When run, any wine 11.1 process will hard hang (requiring sigkill) with this message: radeonsi: error: can't create a graphics context on a compute chip -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 Austin English <austinenglish@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |hardware, regression --- Comment #2 from Austin English <austinenglish@gmail.com> --- Please run a regression test: https://gitlab.winehq.org/wine/wine/-/wikis/Regression-Testing -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #3 from uvos <devnull@uvos.xyz> --- bisected to 55f3f7f08b93165d35d703dfca21dcdff51364ed -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 Olivier F. R. Dierick <o.dierick@piezo-forte.be> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |o.dierick@piezo-forte.be Regression SHA1| |55f3f7f08b93165d35d703dfca2 | |1dcdff51364ed --- Comment #4 from Olivier F. R. Dierick <o.dierick@piezo-forte.be> --- (In reply to uvos from comment #3)
bisected to 55f3f7f08b93165d35d703dfca21dcdff51364ed
Hello, There is a field above labelled 'Regression SHA1' for that. I've filed it for you. Regards. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #5 from Olivier F. R. Dierick <o.dierick@piezo-forte.be> --- Hello, According to a comment on reddit [1], DRI_PRIME is for OpenGL and the variable to set the vulkan device is MESA_VK_DEVICE_SELECT. I think Wine uses the vulkan backend by default nowadays. You don't explicitly say you tried this variable, so I suggest you try it if you didn't yet. [1] https://www.reddit.com/r/linux_gaming/comments/133u5d0/comment/jibi8zd/ Regards. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 Zeb Figura <z.figura12@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com --- Comment #6 from Zeb Figura <z.figura12@gmail.com> --- (In reply to Olivier F. R. Dierick from comment #5)
According to a comment on reddit [1], DRI_PRIME is for OpenGL and the variable to set the vulkan device is MESA_VK_DEVICE_SELECT.
Does that affect GL?
I think Wine uses the vulkan backend by default nowadays.
For what? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 Austin English <austinenglish@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |win32u CC| |rbernon@codeweavers.com --- Comment #7 from Austin English <austinenglish@gmail.com> --- commit 55f3f7f08b93165d35d703dfca21dcdff51364ed Author: Rémi Bernon <rbernon@codeweavers.com> Date: Tue Dec 2 22:10:18 2025 +0100 win32u: Make sysparam GPU devices less Vulkan specific. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #8 from uvos <devnull@uvos.xyz> --- Created attachment 80326 --> http://bugs.winehq.org/attachment.cgi?id=80326 vulkaninfo output -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #9 from uvos <devnull@uvos.xyz> --- mi100s are not supported by radv and are thus not offered as vulkan devices, see attached vulkaninfo output MESA_VK_DEVICE_SELECT of course has no impact because of this. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #10 from Olivier F. R. Dierick <o.dierick@piezo-forte.be> --- Hello, A debug trace may give a hint but I have no idea what the channels pertaining to the issue would be. https://gitlab.winehq.org/wine/wine/-/wikis/FAQ#how-can-i-get-a-debugging-lo... Regards. (In reply to Zeb Figura from comment #6)
(In reply to Olivier F. R. Dierick from comment #5)
According to a comment on reddit [1], DRI_PRIME is for OpenGL and the variable to set the vulkan device is MESA_VK_DEVICE_SELECT.
Does that affect GL?
I think Wine uses the vulkan backend by default nowadays.
For what?
Don't talk to me. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #11 from Rémi Bernon <rbernon@codeweavers.com> --- The blamed commit seems a bit weird, as it is supposed to only rename various things and move code around. The next commit is more likely to break something GL related, as it tries to enumerate GPU devices through EGL. Could you please attach the output of `eglinfo`, see if we can find something specific to ignore those devices? You can also try if disabling EGL fixes the issue, with: wine reg add "HKCU\\Software\\Wine\\X11 Driver" /v UseEGL /d N /f The default setting can then be restored with: wine reg delete "HKCU\\Software\\Wine\\X11 Driver" /v UseEGL /f -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #12 from uvos <devnull@uvos.xyz> --- Created attachment 80336 --> http://bugs.winehq.org/attachment.cgi?id=80336 eglinfo output -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #13 from uvos <devnull@uvos.xyz> --- Since wine hangs on initialization i can not run "wine reg add "HKCU\\Software\\Wine\\X11 Driver" /v UseEGL /d N /f" Wine hangs before the prefix is ever finishes initializing so there is no registry to change anyhow (unless i create one with wine 11.0) Eglinfo dosent show the mi100 devices at all - this is because it attempts to create a graphics context too and just skips the whole device when this fails. The main problem here is that wine seams to attempt to init all devices and hangs when context creation fails, if you make other egl clients try and use the mi100 for graphics (with DRI_PRIME and the like) the application in question (like eglgears) will simply exit with error: ``` $ DRI_PRIME=1 eglgears_wayland EGL_VERSION = 1.5 radeonsi: error: can't create a graphics context on a compute chip EGLUT: failed to create context ``` The main problem here is not that wine fails to identify the mi100 as a device to avoid, but that it hangs when context creation fails, which could happen for many other reasons than that the device happens to not support the requested configuration as is the case here. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 uvos <devnull@uvos.xyz> changed: What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1|55f3f7f08b93165d35d703dfca2 |df47c580190f06804b38cf0073b |1dcdff51364ed |b0d57e7877a6b --- Comment #14 from uvos <devnull@uvos.xyz> ---
The blamed commit seems a bit weird, as it is supposed to only rename various things and move code around. The next commit is more likely to break something GL related, as it tries to enumerate GPU devices through EGL.
You are right, i made a mistake, i just double checked and 55f3f7f08b93165d35d703dfca21dcdff51364ed is the last good commit the first bad commit is df47c580190f06804b38cf0073bb0d57e7877a6b -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #15 from uvos <devnull@uvos.xyz> --- Unfortionatly breaking in gdb at the place where wine hangs is also not of much help: #0 0xf7ffb579 in ?? () #1 0x00000247 in ?? () #2 0xffffb7b0 in ?? () Backtrace stopped: previous frame inner to this frame (corrupt stack?) -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #16 from Rémi Bernon <rbernon@codeweavers.com> --- Created attachment 80338 --> http://bugs.winehq.org/attachment.cgi?id=80338 additional traces for debugging Thanks, would you mind attaching the output from running wine with WINEDEBUG=+wgl environment variable, compiled with the attached patch? This should help figuring where the lockup (probably a crash) happens. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #17 from uvos <devnull@uvos.xyz> --- Created attachment 80346 --> http://bugs.winehq.org/attachment.cgi?id=80346 wine log with patch -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #18 from uvos <devnull@uvos.xyz> ---
Thanks, would you mind attaching the output from running wine with WINEDEBUG=+wgl environment variable, compiled with the attached patch? This should help figuring where the lockup (probably a crash) happens. With pleasure, see above.
-- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #19 from Rémi Bernon <rbernon@codeweavers.com> --- Created attachment 80364 --> http://bugs.winehq.org/attachment.cgi?id=80364 Possible fix Thank you! It doesn't seem that there's any crash there, so it probably does later and I suspect it is because although the EGL devices are mostly correctly enumerated, the failure to create any GL context makes it fail to get any name for them, and the NULL name later on causes a crash when populating the display devices. It doesn't look like there's any way to distinguish these devices from other devices except from the context creation failure, so probably we need to try creating one at least once. Fwiw we could maybe try other ways to get names for the devices (like using EGL_EXT_device_query_name), but lets be safe for now and ignore the devices altogether, they won't be usable for OpenGL anyway. Does the attached patch help? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 --- Comment #20 from uvos <devnull@uvos.xyz> --- Yes that patch solves the issue! -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59372 Alexandre Julliard <julliard@winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #22 from Alexandre Julliard <julliard@winehq.org> --- Closing bugs fixed in 11.3. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla