Skip to content

Window resizing can freeze up rendering. #20948

@IQuick143

Description

@IQuick143

Bevy version

[Optional] Relevant system information

Void Linux + X.Org + Nvidia drivers + KDE

`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:

use bevy::prelude::*;

fn main() {
	App::new()
	.add_plugins(DefaultPlugins)
	.run();
}

with the following dependencies:

[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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-RenderingDrawing game state to the screenA-WindowingPlatform-agnostic interface layer to run your app inC-BugAn unexpected or incorrect behaviorO-LinuxSpecific to the Linux desktop operating systemS-Needs-InvestigationThis issue requires detective work to figure out what's going wrong

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions