I adapted this example to a vertex warping shader I'm making, but it crashes with it. Frankly I don't know much about shaders, so I don't really know where exactly to look, so I'm gonna have to dump a lot of source here, sorry.
Output
...
2026-05-05T22:08:42.714903Z ERROR wgpu::backend::wgpu_core: Handling wgpu errors as fatal by default
thread 'Async Compute Task Pool (2)' (141183) panicked at /home/jay/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-27.0.1/src/backend/wgpu_core.rs:1365:26:
wgpu error: Validation Error
Caused by:
In Device::create_render_pipeline, label = 'post_process_pipeline'
At least one color attachment or depth-stencil attachment was expected, but no render target for the pipeline was specified.
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Encountered a panic in system `bevy_render::render_resource::pipeline_cache::PipelineCache::process_pipeline_queue_system`!
thread '<unnamed>' (141199) panicked at /home/jay/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-hal-27.0.4/src/vulkan/instance.rs:194:58:
Trying to destroy a SurfaceAcquireSemaphores that is still in use by a SurfaceTexture
stack backtrace:
0: 0x5555596fd845 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h146b70d74c048d79
1: 0x55555972d04a - core::fmt::write::h51386424c21d3e45
2: 0x5555596fe146 - std::io::default_write_fmt::h47a11ac8bae1d5ef
3: 0x5555596fae36 - std::panicking::default_hook::{{closure}}::h462d29ed9732de2f
4: 0x5555596facd8 - std::panicking::default_hook::h682fafcf73fec659
...
src/lib.rs, examples/showcase.rs and assets/shaders/vertex_warp.wgsl are attached.
A custom post processing effect, using a custom render pass that runs after the main pass