Bevy render seems to be getting stuck on wgpu::SurfaceError::Outdated on linux while using glfw windowing backend #15312
Labels
A-Rendering
Drawing game state to the screen
C-Bug
An unexpected or incorrect behavior
O-Linux
Specific to the Linux desktop operating system
S-Needs-Investigation
This issue requires detective work to figure out what's going wrong
Bevy version
0.15.0-dev
Operating System: Arch Linux
KDE Plasma Version: 6.1.5
KDE Frameworks Version: 6.6.0
Qt Version: 6.7.2
Kernel Version: 6.10.10-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 3600 6-Core Processor
Memory: 15.5 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 3060/PCIe/SSE2
Manufacturer: ASUS
What you did
I am writing a custom windowing backend so that I could replace winit with glfw.
What went wrong
The window gets created and stuff gets rendered onto the window at the start, but after about 3 presents from the renderer, they just stop and the frame stays the same.
Additional information
The program does not hang. I found out that trigger_screenshots gets called pretty often (why?) and it still gets called just fine even though nothing new gets rendered onto the window. I also tested this on my M2 macbook air and the problem does not present itself. After I commented out the wgpu::SurfaceError::Outdated block that just warns the user once about the swap chain, the window started receiving new frames. What seems to be happening is that wgpu returns the SurfaceError::Outdated error and, because I am using an nvidia graphics card, bevy gets stuck in the branch where I get warned once about the swap chain and the surface never gets reconfigured for some reason. It could also be that the glfw window is just configured wrong, because this problem does not seem to occur while using winit.
The text was updated successfully, but these errors were encountered: