e892cea858
Re-tested Firefox 150.0.1 inside operator's active Plasma 6 Wayland
session (not Xvfb). Two-layer finding:
1. Firefox engages libva in real Plasma session: full V4L2-stateless
contract lifecycle completes, no EINVAL on the request-API path,
v4l2_request_drv_video.so successfully loaded, /dev/video1 +
/dev/media0 opened by RDD utility process 146420.
2. Kernel produces no decoded pixel output: CAPTURE buffer returns
from DQBUF with the patch-0011 sentinel pattern 0xab unchanged.
Hantro never wrote the buffer despite the contract trace looking
clean. Firefox detected the failed first frame and silently fell
back to SW decode in RDD's FFmpeg-OS-library PDM. User-visible
playback continues normally for 5+ minutes (operator confirmed
t=337s playback time in live inspection).
Cross-checked against the prior 2026-05-04 mpv vaapi-copy run: 68 of
68 mpv CAPTURE buffers show the same sentinel-survives pattern.
mpv's --vo=null consumed all 68 sentinel buffers as if they were
valid NV12 frames; the failure was invisible. OUTPUT bytes are
byte-for-byte identical between mpv and Firefox (same IDR slice via
libavcodec, both consumers feed hantro the same data, hantro
silently drops both).
Implication: the prior Phase 0 in-session re-verification verdict
(commit f15ba8b: "the 2026-04-26 picture holds at boolean-correctness
level") was wrong at the kernel-decode layer. The patch-0011 sentinel
test in the deployed Step 1 build was authored specifically to detect
this failure mode; the predecessor close-out didn't grep for it, and
contract-trace cleanliness was mistaken for end-to-end success.
Phase 1 lock should be deferred until: (a) boolean-correctness
criterion is sharpened to require pixel-content verification,
(b) Phase 0 acquires kernel-side observability (ftrace, dmesg) to
characterize WHY hantro is silent. Step 1 engages libva but doesn't
make hantro decode -- Phase 6 has substantive work beyond the
18-patch series.
Likely failure-mode candidates flagged in findings_live.md priority
order: reference_ts not propagated; DECODE_PARAMS slice_header
bit_size zero; POC sentinel may still leak past patch-0015 strip;
level_idc over-allocation; SOURCE_CHANGE event handling.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
23 lines
2.5 KiB
Plaintext
23 lines
2.5 KiB
Plaintext
1777890025.735170 close(50) = 0
|
|
1777890025.735314 close(49) = 0
|
|
1777890025.735474 execve("/usr/lib/firefox/v4l2test", ["/usr/lib/firefox/v4l2test", "-d", "/dev/video2"], 0xffff9ab39710 /* 27 vars */) = 0
|
|
1777890025.737034 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 7
|
|
1777890025.737359 close(7) = 0
|
|
1777890025.737511 openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 7
|
|
1777890025.738514 close(7) = 0
|
|
1777890025.739670 openat(AT_FDCWD, "/dev/null", O_WRONLY) = 7
|
|
1777890025.740160 close(7) = 0
|
|
1777890025.740261 openat(AT_FDCWD, "/dev/video2", O_RDWR|O_NONBLOCK) = 7
|
|
1777890025.740479 ioctl(7, VIDIOC_QUERYCAP, {driver="hantro-vpu", card="rockchip,rk3568-vepu-enc", bus_info="platform:fdee0000.video-codec", version=KERNEL_VERSION(6, 19, 10), capabilities=V4L2_CAP_VIDEO_M2M_MPLANE|V4L2_CAP_EXT_PIX_FORMAT|V4L2_CAP_STREAMING|V4L2_CAP_DEVICE_CAPS, device_caps=V4L2_CAP_VIDEO_M2M_MPLANE|V4L2_CAP_EXT_PIX_FORMAT|V4L2_CAP_STREAMING}) = 0
|
|
1777890025.740623 openat(AT_FDCWD, "/sys/kernel/mm/transparent_hugepage/enabled", O_RDONLY) = 8
|
|
1777890025.740916 close(8) = 0
|
|
1777890025.741232 ioctl(7, VIDIOC_ENUM_FMT, {index=0, type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, flags=V4L2_FMT_FLAG_COMPRESSED, description="JFIF JPEG", pixelformat=v4l2_fourcc('J', 'P', 'E', 'G') /* V4L2_PIX_FMT_JPEG */}) = 0
|
|
1777890025.741380 ioctl(7, VIDIOC_ENUM_FMT, {index=1, type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EINVAL (Invalid argument)
|
|
1777890025.741508 ioctl(7, VIDIOC_ENUM_FMT, {index=0, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, flags=0, description="Planar YUV 4:2:0 (N-C)", pixelformat=v4l2_fourcc('Y', 'M', '1', '2') /* V4L2_PIX_FMT_YUV420M */}) = 0
|
|
1777890025.741634 ioctl(7, VIDIOC_ENUM_FMT, {index=1, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, flags=0, description="Y/UV 4:2:0 (N-C)", pixelformat=v4l2_fourcc('N', 'M', '1', '2') /* V4L2_PIX_FMT_NV12M */}) = 0
|
|
1777890025.741760 ioctl(7, VIDIOC_ENUM_FMT, {index=2, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, flags=0, description="YUYV 4:2:2", pixelformat=v4l2_fourcc('Y', 'U', 'Y', 'V') /* V4L2_PIX_FMT_YUYV */}) = 0
|
|
1777890025.741906 ioctl(7, VIDIOC_ENUM_FMT, {index=3, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, flags=0, description="UYVY 4:2:2", pixelformat=v4l2_fourcc('U', 'Y', 'V', 'Y') /* V4L2_PIX_FMT_UYVY */}) = 0
|
|
1777890025.742033 ioctl(7, VIDIOC_ENUM_FMT, {index=4, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE}) = -1 EINVAL (Invalid argument)
|
|
1777890025.742151 close(7) = 0
|
|
1777890025.742724 +++ exited with 0 +++
|