Jump to content

AMDGPU (Magyar)

From ArchWiki
Fordítás állapota: Ez az oldal az angol AMDGPU című oldal magyar nyelvre lefordított változata. Utolsó fordítás dátuma: 2026.10.26. Amennyiben a lefordítás időpontja óta az angol nyelvű oldalon történtek újabb módosítások, akkor Ön segíthet hozzászinkronizálni az angolhoz ezt a magyar nyelvű fordítást.

Az AMDGPU az AMD Radeon grafikus kártyák nyílt forráskódú grafikus illesztőprogramja a Graphics Core Next család óta.

Válasz ki a megfelelő illesztőprogramot

A videókártya típusától függően megtalálod a megfelelő illesztőprogramot itt Graphics_processing_unit#AMD. Ez az illesztőprogram támogatja a [Southern Island] (GCN 1, 2012-es) és késöbbi kártyákat. Az AMD nem tervezi az ez elötti videókártyák támogatását.

Nem támogatott videókártyák tulajdonosai használhatják a nyílt forráskódú ATI illesztőprogramot.

Telepítés

Telepítsd a mesa csomagot, ami telepíti a DRI vezérlőt ami szükséges 3D rajzolás gyorsításához és a VA-API/VDPAU csomagot ami a hatékonyabb videólejátszáshoz járul hozzá.

  • 32-bites alkalmazások támogatásához töltsd le a lib32-mesa csomagot a multilib részlegből.
    • Legtöbb rendszer ami az amdgpu kernel illesztőprogramot használja az megfelelően fog működni az autómatikusan szolgáltatott verzióval ami a xorg-server csomagban van.Esetleg ha problémák merülnek fel Xorg alapú rendszer alatt a 2D rajzolás felgyorsításához, opcionálisan letöltheted a xf86-video-amdgpu csomagot, ami biztosítja a AMD-hez szükséges DDX illesztőprogramot. Különleges esetekben azonban a xf86-video-amdgpu csomag lehet szükséges annak érdekében, hogy TearFree (szakadásmentes) képet kapjunk vagy, hogy megoldjunk bizonyos AMD videókártyán felmerülő problémát, például a Southern Islands szériában. Olvass többet itt Intel graphics#Installation.
  • Vulkan támogatáshoz telepítsd a vulkan-radeon-t és (lib32-vulkan-radeon-t a 32-bites alkalmazások támogatásához).

Kísérleti

Bizonyos felhasználóknak megérheti, hogy a mesa csomag kísérleti ágát telepítsék.

Telepítsd a mesa-gitAUR csomagot, ami telepíti a DRI ami szükséges 3D rajzolás gyorsításához.

  • Továbbá, 32-bites alkalmazások támogatásához telepítsd a lib32-mesa-gitAUR csomagot a mesa-git könyvtárból vagy a Archlinux felhasználói könyvtár-ból.
  • Xorg alapú rendszer alatt a 2D rajzolás felgyorsításához letöltheted opcionálisan xf86-video-amdgpu-gitAUR csomagot, ami biztosítja a AMD-hez szükséges DXX illesztőprogramot. Ez a általában nem ajánlott.
  • A mesa-git csomag Vulkan támogatásához telepítsd a vulkan-radeon-git csomagot. Opcionálisan telepítsd a lib32-vulkan-radeon-git csomagot 32-bites alkalmazások támogatásához. Ez nem szükséges ha megépíted és telepíted a mesa-gitAUR csomagot az Archlinux felhasználói könyvtár-ból.
Tipp Felhasználók akik nem akarnak a csomag építésével foglalkozni azok letudják tölteni mesa-git csomagot a nem hivatalos könyvtárból.

Southern Islands (SI) és Sea Islands (CIK) széria támogatás bekapcsolása

Hivatalosan támogatott Kernelek bekapcsolják a Southern Islands (GCN 1, 2012-es) és a Sea Islands (GCN 2, 2013-as) kártyák támogatását. Az amdgpu kernel illesztőprogram az radeon illesztőprogram elött kell, hogy beöltve legyen. Meg tudod nézni, hogy melyik illesztőprogram van betöltve, ha lefuttatod ezt a parancsot. lspci -k. Így kéne legyen:

$ lspci -k -d ::03xx
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900 GRE/7900M] (rev cc)
	Subsystem: Gigabyte Technology Co., Ltd Device 240c
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu

Ha az amdgpu illesztőprogram nincs használva akkor kövesd a következő szekcióban levő utasításokat.

