|
Some checks failed
Build & Sign Wraith / Build Windows + Sign (push) Failing after 7s
Root cause: Every GraphicsUpdate copied the full 8.3MB decoded image into the front buffer, cloned all 8.3MB for IPC, and transferred all 8.3MB to the frontend — even when only a 100x100 pixel region changed. During window drag, this created a 25MB/frame pipeline backup. Fix: - Track dirty rectangles from ironrdp's GraphicsUpdate(InclusiveRectangle) - Write path: only copy changed rows from decoded image to front buffer (e.g. 100 rows × 1920 pixels = 768KB vs 8.3MB full frame) - Accumulate dirty region as union of all rects since last get_frame - Read path: if dirty region < 50% of frame, extract only the dirty rectangle bytes; otherwise fall back to full frame - Binary IPC format: 8-byte header [x,y,w,h as u16 LE] + pixel data - Frontend: putImageData at dirty rect offset instead of full frame - Status bar: h-9 text-sm for 3440x1440 readability During window drag (typical 300x400 dirty rect): Before: 8.3MB write + 8.3MB clone + 8.3MB IPC = 24.9MB per frame After: 480KB write + 480KB extract + 480KB IPC = 1.4MB per frame ~17x reduction in data movement per frame. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| capabilities | ||
| gen/schemas | ||
| icons | ||
| src | ||
| windows | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| installer.nsi.template | ||
| tauri.conf.json | ||