summaryrefslogtreecommitdiffhomepage
path: root/packages/ext-layer-shell/src/ext_layer_shell.cpp
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-15 05:40:30 +0900
committerAdam Malczewski <[email protected]>2026-06-15 05:40:30 +0900
commit7a3786a598236a638facf1755fcfcef791131938 (patch)
tree56d131099fc3cf47dcfa583e9c5349b830a265ff /packages/ext-layer-shell/src/ext_layer_shell.cpp
parente41dbe376820ccbe120b9e27429cccd4345293d0 (diff)
downloadunbox-7a3786a598236a638facf1755fcfcef791131938.tar.gz
unbox-7a3786a598236a638facf1755fcfcef791131938.zip
spike(kernel): Stage-0 perf instrumentation (per-phase split + GPU timer)
Closes out Phase 0 with the measurement that explains the ~30fps: a per-frame budget breakdown and a non-blocking GPU timer query. - GlBridge: load EXT_disjoint_timer_query (glGenQueriesEXT/Begin/End/ GetQueryObject*), gated by the GL extension string; report gpu_timer in the bring-up line. Absent -> graceful 'n/a'. - PresentTarget::render(ctx, RenderTimings*): time clear/update/render-submit/ present (CPU wall-clock) and bracket ctx->Render() with a 2-deep timer-query ring read back a frame late, so the REAL GPU fill time is measured without a glFinish stall. delete_queries in teardown. - composite_frame: time the import+layout loop; accumulate all phases; emit a [perf-split] line (per-rendered-frame averages) alongside [perf]. Result (headless 1080p, Haswell+crocus == CF-AX3 GPU class): CPU work ~2ms (import 0.7 / update 0.7 / render-submit 0.8), GPU fill (ctx->Render) ~10-15ms, present dominated by the blocking fence wait. -> fill-bound; the whole-output composite is the wall. Damage limiting is the lever, to be built properly in the Phase 1 compositor (not hacked into this throwaway). --verify ALL PASS, kernel suite green.
Diffstat (limited to 'packages/ext-layer-shell/src/ext_layer_shell.cpp')
0 files changed, 0 insertions, 0 deletions