Skip to content

qFatal crash on eglCreateImage failure (EGL_BAD_MATCH) + null pointer dereference in syncSwapchain with NVIDIA hybrid GPU screencopy #839

@Ivannivi

Description

@Ivannivi

What caused the crash

Quickshell crashes every time I trigger screencopy on my NVIDIA hybrid setup. Specifically Win+Shift+S (region screenshot), but also dock window previews and anything else that uses screencopy.
The crash happens in WlDmaBuffer::createQsgTextureGl eglCreateImage fails with EGL_BAD_MATCH (error 12292) and then qFatal kills the whole process. Even after patching qFatal to qWarning + return nullptr, it still crashes because manager.cpp:140 doesn't check for null before dereferencing the texture.
This is an NVIDIA MX130 (Maxwell) + Intel UHD 620 hybrid laptop. The DMA-BUF format/modifier coming from Hyprland screencopy doesn't seem to be importable by the NVIDIA EGL driver. I removed egl-wayland2 thinking it was a conflict, still crashes.
I locally patched both dmabuf.cpp and manager.cpp and it works fine now screencopy just gets skipped with a warning instead of killing the shell.

Report file

report.txt

Log file

log.qslog.log

Configuration

config.tar.gz

Backtrace

backtrace.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcrash

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions