perf(producer): skip fully occluded leading DOM capture in HDR layered compositor
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- computer-graphics, performance
Hướng nghiên cứu
Start by tracing the normal HDR layered compositor and its existing HDR video read/blit path on main; the issue does not name specific files or tests. Add regression coverage for the listed eligible and fallback layer plans, including preservation of the upper DOM layer. Done means the optimized and legacy paths are pixel-identical, with failures replaying once through the legacy path.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
The normal HDR layered compositor can produce a layer plan such as:
DOM → HDR video → DOM
Both DOM groups are currently rasterized independently. When the first paintable layer above the leading DOM group is an opaque native HDR video that covers the complete output canvas, the lower DOM raster cannot contribute a pixel to the final frame.
Avoiding that capture removes one full-page screenshot, PNG decode, and RGBA-to-RGB48 blit per eligible frame.
Affected version
Observed in HyperFrames v0.8.114 (01c6f6004a00ecfa6e77ab4025b47a46a5e925fc). Please confirm the current compositor topology on main.
Safety requirements
Eligibility should be conservative and based on existing stacking and geometry state:
- the first composite layer is DOM;
- the first paintable layer above it is a native HDR video;
- opacity is effectively 1 and the video is active;
- x/y are the frame origin and paint/layout dimensions cover the full output;
- the source frame dimensions and raw-frame size are compatible with a full-frame blit;
- clip is absent or exactly full bounds;
- border radius is zero;
- transform is absent or identity.
HDR images, transitions, elementFilter captures, SDR capture, partial clips, non-identity transforms, and ambiguous geometry should remain on the legacy path.
Fail-safe behavior
Geometry alone is insufficient. The lower DOM capture should be deferred until the eligible HDR frame has actually been read and blitted successfully.
The HDR video blit can expose a small typed result such as blitted | skipped | failed. Only blitted permits dropping the deferred DOM layer. On skipped, failed, incomplete reads, or exceptions, clear the uncommitted canvas and replay that frame once through the existing path with the optimization disabled.
Validation
Regression tests should cover:
- successful DOM → opaque full-frame HDR video → DOM;
- opacity below the opaque threshold;
- smaller dimensions or non-zero x/y;
- border radius, non-identity transform, and partial clip;
- an exact full-bounds clip;
- HDR read/blit failure and one-pass legacy fallback;
- transition/
elementFilterexclusion; - preservation of the upper DOM layer.
Output should be pixel-identical to the legacy compositor for eligible and fallback cases.
- Ngôn ngữ chính
- TypeScript
- Star
- 54.1k
- Fork
- 4.9k
- Merge trung bình
- 7 giờ 18 phút
- Pull request đã merge (30 ngày)
- 784
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của heygen-com/hyperframes
-
Docs: clarify that "Enable auto-update" is only available in the Claude Code terminal (CLI) /plugin UICó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
heygen-com/hyperframes#5027 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
fix(producer): propagate useGpu to HDR layered streaming encoderCó thể đã có người làm @Monster-GM đã nhận 2 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 87/100
heygen-com/hyperframes#5002 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
heygen-com/hyperframes#4702 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Studio catalog prompt editor has no accessible nameCó thể đã có người làm @lorenzozanee đã nhận 12 ngày trước. Đang mởbug difficulty/easy triage/ready
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
heygen-com/hyperframes#4384 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
lint: validate composition variables declared on supported root elementsCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởbug difficulty/easy triage/ready
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
heygen-com/hyperframes#4383 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của heygen-com/hyperframes
Issue tương tự
-
triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
github/docs#46222 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
agent-ready area: config area: skills type: chore upstream: brain-kit
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 95/100
-
enhancement priority:low ready-for-dev
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug escritorio mapa
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
marcosferr/reporte-ciudadano#4 · 1 bình luận ·
-
area: material/sort gemini-triaged needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
angular/components#33933 ·
Maintainer thường phản hồi trong vòng 1 ngày