Skip to content

wgpu: Validation Error when loading shader post-init #1310

@Maurdekye

Description

@Maurdekye

Describe the bug
a wgpu validation error occurs when loading a shader in a specific way post-initialization

To Reproduce

  1. Clone from https://github.com/Maurdekye/signal-to-noise/tree/wgpu-validation-error-bug
  2. Compile & run in either debug or release mode; pass --starting-scene noise2-d to load directly into the shader that causes the crash
  3. See that the shader works as expected
  4. Press Esc to return to the main menu
  5. Click the "Noise 2D" button, which is supposed to re-initialize and return you to the same shader from earlier
  6. Crash with a wgpu validation error instead

To reproduce the bug from startup, pass the --bug flag from the commandline instead of the above option, which will cause the crash to occur instantly.

Expected behavior
You return to the noise 2d screen working the same as when the application was launched

Screenshots or pasted code
Here is the full stack trace:

thread 'main' panicked at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-24.0.1\src\backend\wgpu_core.rs:3273:26:
wgpu error: Validation Error

Caused by:
  In RenderPass::end
    In a set_bind_group command
      Dynamic binding offset index 0 with offset 256 would overrun the buffer bound to BindGroup with '' label 3 -> binding 0. Buffer size is 768 bytes, the binding binds bytes 0..768, meaning the maximum the binding can be offset is 0 bytes


