Jellyfin Forum
SOLVED: HW Transcoding RK3588 arch not working - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: SOLVED: HW Transcoding RK3588 arch not working (/t-solved-hw-transcoding-rk3588-arch-not-working)



HW Transcoding RK3588 arch not working - Crashdummy - 2025-03-08

Hi there
I am currently struggling to get hardware transcoding working on arch and I've got not idea why.
I've followed this guide ( https://jellyfin.org/docs/general/administration/hardware-acceleration/rockchip/ ) but there are a few things I dont get.
When I run the verification I get errors.

Code:
$ sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v debug -init_hw_device rkmpp=rk -init_hw_device opencl=ocl@rk
ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 14.1.1 (GCC) 20240507
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-gpl --enable-version3 --enable-static --enable-gmp --enable-gnutls --enable-chromaprint --enable-libfontconfig --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libopenmpt --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --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
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'rkmpp=rk'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'opencl=ocl@rk'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Applying option init_hw_device (initialise hardware device) with argument rkmpp=rk.
Device creation failed: -12.
Failed to set value 'rkmpp=rk' for option 'init_hw_device': Cannot allocate memory
Error parsing global options: Cannot allocate memory

It looks like the the jellyfin-ffmpeg is missing
Code:
--enable-rkmpp
.
The
Code:
ffmpeg-mpp-git
has this enabled but it still throws errors.

Code:
$ sudo ffmpeg -v debug -init_hw_device rkmpp=rk -init_hw_device opencl=ocl@rk
[sudo] password for crashdummy:
ffmpeg version f5c7e0d63b Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 14.1.1 (GCC) 20240507
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-fontconfig --enable-frei0r --enable-gmp --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libdvdnav --enable-libdvdread --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libharfbuzz --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librsvg --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-mbedtls --enable-opencl --enable-opengl --enable-shared --enable-vapoursynth --enable-version3 --enable-librist --disable-vulkan --disable-doc --enable-rkmpp --enable-rkrga
  libavutil      59. 39.100 / 59. 39.100
  libavcodec    61. 19.101 / 61. 19.101
  libavformat    61.  7.100 / 61.  7.100
  libavdevice    61.  3.100 / 61.  3.100
  libavfilter    10.  4.100 / 10.  4.100
  libswscale      8.  3.100 /  8.  3.100
  libswresample  5.  3.100 /  5.  3.100
  libpostproc    58.  3.100 / 58.  3.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'rkmpp=rk'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'opencl=ocl@rk'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Applying option init_hw_device (initialise hardware device) with argument rkmpp=rk.
Applying option init_hw_device (initialise hardware device) with argument opencl=ocl@rk.
Device creation failed: -38.
Failed to set value 'opencl=ocl@rk' for option 'init_hw_device': Function not implemented
Error parsing global options: Function not implemented

Regarding the libmali opencl The note mentions
> Only needed before using HDR tone-mapping on RK3588/3588S. This is done to ensure that the user space firmware and kernel driver versions match, otherwise OpenCL will not work properly.

Wouldnt that mean I can ignore this ?
It doesnt look like its actually working because when I monitor the load using
Code:
$ sudo watch -n 1 cat /sys/kernel/debug/rkrga/load

It always remains at 0 load

Code:
num of scheduler = 3
================= load ==================
scheduler[0]: rga3
load = 0%
-----------------------------------
scheduler[1]: rga3
load = 0%
-----------------------------------
scheduler[2]: rga2
load = 0%
-----------------------------------

Am I forgetting anything ?
My System is a Radxa Rocks 5b+ and i used the community arch installer.
https://github.com/kwankiu/archlinux-installer

Code:
OS: Arch Linux ARM aarch64
Host: Radxa ROCK 5B Plus
Kernel: Linux 6.1.75-rockchip-g7725578fd0ae-dirty
CPU: rk3588 (8) @ 2.30 GHz
GPU: Rockchip rk3588-mali [Integrated]
Memory: 2.10 GiB / 31.04 GiB (7%)



