Skip to content

docs: record the shader and background-cache fixes on a Mac mini M1 - #985

Open
EtienneLescot wants to merge 1 commit into
mainfrom
docs/macos-m1-export-perf-check
Open

EtienneLescot wants to merge 1 commit into
mainfrom
docs/macos-m1-export-perf-check

Conversation

@EtienneLescot

@EtienneLescot EtienneLescot commented Oct 3, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Records the Metal half of the export regression fix (#982, #983, #984) on a Mac mini M1. Docs only.

  • rendering-performance.md: new subsection "The same fixes on Metal: Mac mini M1, 2026-10-03" under the Linux export path, and the Known gaps bullet narrowed to D3D11.
  • manual-e2e-checklist.md: one Partial row.

Results

2.0.0-rc.12 main 0624c148
median (3 runs) 20.60 s 19.38 s
MAD 0.02 s 0.004 s
local floor 18.17 s 18.19 s
× floor 1.134 1.066
foreign load 54 to 70 % 52 to 69 %

Same session, closing control flat (18.18 / 18.19 s). main's crates/, src/ and electron/ are identical to 2.0.0-rc.13. 1.11.0-rc.1 was not re-measured: its run went bad when a Parsec session went live, so the reference stays the published 1.04×.

  • cargo test -p openscreen-compositor --lib --tests on the M1: 407 passed, 0 failed, every_shader_entry_point_compiles with LAYER_MODELS included.
  • Exports of the bench project plus four variants (laptop, phone, monitor, window frames; 3D cursor; click impact; blur; animated gradient): every effect present, device shadows included.
  • Lossless comparison of the two compositors (local ffv1 candidate, measurement only): luma within 1/255 on anti-aliased edges, a few silhouette pixels of the 3D models up to 20/255. Not byte-identical like Linux: Metal fast math and the separate models library.
  • Preview, driven over CDP: background, blur and aspect changes return the exact starting frame; an animated background keeps animating.

Not covered: computer-use input (nobody at the machine), recording, HUD, tray, Windows, Linux.

Summary by CodeRabbit

  • Documentation
    • Added Apple Silicon benchmark results comparing shader and rendering behavior with the v2.0.0-rc.12 baseline, including pixel differences, preview checks, and performance measurements.
    • Clarified which graphics changes remain unmeasured and documented the scope and results of a manual macOS test run.

…i M1

rc.12 at 1.134x the local floor, main 0624c14 at 1.066x in the same
session. Metal output differs from rc.12 by 1/255 on anti-aliased edges
and by a few pixels on the 3D models' silhouettes, measured losslessly.
Adds a Partial row to the manual e2e results log.
@coderabbitai

coderabbitai Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

🧰 Additional context used
📚 Code guidelines (2)
technical-documentation/testing/manual-e2e-checklist.md — configured
technical-documentation/engineering/release-and-secrets.md — configured

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c79f51ef-aeaf-4107-974b-7c0315dcf4f2
📥 Commits

Reviewing files that changed from the base of the PR and between 0624c14 and 5e500b4.

📒 Files selected for processing (2)
  • technical-documentation/engineering/rendering-performance.md
  • technical-documentation/testing/manual-e2e-checklist.md

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The documentation records Mac mini M1 results for Metal rendering changes, including benchmark measurements, export differences, preview checks, and test coverage. It also clarifies which related D3D11 changes remain unmeasured.

Changes

Metal rendering measurements

Layer / File(s) Summary
Record Metal results and measurement status
technical-documentation/engineering/rendering-performance.md, technical-documentation/testing/manual-e2e-checklist.md
The documents record the October 3, 2026 Metal test results, including 407 passing compositor tests and benchmark measurements. They report small image differences from the baseline and identify D3D11 measurements that remain outstanding.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Suggested reviewers: my-denia

Merge Risk: ⚪ Minimal · up to 5e500

The PR records scoped M1 results and keeps the remaining D3D11 gaps explicit. No concrete issue requiring resolution before merge is established.

Architecture Summary

Architecture risk: 🔵 Low · up to 5e500

The change affects 1 system.

Changed systems: technical-documentation

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — technical-documentation (service) was modified; 2 changed files map to changed impact.

Before / after behavior

  • observed — Modified behavior in technical-documentation/engineering/rendering-performance.md: Added M1 measurements for the Metal port of four Linux compositor fixes. The recorded benchmark median changes from 20.60 s on 2.0.0-rc.12 to 19.38 s on the local build, or 1.134× to 1.066× the local floor. The section documents non-byte-identical output, per-project pixel differences, and preview checks for cache behavior and animated backgrounds.
  • observed — Modified behavior in technical-documentation/engineering/rendering-performance.md: Updated the known-gap declaration to state that the D3D11 shader split, static-background cache, and cursor-trail scissor remain unmeasured, while Metal was measured on 2026-10-03. D3D11 register allocation and real-GPU behavior remain unknown.
  • observed — Modified behavior in technical-documentation/testing/manual-e2e-checklist.md: Added a results-log entry documenting the macOS Metal test run, its coverage and measured outcomes, and its limitations. It reports 407 compositor tests passing; exported and previewed effects present, with small image differences from the baseline; and a performance floor change from 1.134× to 1.066×.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: documenting shader and background-cache fix measurements on a Mac mini M1.
Description check ✅ Passed The description summarizes the documentation changes and provides detailed results and testing. The template’s Related issue, Type of change, Release impact, and Desktop impact fields are not complete…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

This branch has not been deployed

No deployments
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