stack backtrace:
   0:     0x7ff693b805e1 - std::backtrace_rs::backtrace::dbghelp64::trace
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\..\..\backtrace\src\backtrace\dbghelp64.rs:91
   1:     0x7ff693b805e1 - std::backtrace_rs::backtrace::trace_unsynchronized
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
   2:     0x7ff693b805e1 - std::sys::backtrace::_print_fmt
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\sys\backtrace.rs:66
   3:     0x7ff693b805e1 - std::sys::backtrace::impl$0::print::impl$0::fmt
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\sys\backtrace.rs:39
   4:     0x7ff693b9ac2a - core::fmt::rt::Argument::fmt
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\core\src\fmt\rt.rs:177
   5:     0x7ff693b9ac2a - core::fmt::write
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\core\src\fmt\mod.rs:1437
   6:     0x7ff693b7c877 - std::io::Write::write_fmt<std::sys::pal::windows::stdio::Stderr>
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\io\mod.rs:1887
   7:     0x7ff693b80425 - std::sys::backtrace::BacktraceLock::print
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\sys\backtrace.rs:42
   8:     0x7ff693b81f95 - std::panicking::default_hook::closure$1
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:284
   9:     0x7ff693b81d74 - std::panicking::default_hook
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:311
  10:     0x7ff693b82713 - std::panicking::rust_panic_with_hook
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:817
  11:     0x7ff693b824a9 - std::panicking::begin_panic_handler::closure$0
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:690
  12:     0x7ff693b80d1f - std::sys::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure_env$0,never$>
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\sys\backtrace.rs:168
  13:     0x7ff693b820ae - std::panicking::begin_panic_handler
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:681
  14:     0x7ff693c6cef1 - core::panicking::panic_fmt
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\core\src\panicking.rs:75
  15:     0x7ff692c5fcfe - wgpu::backend::wgpu_core::default_error_handler
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-24.0.1\src\backend\wgpu_core.rs:653
  16:     0x7ff692c5fa49 - wgpu::backend::wgpu_core::ErrorSinkRaw::handle_error        
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-24.0.1\src\backend\wgpu_core.rs:637
  17:     0x7ff692c5cd64 - wgpu::backend::wgpu_core::ContextWgpuCore::handle_error_inner
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-24.0.1\src\backend\wgpu_core.rs:298
  18:     0x7ff692c5e081 - wgpu::backend::wgpu_core::ContextWgpuCore::handle_error<wgpu_core::command::render::RenderPassError>
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-24.0.1\src\backend\wgpu_core.rs:310
  19:     0x7ff692c6fc34 - wgpu::backend::wgpu_core::impl$51::end
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-24.0.1\src\backend\wgpu_core.rs:3273
  20:     0x7ff692c6fcee - wgpu::backend::wgpu_core::impl$52::drop
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-24.0.1\src\backend\wgpu_core.rs:3285
  21:     0x7ff692c4635f - core::ptr::drop_in_place<wgpu::backend::wgpu_core::CoreRenderPass>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  22:     0x7ff692c458be - core::ptr::drop_in_place<enum2$<wgpu::dispatch::DispatchRenderPass> >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  23:     0x7ff692c4579f - core::ptr::drop_in_place<wgpu::api::render_pass::RenderPass>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  24:     0x7ff692ab999c - core::ptr::drop_in_place<ggez::graphics::internal_canvas::InternalCanvas>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  25:     0x7ff692af3c76 - ggez::graphics::internal_canvas::InternalCanvas::finish
                               at C:\Users\ncola\.cargo\git\checkouts\ggez-ce7aaf3daca2f2b5\d5884f4\src\graphics\internal_canvas.rs:496
  26:     0x7ff692ac045c - ggez::graphics::canvas::Canvas::finalize
                               at C:\Users\ncola\.cargo\git\checkouts\ggez-ce7aaf3daca2f2b5\d5884f4\src\graphics\canvas.rs:537
  27:     0x7ff692a6eafd - ggez::graphics::canvas::Canvas::finish<ggez::context::Context>
                               at C:\Users\ncola\.cargo\git\checkouts\ggez-ce7aaf3daca2f2b5\d5884f4\src\graphics\canvas.rs:426
  28:     0x7ff692a4ad24 - signal_to_noise::sub_event_handler::impl$0::draw<signal_to_noise::scene_manager::SceneManager,ggez::context::Context,enum2$<ggez::error::GameError> >
                               at C:\Users\ncola\signal-to-noise\src\sub_event_handler.rs:43
  29:     0x7ff692a3400a - ggez::event::impl$0::about_to_wait<signal_to_noise::sub_event_handler::EventHandlerWrapper<signal_to_noise::scene_manager::SceneManager>,ggez::context::Context,enum2$<ggez::error::GameError> >
                               at C:\Users\ncola\.cargo\git\checkouts\ggez-ce7aaf3daca2f2b5\d5884f4\src\event.rs:654
  30:     0x7ff692a5ee7b - winit::event_loop::dispatch_event_for_app
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\event_loop.rs:647
  31:     0x7ff692a5ee7b - winit::event_loop::impl$6::run_app::closure$0<tuple$<>,ggez::event::GgezApplicationHandler<signal_to_noise::sub_event_handler::EventHandlerWrapper<signal_to_noise::scene_manager::SceneManager>,ggez::context::Context,enum2$<ggez::error::GameError> > >
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\event_loop.rs:265
  32:     0x7ff692a70a15 - winit::platform_impl::windows::event_loop::impl$3::run_on_demand::closure$0<tuple$<>,winit::event_loop::impl$6::run_app::closure_env$0<tuple$<>,ggez::event::GgezApplicationHandler<signal_to_noise::sub_event_handler::EventHandlerWrapper<signal_to_noise::sce
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\platform_impl\windows\event_loop.rs:264
  33:     0x7ff693a2a9f8 - 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\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\boxed.rs:1977
  34:     0x7ff693a143cc - winit::platform_impl::windows::event_loop::runner::impl$3::call_event_handler::closure$0<winit::platform_impl::windows::event_loop::UserEventPlaceholder>
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\platform_impl\windows\event_loop\runner.rs:236
  35:     0x7ff693a04df4 - 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\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\panic\unwind_safe.rs:272
  36:     0x7ff693a4234c - 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\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:573
  37:     0x7ff693a2e313 - winit::keyboard::_::InternalBitFlags::empty
  38:     0x7ff693a2b56a - std::panicking::try
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:536
  39:     0x7ff693a2b56a - 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\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:358
  40:     0x7ff693a12bdf - 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\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\platform_impl\windows\event_loop\runner.rs:173
  41:     0x7ff693a142cb - 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\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\platform_impl\windows\event_loop\runner.rs:230
  42:     0x7ff692a3b8d6 - winit::platform_impl::windows::event_loop::runner::EventLoopRunner<winit::platform_impl::windows::event_loop::UserEventPlaceholder>::move_state_to<winit::platform_impl::windows::event_loop::UserEventPlaceholder>
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\platform_impl\windows\event_loop\runner.rs:295
  43:     0x7ff692a3b6d7 - winit::platform_impl::windows::event_loop::runner::EventLoopRunner<winit::platform_impl::windows::event_loop::UserEventPlaceholder>::prepare_wait<winit::platform_impl::windows::event_loop::UserEventPlaceholder>
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\platform_impl\windows\event_loop\runner.rs:201
  44:     0x7ff692a70b4b - winit::platform_impl::windows::event_loop::EventLoop<tuple$<> >::wait_for_messages<tuple$<> >
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\platform_impl\windows\event_loop.rs:382
  45:     0x7ff692a707bc - winit::platform_impl::windows::event_loop::EventLoop<tuple$<> >::run_on_demand<tuple$<>,winit::event_loop::impl$6::run_app::closure_env$0<tuple$<>,ggez::event::GgezApplicationHandler<signal_to_noise::sub_event_handler::EventHandlerWrapper<signal_to_noise::
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\platform_impl\windows\event_loop.rs:270
  46:     0x7ff692a70eb6 - winit::platform_impl::windows::event_loop::EventLoop<tuple$<> >::run<tuple$<>,winit::event_loop::impl$6::run_app::closure_env$0<tuple$<>,ggez::event::GgezApplicationHandler<signal_to_noise::sub_event_handler::EventHandlerWrapper<signal_to_noise::scene_mana
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\platform_impl\windows\event_loop.rs:233
  47:     0x7ff692a5ecd2 - winit::event_loop::EventLoop<tuple$<> >::run_app<tuple$<>,ggez::event::GgezApplicationHandler<signal_to_noise::sub_event_handler::EventHandlerWrapper<signal_to_noise::scene_manager::SceneManager>,ggez::context::Context,enum2$<ggez::error::GameError> > >
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\event_loop.rs:265
  48:     0x7ff692a3515c - ggez::event::run<signal_to_noise::sub_event_handler::EventHandlerWrapper<signal_to_noise::scene_manager::SceneManager>,ggez::context::Context,enum2$<ggez::error::GameError> >
                               at C:\Users\ncola\.cargo\git\checkouts\ggez-ce7aaf3daca2f2b5\d5884f4\src\event.rs:291
  49:     0x7ff692a696f6 - signal_to_noise::main
                               at C:\Users\ncola\signal-to-noise\src\main.rs:105       
  50:     0x7ff692a462c3 - core::ops::function::FnOnce::call_once<enum2$<core::result::Result<tuple$<>,enum2$<ggez::error::GameError> > > (*)(),tuple$<> >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs:250
  51:     0x7ff692a4bda6 - std::sys::backtrace::__rust_begin_short_backtrace<enum2$<core::result::Result<tuple$<>,enum2$<ggez::error::GameError> > > (*)(),enum2$<core::result::Result<tuple$<>,enum2$<ggez::error::GameError> > > >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\backtrace.rs:152
  52:     0x7ff692a59b16 - std::rt::lang_start::closure$0<enum2$<core::result::Result<tuple$<>,enum2$<ggez::error::GameError> > > >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs:195
  53:     0x7ff693b74c4c - std::rt::lang_start_internal::closure$1
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\rt.rs:174
  54:     0x7ff693b74c4c - std::panicking::try::do_call
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:573
  55:     0x7ff693b74c4c - std::panicking::try
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:536
  56:     0x7ff693b74c4c - std::panic::catch_unwind
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panic.rs:358
  57:     0x7ff693b74c4c - std::rt::lang_start_internal
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\rt.rs:174
  58:     0x7ff692a59aea - std::rt::lang_start<enum2$<core::result::Result<tuple$<>,enum2$<ggez::error::GameError> > > >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs:194
  59:     0x7ff692a6cee9 - main
  60:     0x7ff693c6a600 - invoke_main
                               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
  61:     0x7ff693c6a600 - __scrt_common_main_seh
                               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
  62:     0x7ffd3426259d - BaseThreadInitThunk
  63:     0x7ffd34d6af38 - RtlUserThreadStart
