rendy icon indicating copy to clipboard operation
rendy copied to clipboard

Triangle example crashes with failed assertion (dx12)

Open bgourlie opened this issue 6 years ago • 1 comments

Windows 10 build 1809 (64-bit) Intel Iris Plus Graphics 640

cargo run --example triangle --features dx12 fails with the following stacktrace:

WARN 2019-04-05T01:35:04Z: rendy_factory::factory: Slow safety checks are enabled! Disable them in production by enabling the 'no-slow-safety-checks' feature!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `Secondary`,
 right: `Primary`', C:\Users\bgour\.cargo\registry\src\github.com-1ecc6299db9ec823\gfx-backend-dx12-0.1.1\src\pool.rs:91:9
stack backtrace:
   0: std::sys::windows::backtrace::set_frames
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\sys\windows\backtrace\mod.rs:94
   1: std::sys::windows::backtrace::unwind_backtrace
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\sys\windows\backtrace\mod.rs:81
   2: std::sys_common::backtrace::_print
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\sys_common\backtrace.rs:70
   3: std::sys_common::backtrace::print
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\sys_common\backtrace.rs:58
   4: std::panicking::default_hook::{{closure}}
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panicking.rs:200
   5: std::panicking::default_hook
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panicking.rs:215
   6: std::panicking::rust_panic_with_hook
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panicking.rs:478
   7: std::panicking::continue_panic_fmt
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panicking.rs:385
   8: std::panicking::begin_panic_fmt
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panicking.rs:340
   9: gfx_backend_dx12::pool::{{impl}}::allocate_one
             at C:\Users\bgour\.cargo\registry\src\github.com-1ecc6299db9ec823\gfx-backend-dx12-0.1.1\src\pool.rs:91
  10: gfx_hal::pool::RawCommandPool::allocate_vec::{{closure}}<gfx_backend_dx12::pool::RawCommandPool,gfx_backend_dx12::Backend>
             at C:\Users\bgour\.cargo\registry\src\github.com-1ecc6299db9ec823\gfx-hal-0.1.0\src\pool.rs:38
  11: core::iter::{{impl}}::fold::{{closure}}<gfx_backend_dx12::command::CommandBuffer,core::ops::range::Range<usize>,closure,(),closure>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\mod.rs:1447
  12: core::iter::iterator::Iterator::fold::{{closure}}<core::ops::range::Range<usize>,(),closure>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\iterator.rs:1687
  13: core::iter::iterator::Iterator::try_fold<core::ops::range::Range<usize>,(),closure,core::result::Result<(), !>>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\iterator.rs:1575
  14: core::iter::iterator::Iterator::fold<core::ops::range::Range<usize>,(),closure>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\iterator.rs:1687
  15: core::iter::{{impl}}::fold<gfx_backend_dx12::command::CommandBuffer,core::ops::range::Range<usize>,closure,(),closure>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\mod.rs:1447
  16: core::iter::iterator::Iterator::for_each<core::iter::Map<core::ops::range::Range<usize>, closure>,closure>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\iterator.rs:606
  17: alloc::vec::{{impl}}::spec_extend<gfx_backend_dx12::command::CommandBuffer,core::iter::Map<core::ops::range::Range<usize>, closure>>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\liballoc\vec.rs:1856
  18: alloc::vec::{{impl}}::from_iter<gfx_backend_dx12::command::CommandBuffer,core::iter::Map<core::ops::range::Range<usize>, closure>>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\liballoc\vec.rs:1839
  19: alloc::vec::{{impl}}::from_iter<gfx_backend_dx12::command::CommandBuffer,core::iter::Map<core::ops::range::Range<usize>, closure>>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\liballoc\vec.rs:1725
  20: core::iter::iterator::Iterator::collect<core::iter::Map<core::ops::range::Range<usize>, closure>,alloc::vec::Vec<gfx_backend_dx12::command::CommandBuffer>>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\iterator.rs:1468
  21: gfx_hal::pool::RawCommandPool::allocate_vec<gfx_backend_dx12::pool::RawCommandPool,gfx_backend_dx12::Backend>
             at C:\Users\bgour\.cargo\registry\src\github.com-1ecc6299db9ec823\gfx-hal-0.1.0\src\pool.rs:38
  22: rendy_command::pool::CommandPool<gfx_backend_dx12::Backend, rendy_command::capability::Graphics, rendy_command::buffer::reset::IndividualReset>::allocate_buffers<gfx_backend_dx12::Backend,rendy_command::capability::Graphics,rendy_command::buffer::reset::IndividualReset,rendy_command::buffer::level::SecondaryLevel>
             at C:\Users\bgour\Repos\rendy\command\src\pool.rs:54
  23: rendy_graph::node::render::pass::{{impl}}::build<gfx_backend_dx12::Backend,()>
             at C:\Users\bgour\Repos\rendy\graph\src\node\render\pass.rs:460
  24: rendy_graph::graph::build_node<gfx_backend_dx12::Backend,()>
             at C:\Users\bgour\Repos\rendy\graph\src\graph\mod.rs:507
  25: rendy_graph::graph::GraphBuilder<gfx_backend_dx12::Backend, ()>::build<gfx_backend_dx12::Backend,()>
             at C:\Users\bgour\Repos\rendy\graph\src\graph\mod.rs:383
  26: triangle::main
             at .\examples\triangle\main.rs:278
  27: std::rt::lang_start::{{closure}}<()>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libstd\rt.rs:64
  28: std::rt::lang_start_internal::{{closure}}
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\rt.rs:49
  29: std::panicking::try::do_call<closure,i32>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panicking.rs:297
  30: panic_unwind::__rust_maybe_catch_panic
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libpanic_unwind\lib.rs:92
  31: std::panicking::try
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panicking.rs:276
  32: std::panic::catch_unwind
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panic.rs:388
  33: std::rt::lang_start_internal
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\rt.rs:48
  34: std::rt::lang_start<()>
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libstd\rt.rs:64
  35: main
  36: invoke_main
             at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
  37: __scrt_common_main_seh
             at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
  38: BaseThreadInitThunk
  39: RtlUserThreadStart
