kwin/src/libkwineffects
Vlad Zahorodnii fda7e150df kwineffects: Fix destruction of s_fbo with shared GLTexture objects
The WindowThumbnail item uses the GLTexture class. In order to destroy
the thumbnail texture, the item will schedule a destroy job.

This means that the GLTexture can be alive during or after graphics
reset.

On the other hand, as an implementation detail, GLTexture::clear() may
allocate a framebuffer object, which is going to be destroyed together
with the last texture.

Given that window thumbnail textures can be still alive after a graphics
reset and the fact that GLTexturePrivate::s_fbo gets destroyed when the
last texture is destroyed, kwin can end up trying to clear a decoration
texture with now defunct s_fbo.

Since the old old s_fbo is inert, the glBindFramebuffer() function will
fail and the glClear() operation will affect the default framebuffer,
thus leading to black flickering visual artifacts.

In order to fix that issue, this change makes GLTexture destroy s_fbo
unconditionally in GLTexturePrivate::cleanup() which is called whenever
OpenGL stuff is about to tear down, e.g. due to graphics reset, etc.

BUG: 443951
2021-10-25 13:00:55 +03:00
..
anidata.cpp
anidata_p.h
CMakeLists.txt kwineffects: Stop linking kwayland-server 2021-10-18 16:03:30 +00:00
kwinanimationeffect.cpp Port to function-pointer based QMetaObject::invokeMethod 2021-09-07 06:30:39 +00:00
kwinanimationeffect.h kwineffects: Remove dead code 2021-06-10 15:58:05 +00:00
kwinconfig.h.cmake Remove Xrender backend 2021-06-09 11:21:57 +03:00
kwindeformeffect.cpp effects: Port effects from int screens ids to EffectScreen 2021-10-20 12:09:09 +00:00
kwindeformeffect.h kwineffects: Allocate hidpi textures in DeformEffect 2021-06-14 09:02:44 +00:00
kwineffectquickview.cpp libkwineffects: Simplify EffectQuickView constructors 2021-09-23 06:28:29 +00:00
kwineffectquickview.h kwineffects: Allow specifying render window for EffectQuickView 2021-08-19 06:30:55 +00:00
kwineffects.cpp kwineffects: Remove effectively unused surface_interface.h include 2021-10-18 11:34:15 +00:00
kwineffects.h kwineffects: Drop numScreens property 2021-10-22 09:14:52 +00:00
KWinEffectsConfig.cmake.in
kwineglimagetexture.cpp
kwineglimagetexture.h
kwinglobals.h Move Xkb::LEDs enum to KWin namespace 2021-10-13 17:49:19 +00:00
kwinglplatform.cpp pipewire: Fix downloading software-rotated textures 2021-10-13 17:16:15 +02:00
kwinglplatform.h pipewire: Fix downloading software-rotated textures 2021-10-13 17:16:15 +02:00
kwingltexture.cpp kwineffects: Fix destruction of s_fbo with shared GLTexture objects 2021-10-25 13:00:55 +03:00
kwingltexture.h kwineffects: Allow creating GLTexture without allocated storage 2021-06-22 08:25:50 +00:00
kwingltexture_p.h kwineffects: Fix destruction of s_fbo with shared GLTexture objects 2021-10-25 13:00:55 +03:00
kwinglutils.cpp kwineffects: Allow creating GLTexture without allocated storage 2021-06-22 08:25:50 +00:00
kwinglutils.h scenes/opengl: Remove half-pixel correction workaround 2021-05-31 05:27:22 +00:00
kwinglutils_funcs.cpp
kwinglutils_funcs.h
kwinxrenderutils.cpp
kwinxrenderutils.h
logging.cpp
logging_p.h
Mainpage.dox
Messages.sh