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>
56 lines
4.9 KiB
Plaintext
56 lines
4.9 KiB
Plaintext
1777890025.696488 close(49) = 0
|
|
1777890025.696672 close(48) = 0
|
|
1777890025.696853 execve("/usr/lib/firefox/vaapitest", ["/usr/lib/firefox/vaapitest", "-d", "/dev/dri/renderD128"], 0xffff9ab39710 /* 27 vars */) = 0
|
|
1777890025.710417 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 7
|
|
1777890025.710727 close(7) = 0
|
|
1777890025.710907 openat(AT_FDCWD, "/usr/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 7
|
|
1777890025.711885 close(7) = 0
|
|
1777890025.712017 openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 7
|
|
1777890025.712905 close(7) = 0
|
|
1777890025.713037 openat(AT_FDCWD, "/usr/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 7
|
|
1777890025.713886 close(7) = 0
|
|
1777890025.714017 openat(AT_FDCWD, "/usr/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 7
|
|
1777890025.714806 close(7) = 0
|
|
1777890025.719142 openat(AT_FDCWD, "/sys/kernel/mm/transparent_hugepage/enabled", O_RDONLY) = 7
|
|
1777890025.719490 close(7) = 0
|
|
1777890025.719970 openat(AT_FDCWD, "/dev/null", O_WRONLY) = 7
|
|
1777890025.720446 close(7) = 0
|
|
1777890025.720555 openat(AT_FDCWD, "/dev/dri/renderD128", O_RDWR) = 7
|
|
1777890025.720807 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 8
|
|
1777890025.721107 close(8) = 0
|
|
1777890025.721259 openat(AT_FDCWD, "/usr/lib/libva-drm.so.2", O_RDONLY|O_CLOEXEC) = 8
|
|
1777890025.722047 close(8) = 0
|
|
1777890025.722178 openat(AT_FDCWD, "/usr/lib/libva.so.2", O_RDONLY|O_CLOEXEC) = 8
|
|
1777890025.723044 close(8) = 0
|
|
1777890025.723190 openat(AT_FDCWD, "/usr/lib/libdrm.so.2", O_RDONLY|O_CLOEXEC) = 8
|
|
1777890025.724002 close(8) = 0
|
|
1777890025.725317 openat(AT_FDCWD, "/etc/libva.conf", O_RDONLY) = 8
|
|
1777890025.725716 close(8) = 0
|
|
1777890025.725854 openat(AT_FDCWD, "/etc/libva.conf", O_RDONLY) = 8
|
|
1777890025.726173 close(8) = 0
|
|
1777890025.726281 openat(AT_FDCWD, "/etc/libva.conf", O_RDONLY) = 8
|
|
1777890025.726585 close(8) = 0
|
|
1777890025.726691 openat(AT_FDCWD, "/etc/libva.conf", O_RDONLY) = 8
|
|
1777890025.726957 close(8) = 0
|
|
1777890025.727089 ioctl(7, DRM_IOCTL_VERSION, 0xaaaae07724a0) = 0
|
|
1777890025.727205 ioctl(7, DRM_IOCTL_VERSION, 0xaaaae07724a0) = 0
|
|
1777890025.727571 openat(AT_FDCWD, "/usr/lib/dri/v4l2_request_drv_video.so", O_RDONLY|O_CLOEXEC) = 8
|
|
1777890025.728405 close(8) = 0
|
|
1777890025.728826 openat(AT_FDCWD, "/dev/video1", O_RDWR|O_NONBLOCK) = 8
|
|
1777890025.729120 ioctl(8, VIDIOC_QUERYCAP, {driver="hantro-vpu", card="rockchip,rk3568-vpu-dec", bus_info="platform:fdea0000.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.729275 openat(AT_FDCWD, "/dev/media0", O_RDWR|O_NONBLOCK) = 9
|
|
1777890025.729421 ioctl(8, VIDIOC_ENUM_FMT, {index=0, type=V4L2_BUF_TYPE_VIDEO_OUTPUT}) = -1 EINVAL (Invalid argument)
|
|
1777890025.729549 ioctl(8, VIDIOC_ENUM_FMT, {index=0, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, flags=V4L2_FMT_FLAG_COMPRESSED, description="H.264 Parsed Slice Data", pixelformat=v4l2_fourcc('S', '2', '6', '4') /* V4L2_PIX_FMT_H264_SLICE */}) = 0
|
|
1777890025.729678 ioctl(8, VIDIOC_ENUM_FMT, {index=1, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, flags=V4L2_FMT_FLAG_COMPRESSED, description="MPEG-2 Parsed Slice Data", pixelformat=v4l2_fourcc('M', 'G', '2', 'S') /* V4L2_PIX_FMT_MPEG2_SLICE */}) = 0
|
|
1777890025.729828 ioctl(8, VIDIOC_ENUM_FMT, {index=0, type=V4L2_BUF_TYPE_VIDEO_OUTPUT}) = -1 EINVAL (Invalid argument)
|
|
1777890025.729945 ioctl(8, VIDIOC_ENUM_FMT, {index=0, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, flags=V4L2_FMT_FLAG_COMPRESSED, description="H.264 Parsed Slice Data", pixelformat=v4l2_fourcc('S', '2', '6', '4') /* V4L2_PIX_FMT_H264_SLICE */}) = 0
|
|
1777890025.730071 ioctl(8, VIDIOC_ENUM_FMT, {index=0, type=V4L2_BUF_TYPE_VIDEO_OUTPUT}) = -1 EINVAL (Invalid argument)
|
|
1777890025.730184 ioctl(8, VIDIOC_ENUM_FMT, {index=0, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, flags=V4L2_FMT_FLAG_COMPRESSED, description="H.264 Parsed Slice Data", pixelformat=v4l2_fourcc('S', '2', '6', '4') /* V4L2_PIX_FMT_H264_SLICE */}) = 0
|
|
1777890025.730344 ioctl(8, VIDIOC_ENUM_FMT, {index=1, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, flags=V4L2_FMT_FLAG_COMPRESSED, description="MPEG-2 Parsed Slice Data", pixelformat=v4l2_fourcc('M', 'G', '2', 'S') /* V4L2_PIX_FMT_MPEG2_SLICE */}) = 0
|
|
1777890025.730466 ioctl(8, VIDIOC_ENUM_FMT, {index=2, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, flags=V4L2_FMT_FLAG_COMPRESSED, description="VP8 Frame", pixelformat=v4l2_fourcc('V', 'P', '8', 'F') /* V4L2_PIX_FMT_VP8_FRAME */}) = 0
|
|
1777890025.730591 ioctl(8, VIDIOC_ENUM_FMT, {index=3, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE}) = -1 EINVAL (Invalid argument)
|
|
1777890025.730736 close(8) = 0
|
|
1777890025.730898 close(9) = 0
|
|
1777890025.731312 close(7) = 0
|
|
1777890025.732380 +++ exited with 0 +++
|