Missing application icons on Raspberry Pi 4/400 and VMware

Problem

On Fedora 40 Beta Workstation, some GUI assets (e.g. UI icons in Nautilus, overlay controls in Loupe) won’t load. The buttons in UI work, but it is very inconvenient as users must guess from memory, where the button is and what it does.

It seems that this bug is present only in GTK 4 applications. Applications that use GTK 3, such as Firefox or GNOME Terminal, work as expected.

This happens on Raspberry Pi 4, Raspberry Pi 400, and also in VMware virtualization with 3D acceleration enabled.

Example:

You can discuss this topic here.

Cause

The issue is cased by a regression in Mesa 24.0.0-2 (present on F40 Beta images). It has been reported upstream and it is being investigated, but as of now there is no time estimate for a fix.

Related Issues

Bugzilla report: #2269412
Upstream mesa report: #10853
Upstream GNOME report: #6498

Workarounds

VMWare

Simply disable 3D acceleration in your virtual machine configuration.

Raspberry Pi 4/400

The bug can be worked around by disabling graphical acceleration (GUI rendering will become slower, though) using the nomodeset kernel argument, or by forcing the apps to be rendered by different renderer.

Fresh installation

You can add --args "nomodeset" argument to the arm-image-installer , like this:

sudo arm-image-installer --image=</path/to/fedora_image> --target=<RPi_Version> --media=/dev/<sd_card_device> --resizefs --args "nomodeset"

Adjusting an existing system

If your system is already installed and don’t want to reinstall it, you can edit the boot entry in the bootloader. In the bootloader, press Ctrl+e to edit the currently selected boot option, find the kernel line and add nomodeset at the end of the line. Finally, boot the system by pressing Ctrl+x. This modification will only apply to the current boot.

If you want to apply the boot modification permanently, edit /etc/default/grub, add nomodeset to line GRUB_CMDLINE_LINUX=, and then run:

sudo grub2-mkconfig -o /etc/grub2.cfg

Different renderer

Alternatively, if you don’t want to lose hardware acceleration by using nomodeset, you can add line:

GSK_RENDERER=gl

to file ~/.bash_profile. This will force the apps to use the old gl renderer instead of the new ngl renderer.

This is fixed with the following update:
https://bodhi.fedoraproject.org/updates/FEDORA-2024-6adf7226be

Just update your system as usual, and the problem should be resolved.

1 Like