Skip to content

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

Merged
EtienneLescot merged 1 commit into
mainfrom
docs/macos-m1-export-perf-check
Oct 10, 2026
Merged

EtienneLescot merged 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, after the Windows A/B, and the Known gaps bullet updated to cover both measurements (register counts still owed on both).
  • 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 M1 benchmark results for shader and rendering changes, including export performance, pixel comparisons, preview behavior, and animated backgrounds.
    • Updated known gaps with M1 and Windows measurements and noted remaining Intel and GPU register-count checks.
    • Recorded a manual macOS test run, including compositor results, export and preview observations, and areas not covered.

@coderabbitai

coderabbitai Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c22b7811-62d9-48e2-bb9b-e62fd5f62f22


📥 Commits

Reviewing files that changed from the base of the PR and between 5e500b4 and 3bfe80e.



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


🚧 Files skipped from review as they are similar to previous changes (1)
  • 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; 5 remain after this review.




📝 Walkthrough
📝 Walkthrough

Walkthrough

The documentation records M1 Metal measurements for four rendering changes, along with export comparisons, preview observations, and compositor test results. It updates the known gaps to include the M1 results and identify outstanding Intel and GPU register-count measurements.

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 M1 measurements for four rendering changes. The main build’s median export time is 19.38 seconds, compared with 20.60 seconds for rc.12. They also report pixel differences, preview checks, compositor test results, and outstanding Intel iGPU and GPU register-count measurements.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other



Merge Risk: ⚪ Minimal · up to 3bfe8

This change records M1 rendering measurements and test limitations; no runtime behavior change or actionable merge risk is identified.

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 | Passed 5
✅ Passed checks (5 passed)
Check name Status Explanation
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.
Title check Passed The title clearly and concisely identifies the documentation change and the Mac mini M1 measurement.
Description check Passed The description provides a clear summary, issue references, detailed results, testing evidence, platform context, and uncovered areas. It does not use every template heading or checkbox, but the requi…

✨ 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.

…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.
@EtienneLescot
EtienneLescot force-pushed the docs/macos-m1-export-perf-check branch from 5e500b4 to 3bfe80e Compare October 10, 2026 08:40
@EtienneLescot
EtienneLescot merged commit 27ed325 into main Oct 10, 2026
24 checks 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