Jellyfin Forum
How to know if the HW acceleration is working - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: General Questions (https://forum.jellyfin.org/f-general-questions)
+--- Thread: How to know if the HW acceleration is working (/t-how-to-know-if-the-hw-acceleration-is-working)



How to know if the HW acceleration is working - SKAL - 2024-03-03

Hello all,
this is my first post, so please be indulgent with me.
I have a virtual proxomox machine on which is running the docker server with Jellyfin on it.
I think I did everything to expose the graphic card but I cannot understand if the HW acceleration is working or not.
Could you help me to discover it?

tnx all


RE: How to know if the HW acceleration is working - bitmap - 2024-03-04

What kind of hardware acceleration are you referring to? With Intel, you can install the intel_gpu_top program (I think the package is intel_gpu_tools) and verify.

In general, start a piece of media in Jellyfin that needs transcoding (or artificially initiate it with the bitrate limiter in the web client) and check whether your CPU has spiked to near 100% or not. Kind of a kludge, but works pretty well as an indicator.


RE: How to know if the HW acceleration is working - SKAL - 2024-03-04

(2024-03-04, 03:31 AM)bitmap Wrote: What kind of hardware acceleration are you referring to? With Intel, you can install the intel_gpu_top program (I think the package is intel_gpu_tools) and verify.

In general, start a piece of media in Jellyfin that needs transcoding (or artificially initiate it with the bitrate limiter in the web client) and check whether your CPU has spiked to near 100% or not. Kind of a kludge, but works pretty well as an indicator.

This is the problem. I did it and I don't see any charge on the processor.

intel-gpu-top: Intel Alderlake_n (Gen12) @ /dev/dri/card1 -    0/  0 MHz
  100% RC6;        0 irqs/s

        ENGINES    BUSY                                      MI_SEMA MI_WAIT
      Render/3D    0.00% |                                  |      0%      0%
        Blitter    0.00% |                                  |      0%      0%
          Video    0.00% |                                  |      0%      0%
    VideoEnhance    0.00% |                                  |      0%      0%

  PID              NAME  Render/3D    Blitter      Video    VideoEnhance



how to be sure that the jellyfin server uses the right device?


this is my docker compose file:

version: '3.5'

services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    user: 1000:1000
    network_mode: 'host'
    volumes:
      - /home/z-lmutt/Jellifin/configConfused-faceconfig
      - /home/z-lmutt/Jellifin/cacheConfused-facecache
      - /home/z-lmutt/Jellifin/mediaConfused-facemedia
      - /home/z-lmutt/Radarr/moviesConfused-faceFilm
      - /home/z-lmutt/Sonarr/tvConfused-faceSerie
      - /home/z-lmutt/Lidarr/musicConfused-faceMusica

    restart: 'unless-stopped'
    # Optional - alternative address used for autodiscovery
    environment:
      - JELLYFIN_PublishedServerUrl=https://medusa.leomutti.casa
      - TZ=Europe/Rome
    # Optional - may be necessary for docker healthcheck to pass if running in host network mode
    extra_hosts:
      - "host.docker.internal:host-gateway"
    devices:
#      - /dev/dri/card0Confused-facedev/dri/card0
      - /dev/dri/card1Confused-facedev/dri/card0



and more infos

$ lspci -nn | grep -Ei "3d|display|vga"

00:02.0 VGA compatible controller [0300]: Device [1234:1111] (rev 02)
00:10.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-N [UHD Graphics] [8086:46d2]


RE: How to know if the HW acceleration is working - Efficient_Good_5784 - 2024-03-04

Did you follow @bitmap's second paragraph?
(2024-03-04, 03:31 AM)bitmap Wrote: In general, start a piece of media in Jellyfin that needs transcoding (or artificially initiate it with the bitrate limiter in the web client) and check whether your CPU has spiked to near 100% or not. Kind of a kludge, but works pretty well as an indicator.
What bitmap is saying here is that you should play a video that needs transcoding. You can force a transcode by choosing a lower bitrate. Play one transcode with HWA disabled. Then one with HWA enabled. If you look at your server's CPU usage while the transcode is playing, you should notice that the CPU utilization should be way higher when HWA is off. If you see that CPU usage is lower when HWA is on, HWA is working.

In general, you don't even need to do this. If you enable HWA, Jellyfin will refuse to play if your HWA is not set correctly. If you have HWA on and videos play fine, HWA works. Just make sure to check online which codecs your GPU can transcode and which it can't so that you turn those codecs off in Jellyfin's dashboard settings (will let the CPU hanlde the codecs the GPU can't handle).


RE: How to know if the HW acceleration is working - bitmap - 2024-03-07

As far as I know, you need to both pass in the /dev/dri/renderD12* device into the container and ensure the user running Jellyfin (UID 1000 in your case) has access to the render/video group on the host. Group name differs by distro but I don't think passing in the card as you have will work. Either send the entire /dev/dri directory or go with the render device.


RE: How to know if the HW acceleration is working - SKAL - 2024-03-07

(2024-03-07, 04:19 AM)bitmap Wrote: As far as I know, you need to both pass in the /dev/dri/renderD12* device into the container and ensure the user running Jellyfin (UID 1000 in your case) has access to the render/video group on the host. Group name differs by distro but I don't think passing in the card as you have will work. Either send the entire /dev/dri directory or go with the render device.

one step forward one step back...
in order to avoid any problem, I've decided to remove the user: 1000:1000 in the compose file.
now in the docker jellyfin works as root so it should be able to access to all the files.

now I have a new problem

If I run inside the docker

# lspci -k
[...]
00:02.0 VGA compatible controller: Device 1234:1111 (rev 02)
        Subsystem: Red Hat, Inc. Device 1100
        Kernel driver in use: bochs-drm
[...]
00:10.0 VGA compatible controller: Intel Corporation Device 46d2
        Subsystem: Intel Corporation Device 7270
        Kernel driver in use: i915

I can see both the devices,
but if I try to run the
# intel_gpu_top
Failed to detect engines! (No such file or directory)
(Kernel 4.16 or newer is required for i915 PMU support.)

as you can see I get this error. This means that the i915 is not accesible?
but the module is loaded

# lsmod|grep i915
i915                3055616  0
drm_buddy              20480  1 i915
video                  65536  1 i915
drm_display_helper    184320  1 i915
cec                    61440  2 drm_display_helper,i915
i2c_algo_bit          16384  1 i915
drm_kms_helper        204800  6 bochs,drm_vram_helper,drm_display_helper,i915
ttm                    94208  3 drm_vram_helper,drm_ttm_helper,i915
drm                  614400  9 drm_kms_helper,bochs,drm_vram_helper,drm_display_helper,drm_buddy,drm_ttm_helper,i915,ttm



any ideas?


RE: How to know if the HW acceleration is working - TheDreadPirate - 2024-03-07

Did you follow our Promox docs here for passing the GPU into the LXC?

https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#lxc-on-proxmox