https://bugs.kde.org/show_bug.cgi?id=437573
Bug ID: 437573
Summary: Acquire EGL stream frame fails persistently with
EGL_BAD_ACCESS in eglstreams backend for some
applications
Product: kwin
Version: git master
Platform: Manjaro
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: wayland-generic
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Created attachment 138714
--> https://bugs.kde.org/attachment.cgi?id=138714&action=edit
Session log with custom debug output
SUMMARY
9 out of 10 times the plasma desktop background and latte are not rendered at
all in a wayland session on my computer with NVIDIA proprietary driver. Instead
of seeing the expected desktop background with icons and the latte dock, only
black background is visible. Context menus, etc. of the desktop and latte dock
work perfectly. Application windows are rendered correctly.
When observing this behavior, the wayland-session.log contains many messages
saying:
kwin_wayland_drm: Failed to acquire EGL stream frame
These messages are not logged in the rare case that plasma desktop background
and latte dock are visible in a wayland session. The behavior is stable for a
complete session, i.e., if a session starts without desktop/latte visible, it
stays that way the complete session.
INITIAL ANALYSIS
Added additional debug output in egl_stream_backend.cpp:
kwin_wayland_drm: Failed to acquire EGL stream frame (rc= 12290 )
The return code 12290 corresponds to EGL_BAD_ACCESS. The documentation of the
function "eglStreamConsumerAcquireAttribNV/eglStreamConsumerAcquireKHR" says:
- EGL_BAD_ACCESS is generated if there is no GL context
current to the calling thread, or if the GL context current
to the calling thread does not contain a texture that is
connected as the consumer of the EGLStream.
Here is an excerpt of the debug messages I added for the texture/stream
handling:
kwin_wayland_drm: (tid= 30525 , ctx= 0x5611b6d51011 ) Attach stream consumer
for 30568 ( "/home/simon/kde/usr/bin/plasmashell" )
kwin_wayland_drm: (tid= 30525 , ctx= 0x5611b6d51011 ) Bind texture 40 of
stream consumer for 30568 ( "/home/simon/kde/usr/bin/plasmashell" )
[...]
kwin_wayland_drm: (tid= 30525 , ctx= 0x5611b5f84691 ) Create texture 40 for
30568 ( "/home/simon/kde/usr/bin/plasmashell" )
kwin_wayland_drm: Failed to acquire EGL stream frame (rc= 12290 )
ctx=xxx is the pointer to GL context. The first two debug messages are added to
EglStreamBackend::attachStreamConsumer and the third message in
EglStreamSurfaceTextureWayland::create(). It looks like the texture is bound in
a different GL context then the acquire is performed later on which would
explain the
error code. No idea why the contexts are different.
SOFTWARE/OS VERSIONS
Linux/KDE Plasma:
(available in About System)
KDE Plasma Version: 5.21.5 or git master
KDE Frameworks Version: 5.82.0
Qt Version: 5.15.2
--
You are receiving this mail because:
You are watching all bug changes.