- 
                Notifications
    You must be signed in to change notification settings 
- Fork 1.1k
Use pointers instead of IDs for tracing #8289
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
| This does have all my latest local changes, but there's still a little work to do to fix the CI failures, and I want to revisit the way that polling and  | 
| I wanted to mention that the main difference I noticed between this approach and the previous is that we now effectively only record commands after successful validation. I find that this somewhat limits the usefulness of recording and replaying traces since they won't record invalid commands. I've mostly used the record/replay functionality to debug overly restrictive or wrong validation in Firefox which will no longer be possible with this PR. We should probably talk about this at the maintainers meeting. | 
| We talked a bit about this at the maintainers meeting. Would it be possible to trace before validation runs (so that invalid commands get included in the trace)? | 
| I just realized  | 
Use it to deduplicate some `Foo` / `ArcFoo` / `TraceFoo` definitions.
923162d    to
    0e96cb8      
    Compare
  
    This updates pass operations. The trace player is temporarily broken.
This updates non-pass command encoder operations and device operations.
e82d77c    to
    eeb5fe1      
    Compare
  
    | Since this PR is already quite large, I opened #8429 for the error tracing support. | 
This resolves the duplicate storage of
IdandArcversions of commands (when tracing) that was introduced by encode-on-finish. It now stores theArcversion only, and uses the pointers from theArcs as object IDs when tracing. It also overhauls the trace player to play back traces in this format.This fixes tracing of compute and render passes when encoded using the standard APIs. Tracing of render bundles is still broken.
Testing
Updates the existing player tests to new trace format. Did some manual testing including in Firefox. #8429 adds directed tests for tracing.
Squash or Rebase? Rebase, after squashing fixups.
Checklist
cargo fmt.taplo format.cargo clippy --tests. If applicable, add:--target wasm32-unknown-unknowncargo xtask testto run tests.CHANGELOG.mdentry.