User Tools

Site Tools


ohm_gl_fix:phase5_review_2026-05-01

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ohm_gl_fix:phase5_review_2026-05-01 [2026/05/01 14:04] – Phase 5 second-model review — Sonnet 4.6 challenges of the four Phase 4 §7 questions markus_fritscheohm_gl_fix:phase5_review_2026-05-01 [2026/05/01 16:41] (current) – fix //path// inside code spans (escape with %%) markus_fritsche
Line 11: Line 11:
 ==== Steelman against ==== ==== Steelman against ====
  
-The plan commits to libva-v4l2-request multiplanar rewrite as the primary path because "Brave is libva." But that conclusion rests entirely on one Phase 3 data point: "libva failed at vaInitialize" for S6 Brave, producing 0 ''VIDIOC_*'' in the strace boundary count. The plan interprets this as "Brave tries libva but libva is broken, so fix libva." The stronger reading of the same evidence is: libva is broken on this device, so Brave has silently fallen back to its non-hardware path already. That path is not libva at all — it's whatever Chromium does when ''VaapiVideoDecoder'' fails its capability check. Chromium's fallback on Linux/Wayland for devices without working VAAPI is typically the ''V4L2VideoDecoder'' (the stateless V4L2 interface exposed via the ''//media/gpu/v4l2/'' stack, distinct from the libva path). The feature flag ''UseChromeOSDirectVideoDecoder'' controls exactly this: on ChromeOS and some Linux builds it bypasses libva entirely and drives V4L2 stateless directly from the GPU process. If Brave's packaged Chromium (M138-class on Arch ARM) has this path compiled in and enabled, then the right fix surface is not libva-v4l2-request at all — it is either (a) verifying that Chromium's built-in ''V4L2VideoDecoder'' is capable of addressing ''/dev/video1'' on RK3566, or (b) enabling the correct feature flags to activate it. This would completely bypass libva and make the 4-8 week multiplanar rewrite irrelevant to Brave's actual path.+The plan commits to libva-v4l2-request multiplanar rewrite as the primary path because "Brave is libva." But that conclusion rests entirely on one Phase 3 data point: "libva failed at vaInitialize" for S6 Brave, producing 0 ''VIDIOC_*'' in the strace boundary count. The plan interprets this as "Brave tries libva but libva is broken, so fix libva." The stronger reading of the same evidence is: libva is broken on this device, so Brave has silently fallen back to its non-hardware path already. That path is not libva at all — it's whatever Chromium does when ''VaapiVideoDecoder'' fails its capability check. Chromium's fallback on Linux/Wayland for devices without working VAAPI is typically the ''V4L2VideoDecoder'' (the stateless V4L2 interface exposed via the ''%%//%%media/gpu/v4l2/'' stack, distinct from the libva path). The feature flag ''UseChromeOSDirectVideoDecoder'' controls exactly this: on ChromeOS and some Linux builds it bypasses libva entirely and drives V4L2 stateless directly from the GPU process. If Brave's packaged Chromium (M138-class on Arch ARM) has this path compiled in and enabled, then the right fix surface is not libva-v4l2-request at all — it is either (a) verifying that Chromium's built-in ''V4L2VideoDecoder'' is capable of addressing ''/dev/video1'' on RK3566, or (b) enabling the correct feature flags to activate it. This would completely bypass libva and make the 4-8 week multiplanar rewrite irrelevant to Brave's actual path.
  
 ==== What would have to be true ==== ==== What would have to be true ====
  
-Brave's Chromium build (packaged in Arch Linux ARM's brave-bin) must have ''//media/gpu/v4l2/v4l2_video_decode_accelerator.cc'' or ''//media/gpu/v4l2/v4l2_stateless_video_decoder.cc'' compiled and linked, and the ''UseChromeOSDirectVideoDecoder'' or ''V4L2FlatStatelessVideoDecoder'' flag must be reachable via command-line feature flags. A secondary condition: the RK3566 V4L2 stateless interface must be enumerable as a ''/dev/videoN'' node with the correct capabilities from Chromium's GPU sandbox.+Brave's Chromium build (packaged in Arch Linux ARM's brave-bin) must have ''%%//%%media/gpu/v4l2/v4l2_video_decode_accelerator.cc'' or ''%%//%%media/gpu/v4l2/v4l2_stateless_video_decoder.cc'' compiled and linked, and the ''UseChromeOSDirectVideoDecoder'' or ''V4L2FlatStatelessVideoDecoder'' flag must be reachable via command-line feature flags. A secondary condition: the RK3566 V4L2 stateless interface must be enumerable as a ''/dev/videoN'' node with the correct capabilities from Chromium's GPU sandbox.
  
 ==== Cheapest test ==== ==== Cheapest test ====
Line 109: Line 109:
  
 //Phase 5 ends here. Markus reviews and redacts; the next step is either a Phase 4 amendment incorporating the surfaced action items (and possibly pivoting away from libva-v4l2-request if Q1's cheap test fires) or a fresh Phase 4 iteration. Phase 6 implementation does not begin until Phase 4 is locked.// //Phase 5 ends here. Markus reviews and redacts; the next step is either a Phase 4 amendment incorporating the surfaced action items (and possibly pivoting away from libva-v4l2-request if Q1's cheap test fires) or a fresh Phase 4 iteration. Phase 6 implementation does not begin until Phase 4 is locked.//
 +
  
ohm_gl_fix/phase5_review_2026-05-01.1777644251.txt.gz · Last modified: by markus_fritsche