bevy icon indicating copy to clipboard operation
bevy copied to clipboard

Replace the `wgpu_trace` feature with a field in `bevy_render::settings::WgpuSettings`

Open LikeLakers2 opened this issue 1 year ago • 2 comments

Objective

  • Remove the wgpu_trace feature 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.
  • 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 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-msvc toolchain. I do not have anything set up for other platforms or targets (though I can't imagine this needs testing on other platforms).

Migration Guide

  1. The bevy/wgpu_trace, bevy_render/wgpu_trace, and bevy_internal/wgpu_trace features no longer exist. Remove them from your Cargo.toml, CI, tooling, and what-not.
  2. Follow the instructions in the updated docs/debugging.md file 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.

LikeLakers2 avatar Aug 21 '24 03:08 LikeLakers2

Welcome, new contributor!

Please make sure you've read our contributing guide and we look forward to reviewing your pull request shortly ✨

github-actions[bot] avatar Aug 21 '24 03:08 github-actions[bot]

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!

LikeLakers2 avatar Aug 21 '24 04:08 LikeLakers2