Hardwarebeschleunigung der Graka aktivieren

Pinnback

Enthusiast
Thread Starter
Mitglied seit
15.02.2007
Beiträge
440
Hallo Linuxnutzer,
ich bin dabei mich in Linux bissel Einzufuchsen und will mich in den nächsten Jahren komplett von Windows verabschieden. Habe mir dazu Manjaro ausgesucht - läuft jetzt seit paar Wochen. Großteil von Spielen mit Steam und Lutris mit DXVK und Proton hab ich zum laufen bekommen Datenverwaltung im Windowsnetzwerkzugriff mit/auf NFTS funktionert, Veracrypt mit BTRFS ist am laufen.

Multimedia (Videos, X264. X265 etc) funktioniert auch mit VLC , Codi, etc.
Ich suche jetzt Hilfesansätze bei der Nutzung von der Hardwarebeschleuningung meiner AMD 5700XT. Wie kann ich das aktivieren fürs encoden und decoden ? Derzeit läuft das alles über den Prozzi ab. In Windows hau ich mir ein Codecpack drauf und alles ist fein. Wie mach ich das in Linux ? Grafikkartentreiber ist der vom 6.x Kernel mitgebrachte. Was benötige ich denn um Hardewarebeschleunigung der Graka nutzen zu können und wie aktiviere ich das ?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ich suche jetzt Hilfesansätze bei der Nutzung von der Hardwarebeschleuningung meiner AMD 5700XT.
Also erst mal müsstet du uns mitteilen, was du mit der Hardware beschleunigen willst… Anhand der folgenden Sätze schließe ich mal auf das de- und encoden von Video (welche Formate? Welche Software verwendest du/ willst du verwenden?).

Grundsätzlich wird alles relevante hier erklärt: https://wiki.archlinux.org/title/Hardware_video_acceleration

Zusammengefasst: Die relevante Schnittstelle nennt sich VA-API. Um VA-API mit dem AMDGPU Kernel Treiber verwenden zu können muss das libva-mesa-driver Paket installiert sein (sollte in Manjaro bereits OOTB der Fall sein?).

Mit dem vainfo Tool aus dem libva-utils Paket kannst du Prüfen, ob alles ordnungsgemäß installiert und eingerichtet ist und welche Codecs unterstützt werden.
Code:
$ vainfo
Trying display: wayland
Trying display: x11
vainfo: VA-API version: 1.17 (libva 2.17.1)
vainfo: Driver version: Mesa Gallium driver 22.3.6 for AMD Radeon RX 6900 XT (navi21, LLVM 15.0.7, DRM 3.49, 6.2.2-arch1-1)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :    VAEntrypointVLD
      VAProfileMPEG2Main              :    VAEntrypointVLD
      VAProfileVC1Simple              :    VAEntrypointVLD
      VAProfileVC1Main                :    VAEntrypointVLD
      VAProfileVC1Advanced            :    VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:    VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:    VAEntrypointEncSlice
      VAProfileH264Main               :    VAEntrypointVLD
      VAProfileH264Main               :    VAEntrypointEncSlice
      VAProfileH264High               :    VAEntrypointVLD
      VAProfileH264High               :    VAEntrypointEncSlice
      VAProfileHEVCMain               :    VAEntrypointVLD
      VAProfileHEVCMain               :    VAEntrypointEncSlice
      VAProfileHEVCMain10             :    VAEntrypointVLD
      VAProfileHEVCMain10             :    VAEntrypointEncSlice
      VAProfileJPEGBaseline           :    VAEntrypointVLD
      VAProfileVP9Profile0            :    VAEntrypointVLD
      VAProfileVP9Profile2            :    VAEntrypointVLD
      VAProfileAV1Profile0            :    VAEntrypointVLD
      VAProfileNone                   :    VAEntrypointVideoProc

Die meisten Anwendungen verwenden unter Linux standardmäßig keine Hardwarebeschleunigung für Video und müssen erst entsprechend konfiguriert werden. Sie den Abschnitt Configuring Applications im oben verlinkten Artikel. Ggf. musst du für bestimmte Programme noch entsprechende Bibliotheken als optionale Abhängigkeiten installieren, z.B. gstreamer-vaapi für Software die das GStreamer Framework verwendet.

Für Anwendungen, die AMDs AMF SDK verwenden (z.B. OBS mit diesem Patch aus diesem AUR Paket) müsstest du die entsprechenden Komponenten aus AMDs proprietärem Treiber installieren.
 
Geht mit Sicherheit um die Hardware-Dekodierung von H.264 / H.265 Videos über die Grafikkarte ... das wurde bei Manjaro mit Update auf Version 22.0.0 leider deaktiviert. Betroffen sind davon nur User von AMD-Grafikkarten - nicht aber Intel und Nvidia! Hat wohl lizenzrechtliche Gründe.

