Install any skill in seconds. Free to start, no credit card required.
Get Started Free →zhanghandong/makepad-2.0-performance
CRITICAL:
Passed 21 of 22 test cases with the skill, and 9 of 22 without it.
and 14 more in the full report
13 fixed8 passed either way0 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 13 test cases the skill fixed. Same model, same prompt, with and without the skill.
When investigating prototype chain issues or static flags on script objects in Splash VM, which script debugging helper function reveals internal object tag information?
| Checked | Without skill | With skill |
|---|---|---|
| Recommends calling mod.gc.dump_tag(value). | Missed | Passed |
The instructions your model reads when the skill loads.
Makepad 2.0 uses a unique rendering pipeline combined with the Splash script VM. Performance depends on understanding three critical subsystems:
new_batch: true matterson_render / .render() system that controls when sub-trees rebuildUnlike traditional retained-mode UI frameworks, Makepad uses an immediate-mode-inspired draw pipeline where widgets emit draw commands into a sorted batch list. Understanding this pipeline is essential for diagnosing invisible text, flickering, and performance regressions.
Makepad automatically batches consecutive draw calls that use the same shader into a single GPU draw call. This is a major performance optimization, but it has a critical side effect: draw order can be surprising.
Draw pipeline (simplified):
Widget tree: GPU batches (default):
View (bg shader) Batch 1: all bg shaders
Label (text) --> Batch 2: all text shaders
View (bg shader)
Label (text) Result: ALL backgrounds draw first,
then ALL text draws second
When a View has show_bg: true AND contains text children, the text can end up behind the background because both text draws get batched together into a single draw call that executes before (or after) the background draw calls.
new_batch: trueSetting new_batch: true on a View forces Makepad to start a new draw batch at that point. This creates a ViewOptimize::DrawList internally, which ensures proper draw ordering within that View's subtree.
// PROBLEM: Label text is invisible - batched behind the background
test cases passed, vs 9 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.