Skip to content

Runtime panic due to missing GUI extensions on VM. #39

@H0mTanks

Description

@H0mTanks

Describe the bug
Runtime panic due to missing GUI extensions on VM. There seem to be some missing vsync extensions on a windows 11 vm.

This might be due to a lack of hardware acceleration on the VM, therefore a lack of graphics drivers?

Being able to build in a VM environment would be a great help since it's a common environment for driver development and testing, and a project like this goes hand-in-hand with network drivers.

    Finished dev [unoptimized + debuginfo] target(s) in 1.69s
     Running `target\debug\mitm_proxy.exe`
thread 'main' panicked at 'failed to set vsync swap interval: Error { raw_code: None, raw_os_message: None, kind: NotSupported("swap contol extrensions are not supported") }', C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\eframe-0.20.1\src\native\run.rs:415:18
stack backtrace:
   0: std::panicking::begin_panic_handler
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library\std\src\panicking.rs:575
   1: core::panicking::panic_fmt
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library\core\src\panicking.rs:64
   2: core::result::unwrap_failed
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library\core\src\result.rs:1791
   3: enum2$<core::result::Result<tuple$<>,glutin::error::Error> >::expect<tuple$<>,glutin::error::Error>
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483\library\core\src\result.rs:1070
   4: eframe::native::run::glow_integration::GlutinWindowContext::new
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\eframe-0.20.1\src\native\run.rs:413
   5: eframe::native::run::glow_integration::GlowWinitApp::create_glutin_windowed_context
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\eframe-0.20.1\src\native\run.rs:505
   6: eframe::native::run::glow_integration::GlowWinitApp::init_run_state
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\eframe-0.20.1\src\native\run.rs:521
   7: eframe::native::run::glow_integration::impl$2::on_event
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\eframe-0.20.1\src\native\run.rs:733
   8: eframe::native::run::run_and_return::closure$0<eframe::native::run::glow_integration::GlowWinitApp>
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\eframe-0.20.1\src\native\run.rs:140
   9: winit::platform_impl::platform::event_loop::impl$3::run_return::closure$0<enum2$<eframe::native::run::UserEvent>,eframe::native::run::run_and_return::closure_env$0<eframe::native::run::glow_integration::GlowWinitApp> >
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\winit-0.27.5\src\platform_impl\windows\event_loop.rs:254
  10: alloc::boxed::impl$46::call_mut<tuple$<enum2$<winit::event::Event<enum2$<eframe::native::run::UserEvent> > >,ref_mut$<enum2$<winit::event_loop::ControlFlow> > >,dyn$<core::ops::function::FnMut<tuple$<enum2$<winit::event::Event<enum2$<eframe::native::run::
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483\library\alloc\src\boxed.rs:2016
  11: winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure$0<enum2$<eframe::native::run::UserEvent> >
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\winit-0.27.5\src\platform_impl\windows\event_loop\runner.rs:250
  12: core::panic::unwind_safe::impl$23::call_once<tuple$<>,winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<enum2$<eframe::native::run::UserEvent> > >
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483\library\core\src\panic\unwind_safe.rs:271
  13: std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<enum2$<eframe::native::run::UserEvent> > >,tuple$<> >
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483\library\std\src\panicking.rs:483
  14: eframe::epi::impl$43::clone
  15: std::panicking::try<tuple$<>,core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<enum2$<eframe::native::run::UserEvent> > > >
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483\library\std\src\panicking.rs:447
  16: std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<enum2$<eframe::native::run::UserEvent> > >,tuple$<> >
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483\library\std\src\panic.rs:137
  17: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::run::UserEvent> >::catch_unwind<enum2$<eframe::native::run::UserEvent>,tuple$<>,winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::clos
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\winit-0.27.5\src\platform_impl\windows\event_loop\runner.rs:157
  18: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::run::UserEvent> >::call_event_handler<enum2$<eframe::native::run::UserEvent> >
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\winit-0.27.5\src\platform_impl\windows\event_loop\runner.rs:242
  19: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::run::UserEvent> >::call_new_events<enum2$<eframe::native::run::UserEvent> >
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\winit-0.27.5\src\platform_impl\windows\event_loop\runner.rs:402
  20: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::run::UserEvent> >::move_state_to<enum2$<eframe::native::run::UserEvent> >
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\winit-0.27.5\src\platform_impl\windows\event_loop\runner.rs:312
  21: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<enum2$<eframe::native::run::UserEvent> >::poll<enum2$<eframe::native::run::UserEvent> >
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\winit-0.27.5\src\platform_impl\windows\event_loop\runner.rs:206
  22: winit::platform_impl::platform::event_loop::EventLoop<enum2$<eframe::native::run::UserEvent> >::run_return<enum2$<eframe::native::run::UserEvent>,eframe::native::run::run_and_return::closure_env$0<eframe::native::run::glow_integration::GlowWinitApp> >
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\winit-0.27.5\src\platform_impl\windows\event_loop.rs:263
  23: winit::platform::run_return::impl$0::run_return<enum2$<eframe::native::run::UserEvent>,eframe::native::run::run_and_return::closure_env$0<eframe::native::run::glow_integration::GlowWinitApp> >
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\winit-0.27.5\src\platform\run_return.rs:62
  24: eframe::native::run::run_and_return<eframe::native::run::glow_integration::GlowWinitApp>
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\eframe-0.20.1\src\native\run.rs:107
  25: eframe::native::run::glow_integration::run_glow::closure$0
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\eframe-0.20.1\src\native\run.rs:852
  26: eframe::native::run::with_event_loop::closure$0<eframe::native::run::glow_integration::run_glow::closure_env$0>
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\eframe-0.20.1\src\native\run.rs:96
  27: std::thread::local::LocalKey<core::cell::RefCell<enum2$<core::option::Option<winit::event_loop::EventLoop<enum2$<eframe::native::run::UserEvent> > > > > >::try_with<core::cell::RefCell<enum2$<core::option::Option<winit::event_loop::EventLoop<enum2$<eframe
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483\library\std\src\thread\local.rs:446
  28: std::thread::local::LocalKey<core::cell::RefCell<enum2$<core::option::Option<winit::event_loop::EventLoop<enum2$<eframe::native::run::UserEvent> > > > > >::with<core::cell::RefCell<enum2$<core::option::Option<winit::event_loop::EventLoop<enum2$<eframe::na
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483\library\std\src\thread\local.rs:422
  29: eframe::native::run::with_event_loop<eframe::native::run::glow_integration::run_glow::closure_env$0>
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\eframe-0.20.1\src\native\run.rs:89
  30: eframe::native::run::glow_integration::run_glow
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\eframe-0.20.1\src\native\run.rs:845
  31: eframe::run_native
             at C:\Users\User\.cargo\registry\src\g.yxqyang.asia-1ecc6299db9ec823\eframe-0.20.1\src\lib.rs:192
  32: mitm_proxy::main
             at .\mitm_proxy\src\main.rs:59
  33: core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483\library\core\src\ops\function.rs:507
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: process didn't exit successfully: `target\debug\mitm_proxy.exe` (exit code: 101)

To Reproduce
Steps to reproduce the behavior:

  1. Install a Windows 11 Hyper-V VM using Hyper-V manager.
  2. Build and run the project.

Expected behavior
The built project should run successfully.

Desktop (please complete the following information):

  • OS: Windows 11 Hyper-V VM

Additional context
I also built it on a machine with integrated graphics, worked fine. Although that isn't really representative of the VM case since an integrated machine still has the intel graphics driver.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions