Add compute inspection, range comparisons and targeted capture
Implement feedback priorities 1–3 with native UI and JSON inspect parity. Compute inspection: captured SPIR-V export, entry point, specialized local size and total invocations where known, specialization constants, push constants, bound image formats/extents/subresources. Range analysis: selected settled frames, named scope/pipeline groups summed per frame before median/p95, explicit ancestor/descendant double-count prevention, cross-capture stable content/context identities and ambiguity reporting. Targeted capture: scope/pipeline timing selectors, unrelated expensive statistics disabled, prominently recorded actual instrumentation and missing/unmatched selectors. Reuse existing work regions, lazy trace details, graphics state and inspector conventions. Preserve unavailable versus zero and completion-interval semantics; bound memory and evolve binary format explicitly without silently misdecoding old captures. Include relevant capture configuration/identity metadata; hardware counters and dependency graphs excluded. Validate shared behavior with regression tests, workspace fmt/check/test and synthetic Vulkan workload where feasible. Do not launch games. No commits requested. Implemented shared UI/inspect compute snapshots/export, range groups and cross-capture comparisons, and targeted scope/pipeline timing. Container v3/event v5 intentionally reject earlier captures. Supported ordinary image descriptors resolve at submission; unsupported layouts/updates/shader objects invalidate state. Comparisons use unambiguous context/content identities independent of timed ancestors and suppress deltas for incomplete/changed identities. Aggregate recording/submission/pending metadata budgets preserve timing summaries. Shader counters/dependency graphs remain excluded. Verified: 98 tests pass (one existing 2.4 GiB stress test intentionally ignored), strict workspace Clippy, formatting and release workspace build. Five release synthetic Vulkan captures with synchronization validation (six executions each): full, pipeline-targeted, generated-scope-targeted, unmatched target and indirect dispatch; no validation errors. Asserted specialized 64x1x1 local size, 1,048,576 invocations, specialization/push bytes, image format/extent/mips, 1,676-byte SPIR-V matching compiler artifact, overwrite refusal, selected-only timestamps/statistics-off metadata, full/target identity match, nested-selection rejection and indirect unknown counts. Native compute viewer screenshot visually inspected; UI/inspect shared-data and range regressions pass. Final release acceptance rerun passed after cache-budget tightening. Evidence and acceptance script: /tmp/wayrender-compute-validation/final-verified and /tmp/wayrender-compute-validation/acceptance.py. Read-only reviews found correctness/budget issues that were addressed; reviews were static and did not independently run validation. Final cargo fmt/check/test, strict Clippy, release workspace build and git diff --check all pass. Cached pipeline data is capped at 32 MiB and descriptor-layout definitions at 4,096 per device lifetime with shared ownership. No games launched and no commits created. Remaining deliberate limitations: earlier trace formats rejected; descriptor copies/cross-binding writes/extension-flagged layouts/templates/buffers/push descriptors and shader objects remain unavailable, not reconstructed; indirect argument dimensions and unsupported SPIR-V constant expressions remain unknown. Comparisons are content/context matched, not causal performance claims.
Checklist
3 of 3 complete- Capture and inspect compute state with SPIR-V export in UI and CLI; verify bounds, specialization, binding changes and unavailable paths.
- Shared selected-range grouping and cross-capture comparison in UI and inspect, verified per-frame quantiles and double-count/identity ambiguity safeguards.
- Targeted capture selectors and explicit instrumentation reporting verified with regression tests and synthetic workload; workspace validation and documentation complete.
- Area
- Personal tooling
- Project
- Wayrender
- Kind
- Feature
- Task ID
tsk_ferghezujc- Updated