amdgpu illesztőprogram betöltése

Az amdgpu és radeon modul paraméterei mindkettőnek cik_support= és si_support=.

Ezek kernel paraméterekként vagy modprobe konfigurációs fáljban kell, hogy legyenek beállítva. Továbba a GCN széria verziótól is függ , hogy melyiket kell használni.

Használhatod mindkettő paramétert, hogyha nem vagy biztos abban hogy milyen típusú a videókártyád

Tipp dmesg lehet rámutat, hogy melyik a megfelelő kernel paraméter: [..] amdgpu 0000:01:00.0: Use radeon.cik_support=0 amdgpu.cik_support=1 to override.
Állítsd be a modul paramétert a kernel parancssorban

Állítsd be valamelyik következő kernel paramétert:

  • Southern Islands (SI): radeon.si_support=0 amdgpu.si_support=1
  • Sea Islands (CIK): radeon.cik_support=0 amdgpu.cik_support=1

Továbbá, hogyha AMD A10 APU-t használsz egy integrált Sea Island (GCN 1.1) videókártyával, akkor lehet ki kell kapcsolnod a Radeon Dinamikus Energia Használat funkciót, annak érdekében, hogy megfelelően induljon el a számítógép. Ez a funkció dinamikusan lezárja a videó magot annak érdekében, hogy az APU hűtő halkabb és hidegebb legyen. De mikor ez a funkció be van kapcsolva lehetséges, hogy a számítógép egy végtelen újraindulási ciklusban ragad. A funkció kikapcsolásához kövesd az alábbi instrukciókat ha systemd-boot-ot használod:

$ sudo nano /etc/kernel/cmdline
Itt a fálj végére másold be Ctrl+Shift+V-vel ezt: 
Tipp radeon.dpm=0

Specifikáld a helyes modul betöltési sorrendet

Bizonyosodj meg róla, hogy az amdgpu az első modul a sorrendben a Mkinitcpio#MODULES között. Így tudod megnézni:

$ sudo nano /etc/mkinitcpio.conf
Tipp MODULES=(amdgpu radeon)
  • Ha GCN 2 vagy újabb videókártyád van akkor nem szükséges a radeon modul és csak rontja a teljesítményt.


Állítsd be a kernel modul paramétereit

Southern Islands (SI) videókártyára használd si_support=1 kernel modul paramétert, a Sea Islands-re (CIK) használd cik_support=1

/etc/modprobe.d/amdgpu.conf
options amdgpu si_support=1
options amdgpu cik_support=1
/etc/modprobe.d/radeon.conf
options radeon si_support=0
options radeon cik_support=0

Bizonyosodj meg róla, hogy a modconf benne van a HOOKS szekcióban a /etc/mkinitcpio.conf fáljban és építsd újra az initramfs-t.

  • Ha újra akarod építeni az initramfs-t használd ezt a parancsot:
# sudo mkinitcpio -P
Építsd meg a kernel úgy, hogy támogassa az amdgpu illesztőprogramot

Mikor építed a kernel-t akkor bizonyosodj meg róla, hogy CONFIG_DRM_AMDGPU_SI=Y és a CONFIG_DRM_AMDGPU_CIK=Y be vannak állítva a konfigurációban Y-re.

ACO

Az ACO egy nyílt forráskódú shader építő program, amelyet a Valve Corporation hozott létre és fejlesztett, közvetlen versenytársként az LLVM shader építő programnak, valamint a Windows 10 beépített shader építőjének a konkurenciájaként. Az ACO rövidebb építési időt kínál, és videójáték közben jobban teljesít, mint az LLVM.

Néhány teszt megtekinthető a GitHub weboldalon és a Phoronix weboldalon (1) (2).

A mesa 20.2 verziója óta az ACO az alapértelmezett shader építő.

Betöltés

Az amdgpu kernel modul autómatikusan kell, hogy betöltsön mikor elindítod a rendszert.

Ha ez nem történik meg akkor kövesd az alábbi utasításokat:

Lehetséges, hogy betölt viszont túl későn, miután az X szervernek szüksége van rá. Ebben az esetben olvasd el ezt: Kernel modul előrehozott betöltése.

Xorg configuráció

Xorg autómatikusan betölti az illesztőprogramot és használni fogja a monitorod EDID-ját és beállítja a helyes felbontást. Configuráció csak akkor szükséges mikor tunningolni akarod az illesztőprogramot.

