1.2 KiB
Status: Superseded by ADR 0022
Context
The editor targets Linux desktop sessions where transient swapchain acquire
timeouts can occur during heavy GPU work, compositor stalls, or driver hiccups.
In upstream bevy_render 0.18.1, prepare_windows treated
wgpu::SurfaceError::Timeout as a fatal path. That can crash the editor even
though the next frame can often recover.
Decision
For the Bevy 0.18 line, patch bevy_render locally through [patch.crates-io] and vendor the scoped
crate copy under third_party/bevy_render. The patch is limited to transient
surface acquire timeouts in prepare_windows: log the timeout and skip the
frame instead of panicking. Other surface errors remain on their existing paths.
Consequences
The editor is more tolerant of transient Linux swapchain stalls while preserving the current Bevy API surface for the rest of the workspace.
The Bevy 0.19 upgrade removed the active [patch.crates-io] entry for bevy_render.
The historical third_party/bevy_render copy was removed with the upgrade. Future
swapchain timeout work should start from Bevy 0.19/wgpu behavior rather than carrying
this patch forward by default.