Ryzen 5 3400G APU 的图形故障和伪影

Ezr*_*zra 6 graphics amd-ryzen

我建造了一台新电脑,现在在浏览器中浏览网页或流式传输视频时出现奇怪的图形故障。

https://i.imgur.com/hJJm5aY.png

https://i.imgur.com/X74isqn.png

https://i.imgur.com/2ka12zm.mp4(这不是我的,但与我发生的情况相似)

我的设置:

带有集成显卡的 Ryzen 5 3400G 处理器

技嘉 B450M DS3H 主板(BIOS 更新为最新固件),16GB (2x8GB) DDR4 3200

连接到三星 Q70R QLED 智能 4K 电视(旧电脑和 HDMI 线与此电视配合良好)

我尝试了网上搜索的许多修复程序,但似乎没有一个能完全解决问题。我尝试了最新的 Ubuntu 18.04 和 20.04 版本的全新安装。我尝试了几种更新或更改内核版本的方法。更改分辨率、刷新率或缩放比例并不能解决问题。

全新 20.04 安装后的当前配置:

lsb_release -a

Distributor ID: Ubuntu
Description:    Ubuntu 20.04 LTS
Release:    20.04
Codename:   focal
Run Code Online (Sandbox Code Playgroud)

uname -a

Linux media-server 5.4.0-29-generic #33-Ubuntu SMP Wed Apr 29 14:32:27 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

lspci | VGA

07:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Picasso (rev c8)
Run Code Online (Sandbox Code Playgroud)

须藤 lshw -c 视频

*-display                 
       description: VGA compatible controller
       product: Picasso
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0
       bus info: pci@0000:07:00.0
       version: c8
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi msix vga_controller bus_master cap_list rom
       configuration: driver=amdgpu latency=0
       resources: irq:101 memory:e0000000-efffffff memory:f0000000-f01fffff ioport:e000(size=256) memory:fcb00000-fcb7ffff memory:c0000-dffff
Run Code Online (Sandbox Code Playgroud)

小智 6

在 Ubuntu 20.04 LTS / Ryzen 3 3200G / Gigabyte B450M S2H / 16GB (2x8GB) DDR4 3200 上也可以观察到同样的问题。

解决方法 1:

在 BIOS 中禁用 IOMMU。

解决方法 2:

iommu=pt按照/etc/default/grub以下步骤添加到命令行。

  1. sudo nano /etc/default/grub
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使这GRUB_CMDLINE_LINUX_DEFAULT条线看起来像这样

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=pt"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 更新 grub

    sudo update-grub
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重启

    sudo reboot
    
    Run Code Online (Sandbox Code Playgroud)