Re: [PATCH 0/7] media: iris: add support for kaanapali platform
From: Vikash Garodia
Date: Tue Jan 27 2026 - 11:07:45 EST
On 1/27/2026 8:40 PM, Nicolas Dufresne wrote:
Hi,
Le mardi 27 janvier 2026 à 13:52 +0200, Dmitry Baryshkov a écrit :
On Tue, Jan 27, 2026 at 04:56:34PM +0530, Vikash Garodia wrote:
[..]
- 4 testcase failed due to unsupported resolution
Can it be fixed?
Its nicer if you name the failing tests vectors. I can guess this is
PICSIZE_{A,B,C,D}_Bossen_1 by experience, but not everyone will guess. HEVC
level impose a limit on bandwidth, not on resolution. These files are either
very large and small height or the opposite. One of these is just 4K in portrait
mode (that is more concerning). Though, there is a V4L2 limitation for this
aspect, since we advertise the resolutions by range. Most hardware is designed
to support 4096x4096, in that casse that's what you should expose as limits.
Though, some hardware do have dynamic sizing capabilities (like RKVDEC HEVC), in
this case there is not much you can do, you have to find the right trade of. But
since you expose LEVELs, I think its fine to overshoot a little. Both
constraints should ensure it works with valid streams.
I can list the failing test vectors for failing tests. In this case, its
PICSIZE_A_Bossen_1
PICSIZE_B_Bossen_1
WPP_D_ericsson_MAIN10_2
WPP_D_ericsson_MAIN_2
I have not explicitly gone through individual failures this time on kaanapali, as last time when these were analyzed for earlier platform (SM8550), the failed due to resolution lower than 96x96, which VPU does not support for kaanapali as well.
Do you think if fluster can query the supported frame sizes and accordingly, mark the ones testing outside that range as pass, if graceful error ?
- 2 testcase failed due to CRC mismatch
These are clear example of "no one can guess".
RAP_A_docomo_6
VPSSPSPPS_A_MainConcept_1
For "RAP.." test vector, it was discussed earlier [1] and the frames marked as VB2_BUF_STATE_ERROR should be dropped. GST is currently displaying the NULL content leading to CRC mismatch. Let me know if this can be taken up as a GST bug.
[1] https://lore.kernel.org/linux-media/20250408-iris-dec-hevc-vp9-v1-0-acd258778bd6@xxxxxxxxxxx/
Which means an error in the testsuite or somewhere on our side?
The testsuite fully pass if you run using Franhofer reference decoder. This is
logical since the MD5 has been generated with it.
Since the reference decoder in this is not generating buffers with zero filled data, its not complaining. In VPU case, even though buffers are of zero filled data, marking them as error, should get dropped, instead of considering it as a valid frame.
- 2 test fails due to session error (under debug)
- PICSIZE_C_Bossen_1
Hmm, see, I have no idea which fourth one could fail due to resolution, and that
forth one is likely a bug on your side.
This could pass on sm8550 and fails on kaanapali. This should be debugged from driver side.
The failed list is same as the one published during sm8550 [1]. I see most of the test vectors are <= 64x64 and going as low as 08x08. Here as well if we can have a query for supported frame size, it should handle these cases.- WPP_E_ericsson_MAIN_2
VP9:
235/305 testcases passed while testing VP9-TEST-VECTORS with
GStreamer-VP9-V4L2-Gst1.0.
The failing test case:
- 64 testcases failed due to unsupported resolution
Can it be fixed?
Check if you aren't mixing up constraints between display, coded and allocated
resolutions. On most hardware, all 3 can differ. The OUTPUT queue should either
not care at all, or use it to allow optimistic pre-allocation. But check that
the low resolution constraints is not coming from the OUTPUT queue software.
VP9 coded resolution, it always at least 64x64.
[1] https://lore.kernel.org/linux-media/20250408-iris-dec-hevc-vp9-v1-0-acd258778bd6@xxxxxxxxxxx/
- 2 testcases failed due to unsupported format
Hmm?
Clarify please, I suppose these are YUV444 (aka professional profiles).
vp91-2-04-yuv422.webm
vp91-2-04-yuv444.webm
- 1 testcase failed with CRC mismatch (fails with ref decoder as well)
Could you please raise an issue against fluster?
Check your setup, it fully pass with reference here. The MD5 has been generated
using the reference.
./fluster.py run -d libvpx-VP9 -ts VP9-TEST-VECTORS
It also fully pass with the GStreamer wrapper, though it had been fixed in
recent GStreamer versions (I'm testing with 1.26.10).
I would let Dikshita comment on this. I am unable to find that discussion where it was failing in her setup with reference decoder as well.
- 2 testcase failed due to unsupported resolution after sequence change
Can it be fixed?
This one can't be fixed without adding an extension to the V4L2 Stateful Decoder
spec, like we did for the stateless decoder spec. In order to handle inter-frame
resolution changes (a resolution change on a non-keyframe), you have to notify
userspace with the new resolution, give it a way to read back this solution,
have CREATE_BUFS() support to allow allocating for that new resolution without
going through streamoff (to avoid looking reference data), and finally, a way to
remove buffers that are now too small (or too big if userspace wants to reduce
the amount of RAM used) through the new DELETE_BUFS ioctl. You also have to
track in your driver the reference buffer resolution/stride.
This is non-trivial with the existing stateful state-machine. You have to make
sure userspace won't be confused between normal DRC and inter-frame DRC (dynamic
resolution changes).
[...]
regards,
Nicolas
Regards,
Vikash