Ha manuálisan szeretnéd configurálni akkor, a xorg.conf.d mappa alá csinálj egy 20-amdgpu.conf"" fáljt így: /etc/X11/xorg.conf.d/20-amdgpu.conf

/etc/X11/xorg.conf.d/20-amdgpu.conf
Section "OutputClass"
     Identifier "AMD"
     MatchDriver "amdgpu"
     Driver "amdgpu"
EndSection

Ezt a szekciót használva, be tudsz változtatni az illesztőprogram beállításain és funkcióin. Nézd meg a amdgpu(4)-t mielőtt változtatsz illesztőprogram funkciókat vagy beállításokat.

Szakadásmentes rajzolás

TearFree kontrollálja a szakadásos rajzolás megelőzését hardware oldal lapozó mechanizmussal. Alapból szakadásmentesség be lesz kapcsolva forgó kimenetelekre, Randr transzformátorokra, RandR 1.4 rab kimenetelekre és minden másra is. De tudod manuálisan is beállítani, hogy mindig be legyen kapcsolva vagy ki legyen kapcsolva ezekkel a beállításokkal: true(bekapcsolva) és false(kikapcsolva).

Option "TearFree" "true"

Esetlegesen be tudod kapcsolni szakadásmentességet ideglenesen az xrandr-el:

$ xrandr --output output --set TearFree on

Az output így kell kinézzen: DisplayPort-0 vagy HDMI-A-0. A pontos output ot megkapod ezzel a parancsal: xrandr -q.

DRI szint

DRI beállítja a maximális szintű DRI-t amit bekapcsoljon. Helyes értékek a 2, hogy bekapcsold a DRI2-őt vagy 3, hogy bekapcsold a DRI3-mat. Az alap érték az 3 ha a Xorg verzió az >= 1.18.3, másképp pedig DRI2 lesz használva:

Option "DRI" "3"

Változó képfrissítési sebesség

További információt itt találsz:Variable refresh rate.

10-bit color

Figyelmeztetés Many applications may have graphical artifacts or crash when 10-bit color is enabled. This notably includes Steam, which crashes with an X Error.

Newer AMD cards support 10bpc color, but the default is 24-bit color and 30-bit color must be explicitly enabled. Enabling it can reduce visible banding/artifacts in gradients, if the applications support this too. To check if your monitor supports it search for "EDID" in your Xorg log file (e.g. /var/log/Xorg.0.log or ~/.local/share/xorg/Xorg.0.log):

[   336.695] (II) AMDGPU(0): EDID for output DisplayPort-0
[   336.695] (II) AMDGPU(0): EDID for output DisplayPort-1
[   336.695] (II) AMDGPU(0): Manufacturer: DEL  Model: a0ec  Serial#: 123456789
[   336.695] (II) AMDGPU(0): Year: 2018  Week: 23
[   336.695] (II) AMDGPU(0): EDID Version: 1.4
[   336.695] (II) AMDGPU(0): Digital Display Input
[   336.695] (II) AMDGPU(0): 10 bits per channel

To check whether it is currently enabled search for "Depth"):

[   336.618] (**) AMDGPU(0): Depth 30, (--) framebuffer bpp 32
[   336.618] (II) AMDGPU(0): Pixel depth = 30 bits stored in 4 bytes (32 bpp pixmaps)

With the default configuration it will instead say the depth is 24, with 24 bits stored in 4 bytes.

To check whether 10-bit works, exit Xorg if you have it running and run Xorg -retro which will display a black and white grid, then press Ctrl-Alt-F1 and Ctrl-C to exit X, and run Xorg -depth 30 -retro. If this works fine, then 10-bit is working.

To launch in 10-bit via startx, use startx -- -depth 30. To permanently enable it, create or add to:

/etc/X11/xorg.conf.d/20-amdgpu.conf
Section "Screen"
	Identifier "asdf"
	DefaultDepth 30
EndSection

Reduce output latency

If you want to minimize latency you can disable page flipping and tear free:

/etc/X11/xorg.conf.d/20-amdgpu.conf
Section "OutputClass"
     Identifier "AMD"
     MatchDriver "amdgpu"
     Driver "amdgpu"
     Option "EnablePageFlip" "off"
     Option "TearFree" "false"
EndSection

See Gaming#Reducing DRI latency to further reduce latency.

Megjegyzés Setting these options may cause tearing and short-lived artifacts to appear.

Funkciók

Videógyorsítás

