Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugs from Testing Wgpu with Gfx Master #1059

Closed
cwfitzgerald opened this issue Dec 1, 2020 · 10 comments
Closed

Bugs from Testing Wgpu with Gfx Master #1059

cwfitzgerald opened this issue Dec 1, 2020 · 10 comments
Labels
external: upstream Issues happening in lower level APIs or platforms type: bug Something isn't working
Milestone

Comments

@cwfitzgerald
Copy link
Member

cwfitzgerald commented Dec 1, 2020

Description

Various validation and other issues collected from my initial testing of wgpu on gfx-hal master.

Repro steps

Run the examples.

all/vk

[0.375320 ERROR]()(no module):
VALIDATION [VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216 (-376016417)] : Validation Error: [ VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216 ] Object 0: handle = 0x2d93dbcf100, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xe99671df | vkCreateGraphicsPipelines: The VkPhysicalDeviceFeatures::multiViewport feature is disabled, but pCreateInfos[0].pViewportState->viewportCount (=0) is not 1. The Vulkan spec states: If the multiple viewports feature is not enabled, viewportCount must be 1 (https://vulkan.lunarg.com/doc/view/1.2.141.0/windows/1.2-extensions/vkspec.html#VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216)
object info: (type: DEVICE, hndl: 3132066951424)

all/dx12 and dx11

Under dx12, despite having two discrete graphics cards, wgpu chooses to run on WARP.

water and texture-arrays/dx12

Panic
thread 'main' panicked at 'assertion failed: !self.is_null()', C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\d3d12-0.3.2\src\com.rs:75:9
stack backtrace:
   0:     0x7ff7ec0298b9 - std::backtrace_rs::backtrace::dbghelp::trace
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\..\..\backtrace\src\backtrace\dbghelp.rs:98
   1:     0x7ff7ec0298b9 - std::backtrace_rs::backtrace::trace_unsynchronized
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
   2:     0x7ff7ec0298b9 - std::sys_common::backtrace::_print_fmt
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\sys_common\backtrace.rs:79
   3:     0x7ff7ec0298b9 - std::sys_common::backtrace::_print::{{impl}}::fmt
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\sys_common\backtrace.rs:58
   4:     0x7ff7ec03fd9b - core::fmt::write
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\core\src\fmt\mod.rs:1082
   5:     0x7ff7ec0269c4 - std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\io\mod.rs:1514
   6:     0x7ff7ec02c99b - std::sys_common::backtrace::_print
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\sys_common\backtrace.rs:61
   7:     0x7ff7ec02c99b - std::sys_common::backtrace::print
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\sys_common\backtrace.rs:48
   8:     0x7ff7ec02c99b - std::panicking::default_hook::{{closure}}
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:200
   9:     0x7ff7ec02c5d9 - std::panicking::default_hook
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:219
  10:     0x7ff7ec02d17f - std::panicking::rust_panic_with_hook
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:569
  11:     0x7ff7ebecad91 - std::panicking::begin_panic::{{closure}}<str*>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:498
  12:     0x7ff7ebec9d5f - std::sys_common::backtrace::__rust_end_short_backtrace<closure-0,!>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys_common\backtrace.rs:153
  13:     0x7ff7ebecacc7 - std::panicking::begin_panic<str*>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:497
  14:     0x7ff7ebecbbf8 - d3d12::com::{{impl}}::deref<winapi::um::d3d12::ID3D12GraphicsCommandList>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\d3d12-0.3.2\src\com.rs:75
  15:     0x7ff7ebe3e824 - gfx_backend_dx12::device::{{impl}}::set_command_buffer_name
                               at C:\Users\connor\.cargo\git\checkouts\gfx-e86e7f3ebdbc4218\1d14789\src\backend\dx12\src\device.rs:3638
  16:     0x7ff7eb62d4ca - wgpu_core::hub::Global<wgpu_core::hub::IdentityManagerFactory>::device_create_command_encoder<wgpu_core::hub::IdentityManagerFactory,gfx_backend_dx12::Backend>
                               at C:\Users\connor\.cargo\git\checkouts\wgpu-53e70f8674b08dd4\2d87fd9\wgpu-core\src\device\mod.rs:3353
  17:     0x7ff7eb8a459b - wgpu::backend::direct::{{impl}}::device_create_command_encoder
                               at C:\Users\connor\Programming\wgpu-rs\src\backend\direct.rs:1097
  18:     0x7ff7eb5086a6 - wgpu::Device::create_command_encoder
                               at C:\Users\connor\Programming\wgpu-rs\src\lib.rs:1428
  19:     0x7ff7eb26fb20 - texture_arrays::{{impl}}::render<futures_executor::local_pool::LocalSpawner>
                               at C:\Users\connor\Programming\wgpu-rs\examples\texture-arrays\main.rs:308
  20:     0x7ff7eb263256 - texture_arrays::framework::start::{{closure}}<texture_arrays::Example>
                               at C:\Users\connor\Programming\wgpu-rs\examples\framework.rs:314
  21:     0x7ff7eb28f608 - winit::platform_impl::platform::event_loop::{{impl}}::run_return::{{closure}}<tuple<>,closure-0>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop.rs:203
  22:     0x7ff7ebfdde03 - alloc::boxed::{{impl}}::call_mut<tuple<winit::event::Event<tuple<>>, mut winit::event_loop::ControlFlow*>,FnMut<tuple<winit::event::Event<tuple<>>, mut winit::event_loop::ControlFlow*>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\boxed.rs:1049
  23:     0x7ff7ebfcc9fb - winit::platform_impl::platform::event_loop::runner::{{impl}}::call_event_handler::{{closure}}<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop\runner.rs:245
  24:     0x7ff7ebfc02f6 - std::panic::{{impl}}::call_once<tuple<>,closure-0>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:308
  25:     0x7ff7ebfdbb00 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure-0>,tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:373
  26:     0x7ff7ebfe0887 - winit::platform_impl::platform::window::TASKBAR_LIST::__getit
  27:     0x7ff7ebfdb8ea - std::panicking::try<tuple<>,std::panic::AssertUnwindSafe<closure-0>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:337
  28:     0x7ff7ebfc0336 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure-0>,tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:379
  29:     0x7ff7ebfcbe39 - winit::platform_impl::platform::event_loop::runner::EventLoopRunner<tuple<>>::catch_unwind<tuple<>,tuple<>,closure-0>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop\runner.rs:152
  30:     0x7ff7ebfcc791 - winit::platform_impl::platform::event_loop::runner::EventLoopRunner<tuple<>>::call_event_handler<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop\runner.rs:239
  31:     0x7ff7ebfcc527 - winit::platform_impl::platform::event_loop::runner::EventLoopRunner<tuple<>>::send_event<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop\runner.rs:210
  32:     0x7ff7eb28f75a - winit::platform_impl::platform::event_loop::SubclassInput<tuple<>>::send_event<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop.rs:93
  33:     0x7ff7eb290102 - winit::platform_impl::platform::event_loop::public_window_callback::{{closure}}<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop.rs:832
  34:     0x7ff7eb2974c7 - core::ops::function::FnOnce::call_once<closure-0,tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs:227
  35:     0x7ff7eb270bb3 - std::panic::{{impl}}::call_once<isize,closure-0>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:308
  36:     0x7ff7eb25c48e - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure-0>,isize>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:373
  37:     0x7ff7eb25c597 - std::panicking::try::do_catch<std::panic::AssertUnwindSafe<closure-0>,isize>
  38:     0x7ff7eb25c383 - std::panicking::try<isize,std::panic::AssertUnwindSafe<closure-0>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:337
  39:     0x7ff7eb270c0e - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure-0>,isize>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:379
  40:     0x7ff7eb278bf3 - winit::platform_impl::platform::event_loop::runner::EventLoopRunner<tuple<>>::catch_unwind<tuple<>,isize,closure-0>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop\runner.rs:152
  41:     0x7ff7eb28f90f - winit::platform_impl::platform::event_loop::public_window_callback<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop.rs:1909
  42:     0x7ff81995b762 - DefSubclassProc
  43:     0x7ff81995b625 - DefSubclassProc
  44:     0x7ff831025c1d - CallWindowProcW
  45:     0x7ff8310257ec - DispatchMessageW
  46:     0x7ff831031f83 - IsWindowVisible
  47:     0x7ff832b00464 - KiUserCallbackDispatcher
  48:     0x7ff82fb31764 - NtUserDispatchMessage
  49:     0x7ff8310256fc - DispatchMessageW
  50:     0x7ff7eb28f2d9 - winit::platform_impl::platform::event_loop::EventLoop<tuple<>>::run_return<tuple<>,closure-0>                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop.rs:218
  51:     0x7ff7eb28f686 - winit::platform_impl::platform::event_loop::EventLoop<tuple<>>::run<tuple<>,closure-0>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop.rs:188
  52:     0x7ff7eb25c29d - winit::event_loop::EventLoop<tuple<>>::run<tuple<>,closure-0>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\event_loop.rs:154
  53:     0x7ff7eb2627d5 - texture_arrays::framework::start<texture_arrays::Example>
                               at C:\Users\connor\Programming\wgpu-rs\examples\framework.rs:247
  54:     0x7ff7eb26344a - texture_arrays::framework::run<texture_arrays::Example>
                               at C:\Users\connor\Programming\wgpu-rs\examples\framework.rs:324
  55:     0x7ff7eb25f058 - texture_arrays::main
                               at C:\Users\connor\Programming\wgpu-rs\examples\texture-arrays\main.rs:344
  56:     0x7ff7eb29739b - core::ops::function::FnOnce::call_once<fn(),tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs:227
  57:     0x7ff7eb2a10db - std::sys_common::backtrace::__rust_begin_short_backtrace<fn(),tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys_common\backtrace.rs:137
  58:     0x7ff7eb296a01 - std::rt::lang_start::{{closure}}<tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs:66
  59:     0x7ff7ec02d496 - core::ops::function::impls::{{impl}}::call_once
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\library\core\src\ops\function.rs:280
  60:     0x7ff7ec02d496 - std::panicking::try::do_call
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:373
  61:     0x7ff7ec02d496 - std::panicking::try
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:337
  62:     0x7ff7ec02d496 - std::panic::catch_unwind
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panic.rs:379
  63:     0x7ff7ec02d496 - std::rt::lang_start_internal
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\rt.rs:51
  64:     0x7ff7eb2969d3 - std::rt::lang_start<tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs:65
  65:     0x7ff7eb25f080 - main
  66:     0x7ff7ec295380 - invoke_main
                               at d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
  67:     0x7ff7ec295380 - __scrt_common_main_seh
                               at d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
  68:     0x7ff830d17c24 - BaseThreadInitThunk
  69:     0x7ff832acd4d1 - RtlUserThreadStart
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: Allocator dropped before all sets were deallocated', C:\Users\connor\.cargo\git\checkouts\gpu-descriptor-a05b99db0270c787\831460c\gpu-descriptor\src\allocator.rs:117:9
stack backtrace:
   0:     0x7ff7ec0298b9 - std::backtrace_rs::backtrace::dbghelp::trace
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\..\..\backtrace\src\backtrace\dbghelp.rs:98
   1:     0x7ff7ec0298b9 - std::backtrace_rs::backtrace::trace_unsynchronized
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
   2:     0x7ff7ec0298b9 - std::sys_common::backtrace::_print_fmt
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\sys_common\backtrace.rs:79
   3:     0x7ff7ec0298b9 - std::sys_common::backtrace::_print::{{impl}}::fmt
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\sys_common\backtrace.rs:58
   4:     0x7ff7ec03fd9b - core::fmt::write
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\core\src\fmt\mod.rs:1082
   5:     0x7ff7ec0269c4 - std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\io\mod.rs:1514
   6:     0x7ff7ec02c99b - std::sys_common::backtrace::_print
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\sys_common\backtrace.rs:61
   7:     0x7ff7ec02c99b - std::sys_common::backtrace::print
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\sys_common\backtrace.rs:48
   8:     0x7ff7ec02c99b - std::panicking::default_hook::{{closure}}
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:200
   9:     0x7ff7ec02c5d9 - std::panicking::default_hook
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:219
  10:     0x7ff7ec02d17f - std::panicking::rust_panic_with_hook
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:569
  11:     0x7ff7ec02cce5 - std::panicking::begin_panic_handler::{{closure}}
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:476
  12:     0x7ff7ec02a16f - std::sys_common::backtrace::__rust_end_short_backtrace<closure-0,!>
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\sys_common\backtrace.rs:153
  13:     0x7ff7ec02cc99 - std::panicking::begin_panic_handler
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:475
  14:     0x7ff7ec02cc4c - std::panicking::begin_panic_fmt
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:429
  15:     0x7ff7eb4d6e5c - gpu_descriptor::allocator::{{impl}}::drop<gfx_backend_dx12::resource::DescriptorPool>
                               at C:\Users\connor\.cargo\git\checkouts\gpu-descriptor-a05b99db0270c787\831460c\gpu-descriptor\src\allocator.rs:117
  16:     0x7ff7eb49f36f - core::ptr::drop_in_place<gpu_descriptor::allocator::DescriptorBucket<gfx_backend_dx12::resource::DescriptorPool>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  17:     0x7ff7eb4ad135 - core::ptr::drop_in_place<tuple<tuple<gpu_descriptor_types::types::DescriptorTotalCount, bool>, gpu_descriptor::allocator::DescriptorBucket<gfx_backend_dx12::resource::DescriptorPool>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  18:     0x7ff7eb97dfbe - core::ptr::mut_ptr::{{impl}}::drop_in_place<tuple<tuple<gpu_descriptor_types::types::DescriptorTotalCount, bool>, gpu_descriptor::allocator::DescriptorBucket<gfx_backend_dx12::resource::DescriptorPool>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mut_ptr.rs:963
  19:     0x7ff7eb8e055d - hashbrown::raw::inner::Bucket<tuple<tuple<gpu_descriptor_types::types::DescriptorTotalCount, bool>, gpu_descriptor::allocator::DescriptorBucket<gfx_backend_dx12::resource::DescriptorPool>>>::drop<tuple<tuple<gpu_descriptor_types::types::DescriptorTotalCou
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\hashbrown-0.9.1\src\raw\mod.rs:334
  20:     0x7ff7eb4d410d - hashbrown::raw::inner::{{impl}}::drop<tuple<tuple<gpu_descriptor_types::types::DescriptorTotalCount, bool>, gpu_descriptor::allocator::DescriptorBucket<gfx_backend_dx12::resource::DescriptorPool>>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\hashbrown-0.9.1\src\raw\mod.rs:1387
  21:     0x7ff7eb4aea4e - core::ptr::drop_in_place<hashbrown::raw::inner::RawTable<tuple<tuple<gpu_descriptor_types::types::DescriptorTotalCount, bool>, gpu_descriptor::allocator::DescriptorBucket<gfx_backend_dx12::resource::DescriptorPool>>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  22:     0x7ff7eb4a55a5 - core::ptr::drop_in_place<hashbrown::map::HashMap<tuple<gpu_descriptor_types::types::DescriptorTotalCount, bool>, gpu_descriptor::allocator::DescriptorBucket<gfx_backend_dx12::resource::DescriptorPool>, ahash::random_state::RandomState>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  23:     0x7ff7eb4a65c5 - core::ptr::drop_in_place<gpu_descriptor::allocator::DescriptorAllocator<gfx_backend_dx12::resource::DescriptorPool, gfx_backend_dx12::resource::DescriptorSet>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  24:     0x7ff7eb4b9dfe - core::ptr::drop_in_place<wgpu_core::device::descriptor::DescriptorAllocator<gfx_backend_dx12::Backend>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  25:     0x7ff7eb49cbee - core::ptr::drop_in_place<core::cell::UnsafeCell<wgpu_core::device::descriptor::DescriptorAllocator<gfx_backend_dx12::Backend>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  26:     0x7ff7eb4a71e5 - core::ptr::drop_in_place<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu_core::device::descriptor::DescriptorAllocator<gfx_backend_dx12::Backend>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  27:     0x7ff7eb4babe7 - core::ptr::drop_in_place<wgpu_core::device::Device<gfx_backend_dx12::Backend>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  28:     0x7ff7eb4a92d3 - core::ptr::drop_in_place<wgpu_core::hub::Element<wgpu_core::device::Device<gfx_backend_dx12::Backend>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  29:     0x7ff7eb49d98f - core::ptr::drop_in_place<slice<wgpu_core::hub::Element<wgpu_core::device::Device<gfx_backend_dx12::Backend>>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  30:     0x7ff7eb4c0cc4 - alloc::vec::{{impl}}::drop<wgpu_core::hub::Element<wgpu_core::device::Device<gfx_backend_dx12::Backend>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\vec.rs:2447
  31:     0x7ff7eb4bc3df - core::ptr::drop_in_place<alloc::vec::Vec<wgpu_core::hub::Element<wgpu_core::device::Device<gfx_backend_dx12::Backend>>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  32:     0x7ff7eb49babe - core::ptr::drop_in_place<wgpu_core::hub::Storage<wgpu_core::device::Device<gfx_backend_dx12::Backend>, wgpu_core::id::Id<wgpu_core::device::Device<gfx_backend_empty::Backend>>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  33:     0x7ff7eb4ba4ee - core::ptr::drop_in_place<core::cell::UnsafeCell<wgpu_core::hub::Storage<wgpu_core::device::Device<gfx_backend_dx12::Backend>, wgpu_core::id::Id<wgpu_core::device::Device<gfx_backend_empty::Backend>>>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  34:     0x7ff7eb4b3515 - core::ptr::drop_in_place<lock_api::rwlock::RwLock<parking_lot::raw_rwlock::RawRwLock, wgpu_core::hub::Storage<wgpu_core::device::Device<gfx_backend_dx12::Backend>, wgpu_core::id::Id<wgpu_core::device::Device<gfx_backend_empty::Backend>>>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  35:     0x7ff7eb49bb43 - core::ptr::drop_in_place<wgpu_core::hub::Registry<wgpu_core::device::Device<gfx_backend_dx12::Backend>, wgpu_core::id::Id<wgpu_core::device::Device<gfx_backend_empty::Backend>>, wgpu_core::hub::IdentityManagerFactory>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  36:     0x7ff7eb4aacad - core::ptr::drop_in_place<wgpu_core::hub::Hub<gfx_backend_dx12::Backend, wgpu_core::hub::IdentityManagerFactory>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  37:     0x7ff7eb4b583c - core::ptr::drop_in_place<wgpu_core::hub::Hubs<wgpu_core::hub::IdentityManagerFactory>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  38:     0x7ff7eb49ac53 - core::ptr::drop_in_place<wgpu_core::hub::Global<wgpu_core::hub::IdentityManagerFactory>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  39:     0x7ff7eb49b35d - core::ptr::drop_in_place<wgpu::backend::direct::Context>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  40:     0x7ff7eb4d9c62 - alloc::sync::Arc<wgpu::backend::direct::Context>::drop_slow<wgpu::backend::direct::Context>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\sync.rs:934
  41:     0x7ff7eb4c17e5 - alloc::sync::{{impl}}::drop<wgpu::backend::direct::Context>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\sync.rs:1454
  42:     0x7ff7eb4a631e - core::ptr::drop_in_place<alloc::sync::Arc<wgpu::backend::direct::Context>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  43:     0x7ff7eb29811e - core::ptr::drop_in_place<wgpu::SwapChain>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  44:     0x7ff7eb29947f - core::ptr::drop_in_place<closure-0>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  45:     0x7ff7eb297ffe - core::ptr::drop_in_place<closure-0>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  46:     0x7ff7ebfa38a9 - core::ptr::drop_in_place<alloc::boxed::Box<FnMut<tuple<winit::event::Event<tuple<>>, mut winit::event_loop::ControlFlow*>>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:184
  47:     0x7ff7ebfccb6c - winit::platform_impl::platform::event_loop::runner::{{impl}}::call_event_handler::{{closure}}<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop\runner.rs:252
  48:     0x7ff817101030 - <unknown>
  49:     0x7ff817104a52 - is_exception_typeof
  50:     0x7ff81710e7a4 - _C_specific_handler
  51:     0x7ff817103cc8 - is_exception_typeof
  52:     0x7ff81710f0d1 - _CxxFrameHandler3
  53:     0x7ff832b018cf - _chkstk
  54:     0x7ff832a7d9b2 - RtlUnwindEx
  55:     0x7ff81710ec62 - _C_specific_handler
  56:     0x7ff817102955 - is_exception_typeof
  57:     0x7ff817102d81 - is_exception_typeof
  58:     0x7ff817103dc4 - is_exception_typeof
  59:     0x7ff81710f0d1 - _CxxFrameHandler3
  60:     0x7ff832b0184f - _chkstk
  61:     0x7ff832aca889 - RtlRaiseException
  62:     0x7ff832aca643 - RtlRaiseException
  63:     0x7ff82fd23b29 - RaiseException
  64:     0x7ff817106220 - CxxThrowException
  65:     0x7ff7ec031531 - panic_unwind::real_imp::panic
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\panic_unwind\src\seh.rs:315
  66:     0x7ff7ec0314b9 - panic_unwind::__rust_start_panic
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\panic_unwind\src\lib.rs:109
  67:     0x7ff7ec02d368 - std::panicking::rust_panic
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:618
  68:     0x7ff7ec02d239 - std::panicking::rust_panic_with_hook
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:588
  69:     0x7ff7ebecad91 - std::panicking::begin_panic::{{closure}}<str*>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:498
  70:     0x7ff7ebec9d5f - std::sys_common::backtrace::__rust_end_short_backtrace<closure-0,!>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys_common\backtrace.rs:153
  71:     0x7ff7ebecacc7 - std::panicking::begin_panic<str*>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:497
  72:     0x7ff7ebecbbf8 - d3d12::com::{{impl}}::deref<winapi::um::d3d12::ID3D12GraphicsCommandList>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\d3d12-0.3.2\src\com.rs:75
  73:     0x7ff7ebe3e824 - gfx_backend_dx12::device::{{impl}}::set_command_buffer_name
                               at C:\Users\connor\.cargo\git\checkouts\gfx-e86e7f3ebdbc4218\1d14789\src\backend\dx12\src\device.rs:3638
  74:     0x7ff7eb62d4ca - wgpu_core::hub::Global<wgpu_core::hub::IdentityManagerFactory>::device_create_command_encoder<wgpu_core::hub::IdentityManagerFactory,gfx_backend_dx12::Backend>
                               at C:\Users\connor\.cargo\git\checkouts\wgpu-53e70f8674b08dd4\2d87fd9\wgpu-core\src\device\mod.rs:3353
  75:     0x7ff7eb8a459b - wgpu::backend::direct::{{impl}}::device_create_command_encoder
                               at C:\Users\connor\Programming\wgpu-rs\src\backend\direct.rs:1097
  76:     0x7ff7eb5086a6 - wgpu::Device::create_command_encoder
                               at C:\Users\connor\Programming\wgpu-rs\src\lib.rs:1428
  77:     0x7ff7eb26fb20 - texture_arrays::{{impl}}::render<futures_executor::local_pool::LocalSpawner>
                               at C:\Users\connor\Programming\wgpu-rs\examples\texture-arrays\main.rs:308
  78:     0x7ff7eb263256 - texture_arrays::framework::start::{{closure}}<texture_arrays::Example>
                               at C:\Users\connor\Programming\wgpu-rs\examples\framework.rs:314
  79:     0x7ff7eb28f608 - winit::platform_impl::platform::event_loop::{{impl}}::run_return::{{closure}}<tuple<>,closure-0>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop.rs:203
  80:     0x7ff7ebfdde03 - alloc::boxed::{{impl}}::call_mut<tuple<winit::event::Event<tuple<>>, mut winit::event_loop::ControlFlow*>,FnMut<tuple<winit::event::Event<tuple<>>, mut winit::event_loop::ControlFlow*>>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\boxed.rs:1049
  81:     0x7ff7ebfcc9fb - winit::platform_impl::platform::event_loop::runner::{{impl}}::call_event_handler::{{closure}}<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop\runner.rs:245
  82:     0x7ff7ebfc02f6 - std::panic::{{impl}}::call_once<tuple<>,closure-0>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:308
  83:     0x7ff7ebfdbb00 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure-0>,tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:373
  84:     0x7ff7ebfe0887 - winit::platform_impl::platform::window::TASKBAR_LIST::__getit
  85:     0x7ff7ebfdb8ea - std::panicking::try<tuple<>,std::panic::AssertUnwindSafe<closure-0>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:337
  86:     0x7ff7ebfc0336 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure-0>,tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:379
  87:     0x7ff7ebfcbe39 - winit::platform_impl::platform::event_loop::runner::EventLoopRunner<tuple<>>::catch_unwind<tuple<>,tuple<>,closure-0>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop\runner.rs:152
  88:     0x7ff7ebfcc791 - winit::platform_impl::platform::event_loop::runner::EventLoopRunner<tuple<>>::call_event_handler<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop\runner.rs:239
  89:     0x7ff7ebfcc527 - winit::platform_impl::platform::event_loop::runner::EventLoopRunner<tuple<>>::send_event<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop\runner.rs:210
  90:     0x7ff7eb28f75a - winit::platform_impl::platform::event_loop::SubclassInput<tuple<>>::send_event<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop.rs:93
  91:     0x7ff7eb290102 - winit::platform_impl::platform::event_loop::public_window_callback::{{closure}}<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop.rs:832
  92:     0x7ff7eb2974c7 - core::ops::function::FnOnce::call_once<closure-0,tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs:227
  93:     0x7ff7eb270bb3 - std::panic::{{impl}}::call_once<isize,closure-0>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:308
  94:     0x7ff7eb25c48e - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure-0>,isize>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:373
  95:     0x7ff7eb25c597 - std::panicking::try::do_catch<std::panic::AssertUnwindSafe<closure-0>,isize>
  96:     0x7ff7eb25c383 - std::panicking::try<isize,std::panic::AssertUnwindSafe<closure-0>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:337
  97:     0x7ff7eb270c0e - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure-0>,isize>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panic.rs:379
  98:     0x7ff7eb278bf3 - winit::platform_impl::platform::event_loop::runner::EventLoopRunner<tuple<>>::catch_unwind<tuple<>,isize,closure-0>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop\runner.rs:152
  99:     0x7ff7eb28f90f - winit::platform_impl::platform::event_loop::public_window_callback<tuple<>>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop.rs:1909
 100:     0x7ff81995b762 - DefSubclassProc
 101:     0x7ff81995b625 - DefSubclassProc
 102:     0x7ff831025c1d - CallWindowProcW
 103:     0x7ff8310257ec - DispatchMessageW
 104:     0x7ff831031f83 - IsWindowVisible
 105:     0x7ff832b00464 - KiUserCallbackDispatcher
 106:     0x7ff82fb31764 - NtUserDispatchMessage
 107:     0x7ff8310256fc - DispatchMessageW
 108:     0x7ff7eb28f2d9 - winit::platform_impl::platform::event_loop::EventLoop<tuple<>>::run_return<tuple<>,closure-0>                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop.rs:218
 109:     0x7ff7eb28f686 - winit::platform_impl::platform::event_loop::EventLoop<tuple<>>::run<tuple<>,closure-0>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\platform_impl\windows\event_loop.rs:188
 110:     0x7ff7eb25c29d - winit::event_loop::EventLoop<tuple<>>::run<tuple<>,closure-0>
                               at C:\Users\connor\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.23.0\src\event_loop.rs:154
 111:     0x7ff7eb2627d5 - texture_arrays::framework::start<texture_arrays::Example>
                               at C:\Users\connor\Programming\wgpu-rs\examples\framework.rs:247
 112:     0x7ff7eb26344a - texture_arrays::framework::run<texture_arrays::Example>
                               at C:\Users\connor\Programming\wgpu-rs\examples\framework.rs:324
 113:     0x7ff7eb25f058 - texture_arrays::main
                               at C:\Users\connor\Programming\wgpu-rs\examples\texture-arrays\main.rs:344
 114:     0x7ff7eb29739b - core::ops::function::FnOnce::call_once<fn(),tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs:227
 115:     0x7ff7eb2a10db - std::sys_common::backtrace::__rust_begin_short_backtrace<fn(),tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys_common\backtrace.rs:137
 116:     0x7ff7eb296a01 - std::rt::lang_start::{{closure}}<tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs:66
 117:     0x7ff7ec02d496 - core::ops::function::impls::{{impl}}::call_once
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\library\core\src\ops\function.rs:280
 118:     0x7ff7ec02d496 - std::panicking::try::do_call
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:373
 119:     0x7ff7ec02d496 - std::panicking::try
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panicking.rs:337
 120:     0x7ff7ec02d496 - std::panic::catch_unwind
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\panic.rs:379
 121:     0x7ff7ec02d496 - std::rt::lang_start_internal
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39\/library\std\src\rt.rs:51
 122:     0x7ff7eb2969d3 - std::rt::lang_start<tuple<>>
                               at C:\Users\connor\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs:65
 123:     0x7ff7eb25f080 - main
 124:     0x7ff7ec295380 - invoke_main
                               at d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
 125:     0x7ff7ec295380 - __scrt_common_main_seh
                               at d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
 126:     0x7ff830d17c24 - BaseThreadInitThunk
 127:     0x7ff832acd4d1 - RtlUserThreadStart
thread panicked while panicking. aborting.

cube/dx11

Missing outline, possibly missing feature not being exposed/hooked up.

all/dx11

Clicking the close button on the window results in exit code 2173 according to powershell.

msaa-line/dx11

Open application, click right arrow once, program crashes with exit code 0xc000041d

shadow/dx11

Is still blank, see #1058.

water/dx11

Water is also blank, likely something up with having multiple renderpasses.

@cwfitzgerald cwfitzgerald added type: bug Something isn't working external: upstream Issues happening in lower level APIs or platforms labels Dec 1, 2020
@Systemcluster
Copy link
Contributor

Systemcluster commented Dec 2, 2020

?/all

On swapchain creation, the program might crash with exit code 0xc000041d after resizing the window with the Vulkan or DX12 backend. With the DX11 backend, it panics with failed to configure swap chain on creation: Failed to create or configure swapchain: Window is in use.

Minimal example here: https://github.com/Systemcluster/wgpu-bug-crash-on-resize

Traces: https://github.com/Systemcluster/wgpu-bug-crash-on-resize/tree/master/trace

It also produces validation errors as reported in gfx-rs/wgpu-rs/issues/507

?/vk

Next to the VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216 validation error already listed, I get a couple of the following validation errors when rendering shortly after swapchain creation:

VALIDATION [UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout (1303270965)] : Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x1f88d665188, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | Submitted command buffer expects VkImage 0xe81828000000000d[] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_PRESENT_SRC_KHR--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED.
object info: (type: COMMAND_BUFFER, hndl: 2167035810184)

Example here: https://github.com/Systemcluster/wgpu-bug-validation-errors

Trace: https://github.com/Systemcluster/wgpu-bug-validation-errors/tree/master/trace

bors bot added a commit to gfx-rs/gfx that referenced this issue Dec 2, 2020
3500: [vk] fix viewport/scissor count validation error r=kvark a=kvark

Fixes this VU reported in gfx-rs/wgpu#1059 :
> [0.375320 ERROR]()(no module):
VALIDATION [VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216 (-376016417)] : Validation Error: [ VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216 ] Object 0: handle = 0x2d93dbcf100, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xe99671df | vkCreateGraphicsPipelines: The VkPhysicalDeviceFeatures::multiViewport feature is disabled, but pCreateInfos[0].pViewportState->viewportCount (=0) is not 1. The Vulkan spec states: If the multiple viewports feature is not enabled, viewportCount must be 1 (https://vulkan.lunarg.com/doc/view/1.2.141.0/windows/1.2-extensions/vkspec.html#VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216)
object info: (type: DEVICE, hndl: 3132066951424)

PR checklist:
- [x] `make` succeeds (on *nix)
- [ ] `make reftests` succeeds
- [x] tested on wgpu-rs examples


Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
@kvark
Copy link
Member

kvark commented Dec 2, 2020

The viewport/scissor warning is getting fixed in gfx-rs/gfx#3500
Edit: and @yzsolt is addressing the dx12 panics in gfx-rs/gfx#3499

@yzsolt
Copy link
Contributor

yzsolt commented Dec 2, 2020

all/dx12

The examples leak memory heavily under DX12, 10-20 MB/sec, depending on the framerate. Reproduced on both AMD and NVidia hardware, so it's not a vendor/driver issue. Windows Task Manager shows a similar memory growth in the GPU Shared Memory graph.
I've already encountered this before when implementing gfx-rs/gfx#3491, with a slightly modified quad gfx example.

@kvark
Copy link
Member

kvark commented Dec 3, 2020

The only relevant issue we have on DX12 is gfx-rs/gfx#2556, and it's about texture updates, and it's quite old (could not be the case any more). Please file an issue about the memory leak you are seeing, and put everything you know into it.

bors bot added a commit to gfx-rs/gfx that referenced this issue Dec 3, 2020
3499: [dx12] Fix `set_command_buffer_name` r=kvark a=yzsolt

`CommandBuffer.raw` is null when the command buffer is not recording, so
we have to store the name and set it later in `CommandBuffer::begin`.

Fixes water and texture-arrays `wgpu-rs` examples: gfx-rs/wgpu#1059
PR checklist:
- [ ] `make` succeeds (on *nix) - not applicable
- [x] `make reftests` succeeds
- [x] tested examples with the following backends: water and texture-arrays from wgpu-rs with dx12 backend


Co-authored-by: Zsolt Bölöny <bolony.zsolt@gmail.com>
@cwfitzgerald cwfitzgerald added this to the Version 0.7 milestone Dec 17, 2020
bors bot added a commit to gfx-rs/gfx that referenced this issue Dec 21, 2020
3548: Fixes Regretions from 0.6 to Master r=kvark a=cwfitzgerald

This PR plus the gpu-alloc fixes all the DX11 specific issues in gfx-rs/wgpu#1059.

These are all refcount issues, one was a double free of images, the other was some resources not being freed on the swapchain.

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
bors bot added a commit that referenced this issue Dec 27, 2020
1101: Bump gfx-hal and gpu-alloc r=kvark a=cwfitzgerald

**Connections**

Absorbs zakarumych/gpu-alloc#31 and gfx-rs/gfx#3548 (comment)

**Description**

This fixes the last of the DX11 issues listed in #1059.

**Testing**

Various examples ran.


Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
@cwfitzgerald
Copy link
Member Author

All issues in the original post have been solved at the current point.

@Systemcluster can you retest to see if things are still an issue with current master whenever you get a chance?

@Systemcluster
Copy link
Contributor

@cwfitzgerald Sure! Both issues still apply with the current wgpu-rs master, though as I understand wgpu-rs is still using the wgpu-core revision from dec. 18, so I'd have to check again following an update.

@Systemcluster
Copy link
Contributor

@cwfitzgerald With the most recent master, the crash after resizing seems to only occur with the DX12 backend. The validation errors on Vulkan still appear. However, this might not be related to the gfx update after all, and is already tracked in gfx-rs/wgpu-rs/issues/507.

The validation errors in the second issue still appear as well. Is there any additional information I can supply there?

@kvark
Copy link
Member

kvark commented Jan 10, 2021

You don't need to wait for https://github.com/gfx-rs/wgpu-rs/issues/507#issuecomment-674353159 to be fixed. Instead, just don't skip the frame: always have at least a dummy pass that clears it.
I'm a bit unclear about which validation errors you are still seeing, and on what wgpu-rs revisions.

@cwfitzgerald
Copy link
Member Author

With the original bugs cleared, for sake of ease of tracking and clarity, I'm going to close this issue. @Systemcluster could you refile the issues you are having as new issues,and we'll take it from there.

@Systemcluster
Copy link
Contributor

Systemcluster commented Jan 10, 2021

I'm a bit unclear about which validation errors you are still seeing, and on what wgpu-rs revisions.

Specifically I was referring to UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout. I'm on the most recent commit from the wgpu-rs master branch. Looking through the existing issues again, I see now that this one has already been mentioned in gfx-rs/wgpu-rs/pull/567, so it seems to be a known issue and unrelated to the gfx update as well. Apologies for the mixup there!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
external: upstream Issues happening in lower level APIs or platforms type: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants