bevyengine / bevyengine/bevy

Window resizing can freeze up rendering.

Open
#20,948 10 comments 1 reaction 0 assignees View on GitHub
A-Rendering A-Windowing C-Bug O-Linux S-Needs-Investigation
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

## Bevy version

- 0.16
- 0.17-dev (git+https://github.com/bevyengine/bevy.git#657f71b6e6880746ed09dcdea5dacad118dfc87e)

## \[Optional\] Relevant system information

Void Linux + X.Org + Nvidia drivers + KDE
```ignore
`AdapterInfo { name: "NVIDIA GeForce RTX 3050 Laptop GPU", vendor: 4318, device: 9634, device_type: DiscreteGpu, driver: "NVIDIA", driver_info: "580.76.05", backend: Vulkan }`
```

## What you did

Run the following code:
```rust
use bevy::prelude::*;

fn main() {
App::new()
.add_plugins(DefaultPlugins)
.run();
}
```
with the following dependencies:
```toml
[dependencies]
bevy = { git = "https://github.com/bevyengine/bevy.git", default-features=false, features = [
"bevy_asset",
"bevy_log",
"bevy_render",
"bevy_window",
"x11",
] }
```
or use version = 0.16.0
(x11, bevy_asset, bevy_window are needed to make the project compile, bevy_render is needed to trigger the bug, bevy_log for diagnostics)

## What went wrong

Resizing the window causes the following warning:
```
2025-09-10T13:09:13.732393Z WARN bevy_render::view::window: Couldn't get swap chain texture after configuring. Cause: 'The underlying surface has changed, and therefore the swap chain must be updated'
```
This is not a problem by itself, the project keeps working.
However by sufficiently fiddling with the window size (low mouse sensitivity seems to help trigger it, but that's just a feeling) the following may happen:
1) GPU usage rises considerably (not an issue necessarily, but might be relevant)
2) The entire graphical session hangs for a few seconds, this might be a stability issue on my part, not bevy.
3) The game enters a state where the swapchain is completely invalid. This has the two following effects:
a) The warning is emitted *every frame*:
```
2025-09-10T13:09:13.546944Z WARN bevy_render::view::window: Couldn't get swap chain texture after configuring. Cause: 'The underlying surface has changed, and therefore the swap chain must be updated'
2025-09-10T13:09:13.573010Z WARN bevy_render::view::window: Couldn't get swap chain texture after configuring. Cause: 'The underlying surface has changed, and therefore the swap chain must be updated'
2025-09-10T13:09:13.599742Z WARN bevy_render::view::window: Couldn't get swap chain texture after configuring. Cause: 'The underlying surface has changed, and therefore the swap chain must be updated'
2025-09-10T13:09:13.625975Z WARN bevy_render::view::window: Couldn't get swap chain texture after configuring. Cause: 'The underlying surface has changed, and therefore the swap chain must be updated'
```
b) The binary no longer renders any new frames, appearing "frozen" and glitched.

Resizing the window again re-rolls the bug, usually avoiding it, but sometimes triggering it again.

## Additional notes
I'm not sure if this can be reproduced on Windows or Mac, also would need testing on Wayland probably.

Contributor guide

Open the contributing guide

Research direction

Start with the minimal Rust application and the warning path identified as bevy_render::view::window, then reproduce the issue by repeatedly resizing the window on the reported X11/Vulkan setup. Trace the swapchain failure after the warning begins appearing every frame; done means resizing no longer leaves rendering frozen or the swapchain permanently invalid.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.