thread 'main' panicked at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-hal-24.0.0\src\vulkan\instance.rs:173:58:
Trying to destroy a SurfaceSemaphores that is still in use by a SurfaceTexture
stack backtrace:
   0:     0x7ff693b805e1 - std::backtrace_rs::backtrace::dbghelp64::trace
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\..\..\backtrace\src\backtrace\dbghelp64.rs:91
   1:     0x7ff693b805e1 - std::backtrace_rs::backtrace::trace_unsynchronized
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
   2:     0x7ff693b805e1 - std::sys::backtrace::_print_fmt
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\sys\backtrace.rs:66
   3:     0x7ff693b805e1 - std::sys::backtrace::impl$0::print::impl$0::fmt
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\sys\backtrace.rs:39
   4:     0x7ff693b9ac2a - core::fmt::rt::Argument::fmt
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\core\src\fmt\rt.rs:177
   5:     0x7ff693b9ac2a - core::fmt::write
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\core\src\fmt\mod.rs:1437
   6:     0x7ff693b7c877 - std::io::Write::write_fmt<std::sys::pal::windows::stdio::Stderr>
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\io\mod.rs:1887
   7:     0x7ff693b80425 - std::sys::backtrace::BacktraceLock::print
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\sys\backtrace.rs:42
   8:     0x7ff693b81f95 - std::panicking::default_hook::closure$1
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:284
   9:     0x7ff693b81d74 - std::panicking::default_hook
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:311
  10:     0x7ff693b82713 - std::panicking::rust_panic_with_hook
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:817
  11:     0x7ff693b824a9 - std::panicking::begin_panic_handler::closure$0
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:690
  12:     0x7ff693b80d1f - std::sys::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure_env$0,never$>
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\sys\backtrace.rs:168
  13:     0x7ff693b820ae - std::panicking::begin_panic_handler
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:681
  14:     0x7ff693c6cef1 - core::panicking::panic_fmt
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\core\src\panicking.rs:75
  15:     0x7ff693c6cecc - core::panicking::panic_display
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\core\src\panicking.rs:261
  16:     0x7ff693c6cecc - core::option::expect_failed
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\core\src\option.rs:2018
  17:     0x7ff692f5cf1e - enum2$<core::option::Option<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex,wgpu_hal::vulkan::SwapchainImageSemaphores> > >::expect<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex,wgpu_hal::vulkan::SwapchainImageSemaphores> >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\option.rs:933
  18:     0x7ff693007070 - wgpu_hal::vulkan::Swapchain::release_resources
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-hal-24.0.0\src\vulkan\instance.rs:173
  19:     0x7ff69300b3fc - wgpu_hal::vulkan::instance::impl$7::unconfigure
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-hal-24.0.0\src\vulkan\instance.rs:986
  20:     0x7ff692e218c9 - wgpu_hal::dynamic::surface::impl$0::unconfigure<wgpu_hal::vulkan::Surface>
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-hal-24.0.0\src\dynamic\surface.rs:47
  21:     0x7ff692d9fe8d - wgpu_core::instance::impl$4::drop
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-core-24.0.0\src\instance.rs:466
  22:     0x7ff692cac6df - core::ptr::drop_in_place<wgpu_core::instance::Surface>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  23:     0x7ff692e58f18 - alloc::sync::Arc<wgpu_core::instance::Surface,alloc::alloc::Global>::drop_slow<wgpu_core::instance::Surface,alloc::alloc::Global>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\sync.rs:1885
  24:     0x7ff692e5d565 - alloc::sync::impl$37::drop<wgpu_core::instance::Surface,alloc::alloc::Global>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\sync.rs:2572
  25:     0x7ff692cb383e - core::ptr::drop_in_place<alloc::sync::Arc<wgpu_core::instance::Surface,alloc::alloc::Global> >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  26:     0x7ff692cf41df - wgpu_core::global::Global::surface_drop
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-core-24.0.0\src\instance.rs:832
  27:     0x7ff692c70634 - wgpu::backend::wgpu_core::impl$56::drop
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wgpu-24.0.1\src\backend\wgpu_core.rs:3486
  28:     0x7ff692c45c3f - core::ptr::drop_in_place<wgpu::backend::wgpu_core::CoreSurface>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  29:     0x7ff692c72e98 - alloc::sync::Arc<wgpu::backend::wgpu_core::CoreSurface,alloc::alloc::Global>::drop_slow<wgpu::backend::wgpu_core::CoreSurface,alloc::alloc::Global>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\sync.rs:1885
  30:     0x7ff692c73c85 - alloc::sync::impl$37::drop<wgpu::backend::wgpu_core::CoreSurface,alloc::alloc::Global>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\sync.rs:2572
  31:     0x7ff692c47e3e - core::ptr::drop_in_place<alloc::sync::Arc<wgpu::backend::wgpu_core::CoreSurface,alloc::alloc::Global> >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  32:     0x7ff692c4554e - core::ptr::drop_in_place<enum2$<wgpu::dispatch::DispatchSurface> >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  33:     0x7ff692ab6d7e - core::ptr::drop_in_place<wgpu::api::surface::Surface>       
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  34:     0x7ff692ab7ede - core::ptr::drop_in_place<ggez::graphics::context::WgpuContext>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  35:     0x7ff692afb078 - alloc::sync::Arc<ggez::graphics::context::WgpuContext,alloc::alloc::Global>::drop_slow<ggez::graphics::context::WgpuContext,alloc::alloc::Global>  
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\sync.rs:1885
  36:     0x7ff692afc995 - alloc::sync::impl$37::drop<ggez::graphics::context::WgpuContext,alloc::alloc::Global>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\sync.rs:2572
  37:     0x7ff692abac0e - core::ptr::drop_in_place<alloc::sync::Arc<ggez::graphics::context::WgpuContext,alloc::alloc::Global> >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  38:     0x7ff692ab8766 - core::ptr::drop_in_place<ggez::graphics::context::GraphicsContext>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  39:     0x7ff692a47a38 - core::ptr::drop_in_place<ggez::context::Context>
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  40:     0x7ff692a4750f - core::ptr::drop_in_place<ggez::event::GgezApplicationHandler<signal_to_noise::sub_event_handler::EventHandlerWrapper<signal_to_noise::scene_manager::SceneManager>,ggez::context::Context,enum2$<ggez::error::GameError> > >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:522
  41:     0x7ff692a351aa - ggez::event::run<signal_to_noise::sub_event_handler::EventHandlerWrapper<signal_to_noise::scene_manager::SceneManager>,ggez::context::Context,enum2$<ggez::error::GameError> >
                               at C:\Users\ncola\.cargo\git\checkouts\ggez-ce7aaf3daca2f2b5\d5884f4\src\event.rs:294
  42:     0x7ffd1ab4f540 - _CxxFrameHandler3
  43:     0x7ffd1ab43a86 - is_exception_typeof
  44:     0x7ffd1ab4ea14 - _C_specific_handler
  45:     0x7ffd1ab42c94 - is_exception_typeof
  46:     0x7ffd1ab4f351 - _CxxFrameHandler3
  47:     0x7ffd34db54bf - _chkstk
  48:     0x7ffd34d30174 - RtlUnwindEx
  49:     0x7ffd1ab4eeda - _C_specific_handler
  50:     0x7ffd1ab418e5 - is_exception_typeof
  51:     0x7ffd1ab41d00 - is_exception_typeof
  52:     0x7ffd1ab42d90 - is_exception_typeof
  53:     0x7ffd1ab4f351 - _CxxFrameHandler3
  54:     0x7ffd34db543f - _chkstk
  55:     0x7ffd34d2e886 - RtlFindCharInUnicodeString
  56:     0x7ffd34d64955 - RtlRaiseException
  57:     0x7ffd3205fb4c - RaiseException
  58:     0x7ffd1ab45267 - CxxThrowException
  59:     0x7ff693b8a5f0 - panic_unwind::imp::panic
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\panic_unwind\src\seh.rs:352
  60:     0x7ff693b8a5f0 - panic_unwind::__rust_start_panic
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\panic_unwind\src\lib.rs:97
  61:     0x7ff693b82a45 - std::panicking::rust_panic
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:878
  62:     0x7ff693b82983 - std::panicking::rust_panic_without_hook
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:869
  63:     0x7ff693b7ce8f - std::panic::resume_unwind
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panic.rs:388
  64:     0x7ff692a70e1b - winit::platform_impl::windows::event_loop::EventLoop<tuple$<> >::dispatch_peeked_messages<tuple$<> >
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\platform_impl\windows\event_loop.rs:425
  65:     0x7ff692a707f8 - winit::platform_impl::windows::event_loop::EventLoop<tuple$<> >::run_on_demand<tuple$<>,winit::event_loop::impl$6::run_app::closure_env$0<tuple$<>,ggez::event::GgezApplicationHandler<signal_to_noise::sub_event_handler::EventHandlerWrapper<signal_to_noise::
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\platform_impl\windows\event_loop.rs:277
  66:     0x7ff692a70eb6 - winit::platform_impl::windows::event_loop::EventLoop<tuple$<> >::run<tuple$<>,winit::event_loop::impl$6::run_app::closure_env$0<tuple$<>,ggez::event::GgezApplicationHandler<signal_to_noise::sub_event_handler::EventHandlerWrapper<signal_to_noise::scene_mana
                               at C:\Users\ncola\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\winit-0.30.9\src\platform_impl\windows\event_loop.rs:233
  67:     0x7ff692a5ecd2 - winit::event_loop::EventLoop<tuple$<> >::run_app<tuple$<>,ggez::event::GgezApplicationHandler<signal_to_noise::sub_event_handler::EventHandlerWrapper<signal_to_noise::scene_manager::SceneManager>,ggez::context::Context,enum2$<ggez::eResult<tuple$<>,enum2$<ggez::error::GameError> > > (*)(),tuple$<> >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs:250
  71:     0x7ff692a4bda6 - std::sys::backtrace::__rust_begin_short_backtrace<enum2$<core::result::Result<tuple$<>,enum2$<ggez::error::GameError> > > (*)(),enum2$<core::result::Result<tuple$<>,enum2$<ggez::error::GameError> > > >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\backtrace.rs:152
  72:     0x7ff692a59b16 - std::rt::lang_start::closure$0<enum2$<core::result::Result<tuple$<>,enum2$<ggez::error::GameError> > > >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs:195
  73:     0x7ff693b74c4c - std::rt::lang_start_internal::closure$1
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\rt.rs:174
  74:     0x7ff693b74c4c - std::panicking::try::do_call
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:573
  75:     0x7ff693b74c4c - std::panicking::try
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panicking.rs:536
  76:     0x7ff693b74c4c - std::panic::catch_unwind
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\panic.rs:358
  77:     0x7ff693b74c4c - std::rt::lang_start_internal
                               at /rustc/a4cb3c831823d9baa56c3d90514b75b2660116fa/library\std\src\rt.rs:174
  78:     0x7ff692a59aea - std::rt::lang_start<enum2$<core::result::Result<tuple$<>,enum2$<ggez::error::GameError> > > >
                               at C:\Users\ncola\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs:194
  79:     0x7ff692a6cee9 - main
  80:     0x7ff693c6a600 - invoke_main
                               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
  81:     0x7ff693c6a600 - __scrt_common_main_seh
                               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
  82:     0x7ffd3426259d - BaseThreadInitThunk
  83:     0x7ffd34d6af38 - RtlUserThreadStart
error: process didn't exit successfully: `target\debug\signal-to-noise.exe -b` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)

Hardware and Software:

  • ggez version: devel branch, commit d5884f4
  • OS: Windows 11
  • Graphics card: Intel UHD 620
  • Graphics card drivers: Native

Additional Notes
I found that reducing the number of fields in the Uniforms struct passed to the shader to 4 or fewer prevents the crash from occurring. Clearly this isn't a solution to the issue, but maybe it can be helpful in debugging it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions