Skip to content

fix(check): skip texture uploads on geometry-only seeks - #7266

Open
sx4im wants to merge 1 commit into
heygen-com:mainfrom
sx4im:fix-7259-check-gpu-uploads
Open

sx4im wants to merge 1 commit into
heygen-com:mainfrom
sx4im:fix-7259-check-gpu-uploads

Conversation

@sx4im

@sx4im sx4im commented Nov 5, 2026

Copy link
Copy Markdown

Fixes #7259

With the hardware GPU on macOS, hyperframes check grew the Chrome GPU process by about one decoded frame per overlap sample for graded images. The overlap pass seeks with WebGL draws skipped, but the seek still ran the full graded-frame paint, which re-uploaded the source image into a texture for a frame nothing ever paints. Each upload reserved another full-size GPU backing store until the pass ended.

This gates the texture upload calls (texImage2D, texSubImage2D, copyTexImage2D, and the compressed variants) with the same draw gate geometry seeks already use. The next real seek re-uploads before drawing, so presented frames are unchanged.

How verified:

  • New regression test in captureCompositionFrame.webglDraws.browser.test.ts counts real texImage2D calls in headless Chrome: it fails before the fix (upload happens on a geometry seek) and passes after (0 uploads on a geometry seek, 1 on the following pixel seek, repaint still correct).
  • Related capture tests pass (36 tests), CLI typecheck clean, oxlint/oxfmt and the repo comment checks clean.
  • Honest limit: I could not re-run the 6 GB measurement itself, since it needs Apple Silicon hardware and this machine has none. The fix is proven at the upload-count level, not at the GPU-memory level.

SanHsien added a commit to SanHsien/hyperframes that referenced this pull request Nov 6, 2026
Re-verified the nine merged PRs in heygen-com#7266-heygen-com#7288 against fork file:line and
reverse-apply checks; none needs a new port. The six open PRs (heygen-com#7266, heygen-com#7269,
heygen-com#7281, heygen-com#7282, heygen-com#7285, heygen-com#7286) are pinned as monitored with revisit conditions;
monitored 99 -> 105.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
During the check overlap pass, geometry seeks skip WebGL draws but
still uploaded a full-size source texture for every sample, so each
sample of a graded image reserved another decoded frame in the GPU
process until the pass ended. Gate the texture upload calls with the
same draw gate, so a seek nothing paints performs no GPU uploads.
@sx4im
sx4im force-pushed the fix-7259-check-gpu-uploads branch from 952fd2b to 405c0f4 Compare November 9, 2026 19:09

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

1 participant