Weston launcher renders icons incorrectly depending on size and screen rotation
The weston launcher will incorrectly render icons depending on whether the output it is on is rotated and depending on what size the provided icons are. Attached are a series of screenshots which demonstrate permutations of (a) whether firefox
or xfce4-terminal
is the first [launcher]
section, (b) whether the display the launcher is rendered on is rotated or not, (c) whether 32x32 or 128x128 icons are provided, (d) whether the launcher is on the top of the screen or the left.
firefox-first-32-no-rotation.png
firefox-first-128-no-rotation.png
firefox-first-128-rotation.png
term-first-128-no-rotation.png
The working permutations are only the non-rotated permutations using 32x32 icons at the top of the screen. All other permutations have some sort of rendering error.
[launcher]
displayname=term
icon=/usr/share/icons/hicolor/32x32/apps/org.xfce.terminal.png
path=/usr/bin/xfce4-terminal
[launcher]
displayname=firefox
icon=/usr/share/icons/hicolor/32x32/apps/firefox.png
path=/usr/bin/firefox
# right profile monitor
[output]
name=DP-3
mode=preferred
# transform=rotate-270
# left profile monitor
[output]
name=DP-4
mode=preferred
# transform=rotate-90
The weston backend is weston-drm. The GPU is intel integrated graphics on an i7-6600U. The kernel is 6.6.7-arch1-1
. The weston.ini
is minimal, there's no [terminal]
section. I tried launching weston-terminal --font="..."
with several monospace fonts such as "DejaVu Sans Mon"
and "Noto Sans Mono"
without any improvement.
$ cat /sys/class/drm/card1/device/vendor
0x8086
$ cat /sys/class/drm/card1/device/device
0x1916
Some hopefully-relevant sections of the weston log file:
Date: 2023-12-22 PST
[23:42:36.215] weston 12.0.2
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: 12.0.2
[23:42:36.215] Command line: weston --backend=drm --shell=desktop --log=/tmp/font.log
[23:42:36.215] OS: Linux, 6.6.7-arch1-1, #1 SMP PREEMPT_DYNAMIC Thu, 14 Dec 2023 03:45:42 +0000, x86_64
[23:42:36.215] Flight recorder: enabled
[23:42:36.215] Using config file '/home/me/.config/weston.ini'
[23:42:36.216] Output repaint window is 7 ms maximum.
[23:42:36.216] Loading module '/usr/lib/libweston-12/drm-backend.so'
[23:42:36.218] initializing drm backend
[23:42:36.218] Trying libseat launcher...
[23:42:36.218] [libseat/backend/seatd.c:64] Could not connect to socket /run/seatd.sock: No such file or directory
[23:42:36.218] [libseat/libseat.c:76] Backend 'seatd' failed to open seat, skipping
[23:42:36.234] [libseat/libseat.c:73] Seat opened with backend 'logind'
[23:42:36.234] libseat: session control granted
[23:42:36.237] using /dev/dri/card1
[23:42:36.237] DRM: supports atomic modesetting
[23:42:36.237] DRM: supports GBM modifiers
[23:42:36.237] DRM: does not support async page flipping
[23:42:36.237] DRM: supports picture aspect ratio
[23:42:36.262] Loading module '/usr/lib/libweston-12/gl-renderer.so'
[23:42:36.265] Using rendering device: /dev/dri/renderD128
[23:42:36.265] EGL version: 1.5
[23:42:36.265] EGL vendor: Mesa Project
[23:42:36.265] EGL client APIs: OpenGL OpenGL_ES
[23:42:36.265] EGL features:
EGL Wayland extension: yes
context priority: yes
buffer age: yes
partial update: no
swap buffers with damage: no
configless context: yes
surfaceless context: yes
dmabuf support: modifiers
[23:42:36.267] GL version: OpenGL ES 3.2 Mesa 23.2.1-arch1.2
[23:42:36.267] GLSL version: OpenGL ES GLSL ES 3.20
[23:42:36.267] GL vendor: Intel
[23:42:36.267] GL renderer: Mesa Intel(R) HD Graphics 520 (SKL GT2)
[23:42:36.274] GL ES 3.2 - renderer features:
read-back format: ARGB8888
glReadPixels supports y-flip: yes
wl_shm 10 bpc formats: yes
wl_shm 16 bpc formats: yes
wl_shm half-float formats: yes
internal R and RG formats: yes
OES_EGL_image_external: yes
[23:42:36.274] Using GL renderer
[23:42:36.836] Chosen EGL config details: id: 61 rgba: 8 8 8 0 buf: 24 dep: 0 stcl: 0 int: 1-1 type: win vis_id: XRGB8888 (0x34325258)