RE: HW Transcoding RK3588 arch not working - TheDreadPirate - 2025-03-09

@nyanmisaka - Can you help with this?


RE: HW Transcoding RK3588 arch not working - nyanmisaka - 2025-03-10

You are running a custom version of FFmpeg instead of the Jellyfin-FFmpeg we provide.

Therefore your FFmpeg does not contain our patches for RKMPP libraries. Please get the latest Jellyfin-FFmpeg from here and try again.

https://github.com/jellyfin/jellyfin-ffmpeg/releases


RE: HW Transcoding RK3588 arch not working - Crashdummy - 2025-03-10

(2025-03-10, 01:58 PM)nyanmisaka Wrote: You are running a custom version of FFmpeg instead of the Jellyfin-FFmpeg we provide.

Therefore your FFmpeg does not contain our patches for RKMPP libraries. Please get the latest Jellyfin-FFmpeg from here and try again.

https://github.com/jellyfin/jellyfin-ffmpeg/releases

Thanks for that hint.
Code:
$ sudo ffmpeg -v debug -init_hw_device rkmpp=rk -init_hw_device opencl=ocl@rk
ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 14.2.0 (crosstool-NG 1.26.0.120_4d36f27)
  configuration: --prefix=/ffbuild/prefix --pkg-config=pkg-config --pkg-config-flags=--static --cross-prefix=aarch64-ffbuild-linux-gnu- --arch=aarch64 --target-os=linux --extra-version=Jellyfin --extra-cflags= --extra-cxxflags= --extra-ldflags= --extra-ldexeflags=-pie --extra-libs=-ldl --enable-gpl --enable-version3 --disable-ffplay --disable-debug --disable-doc --disable-ptx-compression --disable-sdl2 --disable-libxcb --disable-xlib --enable-lto=auto --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2 --enable-openssl --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --enable-chromaprint --enable-libdav1d --enable-libfdk-aac --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libopenmpt --enable-rkmpp --enable-rkrga --enable-libsrt --enable-libsvtav1 --enable-libdrm --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libzimg --enable-libzvbi
  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
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'rkmpp=rk'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'opencl=ocl@rk'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Applying option init_hw_device (initialise hardware device) with argument rkmpp=rk.
Applying option init_hw_device (initialise hardware device) with argument opencl=ocl@rk.
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
[AVHWDeviceContext @ 0xaaab013600c0] 1 OpenCL platforms found.
[AVHWDeviceContext @ 0xaaab013600c0] 1 OpenCL devices found on platform "ARM Platform".
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
[AVHWDeviceContext @ 0xaaab013600c0] 0.0: ARM Platform / Unknown Device
Segmentation fault
It looks way better now.
Looks like the arch package was not correctly built:

Code:
$ pacman -Ss jellyfin-ffmpeg
extra/jellyfin-ffmpeg 1:7.0.2p7-1 [0 B 63.71 MiB] [Installed]
    Jellyfin fork of ffmpeg

