[Bug 57070] New: OpenGL performance regression in Wine 9.15
https://bugs.winehq.org/show_bug.cgi?id=57070 Bug ID: 57070 Summary: OpenGL performance regression in Wine 9.15 Product: Wine Version: 9.15 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winex11.drv Assignee: wine-bugs(a)winehq.org Reporter: i.r.e.c.c.a.k.u.n+bugs.winehq.org(a)gmail.com Distribution: --- In Wine 9.15, I observe a serious performance regression, presumably in OpenGL apps. DirectX stuff is fine. Extended renderer info (GLX_MESA_query_renderer): Vendor: AMD (0x1002) Device: AMD Radeon RX 580 Series (radeonsi, polaris10, ACO, DRM 3.58, 6.11.0-rc3) (0x67df) Version: 24.1.5 Accelerated: yes Video memory: 8192MB Unified memory: no Preferred profile: core (0x1) Max core profile version: 4.6 Max compat profile version: 4.6 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 3.2 Can't say much more, nothing interesting in logs. However, I have done a bisection. 849d7aa3c72df7fee0372a7fcc9e058a4b3795bf is the first bad commit commit 849d7aa3c72df7fee0372a7fcc9e058a4b3795bf Author: Rémi Bernon <rbernon(a)codeweavers.com> Date: Mon Jul 1 11:03:57 2024 +0200 winex11: Rely on win32u previous surface reuse. dlls/winex11.drv/bitblt.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) Unfortunately, I don't understand what's going on with this code. -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 Hanabishi <i.r.e.c.c.a.k.u.n+bugs.winehq.org(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |849d7aa3c72df7fee0372a7fcc9 | |e058a4b3795bf -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 Hanabishi <i.r.e.c.c.a.k.u.n+bugs.winehq.org(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 Rémi Bernon <rbernon(a)codeweavers.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rbernon(a)codeweavers.com --- Comment #1 from Rémi Bernon <rbernon(a)codeweavers.com> --- Do you have an example of a GL application that can be used to investigate? -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 --- Comment #2 from Hanabishi <i.r.e.c.c.a.k.u.n+bugs.winehq.org(a)gmail.com> --- Well, that's a tricky question. I use https://github.com/FunkyFr3sh/cnc-ddraw to run old 2D games. It supports multiple rendering backends.
GDI / OpenGL / Direct3D 9 renderer
Before this commit, OpenGL renderer performed perfectly fine. After this commit, OpenGL renderer performs even worse than GDI. Direct3D 9 renderer is seemingly unaffected, but it requires DXVK. I'm not sure about other OpenGL apps. I would try to find something easier to test on. Maybe it's cnc-ddraw exclusive issue after all. -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 --- Comment #3 from Hanabishi <i.r.e.c.c.a.k.u.n+bugs.winehq.org(a)gmail.com> --- Hmm, I picked up https://sourceforge.net/projects/openglchecker/ for testing, but it does not show any regression in its benchmarks. So looks like it's indeed a cnc-ddraw exclusive issue. Do you have ideas how it could be affected? Do I need to report in into cnc-ddraw upstream instead? -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 Hanabishi <i.r.e.c.c.a.k.u.n+bugs.winehq.org(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|OpenGL performance |cnc-ddraw OpenGL |regression in Wine 9.15 |performance regression in | |Wine 9.15 -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 --- Comment #4 from Hanabishi <i.r.e.c.c.a.k.u.n+bugs.winehq.org(a)gmail.com> --- Ok, created issue upstream. We'll see. https://github.com/FunkyFr3sh/cnc-ddraw/issues/344 -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 --- Comment #5 from Rémi Bernon <rbernon(a)codeweavers.com> --- Could you try with https://gitlab.winehq.org/wine/wine/-/merge_requests/6233 applied on top? The MR was unrelated but I think some of its changes might 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 --- Comment #6 from Hanabishi <i.r.e.c.c.a.k.u.n+bugs.winehq.org(a)gmail.com> --- No, applying this MR doesn't seem to change anything. Although, upstream dev responded with explanation:
cnc-ddraw does also have some special logic to handle the RA2 child windows, it does actually use GDI BitBlt for them and not OpenGL (There's still a opengl context being created and used for the main window though). Direct3D9 and GDI renderer also use the same BitBlt trick on the menus.
Also confirmed by setting a workaround option:
Just for a test, could you try to set "fixchilds=3" in ddraw.ini? That would hide the child windows and also disables the bitblt. This is not actually a good thing to do, but maybe it would help to find out what's wrong.
Disabling BitBlt mitigates 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 --- Comment #7 from Rémi Bernon <rbernon(a)codeweavers.com> --- Thanks for the hint, will keep looking. -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 --- Comment #8 from Rémi Bernon <rbernon(a)codeweavers.com> --- Are you using Wine virtual desktop mode? CNC windowed/fullscreen mode? -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 --- Comment #9 from Hanabishi <i.r.e.c.c.a.k.u.n+bugs.winehq.org(a)gmail.com> --- I tried different combinations. Regular windowed and fullscreen, Wine virtual desktop, launch in Gamescope to isolate from DE compositor. The same result everywhere. -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 --- Comment #10 from Rémi Bernon <rbernon(a)codeweavers.com> --- Created attachment 76942 --> https://bugs.winehq.org/attachment.cgi?id=76942 Possible fix I think I found the issue, does this patch fixes it for you? -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 --- Comment #11 from Hanabishi <i.r.e.c.c.a.k.u.n+bugs.winehq.org(a)gmail.com> --- Yes, it works! Thank you. -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 Rémi Bernon <rbernon(a)codeweavers.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED Fixed by SHA1| |d9595daa1a0e2e0c5032ef0653a | |41ebbbf69a354 --- Comment #12 from Rémi Bernon <rbernon(a)codeweavers.com> --- Fixed with d9595daa1a0e2e0c5032ef0653a41ebbbf69a354. -- 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.
https://bugs.winehq.org/show_bug.cgi?id=57070 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #13 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 9.16. -- 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