Add a presented-frame capture for drag testing on high-refresh displays

Flutter's Windows frame timings report raster as zero and the engine trace
only records command submission, so GPU cost is invisible from inside the
app. tool/perf/capture_drag_frames.ps1 fetches Intel PresentMon, relaunches
itself elevated (PresentMon needs an ETW session), records the app's
presented frames while the user drags, and summarises frame time and GPU
busy percentiles against a refresh budget with analyze_presentmon.py.

The timeline drive test now also lists the engine's trace event names per
thread. Three small benches record the Dart-side costs that were measured
along the way, and one compares the two cone painting strategies in the
software rasteriser (no clear difference, so the painter is unchanged).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
3026602cd2Dara Adedeji committed on 9/19/2026, 9:57:50 PMparente0d464d
7 files changedLine totals unavailable