Now I only need to find out whats wrong with OpenCL.
But thats gotta be my fault.
Do you have any hints regarding this as well ?
The coredump originates from oepncl
Code:
$ clinfo
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Number of platforms                              1
  Platform Name                                  ARM Platform
  Platform Vendor                                ARM
  Platform Version                                OpenCL 3.0 v1.g13p0-01eac0.a8b6f0c7e1f83c654c60d1775112dbe4
  Platform Profile                                FULL_PROFILE
  Platform Extensions                            cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_3d_image_writes cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_icd cl_khr_egl_image cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_subgroups cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_subgroup_non_uniform_arithmetic cl_khr_subgroup_shuffle cl_khr_subgroup_shuffle_relative cl_khr_subgroup_clustered_reduce cl_khr_subgroup_rotate cl_khr_il_program cl_khr_priority_hints cl_khr_create_command_queue cl_khr_spirv_no_integer_wrap_decoration cl_khr_extended_versioning cl_khr_device_uuid cl_khr_suggested_local_work_size cl_khr_extended_bit_ops cl_khr_integer_dot_product cl_khr_semaphore cl_khr_external_semaphore cl_khr_external_semaphore_sync_fd cl_khr_command_buffer cl_arm_core_id cl_arm_printf cl_arm_non_uniform_work_group_size cl_arm_import_memory cl_arm_import_memory_dma_buf cl_arm_import_memory_host cl_arm_integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_arm_scheduling_controls cl_arm_controlled_kernel_termination cl_ext_cxx_for_opencl cl_ext_image_tiling_control cl_ext_image_requirements_info cl_ext_image_from_buffer
  Platform Extensions with Version                cl_khr_global_int32_base_atomics                                0x400000 (1.0.0)
                                                  cl_khr_global_int32_extended_atomics                            0x400000 (1.0.0)
                                                  cl_khr_local_int32_base_atomics                                  0x400000 (1.0.0)
                                                  cl_khr_local_int32_extended_atomics                              0x400000 (1.0.0)
                                                  cl_khr_byte_addressable_store                                    0x400000 (1.0.0)
                                                  cl_khr_3d_image_writes                                          0x400000 (1.0.0)
                                                  cl_khr_int64_base_atomics                                        0x400000 (1.0.0)
                                                  cl_khr_int64_extended_atomics                                    0x400000 (1.0.0)
                                                  cl_khr_fp16                                                      0x400000 (1.0.0)
                                                  cl_khr_icd                                                      0x400000 (1.0.0)
                                                  cl_khr_egl_image                                                0x400000 (1.0.0)
                                                  cl_khr_image2d_from_buffer                                      0x400000 (1.0.0)
                                                  cl_khr_depth_images                                              0x400000 (1.0.0)
                                                  cl_khr_subgroups                                                0x400000 (1.0.0)
                                                  cl_khr_subgroup_extended_types                                  0x400000 (1.0.0)
                                                  cl_khr_subgroup_non_uniform_vote                                0x400000 (1.0.0)
                                                  cl_khr_subgroup_ballot                                          0x400000 (1.0.0)
                                                  cl_khr_subgroup_non_uniform_arithmetic                          0x400000 (1.0.0)
                                                  cl_khr_subgroup_shuffle                                          0x400000 (1.0.0)
                                                  cl_khr_subgroup_shuffle_relative                                0x400000 (1.0.0)
                                                  cl_khr_subgroup_clustered_reduce                                0x400000 (1.0.0)
                                                  cl_khr_subgroup_rotate                                          0x400000 (1.0.0)
                                                  cl_khr_il_program                                                0x400000 (1.0.0)
                                                  cl_khr_priority_hints                                            0x400000 (1.0.0)
                                                  cl_khr_create_command_queue                                      0x400000 (1.0.0)
                                                  cl_khr_spirv_no_integer_wrap_decoration                          0x400000 (1.0.0)
                                                  cl_khr_extended_versioning                                      0x400000 (1.0.0)
                                                  cl_khr_device_uuid                                              0x400000 (1.0.0)
                                                  cl_khr_suggested_local_work_size                                0x400000 (1.0.0)
                                                  cl_khr_extended_bit_ops                                          0x400000 (1.0.0)
                                                  cl_khr_integer_dot_product                                      0x800000 (2.0.0)
                                                  cl_khr_semaphore                                                  0x9000 (0.9.0)
                                                  cl_khr_external_semaphore                                          0x9000 (0.9.0)
                                                  cl_khr_external_semaphore_sync_fd                                  0x9000 (0.9.0)
                                                  cl_khr_command_buffer                                              0x9000 (0.9.0)
                                                  cl_arm_core_id                                                  0x400000 (1.0.0)
                                                  cl_arm_printf                                                    0x400000 (1.0.0)
                                                  cl_arm_non_uniform_work_group_size                              0x400000 (1.0.0)
                                                  cl_arm_import_memory                                            0x400000 (1.0.0)
                                                  cl_arm_import_memory_dma_buf                                    0x400000 (1.0.0)
                                                  cl_arm_import_memory_host                                        0x400000 (1.0.0)
                                                  cl_arm_integer_dot_product_int8                                  0x400000 (1.0.0)
                                                  cl_arm_integer_dot_product_accumulate_int8                      0x400000 (1.0.0)
                                                  cl_arm_integer_dot_product_accumulate_saturate_int8              0x400000 (1.0.0)
                                                  cl_arm_scheduling_controls                                        0x4000 (0.4.0)
                                                  cl_arm_controlled_kernel_termination                            0x400000 (1.0.0)
                                                  cl_ext_cxx_for_opencl                                            0x400000 (1.0.0)
                                                  cl_ext_image_tiling_control                                        0x1000 (0.1.0)
                                                  cl_ext_image_requirements_info                                    0x5000 (0.5.0)
                                                  cl_ext_image_from_buffer                                        0x400000 (1.0.0)
  Platform Numeric Version                        0xc00000 (3.0.0)
  Platform Extensions function suffix            ARM
  Platform Host timer resolution                  1ns
  Platform Semaphore types                        Binary
  Platform External semaphore import types        0
  Platform External semaphore export types        0

  Platform Name                                  ARM Platform