ERROR 2019-04-05T01:35:05Z: relevant: Values of this type can't be dropped!. Trace: stack backtrace:
   0: backtrace::backtrace::trace_unsynchronized<closure> (0x7ff79af9ce42)
             at C:\Users\bgour\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.14\src\backtrace\mod.rs:57
   1: backtrace::capture::Backtrace::create (0x7ff79af8d4a3)
             at C:\Users\bgour\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.14\src\capture.rs:105
   2: backtrace::capture::Backtrace::new (0x7ff79af8d334)
             at C:\Users\bgour\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.14\src\capture.rs:72
   3: relevant::whine (0x7ff79af5be41)
             at C:\Users\bgour\.cargo\registry\src\github.com-1ecc6299db9ec823\relevant-0.4.0\src\lib.rs:72
   4: relevant::{{impl}}::drop (0x7ff79af5bdbe)
             at C:\Users\bgour\.cargo\registry\src\github.com-1ecc6299db9ec823\relevant-0.4.0\src\lib.rs:41
   5: core::ptr::real_drop_in_place<relevant::Relevant> (0x7ff79aa7c4a3)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\ptr.rs:193
   6: core::ptr::real_drop_in_place<rendy_command::pool::CommandPool<gfx_backend_dx12::Backend, rendy_command::capability::Graphics, rendy_command::buffer::reset::IndividualReset>> (0x7ff79aa79cad)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\ptr.rs:193
   7: rendy_graph::node::render::pass::{{impl}}::build<gfx_backend_dx12::Backend,()> (0x7ff79ab8f1d5)
             at C:\Users\bgour\Repos\rendy\graph\src\node\render\pass.rs:586
   8: _C_specific_handler (0x7ffef376c0b0)
   9: _TypeMatch (0x7ffef3761d6e)
  10: _unDNameEx (0x7ffef376b7fb)
  11: _BuildCatchObject (0x7ffef37623e3)
  12: _CxxFrameHandler3 (0x7ffef376b882)
  13: _chkstk (0x7fff0bf2470f)
  14: RtlUnwindEx (0x7fff0be8600c)
  15: FindAndUnlinkFrame (0x7ffef376bbd1)
  16: _BuildCatchObject (0x7ffef3762f61)
  17: _BuildCatchObject (0x7ffef3762ce9)
  18: _BuildCatchObject (0x7ffef37624de)
  19: _CxxFrameHandler3 (0x7ffef376b882)
  20: _chkstk (0x7fff0bf2468f)
  21: RtlWalkFrameChain (0x7fff0be84bef)
  22: RtlRaiseException (0x7fff0be889e6)
  23: RaiseException (0x7fff08c19149)
  24: CxxThrowException (0x7ffef37642cd)
  25: panic_unwind::__rust_start_panic (0x7ff79afc04d8)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libpanic_unwind\lib.rs:109
  26: std::panicking::rust_panic (0x7ff79afbd128)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panicking.rs:527
  27: std::panicking::rust_panic_with_hook (0x7ff79afbcffe)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panicking.rs:498
  28: std::panicking::continue_panic_fmt (0x7ff79afbca84)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panicking.rs:385
  29: std::panicking::begin_panic_fmt (0x7ff79afbc9d2)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panicking.rs:340
  30: gfx_backend_dx12::pool::{{impl}}::allocate_one (0x7ff79ae263aa)
             at C:\Users\bgour\.cargo\registry\src\github.com-1ecc6299db9ec823\gfx-backend-dx12-0.1.1\src\pool.rs:91
  31: gfx_hal::pool::RawCommandPool::allocate_vec::{{closure}}<gfx_backend_dx12::pool::RawCommandPool,gfx_backend_dx12::Backend> (0x7ff79aadb0d9)
             at C:\Users\bgour\.cargo\registry\src\github.com-1ecc6299db9ec823\gfx-hal-0.1.0\src\pool.rs:38
  32: core::iter::{{impl}}::fold::{{closure}}<gfx_backend_dx12::command::CommandBuffer,core::ops::range::Range<usize>,closure,(),closure> (0x7ff79a9fc1a8)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\mod.rs:1447
  33: core::iter::iterator::Iterator::fold::{{closure}}<core::ops::range::Range<usize>,(),closure> (0x7ff79aa17c57)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\iterator.rs:1687
  34: core::iter::iterator::Iterator::try_fold<core::ops::range::Range<usize>,(),closure,core::result::Result<(), !>> (0x7ff79ab85568)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\iterator.rs:1575
  35: core::iter::iterator::Iterator::fold<core::ops::range::Range<usize>,(),closure> (0x7ff79ab85150)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\iterator.rs:1687
  36: core::iter::{{impl}}::fold<gfx_backend_dx12::command::CommandBuffer,core::ops::range::Range<usize>,closure,(),closure> (0x7ff79a9fb502)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\mod.rs:1448
  37: core::iter::iterator::Iterator::for_each<core::iter::Map<core::ops::range::Range<usize>, closure>,closure> (0x7ff79a9f41b0)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\iterator.rs:607
  38: alloc::vec::{{impl}}::spec_extend<gfx_backend_dx12::command::CommandBuffer,core::iter::Map<core::ops::range::Range<usize>, closure>> (0x7ff79a9b0224)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\liballoc\vec.rs:1856
  39: alloc::vec::{{impl}}::from_iter<gfx_backend_dx12::command::CommandBuffer,core::iter::Map<core::ops::range::Range<usize>, closure>> (0x7ff79a9b9231)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\liballoc\vec.rs:1839
  40: alloc::vec::{{impl}}::from_iter<gfx_backend_dx12::command::CommandBuffer,core::iter::Map<core::ops::range::Range<usize>, closure>> (0x7ff79a9c0055)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\liballoc\vec.rs:1726
  41: core::iter::iterator::Iterator::collect<core::iter::Map<core::ops::range::Range<usize>, closure>,alloc::vec::Vec<gfx_backend_dx12::command::CommandBuffer>> (0x7ff79a9f3029)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libcore\iter\iterator.rs:1469
  42: gfx_hal::pool::RawCommandPool::allocate_vec<gfx_backend_dx12::pool::RawCommandPool,gfx_backend_dx12::Backend> (0x7ff79a9ea035)
             at C:\Users\bgour\.cargo\registry\src\github.com-1ecc6299db9ec823\gfx-hal-0.1.0\src\pool.rs:39
  43: rendy_command::pool::CommandPool<gfx_backend_dx12::Backend, rendy_command::capability::Graphics, rendy_command::buffer::reset::IndividualReset>::allocate_buffers<gfx_backend_dx12::Backend,rendy_command::capability::Graphics,rendy_command::buffer::reset::I (0x7ff79ab0ffd2)
             at C:\Users\bgour\Repos\rendy\command\src\pool.rs:56
  44: rendy_graph::node::render::pass::{{impl}}::build<gfx_backend_dx12::Backend,()> (0x7ff79ab8dc1d)
             at C:\Users\bgour\Repos\rendy\graph\src\node\render\pass.rs:460
  45: rendy_graph::graph::build_node<gfx_backend_dx12::Backend,()> (0x7ff79aa22118)
             at C:\Users\bgour\Repos\rendy\graph\src\graph\mod.rs:507
  46: rendy_graph::graph::GraphBuilder<gfx_backend_dx12::Backend, ()>::build<gfx_backend_dx12::Backend,()> (0x7ff79aa27835)
             at C:\Users\bgour\Repos\rendy\graph\src\graph\mod.rs:383
  47: triangle::main (0x7ff79aa1b3f4)
             at C:\Users\bgour\Repos\rendy\rendy\examples\triangle\main.rs:278
  48: std::rt::lang_start::{{closure}}<()> (0x7ff79aa0dbe0)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libstd\rt.rs:64
  49: std::panicking::try::do_call<closure,i32> (0x7ff79afbc8c7)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\panicking.rs:297
  50: panic_unwind::__rust_maybe_catch_panic (0x7ff79afc03f2)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libpanic_unwind\lib.rs:92
  51: std::rt::lang_start_internal (0x7ff79afbd292)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\/src\libstd\rt.rs:48
  52: std::rt::lang_start<()> (0x7ff79aa0dbbb)
             at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libstd\rt.rs:64
  53: main (0x7ff79aa1b820)
  54: __scrt_common_main_seh (0x7ff79b3d6964)
             at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
  55: BaseThreadInitThunk (0x7fff097b81f4)
error: process didn't exit successfully: `C:\Users\bgour\Repos\rendy\target\debug\examples\triangle.exe` (exit code: 101)

Process finished with exit code 101

bgourlie avatar Apr 05 '19 01:04 bgourlie

Yea this is a known issue, rendy doesn't work on dx12 currently because dx12 doesn't support secondary command buffers

fu5ha avatar Apr 05 '19 01:04 fu5ha