Files
libva-multiplanar/phase0_evidence/2026-05-04-firefox-live/strace_146200
T
marfrit e892cea858 Phase 0 deliverable #3 (Firefox live session): inverted verdict
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>
2026-05-04 10:38:57 +00:00

22 lines
2.4 KiB
Plaintext

1777890025.744928 close(50) = 0
1777890025.745076 close(49) = 0
1777890025.745230 execve("/usr/lib/firefox/v4l2test", ["/usr/lib/firefox/v4l2test", "-d", "/dev/video1"], 0xffff9ab39710 /* 27 vars */) = 0
1777890025.746147 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 7
1777890025.746447 close(7) = 0
1777890025.746598 openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 7
1777890025.747560 close(7) = 0
1777890025.748701 openat(AT_FDCWD, "/dev/null", O_WRONLY) = 7
1777890025.749192 close(7) = 0
1777890025.749297 openat(AT_FDCWD, "/dev/video1", O_RDWR|O_NONBLOCK) = 7
1777890025.749530 ioctl(7, 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.749677 openat(AT_FDCWD, "/sys/kernel/mm/transparent_hugepage/enabled", O_RDONLY) = 8
1777890025.749957 close(8) = 0
1777890025.750297 ioctl(7, VIDIOC_ENUM_FMT, {index=0, type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, flags=0, description="Y/UV 4:2:0", pixelformat=v4l2_fourcc('N', 'V', '1', '2') /* V4L2_PIX_FMT_NV12 */}) = 0
1777890025.750452 ioctl(7, VIDIOC_ENUM_FMT, {index=1, type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) = -1 EINVAL (Invalid argument)
1777890025.750578 ioctl(7, 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.750709 ioctl(7, 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.750860 ioctl(7, 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.750989 ioctl(7, VIDIOC_ENUM_FMT, {index=3, type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE}) = -1 EINVAL (Invalid argument)
1777890025.751108 close(7) = 0
1777890025.751695 +++ exited with 0 +++