Skip to content

glass: counted and timed (the glass bench, G1) - #981

Closed
fizzy-linux[bot] wants to merge 6 commits into
mainfrom
linux/work-653
Closed

fizzy-linux[bot] wants to merge 6 commits into
mainfrom
linux/work-653

Conversation

@fizzy-linux

@fizzy-linux fizzy-linux Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Part of fizzyedit/work#653
Rework: work#688

In plain words

This refreshes the glass benchmark work with the changes already on main. It keeps the benchmark intact while bringing in the Android starter project, so both efforts can move forward together.

What you will notice

Nothing visible: internal branch synchronization.

How this serves fizzy

Goal: one codebase, every platform; keep glass measurement tooling compatible with ongoing Android work.

Goal

Part of fizzyedit/work#688: refresh PR #981 against main without changing review findings.

What changed and why

Prepared the content merge of origin/main 9fc9c05 into branch head 8036042 using their common base. The build.zig hook merged cleanly; android/** and build/android.zig were copied verbatim from main. No manual conflicts or other implementation changes were needed.

How it was verified

See GATES.md for each gate and its result. This synchronization adds no new behavior or regression tests. Build, unit tests, integration tests, web and SDK gates passed; lint retains the existing GlassBench.zig raw-scroll-area failure.

Not done / follow-ups

The harness must record the merge with origin/main as a parent, publish it, verify mergeability, and post the single FIXES comment on work#658 with the new head. The comment should state that main was merged, no manual conflicts were present, and build.zig was combined with main's android/** and build/android.zig additions. No git metadata writes, push, GitHub calls, or review-finding changes were performed in this sandbox.

Changes (22 files, +432/-2)
 .github/workflows/ci.yml           |  23 +++++++
 backend/src/GpuRenderer.zig        |  11 +++
 backend/src/Health.zig             |  11 +++
 backend/src/glass/BlurBackdrop.zig |  17 ++++-
 build/app.zig                      |   8 +++
 build/web.zig                      |   1 +
 docs/PERF.md                       |   6 ++
 scripts/glass-bench.sh             | 137 +++++++++++++++++++++++++++++++++++++
 src/Entry.zig                      |  10 +++
 src/backend/backend_web.zig        |   6 ++
 src/editor/Editor.zig              |   3 +
 src/editor/GlassBench.zig          | 103 ++++++++++++++++++++++++++++
 src/editor/verdict.zig             |  32 +++++++++
 src/fizzy.zig                      |   5 ++
 tests/fixtures/glass-bench/1.zon   |  11 +++
 tests/fixtures/glass-bench/9.zon   |  11 +++
 tests/tapes/glass-bench.budget.zon |   4 ++
 tests/tapes/glass-bench.expect.zon |   3 +
 tests/tapes/glass-bench.zon        |  16 +++++
 web/fizzy-worker.js                |   5 ++
 web/fizzy.js                       |   9 +++
 web/index.html                     |   2 +
 22 files changed, 432 insertions(+), 2 deletions(-)
Gates: 6 of 6 passed

scripts/check-fmt.sh (exit 0)

check-fmt: listing tracked files
check-fmt: checking 580 files

scripts/zb build --summary all (exit 0)

... (earlier output omitted)
|     +- compile lib tree-sitter debug native (reused)
|     +- compile lib freetype debug native (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- options (reused)
|     +- options (reused)
|     +- translate-c dvui-c cached
|     |  +- compile exe translate-c debug native (+21 more reused dependencies)
|     +- options cached
|     +- options cached
+- install text cached
|  +- compile lib text debug native cached 12ms MaxRSS:38M
|     +- WriteFile plugin_root.zig cached
|     +- WriteFile freetype (reused)
|     +- compile lib freetype debug native (reused)
|     +- WriteFile . (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- compile lib freetype debug native (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- options (reused)
|     +- translate-c dvui-c (+1 more reused dependencies)
|     +- options (reused)
|     +- options (reused)
+- install markdown cached
|  +- compile lib markdown debug native cached 12ms MaxRSS:38M
|     +- WriteFile plugin_root.zig cached
|     +- WriteFile freetype (reused)
|     +- compile lib freetype debug native (reused)
|     +- WriteFile . (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- compile lib freetype debug native (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- options (reused)
|     +- translate-c dvui-c (+1 more reused dependencies)
|     +- options (reused)
|     +- options (reused)
|     +- translate-c (reused)
+- install image cached
   +- compile lib image debug native cached 13ms MaxRSS:38M
      +- WriteFile plugin_root.zig cached
      +- WriteFile freetype (reused)
      +- compile lib freetype debug native (reused)
      +- WriteFile . (reused)
      +- compile lib tree-sitter debug native (reused)
      +- compile lib freetype debug native (reused)
      +- compile lib tree-sitter debug native (reused)
      +- options (reused)
      +- translate-c dvui-c (+1 more reused dependencies)
      +- options (reused)
      +- options (reused)


scripts/zb build test --summary all (exit 0)

... (earlier output omitted)
      +- WriteFile freetype cached
      +- compile lib freetype debug native cached 10ms MaxRSS:38M
      +- WriteFile . cached
      +- compile lib tree-sitter debug native cached 11ms MaxRSS:37M
      +- compile lib freetype debug native (reused)
      +- compile lib tree-sitter debug native (reused)
      +- translate-c dvui-c cached
      |  +- compile exe translate-c debug native cached 7ms MaxRSS:38M
      |     +- options cached
      |     +- options cached
      |     +- options cached
      |     +- run exe generate-def (aarch64.zig) cached
      |     |  +- compile exe generate-def debug native cached 3ms MaxRSS:38M
      |     +- run exe generate-def (amdgcn.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (arm.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (bpf.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (common.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (hexagon.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (loongarch.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (mips.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (neon.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (nvptx.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (powerpc.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (riscv.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (s390x.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (ve.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (wasm.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (x86_64.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (x86.zig) cached
      |     |  +- compile exe generate-def debug native (reused)
      |     +- run exe generate-def (xcore.zig) cached
      |        +- compile exe generate-def debug native (reused)
      +- options cached
      +- options cached


scripts/zb build test-integration --summary all (exit 0)

... (earlier output omitted)
|     +- options (reused)
+- run test fizzy-plugin-loader-tests cached
|  +- compile test fizzy-plugin-loader-tests debug native cached 13ms MaxRSS:35M
|     +- WriteFile freetype (reused)
|     +- compile lib freetype debug native (reused)
|     +- WriteFile . (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- compile lib freetype debug native (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- translate-c dvui-c (+1 more reused dependencies)
|     +- options (reused)
|     +- options (reused)
+- run test fizzy-text-plugin-tests cached
|  +- compile test fizzy-text-plugin-tests debug native cached 14ms MaxRSS:38M
|     +- options (reused)
|     +- WriteFile freetype (reused)
|     +- compile lib freetype debug native (reused)
|     +- WriteFile . (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- compile lib freetype debug native (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- translate-c dvui-c (+1 more reused dependencies)
|     +- options (reused)
|     +- options (reused)
+- run test fizzy-dashboard-plugin-tests cached
|  +- compile test fizzy-dashboard-plugin-tests debug native cached 15ms MaxRSS:38M
|     +- options (reused)
|     +- WriteFile freetype (reused)
|     +- compile lib freetype debug native (reused)
|     +- WriteFile . (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- compile lib freetype debug native (reused)
|     +- compile lib tree-sitter debug native (reused)
|     +- translate-c dvui-c (+1 more reused dependencies)
|     +- options (reused)
|     +- options (reused)
+- run test fizzy-workbench-plugin-tests cached
   +- compile test fizzy-workbench-plugin-tests debug native cached 16ms MaxRSS:38M
      +- options (reused)
      +- options (reused)
      +- WriteFile freetype (reused)
      +- compile lib freetype debug native (reused)
      +- WriteFile . (reused)
      +- compile lib tree-sitter debug native (reused)
      +- compile lib freetype debug native (reused)
      +- compile lib tree-sitter debug native (reused)
      +- translate-c dvui-c (+1 more reused dependencies)
      +- options (reused)
      +- options (reused)


scripts/zb build check-web --summary all (exit 0)

... (earlier output omitted)
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (arm.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (bpf.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (common.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (hexagon.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (loongarch.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (mips.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (neon.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (nvptx.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (powerpc.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (riscv.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (s390x.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (ve.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (wasm.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (x86_64.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (x86.zig) cached
|  |     |  +- compile exe generate-def debug native (reused)
|  |     +- run exe generate-def (xcore.zig) cached
|  |        +- compile exe generate-def debug native (reused)
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- options cached
|  +- translate-c cached 3ms MaxRSS:33M
+- compile obj rehome-fixture-web debug wasm32-freestanding cached 6ms MaxRSS:38M
   +- translate-c dvui-c (+1 more reused dependencies)
   +- options (reused)
   +- options (reused)


scripts/zb build test-sdk-version --summary all (exit 0)

... (earlier output omitted)
   +- WriteFile . cached
   +- compile lib tree-sitter debug native cached 10ms MaxRSS:37M
   +- compile lib freetype debug native (reused)
   +- compile lib tree-sitter debug native (reused)
   +- options cached
   +- options cached
   +- translate-c dvui-c cached
   |  +- compile exe translate-c debug native cached 6ms MaxRSS:38M
   |     +- options cached
   |     +- options cached
   |     +- options cached
   |     +- run exe generate-def (aarch64.zig) cached
   |     |  +- compile exe generate-def debug native cached 5ms MaxRSS:35M
   |     +- run exe generate-def (amdgcn.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (arm.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (bpf.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (common.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (hexagon.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (loongarch.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (mips.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (neon.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (nvptx.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (powerpc.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (riscv.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (s390x.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (ve.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (wasm.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (x86_64.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (x86.zig) cached
   |     |  +- compile exe generate-def debug native (reused)
   |     +- run exe generate-def (xcore.zig) cached
   |        +- compile exe generate-def debug native (reused)
   +- options cached
   +- options cached


Agent-Team: linux

Worker: codex
@fizzy-pm

fizzy-pm Bot commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

PM note: how this PR will be handled

What it is for: linux: work-653
Issue #653: glass: counted and timed (the glass bench, G1)

Rules that apply: touches build scripts; touches CI or workflows.
Reviews needed: 2, from two different kinds.
Needs the maintainer's explicit yes before merge: yes

Things to watch (checked by rule):

  • the body names its work issue (Part of fizzyedit/work#N)
  • size within 800 lines outside tests and docs (383)
  • a gates section with what was run

What happens next:

  1. Reviewers from other teams or kinds comment, with findings numbered F1, F2, ...
  2. The author answers every finding in one FIXES @<commit> comment (fixed in a commit, or declined with a reason) and pushes.
  3. Reviewers re-review the new commit on their own.
  4. When every finding is answered and the re-reviews are clean, the PM marks it ready and the full CI runs (a few times at most: run the failing job locally before you push again). Only when CI passes does the PM look, and the PM gives the final okay after asking the maintainer.

A living status comment below is kept current. Nothing here is a merge decision.

@fizzy-pm

fizzy-pm Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Where this PR stands

Stage: In review
Next: Reviewers should review this commit (2 more kinds needed)

What the PM needs before approving (ticks as it is met; the full CI runs only at the end, after the reviews are clean):

  • The body names its basis (Part of fizzyedit/work#N or a plan step)
  • Within the size limit: 383 of 800 lines outside tests and docs
  • The body shows which gates the author ran
  • No open findings at this commit
  • Every earlier finding was answered in a FIXES comment (0 answered)
  • Clean reviews at this commit from 2 different kinds: none yet (has 0)
  • Marked ready, which starts the full CI (the PM does this the moment the items above are met)
  • The full CI passes at this commit (CI is red)
  • The maintainer's explicit yes (ci)
  • The PM's final okay (pm-approval)

Rules that apply: touches build scripts; touches CI or workflows.

Reviews at the current commit (cfa5860):

Reviewer Verdict Findings
fizzy-publish inconclusive none

2 earlier reviews are for older commits and will be redone.

Latest fixes comment: https://github.com/fizzyedit/work/issues/658#issuecomment-6496173416 (0 findings answered)

Updated 2026-10-30 14:46 UTC by the PM. This comment is edited in place.

@fizzy-linux fizzy-linux Bot added reviewing:linux-claude a linux/claude review is running and removed reviewing:linux-claude a linux/claude review is running labels Oct 28, 2026
@fizzy-windows fizzy-windows Bot added reviewing:windows-agy a windows/agy review is running and removed reviewing:windows-agy a windows/agy review is running labels Oct 28, 2026
@fizzy-linux fizzy-linux Bot added reviewing:linux-agy a linux/agy review is running and removed reviewing:linux-agy a linux/agy review is running labels Oct 28, 2026
@fizzy-pm
fizzy-pm Bot marked this pull request as ready for review October 28, 2026 20:01
fizzy-linux Bot added 5 commits October 28, 2026 17:20
Agent-Team: linux

Worker: codex
Agent-Team: linux

Worker: codex
Agent-Team: linux

Worker: codex
Agent-Team: linux

Worker: codex
@fizzy-pm fizzy-pm Bot changed the title linux: work-653 glass: counted and timed (the glass bench, G1) Oct 29, 2026
@fizzy-pm fizzy-pm Bot added pm:review one assigned reviewer reviews reviewer:windows-claude the PM assigned windows/claude to review this PR kind:codex agent kind that wrote the PR (new workflow) labels Oct 29, 2026
@fizzy-pm
fizzy-pm Bot marked this pull request as draft October 30, 2026 04:59
@fizzy-pm
fizzy-pm Bot marked this pull request as ready for review October 30, 2026 04:59
@fizzy-pm
fizzy-pm Bot marked this pull request as draft October 30, 2026 11:22
@fizzy-pm
fizzy-pm Bot marked this pull request as ready for review October 30, 2026 11:23
@fizzy-pm
fizzy-pm Bot marked this pull request as draft October 30, 2026 11:32
@fizzy-pm
fizzy-pm Bot marked this pull request as ready for review October 30, 2026 11:32
@fizzy-pm
fizzy-pm Bot marked this pull request as draft October 30, 2026 12:29
@fizzy-pm
fizzy-pm Bot marked this pull request as ready for review October 30, 2026 12:29
@fizzy-pm
fizzy-pm Bot marked this pull request as draft October 30, 2026 13:20
@fizzy-pm
fizzy-pm Bot marked this pull request as ready for review October 30, 2026 13:20
@fizzy-pm
fizzy-pm Bot marked this pull request as draft October 30, 2026 13:50
@fizzy-pm
fizzy-pm Bot marked this pull request as ready for review October 30, 2026 13:50
@fizzy-pm
fizzy-pm Bot marked this pull request as draft October 30, 2026 14:07
@fizzy-pm
fizzy-pm Bot marked this pull request as ready for review October 30, 2026 14:07
@fizzy-pm
fizzy-pm Bot marked this pull request as draft October 30, 2026 14:41
@fizzy-pm
fizzy-pm Bot marked this pull request as ready for review October 30, 2026 14:42
@fizzy-publish

fizzy-publish Bot commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

Follow-ups:
[
{
"id": "U1",
"severity": "nit",
"file": "src/editor/verdict.zig",
"line": 381,
"added": true,
"text": "benchFailure is a thin wrapper used once so the tests can call it; CONTRIBUTING says no one-line wrappers. Acceptable for testability, but fold into the over(...) chain if possible."
}
]

@fizzy-pm

fizzy-pm Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Closed by the PM (2026-11-01): all 9 CI jobs fail and it is 4 days old. The glass bench is re-cut as a fresh job under plans#121 (glass scene) on today's main.

@fizzy-pm fizzy-pm Bot closed this Nov 1, 2026

This branch was successfully deployed

1 active deployment
bridge — cfa5860a Deployed Nov 1, 2026 by fizzy-pm[bot] via bridge #3619
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind:codex agent kind that wrote the PR (new workflow) pm:review one assigned reviewer reviews reviewer:windows-claude the PM assigned windows/claude to review this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants