Ryzer Posted October 17 Posted October 17 I have been experimenting with trying to get video acceleration working on the A83T. I can see from /proc/device-tree/soc/... that there is already a video-engine node within the current A83T device tree. It appears to be applied as one of the megous patches ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to-A83T-untes.patch. Admittedly this is noted as being untested. In my initially created build via the build framework, Cedrus was not present at all among the list of loaded modules. I addressed this by creating an entry in the Cedrus compatibility table for the sun8i-a83t-video engine drv-sun8i-a83t-cedrus-add-variant.patch It now appears to load but complains about being unable to allocated an SRAM: [ 10.046406] cedrus 1c0e000.video-codec: Failed to claim SRAM [ 10.046490] cedrus 1c0e000.video-codec: Failed to probe hardware [ 10.091215] cedrus 1c0e000.video-codec: Failed to claim SRAM [ 10.091339] cedrus 1c0e000.video-codec: Failed to probe hardware [ 10.419296] cedrus 1c0e000.video-codec: Failed to claim SRAM [ 10.419597] cedrus 1c0e000.video-codec: Failed to probe hardware [ 20.193058] cedrus 1c0e000.video-codec: Failed to claim SRAM [ 20.193114] cedrus 1c0e000.video-codec: Failed to probe hardware [ 20.193322] platform 1c0e000.video-codec: deferred probe pending: (reason unknown) Using both sun8i-a23-a33.dtsi and sun8i-h3.dtsi as points of reference, I attempted to make an SRAM allocation under the system controller but this still appears to fail with the same failure messages. I have double checked in the user manual and VE memory should definitely exist at 0x01D0 0000. arm-dts-sun8i-a83t-add-ve-node.patch I would be grateful for any pointers. Thanks Ryzer 0 Quote
Ryzer Posted 3 hours ago Author Posted 3 hours ago It appears that the system control was not configured properly. In the default DTS the binding is "sun8i-a83t-system-controller" which appears to have been deprecated in favor of the suffix "system-control" from what I could find. So tested with "sun8i-a83t-system-control" and "sun8-h3-system-control" as a fall back option. This time we no complaints from Cedrus: ryzer@cubietruckplus:~$ sudo dmesg | grep cedrus [ 10.624985] sunxi_cedrus: module is from the staging directory, the quality is unknown, you have been warned. [ 10.652836] cedrus 1c0e000.video-codec: Device registered as /dev/video0 Second test was to ensure that the video-engine clocks are set correctly, which can be done by temporarily disabling driver suspension. ryzer@cubietruckplus:/sys/kernel$ sudo cat debug/clk/bus-ve/clk_enable_count 1 ryzer@cubietruckplus:/sys/kernel$ sudo cat debug/clk/ve/clk_enable_count 1 ryzer@cubietruckplus:/sys/kernel$ sudo cat debug/clk/dram-ve/clk_enable_count 1 Next test trying to get working which should be using the version of ffmpeg as detailed here: This is the current output of ffmpeg: ffmpeg version 5.1.7-0+deb12u1 Copyright (c) 2000-2025 the FFmpeg developers built with gcc 12 (Debian 12.2.0-14) configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --arch=arm --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-v4l2-request --enable-v4l2-m2m --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libudev --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared libavutil 57. 28.100 / 57. 28.100 libavcodec 59. 37.100 / 59. 37.100 libavformat 59. 27.100 / 59. 27.100 libavdevice 59. 7.100 / 59. 7.100 libavfilter 8. 44.100 / 8. 44.100 libswscale 6. 7.100 / 6. 7.100 libswresample 4. 7.100 / 4. 7.100 libpostproc 56. 6.100 / 56. 6.100 Hardware acceleration methods: vdpau vaapi drm opencl vulkan It is also worth mention that as there is no support for the SGX544 GPU, we are limited to a CLI only interface for which MPV can only be launched full-screen. MPV fails to use hardware decoding and falls back to using software. MPV version is reported as 0.35.1 [ 3.639][v][vo/gpu-next/opengl] Initializing GPU context 'drm' [ 3.643][e][vo/gpu-next] Can't handle VT release - signal already used [ 3.647][w][vo/gpu-next/opengl] Failed to set up VT switcher. Terminal switching will be unavailable. [ 3.651][v][vo/gpu-next/opengl] Initializing KMS [ 3.657][v][vo/gpu-next/opengl] Picked DRM card 0, primary node /dev/dri/card0 as the default. [ 3.662][v][vo/gpu-next/opengl] Driver: sun4i-drm 1.0.0 (0) [ 3.666][v][vo/gpu-next/opengl/kms] Connector 63 currently connected to encoder 62 [ 3.670][v][vo/gpu-next/opengl/kms] Selected Encoder 62 with CRTC 61 [ 3.675][v][vo/gpu-next/opengl/kms] Selected mode: 1920x1200 (1920x1200@60.00Hz) [ 3.679][v][vo/gpu-next/opengl] DRM Atomic support found [ 3.684][v][vo/gpu-next/opengl/kms] Using overlay plane 51 as draw plane [ 3.689][v][vo/gpu-next/opengl/kms] Using primary plane 57 as drmprime plane [ 3.693][v][vo/gpu-next] GBM_FORMAT_ARGB8888 not supported by draw plane: Falling back to GBM_FORMAT_XRGB8888. [ 3.697][v][vo/gpu-next] Supported modifier: 0x0 [ 3.702][v][vo/gpu-next] Creating GBM device [ 4.915][v][vo/gpu-next] Initializing GBM surface (1920 x 1200) [ 4.920][e][vo/gpu-next] Failed to create GBM surface. [ 4.924][e][vo/gpu-next] Failed to setup GBM. [ 5.397][v][vd] Container reported FPS: 30.000000 [ 5.405][v][vd] Codec list: [ 5.409][v][vd] h264 - H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 [ 5.414][v][vd] h264_v4l2m2m (h264) - V4L2 mem2mem H.264 decoder wrapper [ 5.418][v][vd] Opening decoder h264 [ 5.424][v][vd] Looking at hwdec h264-drm... [ 5.428][v][vd] Could not create device. [ 5.433][v][vd] No hardware decoding available for this codec. [ 5.437][v][vd] Using software decoding. [ 5.445][v][vd] Detected 8 logical cores. 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.