mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-01 13:47:21 -06:00
The renderer sized its worker pool from available_parallelism, which on Windows counts every processor in the machine, also when the process's affinity mask allows fewer. A process allowed one core started 8 workers, and the renderer's flush spun on that core while the workers got no time, so renders crawled or stalled. The desktop app and vectorcraft-cli now read the affinity mask at startup (src/windows_cores.rs, shared) and pass the count to the renderer with vectorcraft_render::set_usable_cores. With one usable core the renderer renders on the calling thread.
50 lines
2.1 KiB
TOML
50 lines
2.1 KiB
TOML
[package]
|
|
name = "vectorcraft-cli"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
publish = false
|
|
description = "VectorCraft command line: MCP server (stdio) and headless batch runs"
|
|
|
|
[[bin]]
|
|
name = "vectorcraft-cli"
|
|
path = "src/main.rs"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
vectorcraft-color = { workspace = true }
|
|
vectorcraft-doc = { workspace = true }
|
|
vectorcraft-engine = { workspace = true, features = ["bundled-fonts"] }
|
|
vectorcraft-format = { workspace = true }
|
|
vectorcraft-geom = { workspace = true }
|
|
vectorcraft-svg = { workspace = true }
|
|
vectorcraft-mcp = { workspace = true }
|
|
vectorcraft-render = { workspace = true }
|
|
vectorcraft-text = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
log = { workspace = true }
|
|
|
|
# `perf` on Windows (src/perf.rs) reads how busy the processors are (GetSystemTimes) and this
|
|
# process's working set (GetProcessMemoryInfo) through winsafe's safe wrappers over Win32 (MIT),
|
|
# which the desktop app's src/gpu.rs also uses.
|
|
[target.'cfg(windows)'.dependencies]
|
|
winsafe = { version = "0.0.29", default-features = false, features = ["kernel", "psapi"] }
|
|
|
|
# DirectWrite's system font collection and GDI's font list (the desktop app's src/system_fonts.rs,
|
|
# shared): fonts that font services such as Adobe Fonts load in place (#579, #1258). MIT OR
|
|
# Apache-2.0. Win32_System_Threading has `GetProcessAffinityMask`, which the desktop app's
|
|
# src/windows_cores.rs, shared, uses to count the cores the process may run on.
|
|
windows = { version = "0.62", features = ["Win32_Graphics_DirectWrite", "Win32_Graphics_Gdi", "Win32_System_Threading"] }
|
|
|
|
# CoreText's font manager (the desktop app's src/mac_fonts.rs, shared): fonts that apps and font
|
|
# managers register from their own folders (#579). Zlib OR Apache-2.0 OR MIT.
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
objc2-core-foundation = { version = "0.3", default-features = false, features = ["std", "CFArray", "CFString", "CFURL"] }
|
|
objc2-core-text = { version = "0.3", default-features = false, features = ["std", "CTFontManager"] }
|
|
|
|
[dev-dependencies]
|
|
vectorcraft-testkit = { workspace = true }
|
|
serde_json = { workspace = true }
|