https://bugs.kde.org/show_bug.cgi?id=447717

--- Comment #62 from Vlad Zahorodnii <vlad.zahorod...@kde.org> ---
Git commit c97448ebe5987acd08da9475733f92931c074b95 by Vlad Zahorodnii.
Committed on 06/12/2022 at 20:49.
Pushed by vladz into branch 'master'.

Revert "shell: Use the basic scene graph rendering loop on wayland"

This reverts commit 9c998d3083f622a1677782248d4c8e238c935dc2.

There are two issues with basic render loop on Wayland:

* Same OpenGL context is reused across windows with incompatible
  EGLConfigs. It results in QOpenGLContext::makeCurrent() failing for
  some windows. At quick glance, it seems to be fixed with RHI
* QQuickWindowPrivate::flushFrameSynchronousEvents() can be called by
  QSGRenderLoop in the middle of painting after making opengl context
  current. That, by itself, is a source of undefined behavior
  because current opengl context can be different after
  QQuickWindowPrivate::flushFrameSynchronousEvents() is called. This can
  result in eglSwapBuffers() failing due to wrong read & draw surfaces
  and QtWayland ending in a broken state.

The first issue should be fixed by just upgrading to Qt 6. The second
issue needs to be fixed.

Unfortunately, it affects the stability of plasmashell. There are
threading issues in QtWayland that cannot be fixed without changing
qtdeclarative and qtbase. With this, plasmashell will use threaded
renderer and hit those threading issues again.

M  +0    -20   shell/main.cpp
M  +0    -2    shell/shellcorona.cpp
M  +0    -1    shell/shellcorona.h

https://invent.kde.org/plasma/plasma-workspace/commit/c97448ebe5987acd08da9475733f92931c074b95

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to