Number of devices                                1
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
  Device Name                                    <printDeviceInfo:0: get CL_DEVICE_NAME size : error -6>
  Device Vendor                                  ARM
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
  Device Vendor ID                                <printDeviceInfo:2: get CL_DEVICE_VENDOR_ID : error -6>
  Device Version                                  OpenCL 3.0 v1.g13p0-01eac0.a8b6f0c7e1f83c654c60d1775112dbe4
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
  Device UUID                                    <printDeviceInfo:6: get CL_DEVICE_UUID_KHR : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
  Driver UUID                                    <printDeviceInfo:7: get CL_DRIVER_UUID_KHR : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
  Valid Device LUID                              <printDeviceInfo:8: get CL_DEVICE_LUID_VALID_KHR : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
  Device LUID                                    <printDeviceInfo:9: get CL_DEVICE_LUID_KHR : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
  Device Node Mask                                <printDeviceInfo:10: get CL_DEVICE_NODE_MASK_KHR : error -6>
  Device Numeric Version                          0xc00000 (3.0.0)
  Driver Version                                  3.0
  Device OpenCL C Version                        OpenCL C 3.0 v1.g13p0-01eac0.a8b6f0c7e1f83c654c60d1775112dbe4
  Device OpenCL C Numeric Version                0xc00000 (3.0.0)
  Device OpenCL C all versions                    OpenCL C                                                        0x400000 (1.0.0)
                                                  OpenCL C                                                        0x401000 (1.1.0)
                                                  OpenCL C                                                        0x402000 (1.2.0)
                                                  OpenCL C                                                        0x800000 (2.0.0)
                                                  OpenCL C                                                        0xc00000 (3.0.0)
  Device OpenCL C features                        __opencl_c_images                                                0x400000 (1.0.0)
                                                  __opencl_c_int64                                                0x400000 (1.0.0)
                                                  __opencl_c_3d_image_writes                                      0x402000 (1.2.0)
                                                  __opencl_c_atomic_order_acq_rel                                  0x800000 (2.0.0)
                                                  __opencl_c_atomic_order_seq_cst                                  0x800000 (2.0.0)
                                                  __opencl_c_atomic_scope_device                                  0x800000 (2.0.0)
                                                  __opencl_c_atomic_scope_all_devices                              0x800000 (2.0.0)
                                                  __opencl_c_device_enqueue                                        0x800000 (2.0.0)
                                                  __opencl_c_generic_address_space                                0x800000 (2.0.0)
                                                  __opencl_c_pipes                                                0x800000 (2.0.0)
                                                  __opencl_c_program_scope_global_variables                        0x800000 (2.0.0)
                                                  __opencl_c_read_write_images                                    0x800000 (2.0.0)
                                                  __opencl_c_subgroups                                            0x800000 (2.0.0)
                                                  __opencl_c_work_group_collective_functions                      0x800000 (2.0.0)
  Device C++ for OpenCL Numeric Version          0x400000 (1.0.0)
  Latest conformance test passed                  v2021-03-05-00
  Device Type                                    GPU
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Linker Available                                Yes
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
  Max compute units                              <printDeviceInfo:32: get CL_DEVICE_MAX_COMPUTE_UNITS : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
  Available core IDs (ARM)                        <printDeviceInfo:33: get CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
  Max clock frequency                            <printDeviceInfo:40: get CL_DEVICE_MAX_CLOCK_FREQUENCY : error -6>
  Device Partition                                (core)
    Max number of sub-devices                    0
    Supported partition types                    None
    Supported affinity domains                    (n/a)
  Max work item dimensions                        3
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
  Max work item sizes                            <printDeviceInfo:62: get number of CL_DEVICE_MAX_WORK_ITEM_SIZES : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
  Max work group size                            <printDeviceInfo:63: get CL_DEVICE_MAX_WORK_GROUP_SIZE : error -6>
  Preferred work group size multiple (device)    16
