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.
