Bevy plugin for tracking render pipeline status.
https://github.com/rparrett/bevy_pipelines_ready.git
A tiny Bevy plugin that counts the number of render pipelines that are ready and makes that data available as a resource in the main world.
Bevy's shaders are compiled on-demand. On native platforms, they are compiled asynchronously, which can create pop-in effects. On the web, they are compiled synchronously in the single-threaded environment, which can cause hitches and can be pretty disastrous if music is playing.
This plugin can help you get your shaders compiled during a loading state where it won't cause as much trouble for your players.
See examples/states.rs.
# WebGL
cargo build --target wasm32-unknown-unknown --example "states" --features="webgl2"
# WebGPU
cargo build --target wasm32-unknown-unknown --example "states" --features="webgpu"
mkdir -p examples/wasm/target
wget https://raw.githubusercontent.com/bevyengine/bevy/refs/tags/v0.15.0/examples/wasm/index.html -O examples/wasm/index.html
wasm-bindgen --out-dir examples/wasm/target --out-name wasm_example --target web target/wasm32-unknown-unknown/debug/examples/states.wasm
basic-http-server examples/wasm/
bevy_pipelines_ready | bevy |
|---|---|
0.8 | 0.18 |
0.7 | 0.17 |
0.6 | 0.16 |
0.5 | 0.15 |
0.4 | 0.14 |
0.3 | 0.13 |
0.2 | 0.12 |
0.1 | 0.11 |
Please feel free to open a PR.