pixels: Applications exit/crash on window resize on Linux systems

Hi @parasyte,

I have written a small application using pixels and found out that the application crashes on a window resize. I can reproduce the same behaviour with running the example application minimal-winit.

Resizing the window provides the following error message: [2020-10-09T18:56:49Z ERROR minimal_winit] pixels.render() failed: The GPU failed to acquire a swapchain frame.

Removing the error handling on the pixels.render() call (line 49) and just unwrap()-ing it delivers the following error message: thread 'main' panicked at 'called 'Result::unwrap()' on an 'Err' value: Swapchain(Outdated)', examples/minimal-winit/src/main.rs:49:29

I tested the window resize on different Linux systems and graphics drivers: ArchLinux+amdgpu, ArchLinux+nvidia, Debian 10+intel. All systems were running X11, not Wayland. Performing a window resize with the example running under Windows 10 is working as expected.

I have also tested other examples from frameworks that base on winit (piston, amethyst) and window resizing works as expected.

Kind regards

Full Backtrace:

thread 'main' panicked at 'called 'Result::unwrap()' on an 'Err' value: Swapchain(Outdated)', examples/minimal-winit/src/main.rs:49:29
stack backtrace:
   0:     0x562710bc8340 - std::backtrace_rs::backtrace::libunwind::trace::h577ea05e9ca4629a
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/../../backtrace/src/backtrace/libunwind.rs:96
   1:     0x562710bc8340 - std::backtrace_rs::backtrace::trace_unsynchronized::h50b9b72b84c7dd56
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/../../backtrace/src/backtrace/mod.rs:66
   2:     0x562710bc8340 - std::sys_common::backtrace::_print_fmt::h6541cf9823837fac
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:79
   3:     0x562710bc8340 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf64fbff071026df5
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:58
   4:     0x562710bead6c - core::fmt::write::h9ddafa4860d8adff
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/core/src/fmt/mod.rs:1082
   5:     0x562710bc57a7 - std::io::Write::write_fmt::h1d2ee292d2b65481
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/io/mod.rs:1514
   6:     0x562710bca670 - std::sys_common::backtrace::_print::ha25f9ff5080d886d
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:61
   7:     0x562710bca670 - std::sys_common::backtrace::print::h213e8aa8dc5405c0
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:48
   8:     0x562710bca670 - std::panicking::default_hook::{{closure}}::h6482fae49ef9d963
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:200
   9:     0x562710bca3bc - std::panicking::default_hook::he30ad7589e0970f9
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:219
  10:     0x562710bcacd3 - std::panicking::rust_panic_with_hook::haa1ed36ada4ffb03
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:569
  11:     0x562710bca8a9 - std::panicking::begin_panic_handler::{{closure}}::h7001af1bb21aeaeb
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:476
  12:     0x562710bc87cc - std::sys_common::backtrace::__rust_end_short_backtrace::h39910f557f5f2367
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:153
  13:     0x562710bca869 - rust_begin_unwind
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:475
  14:     0x562710be8901 - core::panicking::panic_fmt::h4e2659771ebc78eb
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/core/src/panicking.rs:85
  15:     0x562710be8723 - core::option::expect_none_failed::h448b58a024c2c33a
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/core/src/option.rs:1221
  16:     0x56270ffa17dd - core::result::Result<T,E>::unwrap::h23db5a3d825cf25a
                               at /home/_/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:973
  17:     0x56270ffb3fba - minimal_winit::main::{{closure}}::h06100a03ce68d0d7
                               at /tmp/pixels/examples/minimal-winit/src/main.rs:49
  18:     0x56270ffb1163 - winit::platform_impl::platform::sticky_exit_callback::h1516e1425b3c5c8a
                               at /home/_/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/platform_impl/linux/mod.rs:698
  19:     0x56270ffb22a5 - winit::platform_impl::platform::x11::EventLoop<T>::run_return::h3cf3834f72dcc8c4
                               at /home/_/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/platform_impl/linux/x11/mod.rs:312
  20:     0x56270ffb328b - winit::platform_impl::platform::x11::EventLoop<T>::run::h157996e81a5c9084
                               at /home/_/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/platform_impl/linux/x11/mod.rs:390
  21:     0x56270ffb0d18 - winit::platform_impl::platform::EventLoop<T>::run::h6739777b3595d3a7
                               at /home/_/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/platform_impl/linux/mod.rs:645
  22:     0x56270ffbfd33 - winit::event_loop::EventLoop<T>::run::h98885696453ed85f
                               at /home/_/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/event_loop.rs:149
  23:     0x56270ffd69bc - minimal_winit::main::ha83f5fbf0b8052eb
                               at /tmp/pixels/examples/minimal-winit/src/main.rs:45
  24:     0x56270ffd956b - core::ops::function::FnOnce::call_once::hb4b1578fcdd13503
                               at /home/_/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227
  25:     0x56270ff8d19e - std::sys_common::backtrace::__rust_begin_short_backtrace::h0505aa401a658e29
                               at /home/_/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:137
  26:     0x56270ffbe681 - std::rt::lang_start::{{closure}}::h7f28f9e41a3d708b
                               at /home/_/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:66
  27:     0x562710bcb0d1 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h6a3209f124be2235
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/core/src/ops/function.rs:259
  28:     0x562710bcb0d1 - std::panicking::try::do_call::h88ce358792b64df0
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:373
  29:     0x562710bcb0d1 - std::panicking::try::h6311c259678e50fc
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:337
  30:     0x562710bcb0d1 - std::panic::catch_unwind::h56c5716807d659a1
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panic.rs:379
  31:     0x562710bcb0d1 - std::rt::lang_start_internal::h73711f37ecfcb277
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/rt.rs:51
  32:     0x56270ffbe657 - std::rt::lang_start::h715b996db0bf322c
                               at /home/_/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:65
  33:     0x56270ffd70ba - main
  34:     0x7fbaba1d2152 - __libc_start_main
  35:     0x56270ff8d0be - _start
  36:                0x0 - <unknown>

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 1
  • Comments: 22 (12 by maintainers)

Commits related to this issue

Most upvoted comments

I’m also having this issue when using the minimal-winit example on Arch Linux + Radeon graphics.