makepad/libs
Kevin Boos 0c38e3b081
makepad_test: let a suite choose parallelism and the tick pump (#1176)
Two knobs, both defaulting to exactly what happens today.

MAKEPAD_TEST_PARALLEL opts out of the global TEST_MUTEX. Every test
currently takes that lock for its whole body, so `--test-threads=N` has no
effect at all and there is nothing in the API that says so. Serial is the
right default — each test drives a whole app process, and oversubscribing
the machine makes timing-sensitive assertions flaky — but it should be the
suite's call.

MAKEPAD_TEST_PUMP_TICKS sets how many Ticks are forwarded before each
query. Each one costs the app a full rendered frame whenever anything is
dirty, so the hardcoded 3 is a 3x multiplier on the cost of every
`widget_snapshot()`, which is the single most common thing a test does.

Reporting the measurements honestly, from a 55-test suite downstream:

- Parallel at 4-way took it from 67 min to 11-20 min, but 2-3 tests failed
  per run and the SET changed between runs — load-induced, not specific
  tests. Useful for local iteration, not something to turn on by default,
  which is why it is opt-in and documented as such rather than flipped.
- PUMP_TICKS=1 measured 1.47x on a fixed 10-test slice with no failures,
  but broke one drag-and-drop test elsewhere in a way I could not explain,
  so treat it as a tuning knob to try rather than a free win.

The flakiness above is a property of tests that wait by counting polls: how
much wall clock and how many frames a poll buys both change under load. That
is worth fixing in the tests, not by keeping the lock.
2026-08-13 10:03:47 +02:00
..
ab_glyph_rasterizer git lib added 2026-02-18 10:04:26 +01:00
adler2 First 2.0 2026-02-12 14:52:33 +01:00
android_state Restore overwritten change in internal makepad-android-state library (#763) 2025-05-29 17:38:43 +02:00
apple_sys Video playback fixes and improvements (#1155) 2026-08-10 12:29:33 +02:00
base64 fix(base64): handle single '=' padding in base64_decode (#1027) 2026-04-09 20:05:45 +02:00
bitflags cleanup 2026-02-12 15:02:01 +01:00
box3d perf 2026-07-10 15:34:38 +02:00
bytemuck First 2.0 2026-02-12 14:52:33 +01:00
byteorder cleanup 2026-02-12 15:02:01 +01:00
byteorder-lite terminal work/ webp 2026-02-17 18:11:36 +01:00
cef xr room mapping 2026-03-27 13:51:54 +01:00
cfg-if First 2.0 2026-02-12 14:52:33 +01:00
converse Arcade binary -40%: make TTS optional, and lazy when present 2026-08-03 09:22:03 +02:00
crc32fast cleanup 2026-02-12 15:02:01 +01:00
csg Arcade M6+M7: packaging/sharing with sandboxed installs, and the pretty pass 2026-08-03 03:27:09 +02:00
cuda Checkpoint Qwen CUDA exact progress 2026-04-20 13:48:29 +02:00
diffusion Add CUDA exact chat windowing and kernels 2026-04-15 21:33:39 +02:00
dual-contouring Initial commit 2025-05-06 10:11:37 +02:00
error_log refactor remote and screenshot proto 2026-02-22 10:57:51 +01:00
fast_inflate splice out a makepad-network crate 2026-02-23 23:21:31 +01:00
filesystem_watcher aimgr 2026-04-27 14:51:24 +02:00
flate2 cleanup 2026-02-12 15:02:01 +01:00
futures compile 2026-02-10 18:26:51 +01:00
futures_legacy compile 2026-02-10 18:26:51 +01:00
fxhash cleanup 2026-02-12 15:02:01 +01:00
game Script: game.terrain uses the real generator; cars can carry a model 2026-08-05 16:59:46 +02:00
geodata Land route app + platform geo/permission APIs, map nav layer, geodata radar 2026-07-31 00:10:52 +02:00
ggml Route assistant: mmap LLM weights, fix batched-attention corruption, kokoro voice out 2026-07-31 12:13:31 +02:00
gif Added gif (#1083) 2026-05-18 22:47:53 +02:00
git xr otw 2026-03-12 15:51:30 +01:00
gltf Audit and harden image decoding stuff against huge inputs (DoS) (#1110) 2026-06-09 00:31:36 +02:00
html ai manager otw 2026-04-28 12:24:40 +02:00
i_float Vendor i_overlay polygon boolean crates into libs/ 2026-07-31 00:10:52 +02:00
i_key_sort Vendor i_overlay polygon boolean crates into libs/ 2026-07-31 00:10:52 +02:00
i_overlay Vendor i_overlay polygon boolean crates into libs/ 2026-07-31 00:10:52 +02:00
i_shape Vendor i_overlay polygon boolean crates into libs/ 2026-07-31 00:10:52 +02:00
i_tree Vendor i_overlay polygon boolean crates into libs/ 2026-07-31 00:10:52 +02:00
jni-sys vulkan vendoring completed 2026-02-16 09:10:27 +01:00
jpeg-encoder vulkan vendoring completed 2026-02-16 09:10:27 +01:00
latex_math First 2.0 2026-02-12 14:52:33 +01:00
linux Clean unused workspace patch warnings 2026-07-08 12:48:33 +02:00
live_id compile 2026-02-10 18:26:51 +01:00
live_reload_core xr otw 2026-03-12 15:51:30 +01:00
llama Route assistant: mmap LLM weights, fix batched-attention corruption, kokoro voice out 2026-07-31 12:13:31 +02:00
lz4 otw 2026-04-01 12:19:02 +02:00
makepad_ai perf 2026-07-10 15:34:38 +02:00
makepad_physics vulkan back 2026-03-15 13:20:49 +01:00
makepad_test makepad_test: let a suite choose parallelism and the tick pump (#1176) 2026-08-13 10:03:47 +02:00
map_nav Search: fuzzy transcription correction — settlements beat literal typos 2026-08-02 17:48:41 +02:00
math working emitters 2026-04-01 12:19:02 +02:00
mb3d xr otw 2026-03-12 15:51:30 +01:00
mbtile_reader Fix all compile warnings across map crates (unused mut/import, key visibility) 2026-08-02 17:48:43 +02:00
memchr cleanup 2026-02-12 15:02:01 +01:00
micro_proc_macro id change 2026-02-07 16:53:33 +01:00
micro_serde Arcade M2a: libs/game/net — host-authoritative LAN transport + micro_serde hardening 2026-08-03 00:33:16 +02:00
mlx Land route app + platform geo/permission APIs, map nav layer, geodata radar 2026-07-31 00:10:52 +02:00
objc-sys fixup 2026-03-12 09:39:16 +01:00
openexr mipmapping 2026-03-09 09:18:33 +01:00
pdf_parse working emitters 2026-04-01 12:19:02 +02:00
pulldown-cmark cleanup 2026-02-12 15:02:01 +01:00
rabin-karp add studio proto 2026-03-02 12:46:52 +01:00
rapier rapier bench: --stages/--probe diagnostic modes + live stage timers 2026-07-06 00:24:56 +02:00
regex compile 2026-02-10 18:26:51 +01:00
rust_tokenizer windows rs strip 2026-02-14 11:32:16 +01:00
rustybuzz vulkan vendoring completed 2026-02-16 09:10:27 +01:00
sdfer vulkan vendoring completed 2026-02-16 09:10:27 +01:00
shared_bytes fixup 2026-03-12 09:39:47 +01:00
shell cargo_makepad: don't include resources/android/ios on every platform (#1157) 2026-08-01 10:26:31 +02:00
simd-adler32 Arcade M6+M7: packaging/sharing with sandboxed installs, and the pretty pass 2026-08-03 03:27:09 +02:00
smallvec cleanup 2026-02-12 15:16:31 +01:00
splat splice out a makepad-network crate 2026-02-23 23:21:31 +01:00
stitch optimize inflate/deflate 2026-02-18 13:28:39 +01:00
svg Tessellator: 5.8x fill tessellation + baked-strip fast path 2026-08-02 17:48:42 +02:00
terminal_core aimgr 2026-04-27 14:51:24 +02:00
tesla map: rain radar overlay, flying 3D markers, Europe routing, geodata crate 2026-07-28 18:00:27 +02:00
toml_parser Overhaul android tooling and platform layers to support Android 8 (#1091) 2026-05-22 01:40:29 +02:00
tsdf fix 2026-04-10 21:14:32 +02:00
ttf-parser First 2.0 2026-02-12 14:54:11 +01:00
tts Arcade M6+M7: packaging/sharing with sandboxed installs, and the pretty pass 2026-08-03 03:27:09 +02:00
unicase First 2.0 2026-02-12 14:52:33 +01:00
unicode vulkan vendoring completed 2026-02-16 09:10:27 +01:00
voice voice: pure-rust silero v5 vad + learned speech gate in window voice input 2026-07-28 13:47:05 +02:00
voice2 gamemaker: full engine round — chase camera rig, racing-game APIs, script stdlib math, real error line numbers 2026-07-10 14:20:03 +02:00
vulkan Clean unused workspace patch warnings 2026-07-08 12:48:33 +02:00
wasm_bridge WASM Binary Optimization + Splitting (#925) 2026-03-09 18:52:49 +01:00
wasm_strip xr otw 2026-03-12 15:51:30 +01:00
webp fix 2026-02-17 19:25:31 +01:00
windows Windows: overlapped main window (#1168) 2026-08-13 10:01:52 +02:00
zip_file Arcade M6+M7: packaging/sharing with sandboxed installs, and the pretty pass 2026-08-03 03:27:09 +02:00
zune Image support: add bmp/qoi,ico, webp, SVG in Image widget, 16-bit png (#1108) 2026-06-09 00:09:29 +02:00