Több információt itt találsz:Hardware video acceleration#AMD/ATI.

Teljesítmény megfigyelés

A videókártyád megfigyelése azt a célt szolgálja, hogy ellenőrizd, hogy a videókártyának mennyi a hőfoka és, hogy milyen teljesítmény állapotban van (P-states néven ismert).

Parancssori alkalmazások

  • amdgpu_top — AMD videókártya használat figyelő alkalmazás.
https://github.com/Umio-Yasuno/amdgpu_top || amdgpu_top
  • nvtop — Videókártya használat és hőfok figyelő alkalmazás AMD, Intel és NVIDIA videókártyákra.
https://github.com/Syllo/nvtop || nvtop
  • radeontop — AMD videókártya használt megfigyelő, teljes használat és alkalmazásokra és procedúrákra lebontott blokk figyelés is.
https://github.com/clbr/radeontop || radeontop

Grafikus felhasználói felület

  • amdgpu_top — AMD videókártya használat figyelő alkalmazás.
https://github.com/Umio-Yasuno/amdgpu_top || amdgpu_top
  • AmdGuid — Egy alapvető ventillátor sebesség állító Grafikus felhasználói felületű program, ami teljesen Rust-ban lett írva.
https://github.com/Eraden/amdgpud || amdguid-wayland-binAUR, amdguid-glow-binAUR
  • Radeon Profile — Qt5 alapú eszköz, hogy megfigyeld és változtasd a videókártyád sebességét AMD Radeon videókártyákon.
https://github.com/emerge-e-world/radeon-profile || radeon-profile-gitAUR
  • TuxClocker — Qt5 alapú megfigyelő és videókártya túlhajtó alkalmazás.
https://github.com/Lurkki14/tuxclocker || tuxclockerAUR

Manuális

Hogy megnézd a videókártyád P-state állapotát, futtasd le eszt:

$ cat /sys/class/drm/card0/device/pp_od_clk_voltage

Hogy mefigyeld a videókártyád, futtasd le eszt:

# watch -n 0.5 cat /sys/kernel/debug/dri/0/amdgpu_pm_info

Hogy megnézd a videókártyád használatát, futtasd le ezt:

$ cat /sys/class/drm/card0/device/gpu_busy_percent

Hogy megnézd a videókártyád frekvenciáját, futtasd le ezt:

$ cat /sys/class/drm/card0/device/pp_dpm_sclk

Hogy megnézd a videókártyád hőmérsékletét, futtasd le ezt:

$ cat /sys/class/drm/card0/device/hwmon/hwmon*/temp1_input

Hogy megnézd a VRAM frekvenciádat, futtasd le ezt:

$ cat /sys/class/drm/card0/device/pp_dpm_mclk

Hogy megnézd a VRAM használatodat, futtasd le ezt:

$ cat /sys/class/drm/card0/device/mem_info_vram_used

Hogy megnézd, hogy mennyi VRAM-od van, futtasd le ezt:

$ cat /sys/class/drm/card0/device/mem_info_vram_total

Túlhajtás

Linux 4.17 óta, miután bekapcsoltad az alább említett funkciót a #Indítási paraméterek-nél, akkor lehetséges állítani a videókártyád órajelét és, hogy mennyi feszültséget kap. Ez a beállítás ide kerül: /sys/class/drm/card0/device/pp_od_clk_voltage.

Indítási paraméterek

Ez a paraméter szükséges, hogy felold az órajél és feszültség kezelést sysfs-ben. Kernel paraméter: amdgpu.ppfeaturemask=0xffffffff.

Nem az összes bit van meghatározva, és új funkciók idővel lehet hozzá lesznek adva. Beállítani mind a 32 bitet az bekapcsolhat instabil funkciókat amik problémákat okozhatnak, például: képernyő villogás, képtelen lesz a gép felébredni hibernációból. Elégséges kell legyen, hogy beállítsd a PP_OVERDRIVE_MASK bit, 0x4000-et, kombinációban az alap ppfeaturemask-al. Hogy kiszámítsd a számítógépednek a megfelelő paramétert, futtasd le ezt:

$ printf 'amdgpu.ppfeaturemask=0x%x\n' "$(($(cat /sys/module/amdgpu/parameters/ppfeaturemask) | 0x4000))"

Manual

Megjegyzés In sysfs, paths like /sys/class/drm/... are just symlinks and may change between reboots. Persistent locations can be found in /sys/devices/, e.g. /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/. Adjust the commands accordingly for a reliable result.

