render: pin the cell instance bytes and paint cost #170
No reviewers
Labels
No labels
Area/ci
Area/cli
Area/client
Area/client-core
Area/daemon
Area/deps
Area/docs
Area/grid
Area/manual
Area/nix
Area/protocol
Area/pty
Area/render
Area/shaping
Area/skills
Area/transport
Area/vt
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Performance
Kind/Security
Kind/Testing
perf-regression-accepted
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Blocked
Status
Need More Info
Status
Upstream
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
felis-terminal/felis!170
Loading…
Reference in a new issue
No description provided.
Delete branch "render/pin-paint-output"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
First of four PRs that extract the wgpu-free half of
felis-render-wgpu(palette, box drawing, glyph index, cell painter) into a newfelis-render-corecrate, so a CPU-rendered client can reuse it instead of reimplementing it. This one changes no behavior; it pins what the later moves must preserve.RowCache::paint_frame+CellFrame: the formerRenderer::build_cell_instancesbody, moved verbatim, so the renderer and the tests share one path from a screen to the uploaded instances.row_cache/golden_tests.rs): seven small scenarios (SGR colors, screen reverse, wide/cluster cells with every cursor style, decorations incl. SGR 58, preedit + search, link preview, confirm over search) compared byte-for-byte againsttests/fixtures/paint_frame/*.bin, over a realGlyphIndexat the production atlas sides. Regenerate withUPDATE_GOLDEN=1/just golden.paint_frame: full 200x60 repaint (~512 µs), one dirty row (~8.5 µs), cursor move (~16.7 µs), the baseline the painter move is measured against.row_cachebecomespub modwithRowCache,RowCache::new,paint_frame,CellFramepublic, as far as the bench needs.Next: phase 2 creates
felis-render-corewith pure moves (palette, box_drawing, atlas) and adeny.tomlwrappersban keepingwgpu/winitout of it.Verified:
just checkgreen locally; sol review PASS.