Screen tearing on Lenovo Yoga Slim 7 14APU8

Good day and new years everyone.

Lately, I started experiencing screen tearing. It’s workable, but annoying as hell.

At first, it felt like those mostly happened when I used my browser (Firefox), so I turned off Performance Optimizations and tried Chrome, but with no luck. I noticed that tearings happen when I use editor and my console as well.

I downgraded my Kernel, but with no luck either.

Biggest change I had in a system, is that I started using Ghostty and since that’s always running with Quake Terminal, I assumed that this might a cultprit. But switching back to Kitty didn’t help.

Any tips? Maybe something I missed?

inxi:

System:
  Host: the-beast Kernel: 6.11.11-1-MANJARO arch: x86_64 bits: 64
  Desktop: GNOME v: 47.2 Distro: Manjaro Linux
Machine:
  Type: Laptop System: LENOVO product: 83AA v: Yoga Slim 7 14APU8
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: NO DPK serial: <superuser required>
    UEFI: LENOVO v: M6CN38WW date: 11/16/2023
Battery:
  ID-1: BAT0 charge: 34.1 Wh (50.3%) condition: 67.8/70.0 Wh (96.8%)
    volts: 15.3 min: 15.5
CPU:
  Info: 8-core model: AMD Ryzen 7 7840S with Radeon 780M Graphics bits: 64
    type: MT MCP cache: L2: 8 MiB
  Speed (MHz): avg: 1099 min/max: 400/5132 cores: 1: 1099 2: 1099 3: 1099
    4: 1099 5: 1099 6: 1099 7: 1099 8: 1099 9: 1099 10: 1099 11: 1099 12: 1099
    13: 1099 14: 1099 15: 1099 16: 1099
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Phoenix1 driver: amdgpu v: kernel
  Device-2: IMC Networks Integrated Camera driver: uvcvideo type: USB
  Display: wayland server: X.org v: 1.21.1.14 with: Xwayland v: 24.1.4
    compositor: gnome-shell driver: gpu: amdgpu resolution: no compositor data
    resolution: 2944x1840
  API: EGL v: 1.5 drivers: kms_swrast,radeonsi,swrast
    platforms: gbm,wayland,x11,surfaceless,device
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.2.8-arch1.1
    renderer: AMD Radeon 780M (radeonsi gfx1103_r1 LLVM 18.1.8 DRM 3.59
    6.11.11-1-MANJARO)
  API: Vulkan v: 1.4.303 drivers: N/A surfaces: xcb,xlib,wayland
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Rembrandt Radeon High Definition
    Audio driver: snd_hda_intel
  Device-2: Advanced Micro Devices [AMD] ACP/ACP3X/ACP6x Audio Coprocessor
    driver: snd_pci_ps
  Device-3: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio
    driver: snd_hda_intel
  API: ALSA v: k6.11.11-1-MANJARO status: kernel-api
  Server-1: PipeWire v: 1.2.7 status: active
Network:
  Device-1: MEDIATEK MT7922 802.11ax PCI Express Wireless Network Adapter
    driver: mt7921e
  IF: wlp1s0 state: up mac: 2c:98:11:3a:5d:a5
  IF-ID-1: docker0 state: up speed: 10000 Mbps duplex: unknown
    mac: 02:42:b0:a8:68:6b
  IF-ID-2: vethb3c5a78 state: up speed: 10000 Mbps duplex: full
    mac: b6:1f:2b:60:44:a7
Bluetooth:
  Device-1: Foxconn / Hon Hai Bluetooth 5.2 Adapter [MediaTek MT7922]
    driver: btusb type: USB
  Report: btmgmt ID: hci0 rfk-id: 2 state: down bt-service: enabled,running
    rfk-block: hardware: no software: yes address: 2C:98:11:3A:5D:A6 bt-v: 5.2