For in-depth information on all possible options, read the kernel documentation for amdgpu thermal control.

To enable manual overclocking, select the manual performance level as described in #Performance levels.

To set the GPU clock for the maximum P-state 7 on e.g. a Polaris GPU to 1209MHz and 900mV voltage, run:

# echo "s 7 1209 900" > /sys/class/drm/card0/device/pp_od_clk_voltage

The same procedure can be applied to the VRAM, e.g. maximum P-state 2 on Polaris 5xx series cards:

# echo "m 2 1850 850" > /sys/class/drm/card0/device/pp_od_clk_voltage
Figyelmeztetés Double check the entered values, as mistakes might instantly cause fatal hardware damage!

To apply, run:

# echo "c" > /sys/class/drm/card0/device/pp_od_clk_voltage

To check if it worked out, read out clocks and voltage under 3D load:

# watch -n 0.5 cat /sys/kernel/debug/dri/0/amdgpu_pm_info

You can reset to the default values using:

# echo "r" > /sys/class/drm/card0/device/pp_od_clk_voltage

It is also possible to forbid the driver from switching to certain P-states, e.g. to workaround problems with deep powersaving P-states, such as flickering artifacts or stutter. To force the highest VRAM P-state on a card, while still allowing the GPU itself to run with lower clocks, first find the highest possible P-state, then set it:

$ cat /sys/class/drm/card0/device/pp_dpm_mclk
0: 96Mhz *
1: 456Mhz
2: 675Mhz
3: 1000Mhz
# echo "manual" > /sys/class/drm/card0/device/power_dpm_force_performance_level
# echo "3" >  /sys/class/drm/card0/device/pp_dpm_mclk

Allow only the three highest GPU P-states:

# echo "5 6 7" > /sys/class/drm/card0/device/pp_dpm_sclk

To set the allowed maximum power consumption of the GPU to e.g. 50 Watts, run:

# echo 50000000 > /sys/class/drm/card0/device/hwmon/hwmon0/power1_cap
Megjegyzés The above procedure was tested with a Polaris RX 560 card. There may be different behavior or bugs with different GPUs.

Assisted

If you are not inclined to fully manually overclock your GPU, there are some overclocking tools that are offered by the community to assist you to overclock and monitor your AMD GPU.

CLI tools
  • amdgpu-clocks — A script that can be used to monitor and set custom power states for AMD GPUs. It also offers a Systemd service to apply the settings automatically upon boot.
https://github.com/sibradzic/amdgpu-clocks || amdgpu-clocks-gitAUR
  • ruby-amdgpu_fan — A CLI for interacting with the amdgpu Linux driver written in Ruby.
https://github.com/HarlemSquirrel/amdgpu-fan-rb || ruby-amdgpu_fanAUR
GUI tools
  • TuxClocker — A Qt5 monitoring and overclocking tool.
https://github.com/Lurkki14/tuxclocker || tuxclockerAUR
  • CoreCtrl — A GUI overclocking tool with a WattMan-like UI that supports per-application profiles.
https://gitlab.com/corectrl/corectrl || corectrl
  • LACT — A GTK tool to view information and control your AMD GPU.
https://github.com/ilya-zlobintsev/LACT || lact
  • Radeon Profile — A Qt5 tool to read and change current clocks of AMD Radeon cards.
https://github.com/emerge-e-world/radeon-profile || radeon-profile-gitAUR

Startup on boot

One way is to use systemd units, if you want your settings to apply automatically upon boot, consider looking at this Reddit thread to configure and apply your settings on boot.

Another way is to use udev rules for some of the values, for example, to set a low performance level to save energy:

/etc/udev/rules.d/30-amdgpu-low-power.rules
ACTION=="add", SUBSYSTEM=="drm", DRIVERS=="amdgpu", ATTR{device/power_dpm_force_performance_level}="low"

Performance levels

