AMDGPU (Magyar)
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
amdgpukernel 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, hogyTearFree(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.
- Legtöbb rendszer ami az
- 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.
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
[..] 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:
- Bizonyosodj meg róla, hogy Southern Islands (SI) és Sea Islands (CIK) támogatás be van kapcsolva, ha szükséges.
- Bizonyosodj meg róla, hogy a legújjab linux-firmware-amdgpu csomag telepítve van. Ez az illesztőprogramhoz szükséges, hogy a legújabb vezérlő verzió legyen telepítve, hogy sikeres legyen a gép indulása.
- Bizonyosodj meg róla, hogy nincs
nomodesetvagyvga=beállítva kernel paraméterként, mivelamdgpu-koz szükséges a KMS.- A fentebb említett paraméterek ezt gátolják.
- Nézd meg, hogy nem a kapcsoltad ki a
amdgpumodult a kernel modul feketelistázással.
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
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.
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.
- nvtop — Videókártya használat és hőfok figyelő alkalmazás AMD, Intel és NVIDIA videókártyákra.
- radeontop — AMD videókártya használt megfigyelő, teljes használat és alkalmazásokra és procedúrákra lebontott blokk figyelés is.
Grafikus felhasználói felület
- amdgpu_top — AMD videókártya használat figyelő alkalmazás.
- AmdGuid — Egy alapvető ventillátor sebesség állító Grafikus felhasználói felületű program, ami teljesen Rust-ban lett írva.
- 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.
- TuxClocker — Qt5 alapú megfigyelő és videókártya túlhajtó alkalmazás.
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
/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
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
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.
- ruby-amdgpu_fan — A CLI for interacting with the amdgpu Linux driver written in Ruby.
GUI tools
- TuxClocker — A Qt5 monitoring and overclocking tool.
- CoreCtrl — A GUI overclocking tool with a WattMan-like UI that supports per-application profiles.
- LACT — A GTK tool to view information and control your AMD GPU.
- Radeon Profile — A Qt5 tool to read and change current clocks of AMD Radeon cards.
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
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: - - - - - -
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).
Enable GPU display scaling
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 aspectfor 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
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
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