getsolus / packages

Solus Package Monorepo & Issue Tracker
60 stars 78 forks source link

GNOME 46: GTK4: Graphical glitches, menus appearing/disappearing slowly, windows scrambled during maximize/minimize #2351

Open sebo505 opened 4 months ago

sebo505 commented 4 months ago

Please confirm there isn't an existing open bug report

Summary

I encounter all sort of graphical issues, maybe especially for gtk apps, like white flickering at window corners or in corners of search bars, menus only appearing/disappearing slowly, windows getting scrambled during maximize and minimize. See video attached.

I have seen same behaviour on Fedora 40. Basically, I don't really know what's causing this, might also be kernel related or to my old graphics card. Might also be related to this issue I posted some weeks ago.

Steps to reproduce

Open program, such as nautilus, gnome-calculator, foliate... observe corners maximize, minimize window

Expected result

no graphical glitches

Actual result

graphical glitches ans anomalies

Environment

Repo

Unstable

Desktop Environment

GNOME

System details

Berichtdetails

Hardware-Informationen:

Software-Informationen:

Other comments

No response

sebo505 commented 4 months ago

https://github.com/getsolus/packages/assets/65250211/74de4a52-4237-4715-ae90-4b7dde550f1d

sebo505 commented 4 months ago

Also, window resizing for gtk4 apps via mouse drag is very laggy. Flickering corners I also notice at the borders of thumbnails in nautilus and foliate or at the scroll bar in nautilus.

Screenshot from 2024-04-22 20-04-47 Screenshot from 2024-04-22 20-03-15

I was unsure about when this occured the first time. So I made a fresh Solus 4.5 Gnome instal, checked, updated, checked aagain, switched to unstable and updated and checked again. Only occurs after switch to unstable and updating to GNOME 46.

sebo505 commented 4 months ago

This issue seems to be related to a newly introduced GTK renderer.

Returning to classic OpenGL renderer by adding GSK_RENDERER=gl to /etc/environment as described here solves this issue for me in GNOME 46 on Solus as well as on Fedora 40. Using classic OpenGL renderer is advised for older hardware, which I am using.

ermo commented 4 months ago

@sebo505

Please provide the output of glxinfo |grep 'profile version'?

The upstream work is said to require OpenGL 3.3+/OpenGL ES 3.0+; if your card supports those according to the glxinfo output above, perhaps it might be a good idea to alert upstream to your experience given they apparently want to hear from users re. bugs/poor experiences with the new renderer?

from https://blog.gtk.org/2024/01/28/new-renderers-for-gtk/:

As mentioned already, the two renderers are built from the same source. It is modeled to follow Vulkan apis, with some abstractions to cover the differences between Vulkan and GL (more specifically, GL 3.3+ and GLES 3.0+). (...) Driver problems. The new renderers are using graphics drivers in new and different ways, so there is potential for triggering problems on that side.

Please file problems you see against GTK even if they look like driver issues, since it is useful for us to get an overview how well (or badly) the new code works with the variety of drivers and hardware out there.

ReillyBrogan commented 4 months ago

There are actually two separate kernel drivers for AMD GPUs, the current one (amdgpu) and one for much older hardware (radeon). On Solus we override the kernel so that it uses the amdgpu driver even on old hardware as it tends to still work pretty well and is more actively developed.

Your hardware is likely old enough that it would normally be using the radeon driver, you could try switching back to that to see if it helps at all.

To do that:

  1. sudo mkdir -p /etc/kernel/cmdline.d/
  2. echo "radeon.si_support=1 radeon.cik_support=1 amdgpu.si_support=0 amdgpu.cik_support=0" | sudo tee /etc/kernel/cmdline.d/radeon.conf
  3. sudo clr-boot-manager update

Then reboot and you should be using the radeon driver instead. You can test to see if the issue still exists then. If you want to switch back to the amdgpu driver just delete radeon.conf and run sudo clr-boot-manager update again.

sebo505 commented 4 months ago

@ermo

Please provide the output of glxinfo |grep 'profile version'?

Max core profile version: 3.3 Max compat profile version: 3.0 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 3.0 OpenGL core profile version string: 3.3 (Core Profile) Mesa 24.0.6 OpenGL ES profile version string: OpenGL ES 3.0 Mesa 24.0.6

sebo505 commented 4 months ago

@ReillyBrogan

Your hardware is likely old enough that it would normally be using the radeon driver, you could try switching back to that to see if it helps at all.

Before I ran your commands, I ran lspci -k | grep -EA3 'VGA|3D|Display' to check what driver is currently in use. Output was the following: 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV620/M82 [Mobility Radeon HD 3450/3470] Subsystem: Hewlett-Packard Company RV620/M82 [Mobility Radeon HD 3450/3470] Kernel driver in use: radeon 03:00.0 Network controller: Intel Corporation Ultimate N WiFi Link 5300

Doesn't this imply that for some reason amdgpu actually wasn't in use?

I then ran your commands anyway. Couldn't detect any difference so far.

ReillyBrogan commented 4 months ago

I checked the kernel sources, and I think your GPU might actually be too old for the AMDGPU driver. I didn't realize this before, but it appears that there's a range of GPUs that radeon supports and a range of GPUs that amdgpu supports and it's only in the overlapping range that amdgpu is preferred over radeon (on Solus).

I think your best bet here is to open up a GTK issue and hope the GTK devs are able to fix it.