Two T10-flavoured changes in one commit, each independently ship-able on its own: 1. `web_surface_frame::rgba_hash` switches from std's `DefaultHasher` (SipHash13, ~1.5 GB/s) to `ahash::AHasher` (~10 GB/s). At 1080p (8 MB per frame) the dedup key drops from ~5 ms to ~0.8 ms per cache-miss frame, returning roughly 25 % of the 16 ms scroll budget that was being spent hashing the newly-arrived RGBA payload. ahash was already in the dependency graph transitively via hashbrown, so this only adds a direct `ahash = "0.8"` line and one Cargo.lock entry. 2. `docs/t10-iosurface-plan.md` records the full architectural roadmap for the actual zero-copy path that supersedes the software-pipe pipeline: `OffscreenRenderingContext` against a hardware surfman adapter, IOSurface-backed surface on macOS, mach-port handoff to the GPUI process, MTLTexture import as an external sampler. The document explains why each currently shipped commit (`840255f`, `a80d039`, `e02c0fd`, `7f3b8b4`, plus this hash swap) is a stepping stone that eventually deletes itself once the IOSurface path lands, and names the upstream API gap in `servo-paint-api` that blocks step 2. cargo test --bin ely_app: 120 passed, 0 failed, 2 ignored. Hash collision probability remains ~1 in 2^64; AHash uses the same keyspace as the previous SipHash13.
37 lines
829 B
TOML
37 lines
829 B
TOML
[package]
|
|
name = "ely_app"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
|
|
[features]
|
|
live-site-smoke = []
|
|
|
|
[dependencies]
|
|
ahash = "0.8"
|
|
directories.workspace = true
|
|
ed25519-dalek.workspace = true
|
|
ely_browser_core = { path = "../ely_browser_core" }
|
|
ely_design_system = { path = "../ely_design_system" }
|
|
ely_domain = { path = "../ely_domain" }
|
|
gpui.workspace = true
|
|
gpui-component.workspace = true
|
|
gpui-component-assets.workspace = true
|
|
image.workspace = true
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json.workspace = true
|
|
sha2.workspace = true
|
|
thiserror.workspace = true
|
|
ureq.workspace = true
|
|
url.workspace = true
|
|
|
|
[dev-dependencies]
|
|
gpui = { workspace = true, features = ["test-support"] }
|
|
|
|
[build-dependencies]
|
|
toml.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|