gfx icon indicating copy to clipboard operation
gfx copied to clipboard

Windows8/OpenGL: Resizing window breaks rendering in quad example

Open mistodon opened this issue 5 years ago • 1 comments

Short info header:

  • GFX version: 0.2.0
  • OS: Windows 8
  • GPU: AMD Radeon R9 M380 (iMac running Windows through bootcamp)

To reproduce:

  1. Run the quad example
  2. Drag to resize the window smaller
  3. Drag to resize it back to normal
  4. Observe that the image does not stretch or update at all

I'm working on a game that exhibits the same behavior on Windows/OpenGL - when the window is resized, rendering seems to stop. As far as I can tell from logging, it looks like the swapchain is being successfully recreated, but the contents of the window never update.

quad

mistodon avatar Jun 10 '19 17:06 mistodon

For me this just crashes:

thread 'main' panicked at 'redraw event in non-redraw phase', <::std::macros::panic macros>:2:4
stack backtrace:
   0: backtrace::backtrace::trace_unsynchronized
             at C:\Users\VssAdministrator\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.44\src\backtrace\mod.rs:66
   1: std::sys_common::backtrace::_print_fmt
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\sys_common\backtrace.rs:78
   2: std::sys_common::backtrace::_print::{{impl}}::fmt
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\sys_common\backtrace.rs:59
   3: core::fmt::write
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libcore\fmt\mod.rs:1063
   4: std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\io\mod.rs:1426
   5: std::sys_common::backtrace::_print
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\sys_common\backtrace.rs:62
   6: std::sys_common::backtrace::print
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\sys_common\backtrace.rs:49
   7: std::panicking::default_hook::{{closure}}
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\panicking.rs:204
   8: std::panicking::default_hook
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\panicking.rs:224
   9: std::panicking::rust_panic_with_hook
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\panicking.rs:470
  10: std::panicking::begin_panic
  11: winit::platform_impl::platform::event_loop::runner::ELRShared<T>::redraw_events_cleared
  12: winit::platform_impl::platform::event_loop::runner::ELRShared<T>::send_event
  13: winit::platform_impl::platform::event_loop::public_window_callback
  14: DefSubclassProc
  15: DefSubclassProc
  16: CallWindowProcW
  17: CallWindowProcW
  18: glPushClientAttrib
  19: CallWindowProcW
  20: DispatchMessageW
  21: IsWindowVisible
  22: KiUserCallbackDispatcher
  23: NtUserMessageCall
  24: GetWindowTextW
  25: MapWindowPoints
  26: IsCompositionActive
  27: Ordinal96
  28: IsCompositionActive
  29: IsCompositionActive
  30: GetWindowTextW
  31: DefSubclassProc
  32: DefSubclassProc
  33: CallWindowProcW
  34: CallWindowProcW
  35: glPushClientAttrib
  36: CallWindowProcW
  37: DispatchMessageW
  38: IsWindowVisible
  39: KiUserCallbackDispatcher
  40: NtUserMessageCall
  41: GetWindowTextW
  42: MapWindowPoints
  43: IsCompositionActive
  44: Ordinal96
  45: IsCompositionActive
  46: IsCompositionActive
  47: GetWindowTextW
  48: CallWindowProcW
  49: CallWindowProcW
  50: DefSubclassProc
  51: DefSubclassProc
  52: DefSubclassProc
  53: DefSubclassProc
  54: CallWindowProcW
  55: CallWindowProcW
  56: glPushClientAttrib
  57: CallWindowProcW
  58: DispatchMessageW
  59: winit::platform_impl::platform::event_loop::EventLoop<T>::run
  60: core::ptr::drop_in_place
  61: <alloc::collections::vec_deque::VecDeque<T> as core::ops::drop::Drop>::drop
  62: png::decoder::Decoder<R>::read_info
  63: std::rt::lang_start_internal::{{closure}}
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\rt.rs:52
  64: std::panicking::try::do_call<closure-0,i32>
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\panicking.rs:303
  65: panic_unwind::__rust_maybe_catch_panic
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libpanic_unwind\lib.rs:86
  66: std::panicking::try
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\panicking.rs:281
  67: std::panic::catch_unwind
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\panic.rs:394
  68: std::rt::lang_start_internal
             at /rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd\/src\libstd\rt.rs:51
  69: main
  70: invoke_main
             at d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
  71: __scrt_common_main_seh
             at d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
  72: BaseThreadInitThunk
  73: RtlUserThreadStart
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: process didn't exit successfully: `target\release\quad.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)

EDIT: GFX version: 0.5.0 OS: Windows 10 GPU: NVIDIA GeForce GTX 1050 Ti

deprilula28 avatar May 27 '20 19:05 deprilula28