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

Zamundaaa <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|REPORTED                    |CONFIRMED
                 CC|                            |[email protected]

--- Comment #4 from Zamundaaa <[email protected]> ---
I stared a bit at the backtrace for a while, but it's still not making a lot of
sense to me.

> #26 0x00007ff802776363 in KWin::EglGbmLayerSurface::checkSurface 
> (this=this@entry=0x55fe165246b8, size=..., formats=..., 
> tradeoff=tradeoff@entry=KWin::Output::ColorPowerTradeoff::PreferEfficiency, 
> requiredAlphaBits=requiredAlphaBits@entry=0) at 
> /usr/src/debug/kwin-6.5.5-1.fc42.x86_64/src/backends/drm/drm_egl_layer_surface.cpp:338
>        newSurface = std::unique_ptr<KWin::EglGbmLayerSurface::Surface> = 
> {get() = 0xb}
That surface is definitely not a valid pointer, but afaiu at this point, the
value is sort of expected to not be initialized yet, as it'll be written to by
createSurface.

This also looks weird:
> #23 [...] drm_egl_layer_surface.cpp:510
but it can likely also just be explained by the debugger printing things in an
un-intuitive way. It seems likely that it actually returned from the function
in one of the "return nullptr" paths, otherwise it wouldn't have deleted the
EglGbmLayerSurface::Surface.

The actual crash is in
https://invent.kde.org/plasma/kwin/-/blob/v6.5.5/src/opengl/eglcontext.cpp?ref_type=tags#L157,
but there's a check for the last makeCurrent result in the line above it. The
only way I can think of makeCurrent() succeeding without actually making a
context current is if EglContext::m_handle is EGL_NO_CONTEXT, but
EglContext::create guards against that.

In your log is also
> Could not make egl context current! EGL_BAD_DISPLAY
> Could not make egl context current! EGL_BAD_DISPLAY
which I can't explain either, it should never ever fail with that error.

> Played around with a bunch of environment variables:
Please remove all of the environment variables and kernel arguments you messed
with. Some of these can cause problems, and almost never solve any.

If you have a second device, setting a breakpoint at
EglGbmLayerSurface::createSurface and stepping through it might yield some more
information, like
- which return path does it actually take?
- in EglContext::~EglContext, does makeCurrent actually succeed? What value
does m_handle have?
I can't currently think of any other way to debug that problem.

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

Reply via email to