Drives:
  Local Storage: total: 953.87 GiB used: 303.5 GiB (31.8%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: MZVL21T0HCLR-00BL2
    size: 953.87 GiB
Partition:
  ID-1: / size: 923.66 GiB used: 303.49 GiB (32.9%) fs: btrfs
    dev: /dev/nvme0n1p2
  ID-2: /boot/efi size: 299.4 MiB used: 7.6 MiB (2.5%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-3: /home size: 923.66 GiB used: 303.49 GiB (32.9%) fs: btrfs
    dev: /dev/nvme0n1p2
  ID-4: /var/log size: 923.66 GiB used: 303.49 GiB (32.9%) fs: btrfs
    dev: /dev/nvme0n1p2
Swap:
  ID-1: swap-1 type: partition size: 29.91 GiB used: 0 KiB (0.0%)
    dev: /dev/nvme0n1p3
Sensors:
  System Temperatures: cpu: 39.1 C mobo: N/A gpu: amdgpu temp: 34.0 C
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 28 GiB available: 27.19 GiB used: 7.94 GiB (29.2%)
  Processes: 421 Uptime: 59m Shell: Zsh inxi: 3.3.36

mhwd -li

--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
           video-linux            2024.05.06                true            PCI
            video-vesa            2017.03.12                true            PCI

Hi @skatkov,

According to https://www.avaccess.com/blogs/guides/5-tips-to-fix-screen-tearing-for-gamers/:

Screen tearing appears when your graphic card of the host machine falls out of sync with the monitor connected. Simply put, this happens because of the mismatch frame rate.

So I’d say check your frame-/refresh between your laptop and it’s screen. Another quote from the site:

Cap the refresh rate

If your monitor does not support the refresh rate coming out from the game, cap the refresh rate so that the image won’t exceed the limit that your monitor can handle. You may find the settings in your game console, the game app, or your computer settings.
Use third-party software: There are many third-party software applications available that can cap your refresh rate, such as Nvidia Inspector, and AMD Radeon Software. These tools allow you to cap your refresh rate to a specific value.
Use in-game settings: Many modern games have built-in options to cap your refresh rate. Check the video settings of your game to see if this option is available.
Set up V-sync: V-sync (Vertical Synchronization) is a setting that synchronizes your GPU’s frame rate with your monitor’s refresh rate, preventing screen tearing. Enabling V-sync will cap your frame rate to your monitor’s refresh rate.

1 Like

I’m not playing any games and hardly ever use an external monitor with my laptop.

These settings are there since I have this laptop. But will try to switch to 60hz to see if it will help with anything.

1 Like

Welp, that’s the only advice I have for you, so…

Thank you for the help!

I double-checked that my laptop screen supports 90hz refresh rate and gave 60hz a try. I still saw some tearing happening.

But your comment did make me think, that fractional scaling might be the cause of this issue - I have scaled down from 150% to 125% and so far haven’t experienced any tearing.

2 Likes

With the change of scaling factor to 125% i’m seeing way less tearing, but it’s still there. Unfortunately, completely turning this off is unusable for me – 100% and 200% are too small or too big.

But it does feel like fractional scaling is the source of a problem.

1 Like

Well thats not good.
Remove video-vesa … its a generic driver that usually breaks GUI entirely.

sudo mhwd -r pci video-vesa

Maybe reinstall video-linux for good measure…

sudo mhwd -f -i pci video-linux
1 Like

Thanks for the info! removed it.

But unfortunately, issue didn’t go away.

Aw … it was hopeful.
Then again, if your desktop was working one might suspect vesa wasnt getting in the way at all.

This is not as complete as the usual inxis.
Maybe some things would be revealed then (like boot options);

inxi -Farz

This kernel is EOL and while still in the Stable/Testing Branch, will be dropped soon.
You might try the next LTS kernel 6.12, or the previous one 6.6.

I dont use it myself so any finer points may not be in my tool set, but it is noticeable that gnome constantly changes quicker than the extensions people almost universally use to beat into into a desirable shape. You might try disabling all extensions to check.

1 Like
System:
  Kernel: 6.11.11-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 14.2.1
    clocksource: hpet avail: acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-6.11-x86_64
    root=UUID=683a8752-1b08-4f6c-9169-2a64c4a6c097 rw rootflags=subvol=@
    quiet splash apparmor=1 security=apparmor
    resume=UUID=08e1c4f5-be58-4588-96af-118006cdff61 udev.log_priority=3
    rtc_cmos.use_acpi_alarm=1 mem_sleep_default=s2idle
  Desktop: GNOME v: 47.2 tk: GTK v: 3.24.43 wm: gnome-shell with: albert
    tools: gsd-screensaver-proxy dm: GDM v: 47.0 Distro: Manjaro
    base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 83AA v: Yoga Slim 7 14APU8
    serial: <superuser required> Chassis: type: 10 v: Yoga Slim 7 14APU8
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: NO DPK serial: <superuser required>
    part-nu: LENOVO_MT_83AA_BU_idea_FM_Yoga Slim 7 14APU8
    uuid: <superuser required> UEFI: LENOVO v: M6CN38WW date: 11/16/2023
Battery:
  ID-1: BAT0 charge: 38.5 Wh (56.8%) condition: 67.8/70.0 Wh (96.8%)
    power: 18.9 W volts: 15.5 min: 15.5 model: Celxpert L22C4PF7 type: Li-poly
    serial: <filter> status: discharging cycles: 138
CPU:
  Info: model: AMD Ryzen 7 7840S with Radeon 780M Graphics bits: 64
    type: MT MCP arch: Zen 4 gen: 4 level: v4 note: check built: 2022+
    process: TSMC n5 (5nm) family: 0x19 (25) model-id: 0x74 (116) stepping: 1
    microcode: 0xA704107
  Topology: cpus: 1x dies: 1 clusters: 1 cores: 8 threads: 16 tpc: 2
    smt: enabled cache: L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 8 MiB
    desc: 8x1024 KiB L3: 16 MiB desc: 1x16 MiB
  Speed (MHz): avg: 3395 min/max: 400/5132 boost: enabled scaling:
    driver: amd-pstate-epp governor: performance cores: 1: 3395 2: 3395 3: 3395
    4: 3395 5: 3395 6: 3395 7: 3395 8: 3395 9: 3395 10: 3395 11: 3395 12: 3395
    13: 3395 14: 3395 15: 3395 16: 3395 bogomips: 105435
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow mitigation: Safe RET
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Enhanced / Automatic IBRS; IBPB:
    conditional; STIBP: always-on; RSB filling; PBRSB-eIBRS: Not affected;
    BHI: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Phoenix1 vendor: Lenovo
    driver: amdgpu v: kernel arch: RDNA-3 code: Phoenix process: TSMC n4 (4nm)
    built: 2023+ pcie: gen: 4 speed: 16 GT/s lanes: 16 ports: active: eDP-1
    empty: DP-1, DP-2, DP-3, DP-4, DP-5, DP-6, DP-7, Writeback-1
    bus-ID: c3:00.0 chip-ID: 1002:15bf class-ID: 0300 temp: 38.0 C
  Device-2: IMC Networks Integrated Camera driver: uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-1:2 chip-ID: 13d3:5293
    class-ID: fe01 serial: <filter>
  Display: wayland server: X.org v: 1.21.1.14 with: Xwayland v: 24.1.4
    compositor: gnome-shell driver: gpu: amdgpu display-ID: 0
  Monitor-1: eDP-1 model: Samsung 0x4189 built: 2022 res: 2944x1840 dpi: 240
    gamma: 1.2 size: 312x195mm (12.28x7.68") diag: 368mm (14.5") ratio: 16:10
    modes: max: 2944x1840 min: 640x480
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
    device: 1 drv: swrast gbm: drv: kms_swrast surfaceless: drv: radeonsi
    wayland: drv: radeonsi x11: drv: radeonsi
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.2.8-arch1.1
    glx-v: 1.4 direct-render: yes renderer: AMD Radeon 780M (radeonsi
    gfx1103_r1 LLVM 18.1.8 DRM 3.59 6.11.11-1-MANJARO) device-ID: 1002:15bf
    memory: 3.91 GiB unified: no display-ID: :0.0
  API: Vulkan v: 1.4.303 layers: N/A device: 0 type: integrated-gpu name: AMD
    Radeon 780M (RADV GFX1103_R1) driver: N/A device-ID: 1002:15bf
    surfaces: xcb,xlib,wayland
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Rembrandt Radeon High Definition
    Audio vendor: Lenovo driver: snd_hda_intel v: kernel pcie: gen: 4
    speed: 16 GT/s lanes: 16 bus-ID: c3:00.1 chip-ID: 1002:1640 class-ID: 0403
  Device-2: Advanced Micro Devices [AMD] ACP/ACP3X/ACP6x Audio Coprocessor
    vendor: Lenovo driver: snd_pci_ps v: kernel alternate: snd_pci_acp3x,
    snd_rn_pci_acp3x, snd_pci_acp5x, snd_pci_acp6x, snd_acp_pci,
    snd_rpl_pci_acp6x, snd_sof_amd_renoir, snd_sof_amd_rembrandt,
    snd_sof_amd_vangogh, snd_sof_amd_acp63 pcie: gen: 4 speed: 16 GT/s
    lanes: 16 bus-ID: c3:00.5 chip-ID: 1022:15e2 class-ID: 0480
  Device-3: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio
    vendor: Lenovo driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
    lanes: 16 bus-ID: c3:00.6 chip-ID: 1022:15e3 class-ID: 0403
  API: ALSA v: k6.11.11-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.2.7 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: MEDIATEK MT7922 802.11ax PCI Express Wireless Network Adapter
    vendor: Lenovo driver: mt7921e v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 1
    bus-ID: 01:00.0 chip-ID: 14c3:0616 class-ID: 0280
  IF: wlp1s0 state: up mac: <filter>
  IF-ID-1: docker0 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IF-ID-2: vetha7efd87 state: up speed: 10000 Mbps duplex: full
    mac: <filter>
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
Bluetooth:
  Device-1: Foxconn / Hon Hai Bluetooth 5.2 Adapter [MediaTek MT7922]
    driver: btusb v: 0.8 type: USB rev: 2.1 speed: 480 Mb/s lanes: 1 mode: 2.0
    bus-ID: 1-5:3 chip-ID: 0489:e0d8 class-ID: e001 serial: <filter>
  Report: btmgmt ID: hci0 rfk-id: 3 state: down bt-service: enabled,running
    rfk-block: hardware: no software: yes address: N/A
Drives:
  Local Storage: total: 953.87 GiB used: 279.55 GiB (29.3%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung
    model: MZVL21T0HCLR-00BL2 size: 953.87 GiB block-size: physical: 512 B
    logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: EL1QGXA7 temp: 36.9 C scheme: GPT
Partition:
  ID-1: / raw-size: 923.66 GiB size: 923.66 GiB (100.00%)
    used: 279.54 GiB (30.3%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 7.6 MiB (2.5%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 923.66 GiB size: 923.66 GiB (100.00%)
    used: 279.54 GiB (30.3%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-4: /var/log raw-size: 923.66 GiB size: 923.66 GiB (100.00%)
    used: 279.54 GiB (30.3%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: partition size: 29.91 GiB used: 0 KiB (0.0%)
    priority: -2 dev: /dev/nvme0n1p3 maj-min: 259:3
Sensors:
  System Temperatures: cpu: 47.0 C mobo: 44.0 C gpu: amdgpu temp: 39.0 C
  Fan Speeds (rpm): N/A
Repos:
  Packages: 1605 pm: pacman pkgs: 1590 libs: 349 tools: gnome-software,pamac
    pm: flatpak pkgs: 15
  Active pacman repo servers in: /etc/pacman.d/mirrorlist
    1: https://manjaro.mirrors.lavatech.top/stable/$repo/$arch
Info:
  Memory: total: 28 GiB available: 27.19 GiB used: 11.03 GiB (40.6%)
  Processes: 472 Power: uptime: 1d 2h 43m states: freeze,mem,disk
    suspend: s2idle wakeups: 5 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 10.85 GiB services: gsd-power,
    power-profiles-daemon, upowerd Init: systemd v: 256 default: graphical
    tool: systemctl
  Compilers: clang: 18.1.8 gcc: 14.2.1 Shell: Zsh v: 5.9 running-in: ghostty
    inxi: 3.3.36

I can’t go to 6.6, because this kernel doesn’t play well with some of my hardware. But I enabled 6.12, this is the one I downgraded from.

That’s a great tip actually, I assumed that some extensions could be causing this and tried to disable some of them, without much luck. But I haven’t thought about disabling all of them.

There is a nice setting that does that (and remember all extensions that have been enabled)

gsettings set org.gnome.shell disable-user-extensions true

And another nice setting to turn those back on

gsettings set org.gnome.shell disable-user-extensions false

So far, haven’t seen any issues (running for an hour), but lets see if that the case with longer use.