Um die Hardware-Dekodierung über Graka wieder nutzen zu können, musst du als User nach jedem neuen Update das Mesa-Paket deinstallieren und dafür das identische Paket aus dem AUR kompilieren / installieren. Ist natürlich nicht gerade user-friendly. Auch einige andere Distributionen (u. a. Fedora, Suse) haben entsprechend gehandelt - bei Fedora ist es aber wohl einfacher mit dem "Wiederanknipsen". Arch und viele andere Distributionen sind da nicht so rigoros gewesen.

Hat mich als Ex-Manjaro Nutzer seinerzeit auch maßlos geärgert ... und da mein Zweit-Sys mit Intel UHD750-Grafik auch nicht mehr rund lief (häufige Firefoxabstürze und das über viele Wochen), wechselte ich zu Garuda (Gnome Edition) - habs bis jetzt nicht bereut. :-)
 
Interessant. Dass Manjaro Mesa jetzt auch verschlimmbessert hab ich noch gar nicht mitbekommen.

Allerdings ist der einzig relevante Unterschied in den PKGBUILDS der -D video-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc Teil:
Code:
--- PKGBUILD_arch    2023-03-06 21:01:11.509451376 +0100
+++ PKGBUILD_manjaro    2023-03-06 21:01:11.509451376 +0100
@@ -1,3 +1,7 @@
+# Maintainer: Philip Müller <philm[at]manjaro[dot]org>
+# Maintainer: Mark Wagie <mark at manjaro dot org>
+
+# Arch credits:
 # Maintainer: Laurent Carlier <lordheavym@gmail.com>
 # Maintainer: Felix Yan <felixonmars@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
@@ -7,7 +11,7 @@
 pkgname=('vulkan-mesa-layers' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-swrast' 'vulkan-virtio' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')
 pkgdesc="An open-source implementation of the OpenGL specification"
 pkgver=22.3.6
-pkgrel=1
+pkgrel=3
 arch=('x86_64')
 makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm'
              'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols' 'zstd' 'elfutils' 'llvm'
@@ -50,10 +54,6 @@
 }
 
 build() {
-  # Build only minimal debug info to reduce size
-  CFLAGS+=' -g1'
-  CXXFLAGS+=' -g1'
-
   arch-meson mesa-$pkgver build \
     -D b_ndebug=true \
     -D b_lto=false \
@@ -83,11 +83,10 @@
     -D osmesa=true \
     -D shared-glapi=enabled \
     -D microsoft-clc=disabled \
-    -D video-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc \
     -D valgrind=enabled
 
   # Print config
-  meson configure build
+  meson configure --no-pager build
 
   ninja -C build
   meson compile -C build

Hält einen also prinzipiell nichts davon ab, einfach die Upstream/Arch Mesa Pakete zu installieren, bzw. sogar nur libva-mesa-driver. Damit spart man sich zumindest das selbst kompilieren.
 
Danke @silverline und @YCbCr genau H264 ,H 265. Ich hatte das probiert was YcbCr schrieb nur bisher ohne Erfolg. Vainfo zeigt nicht ein Codec an der unterstützt wird. Einfach mal alle deaktiveren weil halt AMD Graka. Da stehst als Noob dann da. Wie heist denn das MESAPaket was ich brauch ums wieder lauffähig zu bekommen ? Von kompilieren hab ich nun noch null Ahnung unter Linux.
 
Zuletzt bearbeitet:
Einfach mal alle deaktiveren weil halt AMD Graka.
Naja, technisch gesehen betrifft das alle GPUs, die VA-API über Gallium / Mesa implementieren. Also zum Beispiel auch Nvidia mit Nouveau als Treiber. Intel kommt da nur besser weg weil sie ihre eigenen Treiber haben. (Ehrlich gesagt bin ich mir nicht sicher, warum Fedora, Manjaro, etc. die gleiche Logik nicht auch auf intel-media-driver, usw. anwenden.)

Vainfo zeigt nicht ein Codec an der unterstütz wird
Zumindest VP9 decode solltest du mit einer RX 5700XT auf jeden Fall haben. Kannst du mal den kompletten Output von vainfo posten?

Wie heist denn das MESAPaket was ich brauch ums wieder lauffähig zu bekommen ?
Das PKGBUILD generiert alle in pkgname aufgelisteten Pakete:
pkgname=('vulkan-mesa-layers' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-swrast' 'vulkan-virtio' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')

Technisch gesehen brauchst du davon afaik nur libva-mesa-driver. Aber aus Kompatibilitätsgründen würde ich immer den kompletten Satz aus einer Quelle beziehen, insbesondere wenn du die Arch-Pakete verwenden willst.

Welche davon installiert sind kannst du mit
pacman -Q vulkan-mesa-layers opencl-mesa vulkan-intel vulkan-radeon vulkan-swrast vulkan-virtio libva-mesa-driver mesa-vdpau mesa
(oder was auch immer das pamac Äquivalent wäre?) prüfen.

Pakete die du eh nicht brauchst (z.B. vulkan-intel, vulkan-swrast, vulkan-virtio und ggf. mesa-vdpau) kannst du dabei auch gleich ganz entfernen.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh