Files
libva-multiplanar/phase0_evidence/2026-05-04-firefox/profile_user.js
T
marfrit f115fa6cbc Phase 0 deliverable #3 (Firefox): headless-rig finding
Firefox 150.0.1 + media.ffmpeg.vaapi.enabled=true + LIBVA_DRIVER_NAME=
v4l2_request, executed under Xvfb on ohm.

Result: inconclusive at the boolean-correctness level. RDD process
dlopens libva.so.2 + libva-drm.so.2 + libva-x11.so.2 for capability
probe then immediately closes them; never reaches vaInitialize, never
opens /dev/dri/renderD128, never reaches v4l2_request_drv_video.so.
Falls back to software H.264 in RDD via FFmpeg-OS-library PDM
(Broadcast support from 'RDD', support=H264 SWDEC).

Root cause: Xvfb provides software framebuffer with no DRI/DRM
render-node integration. Firefox's gfx-environment platform-fitness
check rejects VAAPI before adding it to the RDD PDM order list.
Not a libva-side or driver-side fault — mpv --hwdec=vaapi-copy in
the same headless rig DID engage end-to-end (per
phase0_evidence/2026-05-04/findings.md).

Definitive Firefox verdict requires retesting inside a live Plasma
session — deferred to live-session run (next commit).

Also: Phase 0 deliverable #2 (Step 1 reconciliation into fork
master) was completed and pushed to marfrit/libva-v4l2-request-fourier
between this and the prior Phase 0 commit; status table updated.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 10:19:14 +00:00

50 lines
2.0 KiB
JavaScript

// Phase 0 deliverable #3: Firefox VAAPI engagement test
// All prefs set explicitly to avoid relying on platform defaults that may have shifted.
// Core: enable VAAPI through ffmpeg
user_pref("media.ffmpeg.vaapi.enabled", true);
user_pref("media.ffvpx.enabled", false);
user_pref("media.hardware-video-decoding.force-enabled", true);
user_pref("media.hardware-video-decoding.enabled", true);
// Force-disable codecs we have no HW for, so failures aren't misattributed
user_pref("media.av1.enabled", false);
user_pref("media.webm.enabled", true);
// EGL + DMABUF (X11 path)
user_pref("gfx.x11-egl.force-enabled", true);
user_pref("widget.dmabuf.force-enabled", true);
// RDD process (where vaapi decode lives in modern Firefox)
user_pref("media.rdd-process.enabled", true);
user_pref("media.rdd-ffvpx.enabled", false);
user_pref("media.rdd-ffmpeg.enabled", true);
user_pref("media.rdd-vpx.enabled", false);
// GPU process decoder
user_pref("media.gpu-process-decoder", true);
// Logging — surface VAAPI init in Browser Console / stderr
user_pref("logging.config.LOG_FILE", "/tmp/firefox-vaapi-test/firefox.log");
user_pref("logging.config.sync", true);
user_pref("logging.PlatformDecoderModule", 5);
user_pref("logging.MediaPDM", 5);
// Suppress everything that wants the network (no telemetry/updates/etc.)
user_pref("toolkit.telemetry.enabled", false);
user_pref("toolkit.telemetry.unified", false);
user_pref("app.update.enabled", false);
user_pref("app.update.auto", false);
user_pref("browser.startup.homepage_override.mstone", "ignore");
user_pref("browser.shell.checkDefaultBrowser", false);
user_pref("browser.startup.firstrunSkipsHomepage", true);
user_pref("datareporting.healthreport.uploadEnabled", false);
user_pref("datareporting.policy.dataSubmissionEnabled", false);
user_pref("network.connectivity-service.enabled", false);
user_pref("network.captive-portal-service.enabled", false);
user_pref("dom.ipc.processCount", 1);
// Autoplay so the test triggers decode without user input
user_pref("media.autoplay.default", 0);
user_pref("media.autoplay.blocking_policy", 0);