Repository navigation
Debugging Tool WPR
← Debugging Tools and Commands
WPR records Event Tracing for Windows data into an ETL file. Use it to capture CPU sampling, scheduler activity, image/process events, and optional GPU events around a bounded xemu workload.
| Property | Details |
|---|---|
| Supported OS | Windows 8 or later; administrator access is commonly required for kernel collectors. |
| Install | Install the Windows Performance Toolkit feature from the Windows ADK. Windows also includes a command-line WPR on supported systems. |
| Verify | wpr -help |
| Primary output | See the workflow below. |
WPR is our primary capture tool on Windows. It records ETW events into an .etl trace for later inspection.
Official reference: https://learn.microsoft.com/windows-hardware/test/wpt/wpr-command-line-options
wpr -profilesFor our broad performance captures, the important classes are general CPU/scheduling data and GPU data.
A typical built-in-profile form is:
wpr -start GeneralProfile -start GPU -filemodeWhen a dedicated temporary trace directory is needed:
wpr -start GeneralProfile -start GPU -filemode -recordtempto C:\xemu-trace-tempThe exact retained Vulkan investigation used the equivalent verbose general/GPU file profiles from WPR 10.0.26100.
wpr -status
wpr -status profiles
wpr -status collectors -detailsLook for:
- the expected profiles being active;
- recording duration;
- logging mode;
- dropped/lost events = 0;
- expected kernel collectors such as sampled profile/context switch data.
If buffers/events were lost, timing partitions and sample totals may be incomplete. Preserve that failure instead of silently treating the trace as clean.
wpr -stop C:\traces\xemu-lag.etlwpr -cancelUse -cancel when setup failed before the intended measurement began. Do not turn a failed admission into a gameplay sample just because an ETL exists.
Start the recorder before the controlled workload, but analyze only the explicitly recorded measurement window. Startup and cleanup events can remain in the ETL without being included in the reported workload.
The retained Vulkan investigation, for example, contained startup/cleanup outside its 20.0090458-second analysis interval. Whole-trace totals were therefore not valid workload totals.
Keep captures short and file-backed. Start before the controlled action, stop promptly afterward, and report only the selected workload interval. Check recorder state and lost events before accepting the ETL.
An ETL file existing does not prove the intended profile started, the workload ran, or all events were retained.
- Tool name and exact version.
- Source commit/tree and executable SHA-256.
- The complete command or saved profile used.
- Input artifact hashes and the explicitly selected time or address range.
- Raw output plus any derived report; do not retain only a screenshot or conclusion.
- Admission failures, warnings, dropped events, incomplete rows, or unsupported operations.
DSP tooling guide and navigation updated November 2, 2026 for experimental PR #384, source 8f51d237. Capture/replay usage and limits.
The earlier wiki-wide review was published November 1, 2026. Emulator source: b7140848. Reviewed wiki content: 1d2b671. Current status · Release availability · Publication process.
- Home
- Current status
- Stable versus main
- Implemented mechanisms
- Controls and defaults
- Measured results and limits
- Complete change register
- System
- CPU and vCPU
- Memory and DMA
- Graphics / NV2A
- APU and audio
- Timing and timers
- Platform and I/O
- Hardware observations
- Fidelity boundaries
- Methodology
- PGR2 routes
- Debugging lag / hot paths
- Tools and commands
- DSP capture, replay and fuzzing
- HLE readiness and public XISO proof
- Concurrent DSP shadow and OpenAL proof
- DSP HLE operation inventory
- DSP HLE fix examples and testing
- Development
- Upstream shortlist
- Wiki maintenance
- Research / retired work
- Optimization catalog
- Hot-path shortcuts
- Researched experiments
- Unproven proposal directory
- PR lessons
- September26 snapshot
Repository · PRs · Issues