Error with OpenCL Tone Mapping - Arc A310 - Arthou - 2024-11-10
Hello!
I have set up Jellyfin in an unpriviliged LXC container in Proxmox, running on a system with an Intel Arc A310 and a Ryzen 3500x. From what I saw the container only needs to be privileged if running on Proxmox 7 or below, mine is v8.2.7.
I have followed the guides and got HWA working when using the "Enable VPP Tone mapping" option, but the player crashes with a fatal error when "Enable Tone mapping" is checked aswell. This was working perfectly for my needs, but recently tried to run a DV file and could not get the colors right, only if I disabled HWA.
Inside the container, these are the outputs of the following commands:
Code: root@jellyfin:~# ls -la /dev/dri/renderD128
crw-rw---- 1 nobody jellyfin 226, 128 Nov 9 23:23 /dev/dri/renderD128
root@jellyfin:~# id jellyfin
uid=103(jellyfin) gid=112(jellyfin) groups=112(jellyfin),44(video),104(render),1001(lxcfolder)
Code: root@jellyfin:~# uname -r
6.8.12-3-pve
Code: root@jellyfin:~# sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va
ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 59. 8.100 / 59. 8.100
libavcodec 61. 3.100 / 61. 3.100
libavformat 61. 1.100 / 61. 1.100
libavdevice 61. 1.100 / 61. 1.100
libavfilter 10. 1.100 / 10. 1.100
libswscale 8. 1.100 / 8. 1.100
libswresample 5. 1.100 / 5. 1.100
libpostproc 58. 1.100 / 58. 1.100
[AVHWDeviceContext @ 0x5bbbb6a43640] Failed to open /dev/dri/renderD128 as DRM device node.
[AVHWDeviceContext @ 0x5bbbb6a43640] No VA display found for device /dev/dri/renderD128.
Device creation failed: -22.
Failed to set value 'vaapi=va:/dev/dri/renderD128' for option 'init_hw_device': Invalid argument
Error parsing global options: Invalid argument
Code: root@jellyfin:~# sudo /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128
Trying display: drm
Failed to open the given device!
Code: root@jellyfin:~# apt policy intel-opencl-icd
intel-opencl-icd:
Installed: 22.43.24595.41-1
Candidate: 22.43.24595.41-1
Version table:
*** 22.43.24595.41-1 500
500 http://deb.debian.org/debian bookworm/main amd64 Packages
100 /var/lib/dpkg/status
Code: root@jellyfin:~# dmesg | grep i915
dmesg: read kernel buffer failed: Operation not permitted
The same "dmesg | grep i915" command running on host:
Code: root@helium:~# dmesg | grep i915
[ 4.397092] i915 0000:09:00.0: [drm] VT-d active for gfx access
[ 4.610500] i915 0000:09:00.0: vgaarb: deactivate vga console
[ 4.610870] i915 0000:09:00.0: [drm] Local memory IO size: 0x00000000fd000000
[ 4.610872] i915 0000:09:00.0: [drm] Local memory available: 0x00000000fd000000
[ 4.628714] i915 0000:09:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=none
[ 4.634246] i915 0000:09:00.0: [drm] Finished loading DMC firmware i915/dg2_dmc_ver2_08.bin (v2.8)
[ 4.642627] i915 0000:09:00.0: [drm] GT0: GuC firmware i915/dg2_guc_70.bin version 70.29.2
[ 4.642630] i915 0000:09:00.0: [drm] GT0: HuC firmware i915/dg2_huc_gsc.bin version 7.10.16
[ 4.654945] i915 0000:09:00.0: [drm] GT0: GUC: submission enabled
[ 4.654947] i915 0000:09:00.0: [drm] GT0: GUC: SLPC enabled
[ 4.655217] i915 0000:09:00.0: [drm] GT0: GUC: RC enabled
[ 4.706865] [drm] Initialized i915 1.6.0 20230929 for 0000:09:00.0 on minor 1
[ 4.708695] i915 display info: display version: 13
[ 4.708697] i915 display info: cursor_needs_physical: no
[ 4.708698] i915 display info: has_cdclk_crawl: no
[ 4.708699] i915 display info: has_cdclk_squash: yes
[ 4.708700] i915 display info: has_ddi: yes
[ 4.708700] i915 display info: has_dp_mst: yes
[ 4.708701] i915 display info: has_dsb: yes
[ 4.708702] i915 display info: has_fpga_dbg: yes
[ 4.708703] i915 display info: has_gmch: no
[ 4.708703] i915 display info: has_hotplug: yes
[ 4.708704] i915 display info: has_hti: no
[ 4.708705] i915 display info: has_ipc: yes
[ 4.708705] i915 display info: has_overlay: no
[ 4.708706] i915 display info: has_psr: yes
[ 4.708707] i915 display info: has_psr_hw_tracking: no
[ 4.708707] i915 display info: overlay_needs_physical: no
[ 4.708708] i915 display info: supports_tv: no
[ 4.708709] i915 display info: has_hdcp: yes
[ 4.708709] i915 display info: has_dmc: yes
[ 4.708710] i915 display info: has_dsc: yes
[ 4.734569] snd_hda_intel 0000:0a:00.0: bound 0000:09:00.0 (ops i915_audio_component_bind_ops [i915])
[ 4.738131] fbcon: i915drmfb (fb0) is primary device
[ 4.825746] i915 0000:09:00.0: [drm] fb0: i915drmfb frame buffer device
[ 5.428970] i915 0000:09:00.0: [drm] GT0: HuC: authenticated for all workloads
[ 5.428977] mei_pxp i915.mei-gsc.2304-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:09:00.0 (ops i915_pxp_tee_component_ops [i915])
This is from the FFmpeg log:
Code: ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 59. 8.100 / 59. 8.100
libavcodec 61. 3.100 / 61. 3.100
libavformat 61. 1.100 / 61. 1.100
libavdevice 61. 1.100 / 61. 1.100
libavfilter 10. 1.100 / 10. 1.100
libswscale 8. 1.100 / 8. 1.100
libswresample 5. 1.100 / 5. 1.100
libpostproc 58. 1.100 / 58. 1.100
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
[AVHWDeviceContext @ 0x64f8c133dbc0] Failed to get number of OpenCL platforms: -1001.
Device creation failed: -19.
Failed to set value 'opencl=ocl@va' for option 'init_hw_device': No such device
Error parsing global options: No such device
"vainfo" command outputs a "command not found" on host even though "intel-media-va-driver" is installed there. Have tried a lot of things and still stuck on this, appreciate any help!
Update: Just tested in as priviliged container and the same error from the FFmpeg log "Failed to set value 'opencl@va' for option 'init_hw_device': No such device" happens when running the "/usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=vadev/dri/renderD128 -init_hw_device opencl@va" command.
RE: Error with OpenCL Tone Mapping - Arc A310 - Arthou - 2024-11-10
Solved!!
For anyone stumbling into this post in the future, I looked in other forums and it seems there is a bug when trying to use OpenCL with intel on kernel 6.8.x, the kernel the latest Proxmox release is based on. I downgraded the kernel to 6.5.13-2 and now everything is working perfectly.
Thanks the team for this software!
|