Summary: | Massive frame drops with intel iris xe graphics and triple buffering | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Yujiro Hanma <moyamat555> |
Component: | performance | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | edy.burt, gus, nate, nepnep, xaver.hugl |
Priority: | NOR | Keywords: | regression |
Version: | 6.1.0 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Yujiro Hanma
2024-06-21 05:03:21 UTC
This also spams my journal log, which I think confirms my suspicion that this is related to triple buffering. ``kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)`` The show fps effect is not a proper profiling tool and it can report sometimes lower refresh rates if the screen is not being repainted actively. Regarding GL_INVALID_OPERATION, it's a Qt issue. (In reply to Vlad Zahorodnii from comment #2) > The show fps effect is not a proper profiling tool and it can report > sometimes lower refresh rates if the screen is not being repainted actively. > Regarding GL_INVALID_OPERATION, it's a Qt issue. I do not mean to invalidate your point, but it does show lower fps and I can actually feel it as my cursor lags and the animations slow down. Could you please tell me how I can properly give the refresh rate statistics? Is there a lag with KWIN_DRM_DISABLE_TRIPLE_BUFFERING=1 envvar set? (In reply to Vlad Zahorodnii from comment #4) > Is there a lag with KWIN_DRM_DISABLE_TRIPLE_BUFFERING=1 envvar set? I have been using my computer, opening various programs and graphically demanding games, but fps never goes below 55-56 ( and that's only on opening overview ), the weird stuttering I felt in games is also gone. And the desktop and cursor feel much smoother than before. I should also add that disabling triple buffering also fixed frame time spikes and general stutters in games. I can confirm this. Since updating to Plasma 6.1 I have stuttery animations a lot more often compared to Plasma 6 and 5 (and lag spikes too). A lot more often meaning more than a dozen times in an hour. This happens on an Intel laptop and a desktop with AMD graphics (see https://bugs.kde.org/show_bug.cgi?id=488843). Setting "KWIN_DRM_DISABLE_TRIPLE_BUFFERING=1" fixes it on both machines. SOFTWARE/OS VERSIONS Operating System: EndeavourOS KDE Plasma Version: 6.1.0 KDE Frameworks Version: 6.3.0 Qt Version: 6.7.1 Kernel Version: 6.6.34-lts (64-bit) Graphics Platform: Wayland Mesa: 24.1 Processors: i5-1135G7 Memory: 8 GiB of RAM Graphics Processor: Intel Xe Graphics I can confirm this as well. Animation is extremely choppy when going from one desktop to another. Windows are not updated for 1 second or so (very noticeable in Zoom calls). Log filled with this error: Jun 22 08:26:25 gus-cachyos kwin_wayland[967]: OpenGL vendor string: Intel Jun 22 08:26:25 gus-cachyos kwin_wayland[967]: OpenGL renderer string: Mesa Intel(R) Xe Graphics (TGL GT2) Jun 22 08:26:25 gus-cachyos kwin_wayland[967]: OpenGL version string: 4.6 (Core Profile) Mesa 24.1.2-arch1.2 Jun 22 08:26:25 gus-cachyos kwin_wayland[967]: OpenGL shading language version string: 4.60 Jun 22 08:26:25 gus-cachyos kwin_wayland[967]: Driver: Intel Jun 22 08:26:25 gus-cachyos kwin_wayland[967]: GPU class: Tiger Lake Jun 22 08:26:25 gus-cachyos kwin_wayland[967]: OpenGL version: 4.6 Jun 22 08:26:25 gus-cachyos kwin_wayland[967]: GLSL version: 4.60 Jun 22 08:26:25 gus-cachyos kwin_wayland[967]: Mesa version: 24.1.2 Jun 22 08:26:25 gus-cachyos kwin_wayland[967]: Requires strict binding: no Jun 22 08:26:25 gus-cachyos kwin_wayland[967]: Virtual Machine: no Jun 22 08:26:25 gus-cachyos kwin_wayland[967]: kwin_scene_opengl: 0x3: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT) inux/KDE Plasma: CachyOS Linux KDE Plasma Version: 6.1.0 KDE Frameworks Version: 6.3.0 Qt Version: 6.7.1 *** This bug has been marked as a duplicate of bug 488843 *** > Yujiro Hanma 2024-06-21 05:10:48 UTC > This also spams my journal log, which I think confirms my suspicion that this is related to triple buffering. > ``kwin_scene_opengl: 0x2: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)`` > Vlad Zahorodnii 2024-06-21 07:40:44 UTC > ... Regarding GL_INVALID_OPERATION, it's a Qt issue. I believe Vlad is right, I just posted https://bugreports.qt.io/browse/QTBUG-122819#comment-844572 with a tentative explanation/patch for the `GL_INVALID_OPERATION` errors caused by `GL_BACK_LEFT`. I'm not sure the `glDrawBuffers` call failing even has any effect - if it did, you would probably see some UI elements never render at all, my best guess is that the OpenGL default behavior "just works" in this case. Part of my reasoning it that `glDrawBuffers` used to not be called at all, on the now-failing path: https://github.com/qt/qtbase/commit/c9ad5ad3b73ff60e9a40173b1ae49e67800a4b72#diff-23f339fbfdf978a2c6cbdb4b300ed9dce434d55ca6168c558b8ba8e99f87b2b7R3019 |