bevy: Pipelined: 3D examples crash with AMDVLK on Wayland
Bevy version
Current main
(commit cf48132e
).
Operating system & version
Linux 5.15.4 / Sway Wayland Compositor / AMDVLK 2021.Q3.7
Mesa RADV driver works with both wayland and x11. AMDVLK driver works with x11, but not wayland.
What you did
cargo run --example 3d_scene_pipelined --features bevy/wayland --release
(or any other pipelined 3D example)
2D seems to work. bevymark_pipelined
works correctly.
Old renderer works. The old 3d_scene
works correctly.
What you expected to happen
The new 3d examples to not crash in wayland mode with the amdvlk driver. đ
What actually happened
Bevy manages to render at least 1 frame (donât know how to tell if it can do more than 1 before crashing). I can tell, because the window flashes briefly.
The window opens, a frame is rendered and displayed, and then almost immediately crashes with a panic (and sometimes segfault, but i think thatâs irrelevant).
Additional information
2021-12-10T15:01:56.213959Z INFO bevy_render2::renderer: AdapterInfo { name: "Radeon RX Vega", vendor: 4098, device: 26751, device_type: DiscreteGpu, backend: Vulkan }
thread 'main' panicked at 'Failed to acquire next swap chain texture!: Timeout', pipelined/bevy_render2/src/view/window.rs:159:24
stack backtrace:
0: rust_begin_unwind
at /rustc/0e07bcb68b82b54c0c4ec6fe076e9d75b02109cf/library/std/src/panicking.rs:498:5
1: core::panicking::panic_fmt
at /rustc/0e07bcb68b82b54c0c4ec6fe076e9d75b02109cf/library/core/src/panicking.rs:107:14
2: core::result::unwrap_failed
at /rustc/0e07bcb68b82b54c0c4ec6fe076e9d75b02109cf/library/core/src/result.rs:1613:5
3: bevy_render2::view::window::prepare_windows
4: <bevy_ecs::system::function_system::FunctionSystem<In,Out,Param,Marker,F> as bevy_ecs::system::system::System>::run_unsafe
5: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
6: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
7: async_task::raw::RawTask<F,T,S>::run
8: async_executor::LocalExecutor::try_tick
9: bevy_tasks::task_pool::TaskPool::scope
10: <bevy_ecs::schedule::executor_parallel::ParallelExecutor as bevy_ecs::schedule::executor::ParallelSystemExecutor>::run_systems
11: <bevy_ecs::schedule::stage::SystemStage as bevy_ecs::schedule::stage::Stage>::run
12: <bevy_render2::RenderPlugin as bevy_app::plugin::Plugin>::build::{{closure}}
13: bevy_app::app::App::update
14: bevy_winit::winit_runner_with::{{closure}}
15: winit::platform_impl::platform::wayland::event_loop::EventLoop<T>::run_return
16: winit::platform_impl::platform::wayland::event_loop::EventLoop<T>::run
17: winit::platform_impl::platform::EventLoop<T>::run
18: winit::event_loop::EventLoop<T>::run
19: bevy_winit::run
20: bevy_winit::winit_runner_with
21: core::ops::function::Fn::call
22: bevy_app::app::App::run
23: _3d_scene_pipelined::main
Seems like this happens in the window presentation code and its swapchain management.
I know that @cart is reworking all of this stuff with the upcoming âactual pipeliningâ implementation. When that code lands, we should check if this bug still persists. It might turn out to just be fixed. đ
About this issue
- Original URL
- State: open
- Created 3 years ago
- Comments: 21 (11 by maintainers)
This should probably be closed, AMD makes horrible quality proprietary drivers for Linux.