Segmentation fault (core dumped)

I only found some articles on the net where i've got no idea if theyre outdated or not.
Code:
$ pacman -Q | grep mali
libmali-valhall-g610-base g13p0.10-2
libmali-valhall-g610-x11-wayland-gbm g13p0.10-2
mali-valhall-g610-firmware g18p0.01eac0-4

# This file didnt exist and clinfo is empty without it. Found this info in some old article...
$ cat /etc/OpenCL/vendors/mali.icd
/usr/lib/mali-valhall-g610/x11-wayland-gbm/libmali.so



RE: HW Transcoding RK3588 arch not working - nyanmisaka - 2025-03-11

For the HDR tone-mapping use case on RK3588, OpenCL support provided by libmali (user mode driver) and bifrost (kernel mode driver) is required.

Mesa dev has developed a replacement for bifrost called panfrost/panthor, but it does not work with libmali. This is what causes the error.


$ clinfo

arm_release_ver: g13p0-01eac0, rk_so_ver: 10

Failed creating base context during opening of kernel driver.
...



RE: HW Transcoding RK3588 arch not working - Crashdummy - 2025-03-11

(2025-03-11, 11:43 AM)nyanmisaka Wrote: For the HDR tone-mapping use case on RK3588, OpenCL support provided by libmali (user mode driver) and bifrost (kernel mode driver) is required.

Mesa dev has developed a replacement for bifrost called panfrost/panthor, but it does not work with libmali. This is what causes the error.


$ clinfo

arm_release_ver: g13p0-01eac0, rk_so_ver: 10

Failed creating base context during opening of kernel driver.
...

Thanks for the clarification, so there lies my mistake thanks.
I thought panfrost wasnt needed anymore since panthor exists
Code:
$ modinfo panthor
filename:      /lib/modules/6.1.75-rockchip-g7725578fd0ae-dirty/kernel/drivers/gpu/drm/panthor/panthor.ko
license:        Dual MIT/GPL
description:    Panthor DRM Driver
author:        Panthor Project Developers
firmware:      arm/mali/arch10.8/mali_csffw.bin
srcversion:    3521F20A4F39754655CB2BD
alias:          of:N*T*Carm,mali-valhall-csfC*
alias:          of:N*T*Carm,mali-valhall-csf
alias:          of:N*T*Crockchip,rk3588-maliC*
alias:          of:N*T*Crockchip,rk3588-mali
depends:        gpu-sched,drm_shmem_helper,drm_gpuvm,drm_exec
intree:        Y
name:          panthor
vermagic:      6.1.75-rockchip-g7725578fd0ae-dirty SMP mod_unload modversions aarch64

Thanks for your help Smiling-face