Skip to content

Decreasing window height to 0 causes crash #170

@XBagon

Description

@XBagon

I ran the sprite example from master branch (a7f1889) on Windows 10.
Resizing the window to minimum height crashed the example:

❯ RUST_BACKTRACE=1 cargo run --example sprite
    Finished dev [unoptimized + debuginfo] target(s) in 0.23s
     Running `target\debug\examples\sprite.exe`
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `Extent { width: 1004, height: 1, depth: 1 }`,
 right: `Extent { width: 1004, height: 0, depth: 1 }`: Extent state must match extent from view', C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib/rustlib/src/rust\src\libstd\macros.rs:16: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/d3fb005a39e62501b8b0b356166e515ae24e2e54\/src\libstd\sys_common\backtrace.rs:78
   2: std::sys_common::backtrace::_print::{{impl}}::fmt
             at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54\/src\libstd\sys_common\backtrace.rs:59
   3: core::fmt::write
             at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54\/src\libcore\fmt\mod.rs:1076
   4: std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
             at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54\/src\libstd\io\mod.rs:1537
   5: std::sys_common::backtrace::_print
             at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54\/src\libstd\sys_common\backtrace.rs:62
   6: std::sys_common::backtrace::print
             at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54\/src\libstd\sys_common\backtrace.rs:49
   7: std::panicking::default_hook::{{closure}}
             at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54\/src\libstd\panicking.rs:198
   8: std::panicking::default_hook
             at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54\/src\libstd\panicking.rs:218
   9: std::panicking::rust_panic_with_hook
             at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54\/src\libstd\panicking.rs:486
  10: std::panicking::begin_panic_handler
             at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54\/src\libstd\panicking.rs:388
  11: std::panicking::begin_panic_fmt
             at /rustc/d3fb005a39e62501b8b0b356166e515ae24e2e54\/src\libstd\panicking.rs:342
  12: cart_tmp_wgc::hub::Global<cart_tmp_wgc::hub::IdentityManagerFactory>::command_encoder_run_render_pass_impl<cart_tmp_wgc::hub::IdentityManagerFactory,gfx_backend_vulkan::Backend>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\macros.rs:16
  13: cart_tmp_wgc::hub::Global<cart_tmp_wgc::hub::IdentityManagerFactory>::command_encoder_run_render_pass<cart_tmp_wgc::hub::IdentityManagerFactory,gfx_backend_vulkan::Backend>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-wgc-0.1.0\src\command\render.rs:350
  14: cart_tmp_wgpu::backend::direct::{{impl}}::command_encoder_end_render_pass
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-wgpu-0.1.0\src\backend\direct.rs:1001
  15: cart_tmp_wgpu::{{impl}}::drop
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-wgpu-0.1.0\src\lib.rs:2020
  16: core::ptr::drop_in_place<cart_tmp_wgpu::RenderPass>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libcore\ptr\mod.rs:184
  17: core::ptr::drop_in_place<bevy_wgpu::wgpu_render_pass::WgpuRenderPass>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libcore\ptr\mod.rs:184
  18: bevy_wgpu::renderer::wgpu_render_context::{{impl}}::begin_pass
             at .\crates\bevy_wgpu\src\renderer\wgpu_render_context.rs:151
  19: bevy_render::render_graph::nodes::pass_node::{{impl}}::update<bevy_render::render_graph::base::MainPass*>
             at .\crates\bevy_render\src\render_graph\nodes\pass_node.rs:169
  20: bevy_wgpu::renderer::wgpu_render_graph_executor::WgpuRenderGraphExecutor::execute
             at .\crates\bevy_wgpu\src\renderer\wgpu_render_graph_executor.rs:73
  21: bevy_wgpu::wgpu_renderer::WgpuRenderer::run_graph
             at .\crates\bevy_wgpu\src\wgpu_renderer.rs:89
  22: bevy_wgpu::wgpu_renderer::WgpuRenderer::update
             at .\crates\bevy_wgpu\src\wgpu_renderer.rs:100
  23: bevy_wgpu::wgpu_render_system::{{closure}}
             at .\crates\bevy_wgpu\src\lib.rs:40
  24: bevy_ecs::system::into_system::{{impl}}::run<closure-0>
             at .\crates\bevy_ecs\src\system\into_system.rs:339
  25: bevy_ecs::system::into_system::{{impl}}::thread_local_system::{{closure}}<closure-0>
             at .\crates\bevy_ecs\src\system\into_system.rs:315
  26: bevy_ecs::system::into_system::{{impl}}::run_thread_local<(),closure-1,closure-0,closure-2,closure-3>
             at .\crates\bevy_ecs\src\system\into_system.rs:65
  27: bevy_ecs::schedule::parallel_executor::ExecutorStage::run
             at .\crates\bevy_ecs\src\schedule\parallel_executor.rs:341
  28: bevy_ecs::schedule::parallel_executor::ParallelExecutor::run
             at .\crates\bevy_ecs\src\schedule\parallel_executor.rs:59
  29: bevy_app::app::App::update
             at .\crates\bevy_app\src\app.rs:60
  30: bevy_winit::winit_runner::{{closure}}
             at .\crates\bevy_winit\src\lib.rs:140
  31: cart_tmp_winit::platform_impl::platform::event_loop::{{impl}}::run_return::{{closure}}<(),closure-0>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop.rs:202
  32: alloc::boxed::{{impl}}::call_mut<(cart_tmp_winit::event::Event<()>, mut cart_tmp_winit::event_loop::ControlFlow*),FnMut<(cart_tmp_winit::event::Event<()>, mut cart_tmp_winit::event_loop::ControlFlow*)>>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\liballoc\boxed.rs:1083
  33: cart_tmp_winit::platform_impl::platform::event_loop::runner::{{impl}}::call_event_handler::{{closure}}<()>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop\runner.rs:245
  34: std::panic::{{impl}}::call_once<(),closure-0>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panic.rs:318
  35: std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure-0>,()>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panicking.rs:297
  36: cart_tmp_winit::window::{{impl}}::clone
  37: std::panicking::try<(),std::panic::AssertUnwindSafe<closure-0>>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panicking.rs:274
  38: std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure-0>,()>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panic.rs:394
  39: cart_tmp_winit::platform_impl::platform::event_loop::runner::EventLoopRunner<()>::catch_unwind<(),(),closure-0>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop\runner.rs:152
  40: cart_tmp_winit::platform_impl::platform::event_loop::runner::EventLoopRunner<()>::call_event_handler<()>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop\runner.rs:239
  41: cart_tmp_winit::platform_impl::platform::event_loop::runner::EventLoopRunner<()>::move_state_to<()>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop\runner.rs:341
  42: cart_tmp_winit::platform_impl::platform::event_loop::runner::EventLoopRunner<()>::main_events_cleared<()>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop\runner.rs:227
  43: cart_tmp_winit::platform_impl::platform::event_loop::flush_paint_messages<()>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop.rs:674
  44: cart_tmp_winit::platform_impl::platform::event_loop::public_window_callback::{{closure}}<()>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop.rs:829
  45: core::ops::function::FnOnce::call_once<closure-0,()>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libcore\ops\function.rs:232
  46: std::panic::{{impl}}::call_once<isize,closure-0>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panic.rs:318
  47: std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure-0>,isize>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panicking.rs:297
  48: std::panicking::try::do_catch<std::panic::AssertUnwindSafe<closure-0>,isize>
  49: std::panicking::try<isize,std::panic::AssertUnwindSafe<closure-0>>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panicking.rs:274
  50: std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure-0>,isize>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panic.rs:394
  51: cart_tmp_winit::platform_impl::platform::event_loop::runner::EventLoopRunner<()>::catch_unwind<(),isize,closure-0>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop\runner.rs:152
  52: cart_tmp_winit::platform_impl::platform::event_loop::public_window_callback<()>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop.rs:1904
  53: DefSubclassProc
  54: DefSubclassProc
  55: CallWindowProcW
  56: CallWindowProcW
  57: glPushClientAttrib
  58: CallWindowProcW
  59: DispatchMessageW
  60: IsWindowVisible
  61: KiUserCallbackDispatcher
  62: NtUserMessageCall
  63: GetWindowTextW
  64: MapWindowPoints
  65: IsCompositionActive
  66: Ordinal96
  67: IsCompositionActive
  68: IsCompositionActive
  69: GetWindowTextW
  70: cart_tmp_winit::platform_impl::platform::event_loop::public_window_callback::{{closure}}<()>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop.rs:982
  71: core::ops::function::FnOnce::call_once<closure-0,()>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libcore\ops\function.rs:232
  72: std::panic::{{impl}}::call_once<isize,closure-0>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panic.rs:318
  73: std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure-0>,isize>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panicking.rs:297
  74: std::panicking::try::do_catch<std::panic::AssertUnwindSafe<closure-0>,isize>
  75: std::panicking::try<isize,std::panic::AssertUnwindSafe<closure-0>>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panicking.rs:274
  76: std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure-0>,isize>
             at C:\Users\XBagon\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src\libstd\panic.rs:394
  77: cart_tmp_winit::platform_impl::platform::event_loop::runner::EventLoopRunner<()>::catch_unwind<(),isize,closure-0>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop\runner.rs:152
  78: cart_tmp_winit::platform_impl::platform::event_loop::public_window_callback<()>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop.rs:1904
  79: DefSubclassProc
  80: DefSubclassProc
  81: CallWindowProcW
  82: CallWindowProcW
  83: glPushClientAttrib
  84: CallWindowProcW
  85: DispatchMessageW
  86: IsWindowVisible
  87: KiUserCallbackDispatcher
  88: NtUserMessageCall
  89: GetWindowTextW
  90: MapWindowPoints
  91: IsCompositionActive
  92: Ordinal96
  93: IsCompositionActive
  94: IsCompositionActive
  95: GetWindowTextW
  96: CallWindowProcW
  97: CallWindowProcW
  98: DefSubclassProc
  99: DefSubclassProc
 100: cart_tmp_winit::platform_impl::platform::event_loop::public_window_callback::{{closure}}<()>
             at C:\Users\XBagon\.cargo\registry\src\github.com-1ecc6299db9ec823\cart-tmp-winit-0.22.2\src\platform_impl\windows\event_loop.rs:791
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: process didn't exit successfully: `target\debug\examples\sprite.exe` (exit code: 101)

Tried this in debug/release builds on msvc/gnu toolchains and it happens in every configuration.

The assertion seems to be the in cart-tmp-wgc/command/render.rs:505.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-WindowingPlatform-agnostic interface layer to run your app inC-BugAn unexpected or incorrect behaviorO-WindowsSpecific to the Windows desktop operating systemP-CrashA sudden unexpected crashS-DuplicateThis issue or PR already exists

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions