Skip to content

Commit

Permalink
Add dedicated page for hwa issues (#1053)
Browse files Browse the repository at this point in the history
* Add issues page

* Move AMD to page

* move intel windows issues

* move over intel linux

* move over nvidia

* hopefully make linter happy

* fix vscode being stupid

* fxxk vscode prettier plugin

* Fix typos

* fix vscode stupidity
  • Loading branch information
felix920506 authored Jul 23, 2024
1 parent 24bc9e8 commit 62274c6
Show file tree
Hide file tree
Showing 4 changed files with 106 additions and 108 deletions.
52 changes: 12 additions & 40 deletions docs/general/administration/hardware-acceleration/amd.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,13 +123,7 @@ Windows 10 64-bit and newer is recommeded. **AMF is not available in Windows Doc

### Known Issues And Limitations On Windows

:::caution

There are some known Windows driver issues that can affect the AMD hardware transcoding. Some of them can be fixed by downgrading or upgrading your graphics driver.

:::

1. AMD Radeon RX 5000 and newer RDNA series integrated and discrete GPUs have an Windows graphics driver issue ranging from **Adrenalin 24.1.1 to 24.4.1**. You may experience **playback failure** and observe an **error code of `-60`** in the FFmpeg log when transcoding and playing videos. The driver **Adrenalin 24.5.1** and newer drivers fix this issue.
Please refer to [this section](/docs/general/administration/hardware-acceleration/known-issues#amd-on-windows) for known issues and limitations.

### Configure On Windows Host

Expand Down Expand Up @@ -187,29 +181,7 @@ A 64-bit Linux distribution is required. **The supported GPU varies by kernel an

### Known Issues And Limitations On Linux

:::caution

Some Linux distros intentionally disabled the H.264 and HEVC codecs from the Mesa VA-API driver.

:::

Known affected distros:

- [Fedora](https://www.phoronix.com/news/Fedora-Disable-Bad-VA-API)

- [OpenSUSE](https://www.webpronews.com/fedora-and-opensuse-disable-gpu-accelerated-video-over-patent-concerns/)

- [Manjaro](https://forum.manjaro.org/t/stable-update-2022-12-06-kernels-mesa-plasma-cinnamon-nvidia-libreoffice-pipewire-virtualbox/128453)

This prevents you from using the AMD VA-API transcoding **on the host system**.

You can use our Docker image instead or install third-party Mesa driver package.

Alternatively, rebuild the Mesa driver with these options added to restore the stripped hardware codecs:

```shell
-D video-codecs=all
```
Please refer to [this section](/docs/general/administration/hardware-acceleration/known-issues#amd-on-linux) for known issues and limitations.

### Configure On Linux Host

Expand Down Expand Up @@ -285,17 +257,17 @@ Root permission is required.

`VAEntrypointVLD` means that your card is capable to decode this format, `VAEntrypointEncSlice` means that you can encode to this format.

| Jellyfin Setting | VA-API Profil |
|------------------|-------------------------------------------------------------------------------------------------------|
| H264 | VAProfileH264Baseline<br/>VAProfileH264Main<br/>VAProfileH264High<br/>VAProfileH264ConstrainedBaseline |
| HEVC | VAProfileHEVCMain |
| Jellyfin Setting | VA-API Profil |
| ---------------- | ------------------------------------------------------------------------------------------------------ |
| H264 | VAProfileH264Baseline<br/>VAProfileH264Main<br/>VAProfileH264High<br/>VAProfileH264ConstrainedBaseline |
| HEVC | VAProfileHEVCMain |
| MPEG2 | VAProfileMPEG2Simple<br/>VAProfileMPEG2Main |
| VC1 | VAProfileVC1Simple<br/>VAProfileVC1Main<br/>VAProfileVC1Advanced |
| VP8 | VAProfileVP8Version0<br/>VAProfileVP8Version1<br/>VAProfileVP8Version2<br/>VAProfileVP8Version3 |
| VP9 | VAProfileVP9Profile0 |
| AV1 | VAProfileAV1Profile0 |
| HEVC 10bit | VAProfileHEVCMain10 |
| VP9 10bit | VAProfileVP9Profile2 |
| VC1 | VAProfileVC1Simple<br/>VAProfileVC1Main<br/>VAProfileVC1Advanced |
| VP8 | VAProfileVP8Version0<br/>VAProfileVP8Version1<br/>VAProfileVP8Version2<br/>VAProfileVP8Version3 |
| VP9 | VAProfileVP9Profile0 |
| AV1 | VAProfileAV1Profile0 |
| HEVC 10bit | VAProfileHEVCMain10 |
| VP9 10bit | VAProfileVP9Profile2 |

6. Check the Vulkan runtime status:

Expand Down
59 changes: 2 additions & 57 deletions docs/general/administration/hardware-acceleration/intel.md
Original file line number Diff line number Diff line change
Expand Up @@ -221,13 +221,7 @@ Windows 10 64-bit and newer is recommeded. **QSV is not available on Windows Doc

### Known Issues And Limitations On Windows

:::caution

There are some known Windows driver issues that can affect the Intel hardware transcoding. Some of them can be fixed by downgrading or upgrading your graphics driver.

:::

1. Intel 11th Gen and newer UHD, Xe and ARC series integrated and discrete GPUs have an Windows graphics driver issue ranging from **31.0.101.5186 / 31.0.101.5234 to 31.0.101.5534**. You may encounter a **green screen but normal sound** when transcoding and playing HDR videos that **require tone-mapping**. The **31.0.101.5590** and newer drivers fix this issue.
Please refer to [this section](/docs/general/administration/hardware-acceleration/known-issues#intel-on-windows) for known issues and limitations

### Configure On Windows Host

Expand Down Expand Up @@ -283,56 +277,7 @@ A 64-bit Linux distribution is required. **The supported GPU varies by kernel an

### Known Issues And Limitations On Linux

:::caution

There are some known upstream Linux Kernel and firmware issues that can affect the Intel hardware transcoding. Some of them can be fixed by upgrading your Linux distro, kernel and firmware packages, or adding the required kernel parameters.

:::

1. Intel Gen 11 [**Jasper Lake**](https://ark.intel.com/content/www/us/en/ark/products/codename/128823/products-formerly-jasper-lake.html) and [**Elkhart Lake**](https://ark.intel.com/content/www/us/en/ark/products/codename/128825/products-formerly-elkhart-lake.html) platforms (e.g. N5095, N5105, N6005, J6412) have quirks when using video encoders on Linux. The [Low-Power Encoding](/docs/general/administration/hardware-acceleration/intel#low-power-encoding) mode MUST be configured and enabled for correct VBR and CBR bitrate control that is required by Jellyfin.

- Ticket: [https://gitlab.freedesktop.org/drm/intel/-/issues/8080](https://gitlab.freedesktop.org/drm/intel/-/issues/8080)

2. The default kernel 5.15 that comes with Ubuntu 22.04 LTS has a regression on Intel Gen 11 graphics (ICL, JSL and EHL) that prevent you from using the Low-Power encoding mode. Linux 5.16+ is not affected.

- Ticket: [https://gitlab.freedesktop.org/drm/intel/-/issues/4067](https://gitlab.freedesktop.org/drm/intel/-/issues/4067)

- Fixed by: [drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=52255ef662a5d490678fbad64a735f88fcba564d)

- You can fix this by switching to the [Hardware Enablement Stack](https://wiki.ubuntu.com/Kernel/LTSEnablementStack) and rebooting your system

```shell
sudo apt install --install-recommends linux-generic-hwe-22.04
```

:::caution

This will move you off a 5.15 kernel which could have other implications. If it breaks something you can return to the normal kernel by installing the linux-generic package.

:::

3. The kernel range from 5.18 to 6.1.3 have an issue that locks up and resets the i915 kernel driver when using OpenCL based HDR/DV tone-mapping. Linux 5.18-, 6.0.18+, 6.1.4+ are not affected.

- Ticket: [https://gitlab.freedesktop.org/drm/intel/-/issues/7627](https://gitlab.freedesktop.org/drm/intel/-/issues/7627)

- Fixed by: [drm/i915: improve the catch-all evict to handle lock contention](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3f882f2d4f689627c1566c2c92087bc3ff734953)

4. The current Debian 11 and Ubuntu 22.04 LTS may not have the required GPU firmware for Intel 12th Gen processors and ARC GPU. Ubuntu 22.04 LTS can be switched to use Ubuntu's Hardware Enablement Stack (see #2 above) which uses a newer kernel that supports Intel 12th Gen+ and ARC GPUs.

5. The kernel support for Intel Gen 12 TGL graphics is incomplete before Linux 5.9.

6. The kernel support for Intel Gen 12 DG1 is incomplete in upstream. Intel DKMS and custom iHD driver are required.

7. The kernel support for Intel Gen 12 ADL graphics is incomplete before Linux 5.17.

8. The kernel support for Intel Gen 12.5 DG2 / ARC A-series is incomplete before Linux 6.2.

9. The kernel support for Intel Gen 12.7 MTL is incomplete before Linux 6.7.

10. The LTS kernel range 6.6.26 - 6.6.32 and the stable kernel range 6.8.5 - 6.9.3 have i915 driver bugs, which may cause problems on Intel Gen 12.5 DG2 / ARC A-series GPUs. If you are affected, please upgrade to kernel 6.6.33+ (LTS) or 6.9.4+. Ubuntu 24.04 with kernel versions 6.8.0-38+ are also affected by this issue, please downgrade to 6.8.0-36 until a fix is released.

- Issue: [https://github.com/jellyfin/jellyfin/issues/11380](https://github.com/jellyfin/jellyfin/issues/11380)
- Ubuntu bug: [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2072755](https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2072755)
Please refer to [this section](/docs/general/administration/hardware-acceleration/known-issues#intel-on-linux) for known issues and limitations

### Configure On Linux Host

Expand Down
91 changes: 91 additions & 0 deletions docs/general/administration/hardware-acceleration/known-issues.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
uid: admin-hardware-acceleration-issues
title: Known Issues
---

# Known Hardware Acceleration Issues and Limitations

This page lists all known issues and limitations of hardware acceleration with Jellyfin.

## AMD on Windows

1. AMD Radeon RX 5000 and newer RDNA series integrated and discrete GPUs have a Windows graphics driver issue ranging from **Adrenalin 24.1.1 to 24.4.1**. You may experience **playback failure** and observe an **error code of `-60`** in the FFmpeg log when transcoding and playing videos. The driver **Adrenalin 24.5.1** and newer drivers fix this issue.

## AMD on Linux

1. Some Linux distros intentionally disabled the H.264 and HEVC codecs from the Mesa VA-API driver.

Known affected distros:

- [Fedora](https://www.phoronix.com/news/Fedora-Disable-Bad-VA-API)

- [OpenSUSE](https://www.webpronews.com/fedora-and-opensuse-disable-gpu-accelerated-video-over-patent-concerns/)

- [Manjaro](https://forum.manjaro.org/t/stable-update-2022-12-06-kernels-mesa-plasma-cinnamon-nvidia-libreoffice-pipewire-virtualbox/128453)

This prevents you from using the AMD VA-API transcoding **on the server system**.

You can use our Docker image instead or install a third-party Mesa driver package.

Alternatively, rebuild the Mesa driver with these options added to restore the stripped hardware codecs:

```shell
-D video-codecs=all
```

## Intel on Windows

1. Intel 11th Gen and newer UHD, Xe and ARC series integrated and discrete GPUs have a Windows graphics driver issue ranging from **31.0.101.5186 / 31.0.101.5234 to 31.0.101.5534**. You may encounter a **green or blue screen but normal sound** when transcoding and playing HDR videos that **require tone-mapping**. The **31.0.101.5590** and newer drivers fix this issue.

## Intel on Linux

1. Intel Gen 11 [**Jasper Lake**](https://ark.intel.com/content/www/us/en/ark/products/codename/128823/products-formerly-jasper-lake.html) and [**Elkhart Lake**](https://ark.intel.com/content/www/us/en/ark/products/codename/128825/products-formerly-elkhart-lake.html) platforms (e.g. N5095, N5105, N6005, J6412) have quirks when using video encoders on Linux. The [Low-Power Encoding](/docs/general/administration/hardware-acceleration/intel#low-power-encoding) mode MUST be configured and enabled for correct VBR and CBR bitrate control that is required by Jellyfin.

- Ticket: [https://gitlab.freedesktop.org/drm/intel/-/issues/8080](https://gitlab.freedesktop.org/drm/intel/-/issues/8080)

2. The default kernel 5.15 that comes with Ubuntu 22.04 LTS has a regression on Intel Gen 11 graphics (ICL, JSL and EHL) that prevents you from using the Low-Power encoding mode. Linux 5.16+ is not affected.

- Ticket: [https://gitlab.freedesktop.org/drm/intel/-/issues/4067](https://gitlab.freedesktop.org/drm/intel/-/issues/4067)

- Fixed by: [drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=52255ef662a5d490678fbad64a735f88fcba564d)

- You can fix this by switching to the [Hardware Enablement Stack](https://wiki.ubuntu.com/Kernel/LTSEnablementStack) and rebooting your system

```shell
sudo apt install --install-recommends linux-generic-hwe-22.04
```

This will move you off a 5.15 kernel which could have other implications. If it breaks something you can return to the normal kernel by installing the linux-generic package.

3. The kernel range from 5.18 to 6.1.3 have an issue that locks up and resets the i915 kernel driver when using OpenCL based HDR/DV tone-mapping. Linux 5.18-, 6.0.18+, 6.1.4+ are not affected.

- Ticket: [https://gitlab.freedesktop.org/drm/intel/-/issues/7627](https://gitlab.freedesktop.org/drm/intel/-/issues/7627)

- Fixed by: [drm/i915: improve the catch-all evict to handle lock contention](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3f882f2d4f689627c1566c2c92087bc3ff734953)

4. The current Debian 11 and Ubuntu 22.04 LTS may not have the required GPU firmware for Intel 12th Gen processors and ARC GPU. Ubuntu 22.04 LTS can be switched to use Ubuntu's Hardware Enablement Stack (see #2 above) which uses a newer kernel that supports Intel 12th Gen+ and ARC GPUs.

5. The kernel support for Intel Gen 12 TGL graphics is incomplete before Linux 5.9.

6. The kernel support for Intel Gen 12 DG1 is incomplete in upstream. Intel DKMS and custom iHD driver are required.

7. The kernel support for Intel Gen 12 ADL graphics is incomplete before Linux 5.17.

8. The kernel support for Intel Gen 12.5 DG2 / ARC A-series is incomplete before Linux 6.2.

9. The kernel support for Intel Gen 12.7 MTL is incomplete before Linux 6.7.

10. The LTS kernel range 6.6.26 - 6.6.32 and the stable kernel range 6.8.5 - 6.9.3 have i915 driver bugs, which may cause problems on Intel Gen 12.5 DG2 / ARC A-series GPUs. If you are affected, please upgrade to kernel 6.6.33+ (LTS) or 6.9.4+. Ubuntu 24.04 with kernel versions 6.8.0-38+ are also affected by this issue, please downgrade to 6.8.0-36 until a fix is released.

- Issue: [https://github.com/jellyfin/jellyfin/issues/11380](https://github.com/jellyfin/jellyfin/issues/11380)
- Ubuntu bug: [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2072755](https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2072755)

## Nvidia

Consumer targeted [Geforce and some entry-level Quadro](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new) cards have an artificial limit on the number of concurrent NVENC encoding sessions. This restriction can be circumvented by applying an [unofficial patch](https://github.com/keylase/nvidia-patch) to the NVIDIA Linux and Windows driver.

| NVIDIA driver | NVENC concurrent sessions |
| ------------- | ------------------------- |
| 550 and newer | Up to 8 encoding sessions |
| 530 to 546 | Up to 5 encoding sessions |
| pre-530 | Up to 3 encoding sessions |
12 changes: 1 addition & 11 deletions docs/general/administration/hardware-acceleration/nvidia.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,7 @@ On Windows and Linux **NVENC** is the only available method.

The NVENC/NVDEC are the proprietary video codec APIs of NVIDIA GPUs, which can be used with CUDA to achieve full hardware acceleration.

:::caution

Consumer targeted [Geforce and some entry-level Quadro](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new) cards have an artificial limit on the number of concurrent NVENC encoding sessions. This restriction can be circumvented by applying an [unofficial patch](https://github.com/keylase/nvidia-patch) to the NVIDIA Linux and Windows driver.

| NVIDIA driver | NVENC concurrent sessions |
| -------------- | ------------------------- |
| 550 and newer | Up to 8 encoding sessions |
| 530 to 546 | Up to 5 encoding sessions |
| pre-530 | Up to 3 encoding sessions |

:::
Please refer to [this section](/docs/general/administration/hardware-acceleration/known-issues#nvidia) for known issues and limitations.

:::note

Expand Down

0 comments on commit 62274c6

Please sign in to comment.