Linux-Rockchip Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Diederik de Haas" <didi.debian@cknow.org>
To: "Jonas Karlman" <jonas@kwiboo.se>,
	"Ezequiel Garcia" <ezequiel@vanguardiasur.com.ar>,
	"Detlev Casanova" <detlev.casanova@collabora.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>
Cc: "Alex Bee" <knaerzche@gmail.com>,
	"Nicolas Dufresne" <nicolas.dufresne@collabora.com>,
	<linux-media@vger.kernel.org>,
	<linux-rockchip@lists.infradead.org>,
	<devicetree@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	"Christian Hewitt" <christianshewitt@gmail.com>
Subject: Re: [PATCH v3 0/7] media: rkvdec: Add HEVC backend
Date: Sat, 13 Sep 2025 16:51:59 +0200	[thread overview]
Message-ID: <DCRR9XY9MT2L.3JSK4SYGMT57R@cknow.org> (raw)
In-Reply-To: <20250905161942.3759717-1-jonas@kwiboo.se>


[-- Attachment #1.1: Type: text/plain, Size: 4677 bytes --]

On Fri Sep 5, 2025 at 6:19 PM CEST, Jonas Karlman wrote:
> This series add a HEVC backend to the Rockchip Video Decoder driver.

I did some testing and the TL;DR version is:

Tested-by: Diederik de Haas <didi.debian@cknow.org>  # Rock64, RockPro64, Quartz64-B, NanoPi R5S

Now for the long version ;-P

I built a 5.17-rc5 kernel with this patch set [1], which was based upon
linuxtv's next branch, so I just took all their commits on 2025-09-07.
Then rebased Detlev's rkvdec patch set on top of that.
As I have quite a few rk356x based devices and there wasn't a DT patch
to enable rkvdec2, I 'assembled' my own one. (And some more patches)

I have a patched ffmpeg [2] and with its -dev libraries built a patched
mpv [3]. Installed that onto (mostly) Debian Forky systems with mesa
25.2.2 and sway 1.11. I have a number of test files which are provided
via NFS so storage device wouldn't matter and it's also what I use with
LibreELEC (both 12.2 as 12.90.1 provided by 'chewitt').
And then I went on to perform the same tests on these devices:

1) Pine64 Rock64 (rk3328)
2) Pine64 RockPro64 (rk3399)
3) Pine64 Quartz64 Model B (rk3566) *
4) FriendlyELEC NanoPi R5S (rk3568) *

*) I blacklisted the hantro driver

My testing showed that the 'classical' Big Buck Bunny video worked the
best for testing ... meaning it caused the most 'problems'.
I used the 'Standard 2D' 'Full HD (1920x1080)' '60 fps' version which
you can download from [4]. That'll give you an 8-bit encoded x264
version of that video. I have converted that video to x265 with a script
I wrote (quite) a while ago [5]; instructions near the end of that
script (no hdr no resize 'branch' about $TENBIT_PARAMS).
That resulted in 2 test files:
a) bbb_sunflower_1080p_60fps_normal.x265.cf24.slow.8bit.mp4
b) bbb_sunflower_1080p_60fps_normal.x265.cf24.medium.10bit.mp4

Testing went as follows:
I logged into the device, started sway and opened a 'foot' terminal and
navigated to my NFS share with the test files. Then I used

  mpv --hwdec=v4l2request <video-file> [--fullscreen=yes]

Without the 'fullscreen' param it shows the video in the right part of
the screen (1080p monitor), while the left part shows mpv's output.
This made it easy to see 'dropped frames' and any audio delay.
I played each file twice, one using half the screen and one fullscreen.

This had less of an effect then I expected; only in a few cases it
'pushed it over the edge' and the only real effect was with Rock64 ...
which being the least powerful is (kinda) expected.

The results of the 10-bit x265 files was uniform: only a blue screen was
visible and OSD (with 'I' or 'O' in mpv) didn't work. Interestingly it
also had no frame drops ... except when doing 'I' (with no visible
effect), then it dropped a couple of frames (one time quite a few).
Mpv showed this error message each time:
[vo/gpu] Initializing texture for hardware decoding failed

For the 8-bit x265 file, the results were more varied:
- On Rock64 HW accel worked, but the videos had a red 'glare' over them.
  None of the other devices had that, so maybe related to 'lima'?
  On LE it did NOT have the red glare. It did seem to have quite a bit
  of trouble starting it
- On Rock64 it dropped 970 frames in 60 secs and 2480 in fullscreen.
  This resulted in quite a shockery display and noticeable artifacts.
  That was not (or at least a whole lot less) the case with LE.
- On the other devices there was not much difference in dropped frames
  when it came to windowed vs full-screen, but the frame drops were
  quite high ~2000 when HW accelerated and up to ~3000 when not
  I got the impression that ~3Mbps bitrate was a tipping point.
- The original BBB file (thus x264) had a similar high frame drop rate,
  so the problem seems unrelated to this patch set
- Audio delay was sometimes huge (>60 secs after 60 secs :-O), and HW
  acceleration fixed that (due to free 'CPU' capacity?)

The 'scores' for my other test files were actually quite good \o/
All my video were HW accelerated; 8-bit with nv12 worked good while
10-bit with nv15 was very blue. But all were corrected detected.

So IMO this is a massive improvement! Thanks a LOT :-D

Cheers,
  Diederik

[1] https://salsa.debian.org/diederik/linux/-/tree/cknow/media-next
(Salsa CI fails as it can't deal with the ~ in 6.17~rc5)
[2] https://salsa.debian.org/diederik/ffmpeg/-/tree/v4l2request-2025-v3-rkvdec-n7.1
[3] https://salsa.debian.org/diederik/mpv/-/tree/v4l2request-support
[4] http://bbb3d.renderfarming.net/download.html
[5] https://paste.sr.ht/~diederik/52b81ebc4c14b5146eb9b687bb1e8c1d62787991

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

  parent reply	other threads:[~2025-09-13 14:52 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-05 16:19 [PATCH v3 0/7] media: rkvdec: Add HEVC backend Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 1/7] " Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 2/7] media: rkvdec: Add variants support Jonas Karlman
2025-09-08 18:32   ` Detlev Casanova
2025-09-09  8:41     ` Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 3/7] media: rkvdec: Implement capability filtering Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 4/7] media: rkvdec: Add RK3288 variant Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 5/7] media: rkvdec: Disable QoS for HEVC and VP9 on RK3328 Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 6/7] media: dt-bindings: rockchip,vdec: Add RK3288 compatible Jonas Karlman
2025-09-05 16:19 ` [PATCH v3 7/7] ARM: dts: rockchip: Add vdec node for RK3288 Jonas Karlman
2025-09-09 18:12 ` [PATCH v3 0/7] media: rkvdec: Add HEVC backend Detlev Casanova
2025-09-13 14:51 ` Diederik de Haas [this message]
2025-12-15 11:47 ` (subset) " Heiko Stuebner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DCRR9XY9MT2L.3JSK4SYGMT57R@cknow.org \
    --to=didi.debian@cknow.org \
    --cc=christianshewitt@gmail.com \
    --cc=detlev.casanova@collabora.com \
    --cc=devicetree@vger.kernel.org \
    --cc=ezequiel@vanguardiasur.com.ar \
    --cc=jonas@kwiboo.se \
    --cc=knaerzche@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=mchehab@kernel.org \
    --cc=nicolas.dufresne@collabora.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox