Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Qubes OS 4.3 pre-release: graphical corruptions in GTK4 apps in Fedora 41-based dom0 #9479

Open
aronowski opened this issue Sep 26, 2024 · 0 comments
Labels
affects-4.3 This issue affects Qubes OS 4.3. C: desktop-linux needs diagnosis Requires technical diagnosis from developer. Replace with "diagnosed" or remove if otherwise closed. P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: bug Type: bug report. A problem or defect resulting in unintended behavior in something that exists. updates testing Issue regarding an update that is currently in testing. Triage before migrating update to stable.

Comments

@aronowski
Copy link

How to file a helpful issue

Qubes OS release

4.3.202409242200 (pre-release)

Brief summary

Graphical corruptions in some GTK4 apps due to mesa regressions in Fedora 41-based dom0.

Possibly related to #9389, but creating a separate ticket after a chat with @marmarek during the hackathon at Qubes Summit 2024, considering the Qubes OS release difference and the difference between AppVMs and dom0.

Steps to reproduce

Download Qubes 4.3 pre-release ISO from https://openqa.qubes-os.org/tests/113304/asset/iso/Qubes-4.3.202409242200-x86_64.iso.

Install the system as usual, making sure the fedora-40-xfce template gets installed.

Log in and install Loupe as an example GTK4 application.

user@dom0:~$ sudo qubes-dom0-update --action=install loupe -y

Launch Loupe - a "hall of mirrors" graphical error should show up whenever some screen update is being drawn at the place, where the application window should be drawn (usually the center of the screen).

Qubes-4 3 202409242200-x86_64-2024-09-26-19-23-30

Let's downgrade Mesa to the one shipped with Fedora 40's initial release (i.e. its own fedora repository, not the updates repository).

Install Fedora 40 GPG key:

user@dom0:~$ qvm-run --pass-io fedora-40-xfce 'cat /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-40-x86_64' > /home/user/RPM-GPG-KEY-fedora-40-x86_64
user@dom0:~$ sudo rpm --import RPM-GPG-KEY-fedora-40-x86_64
user@dom0:~$ sudo cp RPM-GPG-KEY-fedora-40-x86_64 /etc/pki/rpm-gpg/

Create a file referring to the aforementioned repository:

user@dom0:~$ cat /etc/yum.repos.d/fedora-40.repo 
[fedora-40]
name=Fedora 40 - $basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-40&arch=$basearch
enabled=1
metadata_expire=7d
repo_gpgcheck=0
type=rpm
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-40-$basearch
skip_if_unavailable=False

Downgrade Mesa:

user@dom0:~$ sudo qubes-dom0-update --disablerepo='*' --enablerepo='fedora-40' --action=downgrade mesa-dri-drivers -y
user@dom0:~$ rpm -qa 'mesa-*'
mesa-libxatracker-24.2.3-2.fc41.x86_64
mesa-filesystem-24.0.5-1.fc40.x86_64
mesa-libglapi-24.0.5-1.fc40.x86_64
mesa-dri-drivers-24.0.5-1.fc40.x86_64
mesa-libgbm-24.0.5-1.fc40.x86_64
mesa-libEGL-24.0.5-1.fc40.x86_64
mesa-libGL-24.0.5-1.fc40.x86_64
mesa-va-drivers-24.0.5-1.fc40.x86_64
mesa-vulkan-drivers-24.0.5-1.fc40.x86_64

Launch Loupe - the application window should be either drawn properly this very moment or after clicking on any window or the XFCE4 desktop.

The steps described above are a recreation of the initial research of mine, that took place during the hackathon at Qubes Summit 2024. Bisecting the upstream mesa codebase, building and installing RPMs from it should narrow down the search for the problematic code much better.

Expected behavior

Windows of apps like Loupe are rendered properly.

Actual behavior

Windows of apps like Loupe are not displayed, and graphical anomalies take their place.

@aronowski aronowski added P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: bug Type: bug report. A problem or defect resulting in unintended behavior in something that exists. labels Sep 26, 2024
@andrewdavidwong andrewdavidwong added C: desktop-linux needs diagnosis Requires technical diagnosis from developer. Replace with "diagnosed" or remove if otherwise closed. updates testing Issue regarding an update that is currently in testing. Triage before migrating update to stable. affects-4.3 This issue affects Qubes OS 4.3. labels Sep 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects-4.3 This issue affects Qubes OS 4.3. C: desktop-linux needs diagnosis Requires technical diagnosis from developer. Replace with "diagnosed" or remove if otherwise closed. P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: bug Type: bug report. A problem or defect resulting in unintended behavior in something that exists. updates testing Issue regarding an update that is currently in testing. Triage before migrating update to stable.
Projects
None yet
Development

No branches or pull requests

2 participants