Gnome with fractional scaling (UHD/4k/HiDPI display + 2 x FHD ) crashes KiCad when used on different screens at the same time

Hello,

I am using KiCad 8.0.3 on Archlinux + Gnome, running on a Lenovo ThinkPad E15 Gen 2 (20TD002MGE) with dual graphics.

$ cat /proc/version
Linux version 6.9.3-arch1-1 (linux@archlinux) (gcc (GCC) 14.1.1 20240522, GNU ld (GNU Binutils) 2.42.0) #1 SMP PREEMPT_DYNAMIC Fri, 31 May 2024 15:14:45 +0000

(Some) Packages I have installed:

gnome-control-center-x11-scaling 46.2-1
mutter-x11-scaling 46.2-1
gdm 46.2-1

libva-nvidia-driver 0.0.12-1
nvidia 550.90.07-1
nvidia-prime 1.0-4
nvidia-settings 550.78-1
opencl-nvidia 550.90.07-1
egl-wayland 2:1.1.13-2
libvdpau 1.5-2
libxnvctrl 550.78-1
nvidia-utils 550.90.07-1
nvtop 3.1.0-1

gnome-shell 1:46.2-1
gnome-shell-extension-dash-to-dock 1:92-1
gnome-shell-extensions 46.2-1
gnome-terminal 3.52.2-1
gnome-themes-extra 3.28+r6+g45b1d457-1
gnome-tweaks 46.1-1
xdg-desktop-portal-gnome 46.2-1

kicad 8.0.3-1
kicad-library 8.0.3-1
kicad-library-3d 8.0.3-1

My graphic cards are:

  • Intel TigerLake-LP GT2 (Iris Xe Graphics)
  • NVIDIA GeForce MX450

What exactly did I do ?

As I want to use the UHD display as main display and the 2 FHD display as additional display at the same time, for example routing on the 1st display + schematic on the 2nd display + 3D view on the 3th display, I had to scale the main display (the UHD one) to 200% as otherwise the UI & text would be way to small.

To have the scaling only on the main display, I had to enable “fractional scaling” - although I am using no “fractional scaling factor” as I am just using 200%.

What did the computer actually do ?

When I start KiCad and I only use the UHD display, everything runs just fine.

But when I either:

  • move a KiCad Window to one of the FHD displays AND I change the size of this window, or
  • start KiCad on any of the FHD screens and open a (maximized) window there

KiCad crashes immediately.

Journalctl gives the following error:

Jun 13 10:55:42 asdf gnome-shell[1005]: WL: error in client communication (pid 11538)
Jun 13 10:55:42 asdf gnome-shell[1005]: (../mutter/src/wayland/meta-wayland-buffer.c:1014):meta_wayland_buffer_finalize: runtime check failed: (buffer->use_count == 0)

Also when leaving the windows on the FHD displays unchangend in terms of their size, at some point - when actually doing something there (not just watching them - eg when checking parts while designing the pcb) kicad also crashes. But this is more or less unpredictable, other then crashing KiCad with a 100% chance, when resizing windows on the FHD screens.

When using flatpack, this issue doesn’t appear. But flatpack on the other side doesn’t work with the fractional scaling (everthing on the UHD is blurry … ).

I realy think this is somehow related to mutter + gnome + wayland. But I am out of ideas on how to solve this issue.

Does anyone has an idea how to fix the problem?

I’m not a developer but… my vague understanding is that Wayland and WXwidgets (the underlying GUI system used for KiCad) do not play nice together.

There’s an existing issue that sounds very similar here: Crash in wayland code opening eeschema or pcbnew from project manager on dual-screen mixed-DPI setup (#17804) · Issues · KiCad / KiCad Source Code / kicad · GitLab
if that’s more or less what you’re seeing, consider giving the issue a “thumbs up” on Gitlab to show support. If you have time/inclination to help further debug, there’s a request at the bottom of the issue to try out the wxwidgets samples and see if the crash can be replicated without KiCad entirely.