Phase 0: browser X11-overlay inventory + mpv reference cell + tooling installs

Source-level verdict: no browser in the matrix has a code path
to hand NV12 to the X server for plane scanout. Chromium ozone-x11
wires StubOverlayManager (ozone_platform_x11.cc:262); Brave 147 +
chromium-fourier 149 inherit unchanged. Firefox WindowSurfaceX11
is RGB-only. The campaign's load-bearing hypothesis is structurally
weakened — what the X11 cells will measure for browsers is
KWin's per-frame RGB-recomposite cost, not the original
"force-GL-composite of NV12" framing. mpv --vo=xv becomes the
matrix's only direct test of the operator-supplied mechanism.

Matrix updated: 12 cells -> 16 cells (+8 mpv VO sub-points).
revert.log entries 1-5 capture all package + per-user state
mutations from this turn (measurement tools, openbox, XFCE +
xfwm4-no-comp pre-seed, firefox + AUR xtrace, XFCE rotation
+ touchscreen mapping); single SSH-driveable revert chain
returns ohm to its pre-campaign 1169-package state.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-03 11:14:46 +00:00
parent 5d34a957ee
commit d2e11be430
30 changed files with 13176 additions and 35 deletions
@@ -0,0 +1,46 @@
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_OZONE_PUBLIC_OVERLAY_MANAGER_OZONE_H_
#define UI_OZONE_PUBLIC_OVERLAY_MANAGER_OZONE_H_
#include <memory>
#include "ui/gfx/native_ui_types.h"
namespace ui {
class OverlayCandidatesOzone;
// Responsible for providing the oracles used to decide when overlays can be
// used.
class OverlayManagerOzone {
public:
virtual ~OverlayManagerOzone() {}
// Get the hal struct to check for overlay support.
virtual std::unique_ptr<OverlayCandidatesOzone> CreateOverlayCandidates(
gfx::AcceleratedWidget w) = 0;
bool allow_sync_and_real_buffer_page_flip_testing() const {
return allow_sync_and_real_buffer_page_flip_testing_;
}
// Tell the manager that the overlay delegation is enabled. This is only
// useful for Wayland as checking for overlay support depends on
// features::IsDelegatedCompositingEnabled, which cannot be accessed from
// //ui/ozone.
// TODO(msisov, petermcneeley): remove this once Wayland uses only delegated
// context.
virtual void SetContextDelegated() {}
protected:
// TODO(fangzhoug): Some Chrome OS boards still use the legacy video decoder.
// Remove this once ChromeOSVideoDecoder is on everywhere.
bool allow_sync_and_real_buffer_page_flip_testing_ = false;
};
} // namespace ui
#endif // UI_OZONE_PUBLIC_OVERLAY_MANAGER_OZONE_H_