iced
iced copied to clipboard
Pokedex example crashes when the window is resized to 0 height
I just checked out the repo to give it a look, and I was trying some of the examples.
I ran the Pokedex example on Windows 10 Pro (10.0.18362 N/A Build 18362) and it was running great... until I resized the windows so it had 0 height.
It crashes on the error thread 'main' panicked at 'called Result::unwrap()on anErr value: OutOfMemory(Host)', C:\Users\pants\.cargo\registry\src\github.com-1ecc6299db9ec823\wgpu-native-0.4.3\src\device.rs:2091:9.
seeing this when minimizing an iced window on hybrid GPU systems like laptops. Doesn't happen on discrete GPU system like my tower.
I was able to reproduce this today. Some PCs I tested on crashed, some did not. The ones that did crash both use hybrid graphics.
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: OutOfMemory(Host)', C:\Users\jake\.cargo\registry\src\github.com-1ecc6299db9ec823\wgpu-native-0.4.3\src\device.rs:2091:9
stack backtrace:
0: backtrace::backtrace::trace_unsynchronized
at C:\Users\VssAdministrator\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.46\src\backtrace\mod.rs:66
1: std::sys_common::backtrace::_print_fmt
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\sys_common\backtrace.rs:78
2: std::sys_common::backtrace::_print::{{impl}}::fmt
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\sys_common\backtrace.rs:59
3: core::fmt::write
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libcore\fmt\mod.rs:1069
4: std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\io\mod.rs:1504
5: std::sys_common::backtrace::_print
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\sys_common\backtrace.rs:62
6: std::sys_common::backtrace::print
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\sys_common\backtrace.rs:49
7: std::panicking::default_hook::{{closure}}
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\panicking.rs:198
8: std::panicking::default_hook
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\panicking.rs:218
9: std::panicking::rust_panic_with_hook
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\panicking.rs:511
10: std::panicking::begin_panic_handler
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\panicking.rs:419
11: core::panicking::panic_fmt
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libcore\panicking.rs:111
12: core::option::expect_none_failed
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libcore\option.rs:1268
13: wgpu_device_create_swap_chain
14: <iced_wgpu::window::backend::Backend as iced_native::window::backend::Backend>::create_swap_chain
15: alloc::collections::vec_deque::VecDeque<T>::wrap_copy
16: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
17: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<T>::call_event_handler
18: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<T>::send_event
19: winit::platform_impl::platform::event_loop::public_window_callback::{{closure}}
20: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<T>::catch_unwind
21: winit::platform_impl::platform::event_loop::public_window_callback
22: DefSubclassProc
23: DefSubclassProc
24: CallWindowProcW
25: CallWindowProcW
26: glPushClientAttrib
27: CallWindowProcW
28: DispatchMessageW
29: IsWindowVisible
30: KiUserCallbackDispatcher
31: NtUserDispatchMessage
32: DispatchMessageW
33: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<T>::owned_windows
34: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
35: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<T>::catch_unwind
36: winit::platform_impl::platform::event_loop::EventLoopThreadExecutor::execute_in_thread
37: DefSubclassProc
38: DefSubclassProc
39: CallWindowProcW
40: DispatchMessageW
41: IsWindowVisible
42: KiUserCallbackDispatcher
43: NtUserDispatchMessage
44: DispatchMessageW
45: winit::platform_impl::platform::event_loop::EventLoop<T>::run
46: tokio::runtime::blocking::pool::spawn_blocking
47: iced_winit::application::Application::run
48: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
49: futures_channel::mpsc::unbounded
50: std::rt::lang_start_internal::{{closure}}
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\rt.rs:52
51: std::panicking::try::do_call
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\panicking.rs:331
52: std::panicking::try
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\panicking.rs:274
53: std::panic::catch_unwind
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\panic.rs:394
54: std::rt::lang_start_internal
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7\/src\libstd\rt.rs:51
55: main
56: invoke_main
at d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
57: __scrt_common_main_seh
at d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
58: BaseThreadInitThunk
59: RtlUserThreadStart
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: process didn't exit successfully: `target\release\test-gui.exe` (exit code: 101)
I can reproduce it on both discrete and integrated GPU. I use linux with mesa.
Hmm... almost a year passed, how could i avoid this crash?
Hey pantsman, I think we can close this now? This issue does not reproduce for me. Can anyone else still reporoduce this?
Not sure if it's the exact same issue but I'm still getting a crash like this on my hybrid graphics laptop. It's a small testing program running on tiny-skia. Crashes only on debug builds that I resize to 0 height. Iced version: 0.13.1
Here is my stacktrace
thread 'main' panicked at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\iced_tiny_skia-0.13.0\src\engine.rs:43:9:
Quad with non-normal height!
stack backtrace:
0: std::panicking::begin_panic_handler
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\std\src\panicking.rs:697
1: core::panicking::panic_fmt
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library\core\src\panicking.rs:75
2: iced_tiny_skia::engine::Engine::draw_quad
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\iced_tiny_skia-0.13.0\src\engine.rs:43
3: iced_tiny_skia::Renderer::draw<alloc::string::String>
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\iced_tiny_skia-0.13.0\src\lib.rs:147
4: iced_tiny_skia::window::compositor::present<alloc::string::String>
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\iced_tiny_skia-0.13.0\src\window\compositor.rs:201
5: iced_tiny_skia::window::compositor::impl$0::present<alloc::string::String>
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\iced_tiny_skia-0.13.0\src\window\compositor.rs:118
6: iced_winit::program::run_instance::async_fn$0<iced::program::Program::run_with::Instance<iced::program::with_title::WithTitle<iced::application::application::Instance<icedtest::MyApp,enum2$<icedtest::Message>,enum2$<iced_core::theme::Theme>,iced_tiny_skia:
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\iced_winit-0.13.0\src\program.rs:908
7: iced_winit::program::run::Runner<enum2$<icedtest::Message>,enum2$<iced_winit::program::run_instance::async_fn_env$0<iced::program::Program::run_with::Instance<iced::program::with_title::WithTitle<iced::application::application::Instance<icedtest::MyApp,enu
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\iced_winit-0.13.0\src\program.rs:467
8: iced_winit::program::run::impl$0::window_event<enum2$<icedtest::Message>,enum2$<iced_winit::program::run_instance::async_fn_env$0<iced::program::Program::run_with::Instance<iced::program::with_title::WithTitle<iced::application::application::Instance<icedt
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\iced_winit-0.13.0\src\program.rs:396
9: winit::event_loop::dispatch_event_for_app
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\event_loop.rs:642
10: winit::event_loop::impl$6::run_app::closure$0<enum2$<iced_runtime::Action<enum2$<icedtest::Message> > >,iced_winit::program::run::Runner<enum2$<icedtest::Message>,enum2$<iced_winit::program::run_instance::async_fn_env$0<iced::program::Program::run_with::In
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\event_loop.rs:265
11: winit::platform_impl::windows::event_loop::impl$3::run_on_demand::closure$0<enum2$<iced_runtime::Action<enum2$<icedtest::Message> > >,winit::event_loop::impl$6::run_app::closure_env$0<enum2$<iced_runtime::Action<enum2$<icedtest::Message> > >,iced_winit::pr
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop.rs:264
12: alloc::boxed::impl$29::call_mut<tuple$<enum2$<winit::event::Event<winit::platform_impl::windows::event_loop::UserEventPlaceholder> > >,dyn$<core::ops::function::FnMut<tuple$<enum2$<winit::event::Event<winit::platform_impl::windows::event_loop::UserEventPla
at C:\Users\REDACTED\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\boxed.rs:1973
13: winit::platform_impl::windows::event_loop::runner::impl$3::call_event_handler::closure$0<winit::platform_impl::windows::event_loop::UserEventPlaceholder>
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop\runner.rs:236
14: core::panic::unwind_safe::impl$25::call_once<tuple$<>,winit::platform_impl::windows::event_loop::runner::impl$3::call_event_handler::closure_env$0<winit::platform_impl::windows::event_loop::UserEventPlaceholder> >
at C:\Users\REDACTED\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\panic\unwind_safe.rs:272
15: std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::windows::event_loop::runner::impl$3::call_event_handler::closure_env$0<winit::platform_impl::windows::event_loop::UserEventPlaceholder> >,tuple$<> >
at C:\Users\REDACTED\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:589
16: winit::platform_impl::windows::keyboard::impl$12::eq
17: std::panicking::try
at C:\Users\REDACTED\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:552
18: std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::windows::event_loop::runner::impl$3::call_event_handler::closure_env$0<winit::platform_impl::windows::event_loop::UserEventPlaceholder> >,tuple$<> >
at C:\Users\REDACTED\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:359
19: winit::platform_impl::windows::event_loop::runner::EventLoopRunner<winit::platform_impl::windows::event_loop::UserEventPlaceholder>::catch_unwind<winit::platform_impl::windows::event_loop::UserEventPlaceholder,tuple$<>,winit::platform_impl::windows::event_
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop\runner.rs:173
20: winit::platform_impl::windows::event_loop::runner::EventLoopRunner<winit::platform_impl::windows::event_loop::UserEventPlaceholder>::call_event_handler<winit::platform_impl::windows::event_loop::UserEventPlaceholder>
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop\runner.rs:230
21: winit::platform_impl::windows::event_loop::runner::EventLoopRunner<winit::platform_impl::windows::event_loop::UserEventPlaceholder>::send_event<winit::platform_impl::windows::event_loop::UserEventPlaceholder>
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop\runner.rs:210
22: winit::platform_impl::windows::event_loop::WindowData::send_event
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop.rs:129
23: winit::platform_impl::windows::event_loop::public_window_callback_inner::closure$4
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop.rs:1282
24: core::ops::function::FnOnce::call_once<winit::platform_impl::windows::event_loop::public_window_callback_inner::closure_env$4,tuple$<> >
at C:\Users\REDACTED\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs:250
25: core::panic::unwind_safe::impl$25::call_once<tuple$<>,winit::platform_impl::windows::event_loop::public_window_callback_inner::closure_env$4>
at C:\Users\REDACTED\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\panic\unwind_safe.rs:272
26: std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::windows::event_loop::public_window_callback_inner::closure_env$4>,tuple$<> >
at C:\Users\REDACTED\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:589
27: winit::platform_impl::windows::keyboard::impl$12::eq
28: std::panicking::try
at C:\Users\REDACTED\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:552
29: std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::windows::event_loop::public_window_callback_inner::closure_env$4>,tuple$<> >
at C:\Users\REDACTED\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:359
30: winit::platform_impl::windows::event_loop::runner::EventLoopRunner<winit::platform_impl::windows::event_loop::UserEventPlaceholder>::catch_unwind<winit::platform_impl::windows::event_loop::UserEventPlaceholder,tuple$<>,winit::platform_impl::windows::event_
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop\runner.rs:173
31: winit::platform_impl::windows::event_loop::public_window_callback_inner
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop.rs:2462
32: winit::platform_impl::windows::event_loop::public_window_callback
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop.rs:1098
33: CallWindowProcW
34: DispatchMessageW
35: SendMessageTimeoutW
36: KiUserCallbackDispatcher
37: NtUserMessageCall
38: GetWindowTextW
39: IsIconic
40: GetUserColorPreference
41: Ordinal96
42: IsCompositionActive
43: IsCompositionActive
44: GetWindowTextW
45: winit::platform_impl::windows::event_loop::public_window_callback_inner
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop.rs:2468
46: winit::platform_impl::windows::event_loop::public_window_callback
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop.rs:1098
47: CallWindowProcW
48: DispatchMessageW
49: SendMessageTimeoutW
50: KiUserCallbackDispatcher
51: NtUserMessageCall
52: GetWindowTextW
53: IsIconic
54: GetUserColorPreference
55: Ordinal96
56: IsCompositionActive
57: IsCompositionActive
58: GetWindowTextW
59: winit::platform_impl::windows::event_loop::public_window_callback_inner
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop.rs:2468
60: winit::platform_impl::windows::event_loop::public_window_callback
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop.rs:1098
61: CallWindowProcW
62: DispatchMessageW
63: winit::platform_impl::windows::event_loop::EventLoop<enum2$<iced_runtime::Action<enum2$<icedtest::Message> > > >::dispatch_peeked_messages<enum2$<iced_runtime::Action<enum2$<icedtest::Message> > > >
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop.rs:419
64: winit::platform_impl::windows::event_loop::EventLoop<enum2$<iced_runtime::Action<enum2$<icedtest::Message> > > >::run_on_demand<enum2$<iced_runtime::Action<enum2$<icedtest::Message> > >,winit::event_loop::impl$6::run_app::closure_env$0<enum2$<iced_runtime:
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop.rs:277
65: winit::platform_impl::windows::event_loop::EventLoop<enum2$<iced_runtime::Action<enum2$<icedtest::Message> > > >::run<enum2$<iced_runtime::Action<enum2$<icedtest::Message> > >,winit::event_loop::impl$6::run_app::closure_env$0<enum2$<iced_runtime::Action<en
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\platform_impl\windows\event_loop.rs:233
66: winit::event_loop::EventLoop<enum2$<iced_runtime::Action<enum2$<icedtest::Message> > > >::run_app<enum2$<iced_runtime::Action<enum2$<icedtest::Message> > >,iced_winit::program::run::Runner<enum2$<icedtest::Message>,enum2$<iced_winit::program::run_instance:
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.11\src\event_loop.rs:265
67: iced_winit::program::run<iced::program::Program::run_with::Instance<iced::program::with_title::WithTitle<iced::application::application::Instance<icedtest::MyApp,enum2$<icedtest::Message>,enum2$<iced_core::theme::Theme>,iced_tiny_skia::Renderer,void (*)(re
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\iced_winit-0.13.0\src\program.rs:605
68: iced::program::Program::run_with<iced::program::with_title::WithTitle<iced::application::application::Instance<icedtest::MyApp,enum2$<icedtest::Message>,enum2$<iced_core::theme::Theme>,iced_tiny_skia::Renderer,void (*)(ref_mut$<icedtest::MyApp>,enum2$<iced
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\iced-0.13.1\src\program.rs:177
69: iced::program::Program::run<iced::program::with_title::WithTitle<iced::application::application::Instance<icedtest::MyApp,enum2$<icedtest::Message>,enum2$<iced_core::theme::Theme>,iced_tiny_skia::Renderer,void (*)(ref_mut$<icedtest::MyApp>,enum2$<icedtest:
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\iced-0.13.1\src\program.rs:81
70: iced::application::Application<iced::program::with_title::WithTitle<iced::application::application::Instance<icedtest::MyApp,enum2$<icedtest::Message>,enum2$<iced_core::theme::Theme>,iced_tiny_skia::Renderer,void (*)(ref_mut$<icedtest::MyApp>,enum2$<icedte
at C:\Users\REDACTED\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\iced-0.13.1\src\application.rs:167
71: icedtest::main
at .\main.rs:7
72: core::ops::function::FnOnce::call_once<enum2$<core::result::Result<tuple$<>,enum2$<iced::error::Error> > > (*)(),tuple$<> >
at C:\Users\REDACTED\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs:250
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: process didn't exit successfully: `S:\Coding\Rust\icedtest\target\debug\icedtest.exe` (exit code: 101)
Hey @kimmko , I don't think it is the same issue, however the issue you are experiencing should be fixed by #2977, which removes the debug assertion for non normal width / height.