Raise profiler capture capacity across detail, queries and trace transport
Raise the small fixed profiler budgets substantially and keep layer, writer and reader limits consistent. Increase per-pass/recording draw and operation inventory, pipelines, dependency/extent/state arrays, structural/work scopes and optional draw-group query capacity; expand capture size, per-record size, event/submission/presentation and profiled-buffer/backlog capacity. Preserve finite safety bounds, fair draw sharing, explicit omissions and nonblocking hot paths. Avoid multiplying the asynchronous queue depth by much larger records; inspect eager query allocation costs and document memory/overhead tradeoffs. Validate above former budgets plus current boundary/trim behavior with unit tests and real Vulkan workload capture/readback when feasible. Existing text viewer is committed and working tree was clean at start. No commits. Implemented: 8 GiB shared writer/reader capture size, 64 MiB records, 10M events with writer-side event-count enforcement, 1M presentation/submission ceilings, 16,384 draws/pass and 131,072 draws/recording, 4,096 pipelines/pass and draw groups/recording, 65,536 operations/recording with no smaller per-region cap, independent 4,096 structural/work scope slots, 256 dependency/extent details, 32 state slots, 64 attachments/256 subpasses, 4,096 profiled buffers/pending readbacks, 262,144 objects/category. Raised name/compute pipeline summary and dispatch-group limits too. Reader draw-buffer validation now admits all 32 vertex bindings plus index and both indirect buffers. Default capture length remains 120; asynchronous channel stays at 2,048. README documents exact previous/current capacities, in-memory reader costs, eager query reservations, and finite safety limits. Verified: cargo fmt/check/build, all 60 workspace tests, git diff --check. Strict package Clippy passes for layer/CLI; full workspace Clippy passes with only the pre-existing trace-reader collapsible_match lint explicitly allowed on the command line. New tests cover >2 MiB full records, 2,048 draws with expanded state/resources/dependencies/pipelines/groups, fair 131,072-draw distribution, CLI frame ceiling, event-count enforcement and retained bounded trimming. Four real AMD Vulkan captures under synchronization validation passed workload pixel/buffer assertions (six executions each), with no reported validation errors, warnings, omitted metadata or dropped events. Cases retained >256 scopes; 229 operations/82 work regions; 576 draws/pass and 5,760/recording across ten repeated passes; 576 timed draw groups. All captures parsed through inspect. Evidence: /tmp/wayrender-capacity-e1ph47mi/*.wrtrace and *.log. No 8 GiB disk-fill test, calibrated overhead benchmark or native UI smoke test performed. Follow-up: user reported truncation in /tmp/captures/trace6.wrtrace (563 samples/120 presents). Inspection confirms four command buffers in intervals 1 and 7 each stopped at exactly 1,024 operations despite spare recording capacity. Their regions had 1,704, 1,658, 5,023 and 4,785 operations, dropping 9,074 records total; retained nested detail had no omissions. A 6,000-operation single-region regression reproduced red (1,024 retained). Removed the smaller region cap, shared the 65,536 recording bound, aligned reader per-scope ceiling, tested total-budget safety, and added --upload-batch to the real Vulkan workload. Verified red-to-green single-region regression, 62 workspace tests, fmt/check/build/whitespace checks, and full Clippy with the same existing collapsible_match exception. Real AMD GPU validation passed both legacy submit and submit2, six executions each: every largest upload region retained all 6,002 operations with no omissions, dropped events, reported validation errors or synchronization hazards. Reader/inspect region verified full inventories. Evidence: /tmp/wayrender-upload-batch-00a5hjgx/*.wrtrace and *.log. The original game capture was inspected but not recaptured. Original truncated trace cannot recover omitted records. Multiview unavailable statistics are a distinct supported-path restriction, not budget loss.
Checklist
3 of 3 complete- Increase consistent capture/reader/writer capacities, preserve safety and omission behavior, and document exact limits and costs.
- Verify workloads exceeding old budgets retain detail, new bound/trim behavior stays safe, workspace validation and real Vulkan capture/readback pass.
- Fix reproduced 1,024-operation per-region truncation in trace6: allow large upload batches to use the recording budget and verify a >5,023-operation single-region regression and real GPU capture.
- Area
- Personal tooling
- Project
- Wayrender
- Kind
- Feature
- Task ID
tsk_xnabrndznm- Updated