From e694f739ba856d4ba8c0708c41ab7be308605615 Mon Sep 17 00:00:00 2001 From: Joshua Stone Date: Thu, 16 Feb 2023 21:33:07 -0500 Subject: [PATCH 1/3] feat: Add vaapi packages to enable hardware-accelerated playback --- Containerfile | 23 ++++++++++++++++++++--- README.md | 4 ++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/Containerfile b/Containerfile index d0be61d..2b0ab3d 100644 --- a/Containerfile +++ b/Containerfile @@ -85,21 +85,38 @@ RUN KERNEL_VERSION="$(rpm -q kernel --queryformat '%{VERSION}-%{RELEASE}.%{ARCH} rpm-ostree install \ https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \ https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm \ - && \ - sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/rpmfusion-free{,-updates}.repo \ && \ rpm-ostree install \ xorg-x11-drv-${NVIDIA_PACKAGE_NAME}-{,cuda-,devel-,kmodsrc-,power-}${NVIDIA_FULL_VERSION} \ kernel-devel-${KERNEL_VERSION} nvidia-container-toolkit \ "/tmp/akmods/${NVIDIA_PACKAGE_NAME}/kmod-${NVIDIA_PACKAGE_NAME}-${KERNEL_VERSION}-${NVIDIA_FULL_VERSION#*:}.rpm" \ /tmp/ublue-os-nvidia-addons/rpmbuild/RPMS/noarch/ublue-os-nvidia-addons-*.rpm \ + && \ + rpm-ostree override remove $(rpm -qa --queryformat='%{NAME} ' \ + mesa-va-drivers \ + libavutil-free \ + libswscale-free \ + libswresample-free \ + libavformat-free \ + libavcodec-free \ + libavfilter-free \ + libavdevice-free \ + libpostproc-free) \ + --install=mesa-va-drivers-freeworld \ + --install=mesa-vdpau-drivers-freeworld \ + --install=libva-intel-driver \ + --install=nvidia-vaapi-driver \ + --install=ffmpeg-libs \ + --install=ffmpeg \ + --install=libavcodec-freeworld \ + --install=libva-utils \ && \ mv /etc/nvidia-container-runtime/config.toml{,.orig} && \ cp /etc/nvidia-container-runtime/config{-rootless,}.toml \ && \ semodule --verbose --install /usr/share/selinux/packages/nvidia-container.pp \ && \ - sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/rpmfusion-nonfree{,-updates}.repo \ + sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/rpmfusion-{,non}free{,-updates}.repo \ && \ ln -s /usr/bin/ld.bfd /etc/alternatives/ld && \ ln -s /etc/alternatives/ld /usr/bin/ld \ diff --git a/README.md b/README.md index 0e3c85c..b8cec7a 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,10 @@ $ podman run \ docker.io/mirrorgooglecontainers/cuda-vector-add:v0.1 ``` +## Video playback + +Additional runtime packages are added for enabling hardware-accelerated video playback. [Some additional configuration may be needed to enable support in flatpak](https://github.com/elFarto/nvidia-vaapi-driver/issues/23). + ## Acknowledgements Thanks to Alex Diaz for advice, and who got this working first, check out this repo: From d189cd436b6cd9c2dd1a124e7acfd1c138f5f640 Mon Sep 17 00:00:00 2001 From: Joshua Stone Date: Sat, 18 Feb 2023 13:38:09 -0500 Subject: [PATCH 2/3] feat: Add nvtop to help test video acceleration --- Containerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Containerfile b/Containerfile index 2b0ab3d..3a1b4ce 100644 --- a/Containerfile +++ b/Containerfile @@ -105,6 +105,7 @@ RUN KERNEL_VERSION="$(rpm -q kernel --queryformat '%{VERSION}-%{RELEASE}.%{ARCH} --install=mesa-va-drivers-freeworld \ --install=mesa-vdpau-drivers-freeworld \ --install=libva-intel-driver \ + --install=nvtop \ --install=nvidia-vaapi-driver \ --install=ffmpeg-libs \ --install=ffmpeg \ From e112f75055e9031d072d4fdaf07d37c5e974524b Mon Sep 17 00:00:00 2001 From: Joshua Stone Date: Sat, 18 Feb 2023 21:54:37 -0500 Subject: [PATCH 3/3] docs: Add steps for configuring video acceleration in Firefox --- README.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b8cec7a..1e9de12 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,25 @@ $ podman run \ ## Video playback -Additional runtime packages are added for enabling hardware-accelerated video playback. [Some additional configuration may be needed to enable support in flatpak](https://github.com/elFarto/nvidia-vaapi-driver/issues/23). +Additional runtime packages are added for enabling hardware-accelerated video playback. This can the enabled in Firefox (RPM or flatpak) by setting the following options to `true` in `about:config`: + +* `gfx.webrender.all` +* `media.ffmpeg.vaapi.enabled` + + +Extensive host access and reduced sandboxing is needed for Firefox flatpak to use `/usr/lib64/dri/nvidia_drv_video.so`: + +``` +$ flatpak override \ + --user \ + --filesystem=host-os \ + --env=LIBVA_DRIVER_NAME=nvidia \ + --env=LIBVA_DRIVERS_PATH=/run/host/usr/lib64/dri \ + --env=LIBVA_MESSAGING_LEVEL=1 \ + --env=MOZ_DISABLE_RDD_SANDBOX=1 \ + --env=NVD_BACKEND=direct \ + org.mozilla.firefox +``` ## Acknowledgements