AMDGPU offers several performance levels, the file power_dpm_force_performance_level is used for this, it is possible to select between these levels:

  • auto: dynamically select the optimal power profile for current conditions in the driver.
  • low: clocks are forced to the lowest power state.
  • high: clocks are forced to the highest power state.
  • manual: user can manually adjust which power states are enabled for each clock domain (used for setting #Power profiles)
  • profile_standard, profile_min_sclk, profile_min_mclk, profile_peak: clock and power gating are disabled and the clocks are set for different profiling cases. This mode is recommended for profiling specific work loads

To set the AMDGPU device to use a low performance level, the following command can be executed:

# echo "low" > /sys/class/drm/card0/device/power_dpm_force_performance_level
Megjegyzés Performance levels changes should be reapplied at every boot, see #Startup on boot to automate this.

Power profiles

AMDGPU offers several optimizations via power profiles, one of the most commonly used is the compute mode for OpenCL intensive applications. Available power profiles can be listed with:

$ cat /sys/class/drm/card0/device/pp_power_profile_mode
NUM        MODE_NAME     SCLK_UP_HYST   SCLK_DOWN_HYST SCLK_ACTIVE_LEVEL     MCLK_UP_HYST   MCLK_DOWN_HYST MCLK_ACTIVE_LEVEL
  0   BOOTUP_DEFAULT:        -                -                -                -                -                -
  1   3D_FULL_SCREEN:        0              100               30                0              100               10
  2     POWER_SAVING:       10                0               30                -                -                -
  3            VIDEO:        -                -                -               10               16               31
  4               VR:        0               11               50                0              100               10
  5        COMPUTE *:        0                5               30               10               60               25
  6           CUSTOM:        -                -                -                -                -                -
Megjegyzés card0 identifies a specific GPU in your machine, in case of multiple GPUs be sure to address the right one.

To use a specific power profile you should first enable manual control over them with:

# echo "manual" > /sys/class/drm/card0/device/power_dpm_force_performance_level

Then to select a power profile by writing the NUM field associated with it, e.g. to enable COMPUTE run:

# echo "5" > /sys/class/drm/card0/device/pp_power_profile_mode

The exact values and limits of power profiles is managed through the powerplay table system. Use upliftpowerplayAUR to modify the table for supported models (Polaris to Navi2x; Navi3x and Navi4x are bugged on kernel side).

Megjegyzés Power profile changes should be reapplied at every boot, see #Startup on boot to automate this.

Enable GPU display scaling

This article or section is a candidate for merging with xrandr.

Notes: Not specific to AMDGPU. (Discuss in Talk:AMDGPU (Magyar)#Moving "Enable GPU display scaling" to xrandr)

To avoid the usage of the scaler which is built in the display, and use the GPU own scaler instead, when not using the native resolution of the monitor, execute:

$ xrandr --output output --set "scaling mode" scaling_mode

Possible values for "scaling mode" are: None, Full, Center, Full aspect.

  • To show the available outputs and settings, execute:
    $ xrandr --prop
  • To set scaling mode = Full aspect for just every available output, execute:
    $ for output in $(xrandr --prop | grep -E -o -i "^[A-Z\-]+-[0-9]+"); do xrandr --output "$output" --set "scaling mode" "Full aspect"; done

Virtual display on headless setups

AMDGPU offers GPU accelerated virtual monitors for headless setups without the use of a dummy plug. This is useful for RDP and game streaming software such as sunshineAUR.

Choose the AMD GPU to use:

$ lspci -Dd ::03xx
1234:56:78.9 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] CommercialModelName

Add the virtual_display=1234:56:78.9,x kernel module parameter for the amdgpu module, where 1234:56:78.9 is the PCI address of the GPU and x is the number of crtc (virtual monitors) to expose. Using this parameter also disables physical outputs. [1]

Multiple GPUs can also be used by separating PCI address with a semicolon (;) as shown below:

amdgpu.virtual_display=1234:56:78.9,x;9876:54:32.1,y

User queues

The AMDGPU driver supports user queues, which allow job submission directly to the GPU hardware without going through the kernel driver’s command submission ioctl. Enabling this can reduce latency and improve efficiency by bypassing some kernel driver overhead.

To enable user queues, set the following environment variable:

export AMD_USERQ=1

Hibaelhárítás

Modul paraméterek

Az amdgpu modul elrejt több configurációs paramétert (modinfo amdgpu | grep mask) maszkokban amik csak a kernel dokumentációban vannak leírva.

Xorg or applications will not start

  • "(EE) AMDGPU(0): [DRI2] DRI2SwapBuffers: drawable has no back or front?" error after opening glxgears, can open Xorg server but OpenGL applications crash.
  • "(EE) AMDGPU(0): Given depth (32) is not supported by amdgpu driver" error, Xorg will not start.

Setting the screen's depth under Xorg to 16 or 32 will cause problems/crash. To avoid that, you should use a standard screen depth of 24 by adding this to your "screen" section:

/etc/X11/xorg.conf.d/10-screen.conf
Section "Screen"
       Identifier     "Screen"
       DefaultDepth    24
       SubSection      "Display"
               Depth   24
       EndSubSection
EndSection

Screen artifacts and frequency problem

Dynamic power management may cause screen artifacts to appear when displaying to monitors at higher frequencies (anything above 60Hz) due to issues in the way GPU clock speeds are managed[2][3].

A workaround [4] is to set the high or low performance level as described in #Performance levels.

Changing the kernel version can also help eliminate this issue. For example, it appears to be fixed in 6.12.9.

Chromiumban kép hibák

Ha bármilyen képhibát vélsz fel miközben Chromium-ot használsz akkor vulkan alapú rajzolás lehet segíteni fog. Menj a chrome://flags weboldalra és kapcsold be a #ignore-gpu-blocklist és az #enable-vulkan-t.

R9 390 széria rossz teljesítmény és vagy instabilitás

Ha tapasztalsz hibát [5] az AMD R9 390 szériás videókártyával akkor ezeket kernel paraméterként radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1 amdgpu.si_support=1 amdgpu.dc=1 hogy rávedd a kártyát, hogy amdgpu illesztőprogramot használja a radeon helyett. .

Ha ez nem segített akkor kapcsold ki a DPM-et, add hozzá radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1 amdgpu.si_support=1 a kernel paraméterekhez.

Freezes with "[drm] IP block:gmc_v8_0 is hung!" kernel error

If you experience freezes and kernel crashes during a GPU intensive task with the kernel error " [drm] IP block:gmc_v8_0 is hung!" [6], a workaround is to set amdgpu.vm_update_mode=3 as kernel parameters to force the GPUVM page tables update to be done using the CPU. Downsides are listed here [7].

Kép villogás, fehér/ szürke

Mikor változtatsz felbontást vagy csatlakoztatsz egy külső monitort akkor a kép villog vagy fehér marad akkor add ezt hozzá a kernel paraméterekhez: amdgpu.sg_display=0.

Rendszer fagyás vagy összeomlás mikor videójáték fut Vega szériájú kártyán

Dinamikus áram használat lehet, hogy teljesen lefagyasztja a rendszert miközben játszol mivel hibák jelenhetnek meg mikor a videókártya dinamikusan állítja az órajelét, amiatt ahogy kezelve van a rendszer. [8] A hiba kikerülése érdekében, állítsd be high-ra mint ahogy itt le van írvaAMDGPU_(Magyar)#Performance_levels.

Webrajzoló (Firefox) korrupció

Kép hibák vagy másféle anomáliák megmutathatják magukat (például: nem tudsz kiválasztani extension opciókat) mikor Webrajzoló be van kapcsolva kötelezően a felhasználó által. Hiba kikerülése érdekében legyen az OpenGL visszaesés bekapcsolva.

Double-speed or "chipmunk" audio, or no audio when a 4K@60Hz device is connected

This is sometimes caused by a communication issue between an AMDGPU device and a 4K display connected over HDMI. A possible workaround is to enable HDR or "Ultra HD Deep Color" via the display's built-in settings. On many Android based TVs, this means setting this to "Standard" instead of "Optimal".

Issues with power management / dynamic re-activation of a discrete amdgpu graphics card

If you encounter issues where the kernel driver is loaded, but the discrete graphics card still is not available for games or becomes disabled during use (similar to [9]), you can workaround the issue by setting the kernel parameter amdgpu.runpm=0, which prevents the dGPU from being powered down dynamically at runtime.

Frozen or unresponsive display (flip_done timed out)

A bug in the amdgpu driver may stop the display from updating [10]. It is suggested to append the amdgpu.dcdebugmask=0x10 or amdgpu.dcdebugmask=0x12 kernel parameter as a workaround.

kfd: amdgpu: TOPAZ not supported in kfd

In the system journal or the kernel message keyring a critical level error message

kfd: amdgpu: TOPAZ not supported in kfd

may appear. If you are not planning to use Radeon Open Compute, this can be safely ignored. It is not supported in TOPAZ, as they are old GPUs. [11] [12]

High idle power draw due to MCLK locked at MAX (1000MHz), or MIN (96MHz) causing low game performance (on 6.4 kernel)

On high resolutions and refresh rates, the MCLK (vram / memory clock) may be locked at the highest clock rate (1000MHz) [13] [14] causing higher GPU idle power draw. On Linux kernel 6.4.x, MCLK clocks at the lowest (96MHz), causing low performance in games [15] [16].

This is likely due to a monitor not using Coordinated Video Timings (CVT) with a low V-Blank value for the affected resolutions and refresh rates, see this gist for a workaround.

Failure to suspend to RAM

The amdgpu kernel module tries to buffer VRAM in RAM when the system enters S3 to prevent memory loss through VRAM decay which is not sufficiently refreshed.

If you are using a lot of VRAM and are short on free RAM this can fail despite sufficient SWAP memory would be available, because the IO subsystem might have been suspended before.

You will see something like:

kernel: systemd-sleep: page allocation failure: order:0, mode:0x100c02(GFP_NOIO|__GFP_HIGHMEM|__GFP_HARDWALL), nodemask=(null),cpuset=/,mems_allowed=0
kernel: Call Trace:
kernel:  <TASK>
kernel:  dump_stack_lvl+0x47/0x60
kernel:  warn_alloc+0x165/0x1e0
kernel:  __alloc_pages_slowpath.constprop.0+0xd7d/0xde0
kernel:  __alloc_pages+0x32d/0x350
kernel:  ttm_pool_alloc+0x19f/0x600 [ttm 0bd92a9d9dccc3a4f19554535860aaeda76eb4f4]

As a workaround, a userspace service can ensure to allocate enough RAM for the VRAM to be buffered by swapping out enough RAM before the system is suspended.

Wrong GPU clocks causing multiple issues

The factual accuracy of this article or section is disputed.

Reason:
  • Users provide unreliable reports and operate under wrong assumptions. See explanation.
  • If you carefully read through the related issues, the problem appear to be caused by some internal setup of GPU power profiles. Which means the shader clock frequency is not the actual issue here, lowering it is more of a workaround, and it decreases performance.
  • Patches addressing the problem were already merged a few major kernel releases back.
  • If you are still getting crashes with similar dmesg logs, consider disabling GFXOFF (see [17])
(Discuss in Talk:AMDGPU (Magyar))

There is a bug in the amdgpu module, due to which the video core frequencies can be higher than those declared by the manufacturer, which can cause system instability during the game, when exiting sleep, when rebooting.

The problem has been noticed on RDNA 3 GPUs (7XXX Models) [18] [19] [20].

In dmesg you can see logs like theese:

amdgpu: [gfxhub] page fault (src_id:0 ring:40 vmid:6 pasid:32830)
amdgpu:  in process GameThread pid 100056 thread vkd3d_queue pid 100468)
amdgpu:   in page starting at address 0x0000000218a36000 from client 10
amdgpu: GCVM_L2_PROTECTION_FAULT_STATUS:0x00641051
amdgpu:          Faulty UTCL2 client ID: TCP (0x8)
amdgpu:          MORE_FAULTS: 0x1
amdgpu:          WALKER_ERROR: 0x0
amdgpu:          PERMISSION_FAULTS: 0x5
amdgpu:          MAPPING_ERROR: 0x0
amdgpu:          RW: 0x1

