Move LazySpan rows through one retained offset
This commit is contained in:
1 parent
0aa03cf621
commit
fffed42f9e
13 files changed
+503
-104
No files matched your search
@@ -446,16 +446,17 @@ Each exists because something was invisible without it.
|
||||
are only reusable next frame and provisional layout nested -- grew
|
||||
the arena to **127,443 slots for 11,569 live primitives**; and nothing
|
||||
tracked *which* entries changed. Now: the stream arena is 11,569 slots
|
||||
for 11,569 live, and every array uploads within a hair of its floor
|
||||
(fling instances 1.0% against a 0.9% floor, stream instances 71.9%
|
||||
against 71.8%, and stream glyphs 0.6% against 0.6%). The CPU half improved with it, since the freeing and renumbering
|
||||
for 11,569 live, and every array uploads within a hair of its floor.
|
||||
The CPU half improved with it, since the freeing and renumbering
|
||||
went away: a streamed frame is p50 1.39ms, from 2.20ms.
|
||||
|
||||
**Stream instances sit at 71.9%, against a 71.8% floor, and dirty
|
||||
tracking is not the defect here.** The list is pinned to the newest end, so a growing reply moves
|
||||
every row, and a row's instances carry an absolute region. That is a
|
||||
`move_offsets` write the layout is not making -- the next thing to look
|
||||
at, and a layout question rather than an upload one.
|
||||
The remaining layout cost was then removed at the framework boundary:
|
||||
`Painter::set_child_offset` gives a container one retained coordinate slot
|
||||
for its child subtree, and `LazySpan` keeps row boxes stable behind it.
|
||||
Pinned growth now uploads instances at **2.9% against a 2.9% floor**, from
|
||||
71.9% against 71.8%; p50 instance upload is **1,728 bytes**, from 176,496.
|
||||
`Primitives` also cancels dirty marks for provisional writes restored before
|
||||
upload, so CPU-only layout states never become GPU work.
|
||||
- **The emulator is a GLES rig, deliberately** (Iris, 2026-09-08;
|
||||
docs/RUST.md). Its guest has no hardware Vulkan -- only SwiftShader
|
||||
in software -- while its GLES *is* the host's real GPU through virgl at
|
||||
|
||||
Reference in new issue
Block a user