Replace the `wgpu_trace` feature with a field in `bevy_render::settings::WgpuSettings`
Objective
- Remove the
wgpu_tracefeature while still making it easy/possible to record wgpu traces for debugging. - Close #14725.
- Get a taste of the bevy codebase. :P
Solution
This PR performs the above objective by removing the wgpu_trace feature from all Cargo.toml files.
However, wgpu traces are still useful for debugging - but to record them, you need to pass in a directory path to store the traces in. To avoid forcing users into manually creating the renderer, bevy_render::settings::WgpuSettings now has a trace_path field, so that all of Bevy's automatic initialization can happen while still allowing for tracing.
Testing
- Did you test these changes? If so, how?
- I have tested these changes, but only via running
cargo run -p ci. I am hoping the Github Actions workflows will catch anything I missed.
- I have tested these changes, but only via running
- Are there any parts that need more testing?
- I do not believe so.
- How can other people (reviewers) test your changes? Is there anything specific they need to know?
- If you want to test these changes, I have updated the debugging guide (
docs/debugging.md) section on WGPU Tracing.
- If you want to test these changes, I have updated the debugging guide (
- If relevant, what platforms did you test these changes on, and are there any important ones you can't test?
- I ran the above command on a Windows 10 64-bit (x64) machine, using the
stable-x86_64-pc-windows-msvctoolchain. I do not have anything set up for other platforms or targets (though I can't imagine this needs testing on other platforms).
- I ran the above command on a Windows 10 64-bit (x64) machine, using the
Migration Guide
- The
bevy/wgpu_trace,bevy_render/wgpu_trace, andbevy_internal/wgpu_tracefeatures no longer exist. Remove them from yourCargo.toml, CI, tooling, and what-not. - Follow the instructions in the updated
docs/debugging.mdfile in the repository, under the WGPU Tracing section.
Because of the changes made, you can now generate traces to any path, rather than the hardcoded %WorkspaceRoot%/wgpu_trace (where %WorkspaceRoot% is... the root of your crate's workspace) folder.
(If WGPU hasn't restored tracing functionality...) Do note that WGPU has not yet restored tracing functionality. However, once it does, the above should be sufficient to generate new traces.
Welcome, new contributor!
Please make sure you've read our contributing guide and we look forward to reviewing your pull request shortly ✨
Although I feel confident writing documentation, I am by no means a professional documentation writer - so it'd be appreciated if anybody else could give feedback to the updated WGPU Tracing guide, found in docs/debugging.md.
P.S. @TrialDragon Thank you for the feedback!