If you have similar problems, check the maximum frequency of the video core in the system with what is stated by the manufacturer. To decrease maximum frequency, refer to #Overclocking.

AMD dedicated GPU HDMI freezing issue on Wayland

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: Unstructured rambling with no clear explanation of what is done nor why. No bug report or forum thread linked. If this is a model-specific issue, it should be documented in a dedicated laptop page like ASUS ROG Zephyrus G14 (2022) GA402. (Discuss in Talk:AMDGPU (Magyar))

Let's take as example ASUS G14 2022 laptop which as has AMD CPU and dedicated AMD GPU. The most successful approach requires to use armor crate on Windows to enforce dGPU Ultimate power options. It's switching GPU order and laptop internal power policies. Since that change HDMI should be working but user is going to experience separate rendering for integrated GPU (which SDDM and Wayland somehow pick by default) and dedicated GPU. User can obviously add DRI_PRIME=0 it this case before launching any application but its not convenient. Extending configuration to presented one allows flawless experience in expense of shorter battery life when running on battery.

/etc/sddm.conf.d/hardware.conf
[General]
DisplayServer=wayland
[Wayland]
CompositorCommand=kwin_wayland --drm --no-lockscreen --no-global-shortcuts
Environment=DRI_PRIME=0

Additionally kernel command line should be extended with

amdgpu.runpm=0 amdgpu.modeset=1

További olvasnivaló a témában