Skip to content

phase35(display-engine): add native-modern visual validation workflow#31

Merged
MarsDoge merged 1 commit into
mainfrom
phase35/displayengine-visual-validation
May 23, 2026
Merged

phase35(display-engine): add native-modern visual validation workflow#31
MarsDoge merged 1 commit into
mainfrom
phase35/displayengine-visual-validation

Conversation

@MarsDoge
Copy link
Copy Markdown
Owner

这是干什么了?

Phase35 建立 DisplayEngine 的 native-vs-modern FormBrowser 截图验证路径。它不是继续改视觉细节,而是先把 A/B 证据链固定下来,后续 Phase36/row polish 才能用同一套 OVMF X64 工作流对比 native DisplayEngine 和 ModernDisplayEngine。

摘要

  • 新增 Scripts/capture-displayengine-ovmf-x64.sh
    • 支持 --mode dry-run|generate-only|build|capture
    • 分别用 MODERN_SETUP_DISPLAY_ENGINE=nativemodern 驱动既有 OVMF overlay/build/capture 脚本
    • 默认输出到 ${TMPDIR:-/tmp}/modernsetup-qemu/displayengine-ovmf-x64
    • 分离保存 overlays/nativeoverlays/modernfirmware/nativefirmware/modernnative/modern/
    • 默认 SENDKEY_SEQUENCE=esc,ret,进入 OVMF EFI Firmware Setup FormBrowser surface
  • 新增 Tests/Manual/DisplayEngineOvmfX64Visual.md:说明证据级别、手动 review checklist、已知限制。
  • 更新中英文 ProductizationValidationMatrix:把 Phase35 记录为 Script/Manual foundation,不 overclaim verified。
  • smoke 增加 Phase35 contract,确保 helper/doc 存在、native/modern selector 同时覆盖、输出路径安全、禁止 HII/ConfigAccess/varstore 路径。

边界

  • 不提升 ModernUiHiiBridgeLib
  • 不解析 IFR package。
  • 不实现/调用 ConfigAccess。
  • 不 RouteConfig / ExtractConfig / SetVariable / HiiSetBrowserData。
  • 不改 public DEC/API。
  • 不提交 screenshot artifacts;默认都在 /tmp

验证

  • bash -n Scripts/capture-displayengine-ovmf-x64.sh PASS
  • Scripts/capture-displayengine-ovmf-x64.sh --mode dry-run PASS
  • CAPTURE_OUT_DIR=/tmp/modernsetup-phase35-generate Scripts/capture-displayengine-ovmf-x64.sh --mode generate-only PASS
    • native overlay points to upstream MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
    • modern overlay points to ModernSetupPkg/Universal/ModernDisplayEngineDxe/ModernDisplayEngineDxe.inf
  • CAPTURE_OUT_DIR=/tmp/modernsetup-phase35-build TARGET=RELEASE MODERN_SETUP_REPLACE_UIAPP=0 Scripts/capture-displayengine-ovmf-x64.sh --mode build PASS
    • copied distinct native/modern OVMF_CODE.fd snapshots
  • CAPTURE_OUT_DIR=/tmp/modernsetup-phase35-capture2 TARGET=RELEASE MODERN_SETUP_REPLACE_UIAPP=0 BOOT_WAIT_SECONDS=6 Scripts/capture-displayengine-ovmf-x64.sh --mode capture PASS
    • produced native/modern .ppm and .png screendumps
    • visual sanity check: both images are non-empty and inside OVMF EFI Firmware Setup/FormBrowser, not blank/crash
    • no pixel equivalence claim
  • python3 Tests/Smoke/smoke_validate.py PASS
  • Scripts/xarch-validate.sh --all --mode dry-run PASS
  • git diff --check PASS

后续

Phase36 可以基于这个 A/B capture path 做具体 FormBrowser row visual polish,并把每次视觉变化配套 native-vs-modern screenshots。

@MarsDoge MarsDoge merged commit 980899b into main May 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant